diff --git a/Makefile b/Makefile index f87f149..db1de5f 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,5 @@ -ROOT_DIR="/usr" +#ROOT_DIR="/usr" +ROOT_DIR="." LIB_DIR=$(DESTDIR)$(ROOT_DIR)"/lib/kisscount/" SHARE_DIR=$(DESTDIR)$(ROOT_DIR)"/share/kisscount/" DOC_DIR=$(DESTDIR)$(ROOT_DIR)"/share/doc/kisscount/" @@ -7,9 +8,11 @@ BIN_DIR=$(DESTDIR)$(ROOT_DIR)"/bin/" CXX=$(HOST)g++ KISSCOUNT=kc -QT_PACKAGES="QtCore QtGui QtSql QtXml" +QT_PACKAGES="Qt5Core Qt5Gui Qt5Sql Qt5Xml Qt5Widgets" CXXFLAGS+=`pkg-config --cflags $(QT_PACKAGES)` -CXXFLAGS+=-Wall -Isrc -Isrc/win32 +CXXFLAGS+=-Wall -Isrc -Isrc/win32 -I${PWD}/lib/qt5charts/usr/include/x86_64-linux-gnu/qt5/ -L${PWD}/lib/qtcharts/lib/ -L${PWD}/lib/qt5charts/usr/lib/x86_64-linux-gnu/ +CXXFLAGS+=-Wall +#-Dnullptr=0 ifdef WIN32 CXXFLAGS+=-DRESOURCES_ROOT="\"./resources/\"" -static else @@ -24,24 +27,24 @@ MOC_HEADERS=$(shell find src/view -name '*.hpp' -type f | tr '\n' ' ') MOCS=$(MOC_HEADERS:.hpp=.objs) MOCS_OBJS=$(MOC_HEADERS:.hpp=.moc) -CXXFLAGS+=-Ilib/libkdchart/include -Ilib/libkdchart/src -Ilib/libkdchart/kdablibfakes/include -CXXFLAGS+=-DKDCHART_BUILD_KDCHART_LIB -KDCHART_SOURCES=$(shell find lib/libkdchart/src -name '*.cpp' -type f | tr '\n' ' ') -KDCHART_OBJS=$(KDCHART_SOURCES:.cpp=.o) -UI_CHARTSELECTOR=lib/libkdchart/src/ui_KDChartDatasetSelector.h -KDCHART_MOC_HEADERS=$(shell find lib/libkdchart/src -name '*.h' -type f | tr '\n' ' ') -KDCHART_MOCS=$(KDCHART_MOC_HEADERS:.h=.objs) -KDCHART_MOCS_OBJS=$(KDCHART_MOC_HEADERS:.h=.moc) -LDFLAGS+=lib/libkdchart.a +#CXXFLAGS+=-Ilib/libkdchart/include -Ilib/libkdchart/src -Ilib/libkdchart/kdablibfakes/include +#CXXFLAGS+=-DKDCHART_BUILD_KDCHART_LIB +#KDCHART_SOURCES=$(shell find lib/libkdchart/src -name '*.cpp' -type f | tr '\n' ' ') +#KDCHART_OBJS=$(KDCHART_SOURCES:.cpp=.o) +#UI_CHARTSELECTOR=lib/libkdchart/src/ui_KDChartDatasetSelector.h +#KDCHART_MOC_HEADERS=$(shell find lib/libkdchart/src -name '*.h' -type f | tr '\n' ' ') +#KDCHART_MOCS=$(KDCHART_MOC_HEADERS:.h=.objs) +#KDCHART_MOCS_OBJS=$(KDCHART_MOC_HEADERS:.h=.moc) +#LDFLAGS+=lib/libkdchart.a ifndef WIN32 LDFLAGS+=`pkg-config --libs $(QT_PACKAGES)` -LDFLAGS+=-lofx +LDFLAGS+=-lofx -lQt5Charts else LDFLAGS+=lib_mingw_32/QtCore4.dll lib_mingw_32/QtGui4.dll lib_mingw_32/QtSql4.dll lib_mingw_32/QtXml4.dll endif -all: mojito lib/libkdchart.a $(KISSCOUNT) +all: mojito $(KISSCOUNT) clean_all: clean clean_libkdchart @@ -59,22 +62,22 @@ clean: $(CXX) $(CXXFLAGS) -x c++ $< -c -o $@ %.moc : %.hpp - moc-qt4 -nw $< -o $@ + moc -nw $< -o $@ %.moc : %.h - moc-qt4 -nw $< -o $@ + moc -nw $< -o $@ -mojito : $(MOCS_OBJS) $(KDCHART_MOCS_OBJS) +mojito : $(MOCS_OBJS) $(KISSCOUNT): $(MOCS) $(OBJS) $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) -$(UI_CHARTSELECTOR): lib/libkdchart/src/KDChartDatasetSelector.ui - uic $< > $(UI_CHARTSELECTOR) - sed s/KDCHARTDATASETSELECTOR_H/UI_KDCHARTDATASETSELECTOR_H/g -i $(UI_CHARTSELECTOR) +# $(UI_CHARTSELECTOR): lib/libkdchart/src/KDChartDatasetSelector.ui +# uic $< > $(UI_CHARTSELECTOR) +# sed s/KDCHARTDATASETSELECTOR_H/UI_KDCHARTDATASETSELECTOR_H/g -i $(UI_CHARTSELECTOR) -lib/libkdchart.a: $(UI_CHARTSELECTOR) $(KDCHART_MOCS) $(KDCHART_OBJS) - $(HOST)ar rcu lib/libkdchart.a $(KDCHART_MOCS) $(KDCHART_OBJS) +# lib/libkdchart.a: $(UI_CHARTSELECTOR) $(KDCHART_MOCS) $(KDCHART_OBJS) +# $(HOST)ar rcu lib/libkdchart.a $(KDCHART_MOCS) $(KDCHART_OBJS) clean_libkdchart: rm -rf lib/libkdchart.a diff --git a/src/model/import/GrisbiImportEngine.cpp b/src/model/import/GrisbiImportEngine.cpp index 7525a4e..e64bba9 100644 --- a/src/model/import/GrisbiImportEngine.cpp +++ b/src/model/import/GrisbiImportEngine.cpp @@ -180,9 +180,10 @@ bool GrisbiImportEngine::HandleFile(const QString& path, User* user, Database* d if (!ImportEngine::HandleFile(path, user, db, kiss)) return false; + QXmlInputSource *source = new QXmlInputSource(&file); try { - res = _sax.parse(&file); + res = _sax.parse(source, false); LinkChilds(); } catch (const char* s) @@ -192,6 +193,7 @@ bool GrisbiImportEngine::HandleFile(const QString& path, User* user, Database* d } file.close(); + delete source; return res; } diff --git a/src/model/import/XMLImportEngine.cpp b/src/model/import/XMLImportEngine.cpp index f5eb25c..bcb7efe 100644 --- a/src/model/import/XMLImportEngine.cpp +++ b/src/model/import/XMLImportEngine.cpp @@ -51,9 +51,11 @@ bool XMLImportEngine::HandleFile(const QString& path, User* user, Database* db, return false; } + QXmlInputSource *source = new QXmlInputSource(&file); + try { - res = _sax.parse(&file); + res = _sax.parse(source, false); LinkChilds(); } catch (const char* s) @@ -63,6 +65,7 @@ bool XMLImportEngine::HandleFile(const QString& path, User* user, Database* db, } file.close(); + delete source; return res; } diff --git a/src/view/AccountPanel.cpp b/src/view/AccountPanel.cpp index de0a95b..5d549fb 100644 --- a/src/view/AccountPanel.cpp +++ b/src/view/AccountPanel.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include "AccountPanel.hpp" #include "grid/FloatDelegate.hpp" diff --git a/src/view/CostRepartitionBanner.cpp b/src/view/CostRepartitionBanner.cpp index 4a66950..963b6b1 100644 --- a/src/view/CostRepartitionBanner.cpp +++ b/src/view/CostRepartitionBanner.cpp @@ -17,11 +17,15 @@ along with KissCount. If not, see . */ -#include -#include +#include +#include +#include +#include #include "CostRepartitionBanner.hpp" +using namespace QtCharts; + CostRepartitionBanner::CostRepartitionBanner(KissCount* kiss, QFrame* parent, QString* categories) : QFrame(parent), _kiss(kiss), _categories(categories) { User* user = _kiss->GetUser(); @@ -32,43 +36,51 @@ CostRepartitionBanner::CostRepartitionBanner(KissCount* kiss, QFrame* parent, QS nbCategories = user->GetCategoriesNumber(); - _pie = new KDChart::Widget(); - _pie->setType( KDChart::Widget::Pie ); + QPieSeries *series = new QPieSeries(); + QPieSlice* slice; + + _pie = new QChart(); + QPen pen; pen.setWidth(2); pen.setColor(Qt::black); - _pie->pieDiagram()->setPen(pen); + //_pie->pieDiagram()->setPen(pen); - _pie->addLegend(KDChart::Position::South); - KDChart::Legend* legend = _pie->legend(); + QLegend* legend = _pie->legend(); + legend->detachFromChart(); + legend->setAlignment(Qt::AlignTop); + legend->setVisible(false); + legend->setShowToolTips(true); + // legend->setAlignment(Qt::AlignBottom); + + //_pie->addLegend(KDChart::Position::South); + // KDChart::Legend* legend = //_pie->legend(); // legend->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); - legend->setOrientation( Qt::Vertical ); - legend->setTitleText( _("Cost repartition") ); - QVector< double > vec; - vec << 0.0; - _dataset = new QStandardItemModel(nbCategories, 2, this); + // legend->setOrientation( Qt::Vertical ); + + _pie->setMargins(QMargins(5, 5, 5, 5)); + for(i=0; isetDataset( i, vec, _categories[i] ); - _pie->pieDiagram()->setBrush(i, QBrush(wxUI::categoryColors[i])); - legend->setText( i, _categories[i] ); - _dataset->setData(_dataset->index(i, 0, QModelIndex()), _categories[i]); - _dataset->setData(_dataset->index(i, 1, QModelIndex()), 0.0); + slice = series->append(_categories[i], 0); if (i < wxUI::MAX_CATEGORY) - _dataset->setData(_dataset->index(i, 0, QModelIndex()), wxUI::categoryColors[i], Qt::DecorationRole); + slice->setBrush(QBrush(wxUI::categoryColors[i])); + slice->setLabelVisible(); } - _pie->setMaximumSize( 200, 400 ); + _pie->addSeries(series); + //_pie->setTitle(_("Cost repartition")); + //_pie->setMaximumSize( 200, 400 ); - KDChart::TextAttributes legendTextAttr(legend->textAttributes()); - legendTextAttr.setFontSize(64); - legendTextAttr.setAutoShrink(true); - legend->setTextAttributes(legendTextAttr); + // KDChart::TextAttributes legendTextAttr(legend->textAttributes()); + // legendTextAttr.setFontSize(64); + // legendTextAttr.setAutoShrink(true); + // legend->setTextAttributes(legendTextAttr); - legendTextAttr = KDChart::TextAttributes(legend->titleTextAttributes()); - legendTextAttr.setFontSize(64); - legendTextAttr.setAutoShrink(true); - legend->setTitleTextAttributes(legendTextAttr); + // legendTextAttr = KDChart::TextAttributes(legend->titleTextAttributes()); + // legendTextAttr.setFontSize(64); + // legendTextAttr.setAutoShrink(true); + // legend->setTitleTextAttributes(legendTextAttr); _statsGrid = new QTableWidget(this); _statsGrid->verticalHeader()->setHidden(true); @@ -77,13 +89,13 @@ CostRepartitionBanner::CostRepartitionBanner(KissCount* kiss, QFrame* parent, QS setSizePolicy(QSizePolicy::Minimum, QSizePolicy::MinimumExpanding); - QSize s = legend->sizeHint(); - legend->setMaximumSize(s.width(), s.height()/3); - + QChartView *chartView = new QChartView(_pie); + chartView->setRenderHint(QPainter::Antialiasing); + vbox->addWidget(_statsGrid); - vbox->addWidget(_pie); + vbox->addWidget(chartView); - setMaximumWidth(300); + setMaximumWidth(350); } void CostRepartitionBanner::Reset() @@ -132,27 +144,24 @@ void CostRepartitionBanner::UpdateCosts(int *categoriesValues, int totalDebit) User* user = _kiss->GetUser(); int value, percents; QString v; - + QPieSeries* series = (QPieSeries*) (_pie->series()[0]); + QList slices = series->slices(); + for(i=0; iGetCategoriesNumber(); i++) { if (totalDebit != 0) percents = (categoriesValues[i]*100)/totalDebit; else percents = 0.0; + if (!i) _statsGrid->item(i, 1)->setText(v.sprintf("%.2lf (%02d %%)", (double)categoriesValues[i]/100, (int)percents)); else _statsGrid->item(i+1, 1)->setText(v.sprintf("%.2lf (%02d %%)", (double)categoriesValues[i]/100, (int)percents)); - - // KDChart::Legend* legend = _pie->legend(); - QVector< double > vec; - vec << (double) categoriesValues[i] / 100; - _pie->setDataset( i, vec, _categories[i] ); - // if (categoriesValues[i] == 0.0) - // legend->setDatasetHidden(i, true); - // else - // legend->setDatasetHidden(i, false); - // _dataset->setData(_dataset->index(i, 1, QModelIndex()), categoriesValues[i]); + + slices[i]->setValue(categoriesValues[i] / 100); + + slices[i]->setLabelVisible(categoriesValues[i] != 0.0); } value = totalDebit - categoriesValues[0]; diff --git a/src/view/CostRepartitionBanner.hpp b/src/view/CostRepartitionBanner.hpp index dc8738b..2e05226 100644 --- a/src/view/CostRepartitionBanner.hpp +++ b/src/view/CostRepartitionBanner.hpp @@ -21,7 +21,8 @@ #define COSTREPARTITIONBANNER_H #include -#include +#include +#include #include "view.hpp" #include @@ -40,7 +41,7 @@ private: KissCount* _kiss; QString* _categories; QTableWidget* _statsGrid; - KDChart::Widget* _pie; + QtCharts::QChart* _pie; QStandardItemModel* _dataset; }; diff --git a/src/view/ExportPanel.cpp b/src/view/ExportPanel.cpp index 20c8dc9..1fbf757 100644 --- a/src/view/ExportPanel.cpp +++ b/src/view/ExportPanel.cpp @@ -17,6 +17,9 @@ along with KissCount. If not, see . */ +#include +#include + #include "ExportPanel.hpp" ExportPanel::ExportPanel(KissCount* kiss, wxUI *parent, bool lowResolution) : diff --git a/src/view/ImportPanel.cpp b/src/view/ImportPanel.cpp index 680e6cc..9a735f3 100644 --- a/src/view/ImportPanel.cpp +++ b/src/view/ImportPanel.cpp @@ -18,6 +18,10 @@ */ #include +#include +#include +#include +#include #include "ImportPanel.hpp" #include "grid/ChoiceDelegate.hpp" diff --git a/src/view/ImportPanel.hpp b/src/view/ImportPanel.hpp index 7708c4e..95a3d60 100644 --- a/src/view/ImportPanel.hpp +++ b/src/view/ImportPanel.hpp @@ -21,6 +21,7 @@ #define IMPORTPANEL_H #include +#include #include "view.hpp" #include diff --git a/src/view/PreferencesPanel.cpp b/src/view/PreferencesPanel.cpp index 6f02252..f1480ad 100644 --- a/src/view/PreferencesPanel.cpp +++ b/src/view/PreferencesPanel.cpp @@ -17,6 +17,14 @@ along with KissCount. If not, see . */ +#include +#include +#include +#include +#include +#include +#include +#include #include "PasswordDialog.hpp" diff --git a/src/view/PreferencesPanel.hpp b/src/view/PreferencesPanel.hpp index c1986eb..09f9dba 100644 --- a/src/view/PreferencesPanel.hpp +++ b/src/view/PreferencesPanel.hpp @@ -21,7 +21,9 @@ #define PREFERENCESPANEL_H #include - +#include +#include +#include #include "SupportedLanguages.hpp" #include "view.hpp" #include diff --git a/src/view/SearchBanner.cpp b/src/view/SearchBanner.cpp index 077abbe..6625547 100644 --- a/src/view/SearchBanner.cpp +++ b/src/view/SearchBanner.cpp @@ -17,6 +17,8 @@ along with KissCount. If not, see . */ +#include + #include "SearchBanner.hpp" SearchBanner::SearchBanner(KissCount* kiss, QFrame *parent, void* caller, OnButtonEnter enterCallback) : QFrame(parent), _kiss(kiss), _caller(caller), _enterCallback(enterCallback), _operations(0) diff --git a/src/view/SearchBanner.hpp b/src/view/SearchBanner.hpp index 3194fc4..c512940 100644 --- a/src/view/SearchBanner.hpp +++ b/src/view/SearchBanner.hpp @@ -21,6 +21,9 @@ #define SEARCHBANNER_H #include +#include +#include +#include #include "view.hpp" #include diff --git a/src/view/SearchPanel.cpp b/src/view/SearchPanel.cpp index 6a6fac5..dd35b9a 100644 --- a/src/view/SearchPanel.cpp +++ b/src/view/SearchPanel.cpp @@ -17,6 +17,9 @@ along with KissCount. If not, see . */ +#include +#include + #include "SearchPanel.hpp" SearchPanel::SearchPanel(KissCount* kiss, wxUI *parent, bool lowResolution) : diff --git a/src/view/StatsPanel.cpp b/src/view/StatsPanel.cpp index 4692dcb..bd40854 100644 --- a/src/view/StatsPanel.cpp +++ b/src/view/StatsPanel.cpp @@ -18,14 +18,16 @@ */ #include -#include -#include -#include - +#include +#include +#include +#include #include "StatsPanel.hpp" +using namespace QtCharts; + StatsPanel::StatsPanel(KissCount* kiss, wxUI *parent, bool lowResolution) : - KissPanel(kiss, parent, lowResolution), _plot(0) + KissPanel(kiss, parent, lowResolution), _chartView(0) { QHBoxLayout *hbox = new QHBoxLayout(); QVBoxLayout *vbox = new QVBoxLayout(); @@ -158,16 +160,19 @@ void StatsPanel::UpdateStats(int monthFrom, int yearFrom, int monthTo, int yearT User* user = _kiss->GetUser(); QDate date; bool failed; - QVector vec; - QStringList xlabels; + QLineSeries * series = new QLineSeries(); + QLineSeries * series0 = series; + QDateTimeAxis *axisX = new QDateTimeAxis; + QDateTime xValue; - if (_plot) + if (_chartView) { - _vbox2->removeWidget(_plot); - delete _plot; + _vbox2->removeWidget(_chartView); + delete _chartView; } - _plot = new KDChart::Widget(); + _plot = new QChart(); + _plot->createDefaultAxes(); if (monthFrom == monthTo && yearFrom == yearTo) { @@ -178,9 +183,16 @@ void StatsPanel::UpdateStats(int monthFrom, int yearFrom, int monthTo, int yearT // Line on 0 all over the years for (a=0; aappend(xValue.toMSecsSinceEpoch(), 0.0); + } - _plot->setDataset(0, vec, ""); + series->setName(_("0 line")); + series->setColor(Qt::red); + axisX->setFormat("dd"); + _plot->addSeries(series); i=0; for (account = 0, i = 0, accountIt = user->_accounts.begin(); accountIt != user->_accounts.end(); @@ -189,11 +201,17 @@ void StatsPanel::UpdateStats(int monthFrom, int yearFrom, int monthTo, int yearT if (_account->item(account)->checkState() != Qt::Checked) continue; - vec.clear(); + series = new QLineSeries(); for (a=0; aid][a] / 100; + { + date = QDate(yearFrom, monthFrom+1, a+1); + xValue.setDate(date); + series->append(xValue.toMSecsSinceEpoch(), + (double) operations[accountIt->id][a] / 100); + } - _plot->setDataset(++i, vec, user->GetAccountName(accountIt->id)); + series->setName(user->GetAccountName(accountIt->id)); + _plot->addSeries(series); } } else @@ -206,15 +224,18 @@ void StatsPanel::UpdateStats(int monthFrom, int yearFrom, int monthTo, int yearT { for(b=0; b<12; b++) { - vec << 0.0; - if (b == 0 || b == 5 || (b == 11 /*&& a == ((nbDays/12)-1))*/)) - xlabels << wxUI::months[b] + " " + QString::number(yearFrom+a); - else - xlabels << "" ; + date = QDate(yearFrom+a, monthFrom+b+1, 1); + xValue.setDate(date); + series->append(xValue.toMSecsSinceEpoch(), 0.0); } } - - _plot->setDataset(0, vec, ""); + + axisX->setLabelsAngle(-60); + axisX->setLineVisible(true); + axisX->setFormat("MM yyyy"); + series->setName(_("0 line")); + series->setColor(Qt::red); + _plot->addSeries(series); for (account = 0, i = 0, accountIt = user->_accounts.begin(); accountIt != user->_accounts.end(); account++, accountIt++, i++) @@ -225,13 +246,15 @@ void StatsPanel::UpdateStats(int monthFrom, int yearFrom, int monthTo, int yearT continue; } - vec.clear(); + series = new QLineSeries(); for(a = 0, accountYearIt = accountAmounts[accountIt->id].begin(); accountYearIt != accountAmounts[accountIt->id].end(); accountYearIt++, a++) { for(b = 0; b<=12; b++) { + date = QDate(yearFrom+a, b+1, 1); + xValue.setDate(date); if (!accountAmounts[accountIt->id][accountYearIt->first].count(b)) { /* @@ -243,61 +266,35 @@ void StatsPanel::UpdateStats(int monthFrom, int yearFrom, int monthTo, int yearT Compute cur month value (if there are operations) as next month value */ - vec << (double) (accountAmounts[accountIt->id][accountYearIt->first][b-1] - + _kiss->CalcAccountAmount(accountIt->id, b-1, accountYearIt->first, 0)) / 100; + *series << QPointF(xValue.toMSecsSinceEpoch(), + (double) (accountAmounts[accountIt->id][accountYearIt->first][b-1] + + _kiss->CalcAccountAmount(accountIt->id, b-1, accountYearIt->first, 0)) / 100); failed = true; } else { - vec << (double) accountAmounts[accountIt->id][accountYearIt->first][b] / 100; + *series << QPointF(xValue.toMSecsSinceEpoch(), + (double) accountAmounts[accountIt->id][accountYearIt->first][b] / 100); failed = false; } size++; } } - _plot->setDataset(i+1, vec, user->GetAccountName(accountIt->id)); + series->setName(user->GetAccountName(accountIt->id)); + _plot->addSeries(series); } } - KDChart::CartesianAxis *xAxis = new KDChart::CartesianAxis(_plot->lineDiagram()); - KDChart::CartesianAxis *yAxis = new KDChart::CartesianAxis (_plot->lineDiagram()); - xAxis->setPosition (KDChart::CartesianAxis::Bottom); - yAxis->setPosition (KDChart::CartesianAxis::Left); - yAxis->setTitleText (_("Amount")); + // yAxis->setTitleText (_("Amount")); + + QLegend* legend = _plot->legend(); + legend->setAlignment(Qt::AlignRight); - xAxis->setLabels(xlabels); - xAxis->setShortLabels(xlabels); - - // Rotate only for months names - if (monthFrom != monthTo || yearFrom != yearTo) - { - KDChart::TextAttributes axisTextAttr(xAxis->textAttributes()); - axisTextAttr.setRotation(-60); - xAxis->setTextAttributes(axisTextAttr); - xAxis->setTitleText (_("Months")); - } - else - xAxis->setTitleText (_("Days")); - - _plot->lineDiagram()->addAxis(xAxis); - _plot->lineDiagram()->addAxis(yAxis); - - _plot->addLegend(KDChart::Position::East); - KDChart::Legend* legend = _plot->legend(); - legend->setOrientation(Qt::Vertical); - legend->setTitleText(_("Accounts")); - legend->setText(0, _("0 line")); - { - i = 1; - for (a=0, accountIt = user->_accounts.begin(); accountIt != user->_accounts.end(); - a++, accountIt++) - { - if (_account->item(a)->checkState() == Qt::Checked) - legend->setText(i++, accountIt->name); - } - } - - _vbox2->addWidget(_plot); + _plot->createDefaultAxes(); + _plot->setAxisX(axisX, series0); + _chartView = new QChartView(_plot); + _chartView->setRenderHint(QPainter::Antialiasing); + _vbox2->addWidget(_chartView); total = 0.0; for(i=0, categoriesIt = categories.begin(); categoriesIt != categories.end(); categoriesIt++, i++) diff --git a/src/view/StatsPanel.hpp b/src/view/StatsPanel.hpp index 67164c4..2d0dc05 100644 --- a/src/view/StatsPanel.hpp +++ b/src/view/StatsPanel.hpp @@ -21,7 +21,13 @@ #define STATSPANEL_H #include -#include +#include +#include +#include +#include +#include +#include + #include "CostRepartitionBanner.hpp" #include "view.hpp" @@ -47,8 +53,8 @@ private: QComboBox* _monthFrom, *_yearFrom, *_monthTo, *_yearTo; CostRepartitionBanner* _costRepartitionBanner; int *_categoriesValues; - //CategorySimpleDataset* _dataset; - KDChart::Widget *_plot ; + QtCharts::QChartView * _chartView; + QtCharts::QChart *_plot ; QString* _categories; std::map _categoriesIndexes; QBoxLayout *_hbox2, *_vbox2, *_vbox3; diff --git a/src/view/grid/ChoiceDelegate.cpp b/src/view/grid/ChoiceDelegate.cpp index 51e1d90..a722501 100644 --- a/src/view/grid/ChoiceDelegate.cpp +++ b/src/view/grid/ChoiceDelegate.cpp @@ -18,6 +18,7 @@ */ #include +#include #include "ChoiceDelegate.hpp" @@ -44,7 +45,7 @@ void ChoiceDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const { QComboBox* combo = qobject_cast(editor); - int i = combo->findText(qVariantValue(index.data())); + int i = combo->findText(index.data().toString()); if (i != -1) combo->setCurrentIndex(i); } diff --git a/src/view/grid/DateDelegate.cpp b/src/view/grid/DateDelegate.cpp index c7091a8..6cd3581 100644 --- a/src/view/grid/DateDelegate.cpp +++ b/src/view/grid/DateDelegate.cpp @@ -18,6 +18,7 @@ */ #include +#include #include "DateDelegate.hpp" @@ -49,6 +50,6 @@ void DateDelegate::setEditorData(QWidget *editor, int day; QComboBox* combo = qobject_cast(editor); - day = QDate::fromString(qVariantValue(index.data()), _dateFormat).day()-1; + day = QDate::fromString(index.data().toString(), _dateFormat).day()-1; combo->setCurrentIndex(day); } diff --git a/src/view/grid/FloatDelegate.cpp b/src/view/grid/FloatDelegate.cpp index 344628a..e054340 100644 --- a/src/view/grid/FloatDelegate.cpp +++ b/src/view/grid/FloatDelegate.cpp @@ -18,6 +18,7 @@ */ #include +#include #include "FloatDelegate.hpp" @@ -41,5 +42,5 @@ void FloatDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const { QLineEdit* line = qobject_cast(editor); - line->setText(qVariantValue(index.data())); + line->setText(index.data().toString()); } diff --git a/src/view/grid/FormulaDelegate.cpp b/src/view/grid/FormulaDelegate.cpp index 8c17b0f..21f052c 100644 --- a/src/view/grid/FormulaDelegate.cpp +++ b/src/view/grid/FormulaDelegate.cpp @@ -19,6 +19,7 @@ #include #include +#include #include "FormulaDelegate.hpp" #include @@ -81,7 +82,7 @@ void FormulaDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const { QLineEdit* line = qobject_cast(editor); - QString s = qVariantValue(index.data()); + QString s = index.data().toString(); if ((*_operations)[index.row()].formula.length()) line->setText((*_operations)[index.row()].formula); diff --git a/src/view/grid/GridAccount.cpp b/src/view/grid/GridAccount.cpp index f3f4ca4..0e968d7 100644 --- a/src/view/grid/GridAccount.cpp +++ b/src/view/grid/GridAccount.cpp @@ -18,6 +18,7 @@ */ #include +#include #include "GridAccount.hpp" #include "TableViewDelegate.hpp" diff --git a/src/view/grid/StarDelegate.cpp b/src/view/grid/StarDelegate.cpp index cbd6a66..8d0d127 100644 --- a/src/view/grid/StarDelegate.cpp +++ b/src/view/grid/StarDelegate.cpp @@ -18,6 +18,7 @@ */ #include +#include #include #include "StarDelegate.hpp" @@ -43,7 +44,7 @@ void StarDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const { QLineEdit* line = qobject_cast(editor); - QString s = qVariantValue(index.data()); + QString s = index.data().toString(); if (s.endsWith("*")) line->setText(s.left(s.size()-1)); diff --git a/src/view/grid/TabDelegate.cpp b/src/view/grid/TabDelegate.cpp index 913f634..89b5d89 100644 --- a/src/view/grid/TabDelegate.cpp +++ b/src/view/grid/TabDelegate.cpp @@ -19,6 +19,7 @@ #include #include +#include #include "TabDelegate.hpp" @@ -49,7 +50,7 @@ void TabDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const { QLineEdit* line = qobject_cast(editor); - QString s = qVariantValue(index.data()); + QString s = index.data().toString(); line->setText(s.trimmed()); } diff --git a/src/view/grid/TableViewDelegate.hpp b/src/view/grid/TableViewDelegate.hpp index 27186b2..004ff00 100644 --- a/src/view/grid/TableViewDelegate.hpp +++ b/src/view/grid/TableViewDelegate.hpp @@ -21,6 +21,8 @@ #define TABLEVIEWDELEGATE_H #include +#include + #include "GridAccount.hpp" class TableViewDelegate : public QStyledItemDelegate