Mercurial > retraceit > retraceit
comparison src/metadataview.cpp @ 56:016cbcb1a233
Wrap the CSV model to have it return not only string variants but also numerical types
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Tue, 19 May 2015 11:12:22 +0200 |
parents | 23672cbc3e5f |
children | 5923d569167b |
comparison
equal
deleted
inserted
replaced
55:23672cbc3e5f | 56:016cbcb1a233 |
---|---|
21 #include <QItemSelectionModel> | 21 #include <QItemSelectionModel> |
22 #include <QSettings> | 22 #include <QSettings> |
23 #include <QFontMetrics> | 23 #include <QFontMetrics> |
24 #include <QApplication> | 24 #include <QApplication> |
25 | 25 |
26 /**@brief Small wrapper around csv model to enable numerical sorting. */ | |
27 class numericSortCSVModel : public QxtCsvModel | |
28 { | |
29 public: | |
30 /**@brief returns the data as string, integer or double variant. */ | |
31 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const { | |
32 QVariant base = QxtCsvModel::data(index, role); | |
33 bool ok = false; | |
34 int intVal = base.toInt(&ok); | |
35 if (ok) { | |
36 return intVal; | |
37 } | |
38 double dblVal = base.toDouble(&ok); | |
39 if (ok) { | |
40 return dblVal; | |
41 } | |
42 return base; | |
43 } | |
44 }; | |
45 | |
26 MetaDataView::MetaDataView(QWidget *parent, Qt::WindowFlags f) : | 46 MetaDataView::MetaDataView(QWidget *parent, Qt::WindowFlags f) : |
27 QWidget(parent, f), | 47 QWidget(parent, f), |
28 mDateColIdx(-1) { | 48 mDateColIdx(-1) { |
29 /* Create models */ | 49 /* Create models */ |
30 mSortModel = new QSortFilterProxyModel; | 50 mSortModel = new QSortFilterProxyModel; |
31 mCSVModel = new QxtCsvModel; | 51 mCSVModel = new numericSortCSVModel; |
32 setupGUI(); | 52 setupGUI(); |
33 | 53 |
34 connect(mView->selectionModel(), &QItemSelectionModel::selectionChanged, | 54 connect(mView->selectionModel(), &QItemSelectionModel::selectionChanged, |
35 this, &MetaDataView::viewSelectionChanged); | 55 this, &MetaDataView::viewSelectionChanged); |
36 connect(mSortModel, &QSortFilterProxyModel::dataChanged, | 56 connect(mSortModel, &QSortFilterProxyModel::dataChanged, |