From e5a127956a1dfcce3491b4cbfffba14d9e65d28d Mon Sep 17 00:00:00 2001 From: Michael Carpenter Date: Fri, 25 Jul 2014 08:45:26 -0400 Subject: [PATCH] TableView2D: Removal of Qwt as a dependancy, to change over to QCustomPlot --- core/core.pro | 36 +++++++++++------------ core/src/aboutview.ui | 14 ++++----- core/src/tableview2d.cpp | 58 +++++++++++++++++-------------------- core/src/tableview2d.h | 5 +--- core/src/tableview2d.ui | 16 +++++----- emstudio32.cross.nsi | 1 - emstudio64.cross.nsi | 1 - plugins/freeems/freeems.pro | 13 ++++----- 8 files changed, 65 insertions(+), 79 deletions(-) diff --git a/core/core.pro b/core/core.pro index b7bac94..f522d57 100644 --- a/core/core.pro +++ b/core/core.pro @@ -27,17 +27,19 @@ POST_TARGETDEPS += gittouch include(QsLog/QsLog.pri) win32-x-g++ { #Linux based crossplatform 32bit build message("Building for win32-x-g++") - INCLUDEPATH += /home/michael/QtWin32/libs/qwt/include /home/michael/QtWin32/libs/qjson/include - LIBS += -L/home/michael/QtWin32/libs/qwt/lib -lqwt -L/home/michael/QtWin32/libs/qjson/lib -lqjson + DEFINES += WindowsBuild + INCLUDEPATH += /home/michael/QtWin32/libs/qjson/include + LIBS += -L/home/michael/QtWin32/libs/qjson/lib -lqjson LIBS += -L/home/michael/QtWin32/lib DEFINES += GIT_COMMIT=$$system(git describe --dirty=-DEV --always) DEFINES += GIT_HASH=$$system(git log -n 1 --pretty=format:%H) DEFINES += GIT_DATE=\""$$system(date)"\" QMAKE_LFLAGS += -static-libgcc -static-libstdc++ } else:win64-x-g++ { #Linux based crossplatform 64bit build - message("Building for win64-x-g++") - INCLUDEPATH += /home/michael/QtWin64/libs/qwt/include /home/michael/QtWin64/libs/qjson/include - LIBS += -L/home/michael/QtWin64/libs/qwt/lib -lqwt -L/home/michael/QtWin64/libs/qjson/lib -lqjson + message("Building for win64-x-g++") + DEFINES += WindowsBuild + INCLUDEPATH += /home/michael/QtWin64/libs/qjson/include + LIBS += -L/home/michael/QtWin64/libs/qjson/lib -lqjson LIBS += -L/home/michael/QtWin64/lib DEFINES += GIT_COMMIT=$$system(git describe --dirty=-DEV --always) DEFINES += GIT_HASH=$$system(git log -n 1 --pretty=format:%H) @@ -45,22 +47,15 @@ DEFINES += GIT_DATE=\""$$system(date)"\" QMAKE_LFLAGS += -static-libgcc -static-libstdc++ } else:win32 { #Windows based mingw build message("Building for win32") - INCLUDEPATH += C:/libs/qwt/include C:/libs/qjson/include - LIBS += -LC:/libs/qwt/lib -LC:/libs/qjson/lib -lqjson.dll + INCLUDEPATH += C:/libs/qjson/include + LIBS += -LC:/libs/qjson/lib -lqjson.dll DEFINES += GIT_COMMIT=$$system(\"c:/program files (x86)/git/bin/git.exe\" describe --dirty=-DEV --always) DEFINES += GIT_HASH=$$system(\"c:/program files (x86)/git/bin/git.exe\" log -n 1 --pretty=format:%H) QMAKE_LFLAGS += -static-libgcc -static-libstdc++ - #CONFIG(debug, debug|release) { - LIBS += -lqwtd - #} - #CONFIG(release, debug|release) { - # LIBS += =lqwt - #} } else:mac { QMAKE_CXXFLAGS += -Werror INCLUDEPATH += /opt/local/include - INCLUDEPATH += /opt/local/include/qwt - LIBS += -L/opt/local/lib -lqjson -lqwt + LIBS += -L/opt/local/lib -lqjson DEFINES += GIT_COMMIT=$$system(git describe --dirty=-DEV --always) DEFINES += GIT_HASH=$$system(git log -n 1 --pretty=format:%H) DEFINES += GIT_DATE=\""$$system(date)"\" @@ -76,8 +71,7 @@ DEFINES += GIT_DATE=\""$$system(date)"\" config.path = /usr/share/EMStudio/definitions config.files += freeems.config.json INSTALLS += target config dashboard wizards - LIBS += -lqwt -lqjson -lGL -lGLU -lglut - INCLUDEPATH += /usr/include/qwt + LIBS += -lqjson -lGL -lGLU -lglut DEFINES += GIT_COMMIT=$$system(git describe --dirty=-DEV --always) DEFINES += GIT_HASH=$$system(git log -n 1 --pretty=format:%H) DEFINES += GIT_DATE=\""$$system(date)"\" @@ -123,7 +117,9 @@ SOURCES += src/main.cpp\ src/roundgaugeitem.cpp \ src/scalarparam.cpp \ src/comboparam.cpp \ - src/ramdiffwindow.cpp + src/ramdiffwindow.cpp \ + src/pluginmanager.cpp \ + src/qcustomplot.cpp HEADERS += src/mainwindow.h \ @@ -174,7 +170,9 @@ HEADERS += src/mainwindow.h \ src/gaugeutil.h \ src/scalarparam.h \ src/comboparam.h \ - src/ramdiffwindow.h + src/ramdiffwindow.h \ + src/pluginmanager.h \ + src/qcustomplot.h FORMS += src/mainwindow.ui \ src/comsettings.ui \ diff --git a/core/src/aboutview.ui b/core/src/aboutview.ui index 2308205..4604fbd 100644 --- a/core/src/aboutview.ui +++ b/core/src/aboutview.ui @@ -159,9 +159,9 @@ applicable license for these libraries. 0 - -387 - 473 - 568 + -189 + 474 + 472 @@ -349,21 +349,21 @@ applicable license for these libraries. - <h2>Qwt</h2> + <h2>QCustomPlot</h2> - Copyright (C) 1997 Josef Wilgen and 2002 Uwe Rathmann + Copyright (C) 2011, 2012, 2013 Emanuel Eichhammer - Licensed: <a href="http://qwt.sourceforge.net/qwtlicense.html">Qwt License Version 1.0</a> + Licensed: <a href="http://www.gnu.org/licenses/gpl.html">GPLv3+</a> true @@ -373,7 +373,7 @@ applicable license for these libraries. - Website: <a href="http://qwt.sf.net">http://qwt.sf.net</a> + Website: <a href="http://www.qcustomplot.com/">http://www.qcustomplot.com/</a> true diff --git a/core/src/tableview2d.cpp b/core/src/tableview2d.cpp index bda25da..196895d 100644 --- a/core/src/tableview2d.cpp +++ b/core/src/tableview2d.cpp @@ -21,8 +21,6 @@ #include "tableview2d.h" #include -#include -#include #include #include #include @@ -58,19 +56,20 @@ TableView2D::TableView2D(QWidget *parent) ui.tableWidget->addHotkey(Qt::Key_Equal,Qt::NoModifier); ui.tableWidget->setItemDelegate(new TableWidgetDelegate()); - QPalette pal = ui.plot->palette(); - pal.setColor(QPalette::Background,QColor::fromRgb(0,0,0)); - ui.plot->setPalette(pal); - curve = new QwtPlotCurve("Test"); - curve->attach(ui.plot); - curve->setPen(QPen(QColor::fromRgb(255,0,0),3)); - QwtPlotGrid *grid = new QwtPlotGrid(); - grid->setPen(QPen(QColor::fromRgb(100,100,100))); - grid->attach(ui.plot); + ui.plot->setInteraction(QCP::iRangeDrag, false); + ui.plot->setInteraction(QCP::iRangeZoom, false); + ui.plot->plotLayout()->clear(); + m_wideAxisRect = new QCPAxisRect(ui.plot); + m_wideAxisRect->setupFullAxesBox(true); + m_wideAxisRect->axis(QCPAxis::atRight, 0)->setTickLabels(false); + //m_wideAxisRect->removeAxis(m_wideAxisRect->axis(QCPAxis::atLeft,0)); + //m_wideAxisRect->removeAxis(m_wideAxisRect->axis(QCPAxis::atBottom,0)); + ui.plot->plotLayout()->addElement(0, 0, m_wideAxisRect); + ui.plot->addGraph(m_wideAxisRect->axis(QCPAxis::atBottom), m_wideAxisRect->axis(QCPAxis::atLeft,0)); + //curve->setData() - //QwtSeriesData series; /*if (!isram) { //Is only flash @@ -317,10 +316,6 @@ void TableView2D::setValue(int row, int column,double value) //This is to make sure we round the value properly. So value displayed == value sent. //New value has been accepted. Let's write it. - if (samples.size() <= column) - { - return; - } //unsigned short newval = ui.tableWidget->item(row,column)->text().toInt(); //currentvalue = newval; if (row == 0) @@ -344,12 +339,6 @@ void TableView2D::setValue(int row, int column,double value) currentvalue = oldValue; //tableData->setCell(0,column,currentvalue); - - - samples.replace(column,QPointF(ui.tableWidget->item(row,column)->text().toInt(),samples.at(column).y())); - curve->setSamples(samples); - //ui.plot->replot(); - ui.plot->autoRefresh(); } else if (row == 1) { @@ -370,13 +359,11 @@ void TableView2D::setValue(int row, int column,double value) } //tableData->setXAxis(column,currentvalue); currentvalue = oldValue; - samples.replace(column,QPointF(samples.at(column).x(),ui.tableWidget->item(row,column)->text().toInt())); - curve->setSamples(samples); - //ui.plot->replot(); - ui.plot->autoRefresh(); + //samples.replace(column,QPointF(samples.at(column).x(),ui.tableWidget->item(row,column)->text().toInt())); } //New value has been accepted. Let's write it. tableData->setCell(row,column,oldValue); //This will emit saveSingleData + updateTable(); //ui.tableWidget->resizeColumnsToContents(); resizeColumnWidths(); } @@ -767,12 +754,12 @@ bool TableView2D::setData(QString name,DataBlock *data) return false; } QLOG_DEBUG() << "TableView2D::passData" << name; + m_wideAxisRect->axis(QCPAxis::atLeft)->setLabel(tableData->axisLabel()); + m_wideAxisRect->axis(QCPAxis::atBottom)->setLabel(tableData->valueLabel()); return updateTable(); } bool TableView2D::updateTable() { - samples.clear(); - ui.tableWidget->disconnect(SIGNAL(cellChanged(int,int))); QList > selectedlist; if (ui.tableWidget->selectedItems().size() > 0) @@ -793,6 +780,8 @@ bool TableView2D::updateTable() } double first = tableData->axis()[0]; int order = 0; + QVector keys; + QVector values; for (int i=0;icolumns();i++) { if (i == 1) @@ -852,10 +841,17 @@ bool TableView2D::updateTable() ui.tableWidget->item(1,ui.tableWidget->columnCount()-1)->setBackgroundColor(QColor::fromRgb(255,255-(255*(((tableData->values()[i] - tableData->minActualYAxis())-(((tableData->maxActualYAxis() - tableData->minActualYAxis())/4.0)*3))/((tableData->maxActualYAxis() - tableData->minActualYAxis())/4.0))),0)); } } - samples.append(QPointF(tableData->axis()[i],tableData->values()[i])); + keys.append(tableData->axis()[i]); + values.append(tableData->values()[i]); } + QCPGraph *graph = ui.plot->graph(0); + graph->setData(keys,values); + graph->rescaleAxes(); + //m_wideAxisRect->axis(QCPAxis::atLeft)->setLabel(tableData->axisLabel()); + + //m_wideAxisRect->axis(QCPAxis::atBottom)->setLabel(tableData->valueLabel()); connect(ui.tableWidget,SIGNAL(cellChanged(int,int)),this,SLOT(tableCellChanged(int,int))); - curve->setSamples(samples); +// curve->setSamples(samples); ui.plot->replot(); ui.tableWidget->setCurrentCell(m_currRow,m_currCol); resizeColumnWidths(); @@ -863,8 +859,6 @@ bool TableView2D::updateTable() { ui.tableWidget->item(selectedlist[i].first,selectedlist[i].second)->setSelected(true); } - ui.plot->setAxisTitle(QwtPlot::xBottom,tableData->axisLabel()); - ui.plot->setAxisTitle(QwtPlot::yLeft,tableData->valueLabel()); selectedlist.clear(); diff --git a/core/src/tableview2d.h b/core/src/tableview2d.h index bf72fdf..fc67177 100644 --- a/core/src/tableview2d.h +++ b/core/src/tableview2d.h @@ -29,8 +29,6 @@ #include #include #include "ui_tableview2d.h" -#include -#include #include "dataview.h" class TableView2D : public DataView { @@ -55,8 +53,6 @@ class TableView2D : public DataView Table2DData *tableData; void setSilentValue(int row,int column,QString value); Table2DMetaData m_metaData; - QwtPlotCurve *curve; - QVector samples; Ui::TableView2D ui; unsigned short m_locationid; int m_physicalid; @@ -73,6 +69,7 @@ class TableView2D : public DataView QString formatNumber(double num,int prec); QString verifyValue(int row,int column,QString item); void reColorTable(int rownum,int colnum); + QCPAxisRect *m_wideAxisRect; protected: void resizeEvent(QResizeEvent *evt); void keyPressEvent(QKeyEvent *event); diff --git a/core/src/tableview2d.ui b/core/src/tableview2d.ui index b78ff77..0094dba 100644 --- a/core/src/tableview2d.ui +++ b/core/src/tableview2d.ui @@ -15,9 +15,9 @@ - + - + @@ -103,17 +103,17 @@ - - QwtPlot - QFrame -
qwt_plot.h
- 1 -
TableWidget QTableWidget
tablewidget.h
+ + QCustomPlot + QWidget +
qcustomplot.h
+ 1 +
diff --git a/emstudio32.cross.nsi b/emstudio32.cross.nsi index a93d7b3..e3d404e 100644 --- a/emstudio32.cross.nsi +++ b/emstudio32.cross.nsi @@ -92,7 +92,6 @@ Section "Qt Components" File /home/michael/QtWin32/lib/QtSql4.dll File /home/michael/QtWin32/lib/QtXml4.dll File /home/michael/QtWin32/lib/QtXmlPatterns4.dll - File /home/michael/QtWin32/libs/qwt/bin/qwt.dll File /home/michael/QtWin32/libs/qjson/bin/qjson.dll File /home/michael/QtWin32/lib/libgcc_s_sjlj-1.dll File /home/michael/QtWin32/lib/libstdc++-6.dll diff --git a/emstudio64.cross.nsi b/emstudio64.cross.nsi index f2025ea..a71e260 100644 --- a/emstudio64.cross.nsi +++ b/emstudio64.cross.nsi @@ -93,7 +93,6 @@ Section "Qt Components" File /home/michael/QtWin64/lib/QtSql4.dll File /home/michael/QtWin64/lib/QtXml4.dll File /home/michael/QtWin64/lib/QtXmlPatterns4.dll - File /home/michael/QtWin64/libs/qwt/bin/qwt.dll File /home/michael/QtWin64/libs/qjson/bin/qjson.dll File /home/michael/QtWin64/lib/libstdc++-6.dll File /home/michael/QtWin64/lib/libgcc_s_sjlj-1.dll diff --git a/plugins/freeems/freeems.pro b/plugins/freeems/freeems.pro index cb7b50f..80a71cc 100644 --- a/plugins/freeems/freeems.pro +++ b/plugins/freeems/freeems.pro @@ -25,8 +25,8 @@ win32-x-g++ { #Linux based crossplatform 32bit build TARGET = ../../../core/plugins/freeemsplugin win32:QMAKE_LFLAGS += -shared message("Building for win32-x-g++") - INCLUDEPATH += /home/michael/QtWin32/libs/qwt/include /home/michael/QtWin32/libs/qjson/include - LIBS += -L/home/michael/QtWin32/libs/qwt/lib -lqwt -L/home/michael/QtWin32/libs/qjson/lib -lqjson + INCLUDEPATH += /home/michael/QtWin32/libs/qjson/include + LIBS += -L/home/michael/QtWin32/libs/qjson/lib -lqjson LIBS += -L/home/michael/QtWin32/lib DEFINES += GIT_COMMIT=$$system(git describe --dirty=-DEV --always) DEFINES += GIT_HASH=$$system(git log -n 1 --pretty=format:%H) @@ -36,8 +36,8 @@ win32-x-g++ { #Linux based crossplatform 32bit build TARGET = ../../../core/plugins/freeemsplugin win32:QMAKE_LFLAGS += -shared message("Building for win64-x-g++") - INCLUDEPATH += /home/michael/QtWin64/libs/qwt/include /home/michael/QtWin64/libs/qjson/include - LIBS += -L/home/michael/QtWin64/libs/qwt/lib -lqwt -L/home/michael/QtWin64/libs/qjson/lib -lqjson + INCLUDEPATH += /home/michael/QtWin64/libs/qjson/include + LIBS += -L/home/michael/QtWin64/libs/qjson/lib -lqjson LIBS += -L/home/michael/QtWin64/lib DEFINES += GIT_COMMIT=$$system(git describe --dirty=-DEV --always) DEFINES += GIT_HASH=$$system(git log -n 1 --pretty=format:%H) @@ -47,15 +47,14 @@ win32-x-g++ { #Linux based crossplatform 32bit build TARGET = ../../../core/plugins/freeemsplugin win32:QMAKE_LFLAGS += -shared message("Building for win32-g++") - INCLUDEPATH += C:/libs/qwt/include C:/libs/qjson/include - LIBS += -LC:/libs/qwt/lib -lqwt -LC:/libs/qjson/lib -lqjson.dll + INCLUDEPATH += C:/libs/qjson/include + LIBS += -LC:/libs/qjson/lib -lqjson.dll DEFINES += GIT_COMMIT=$$system(\"c:/program files (x86)/git/bin/git.exe\" describe --dirty=-DEV --always) DEFINES += GIT_HASH=$$system(\"c:/program files (x86)/git/bin/git.exe\" log -n 1 --pretty=format:%H) QMAKE_LFLAGS += -static-libgcc -static-libstdc++ } else:mac { TARGET = ../../core/plugins/freeemsplugi INCLUDEPATH += /opt/local/include - INCLUDEPATH += /opt/local/include/qwt LIBS += -L/opt/local/lib -lqjson DEFINES += GIT_COMMIT=$$system(git describe --dirty=-DEV --always) DEFINES += GIT_HASH=$$system(git log -n 1 --pretty=format:%H)