diff options
Diffstat (limited to 'qt-models')
-rw-r--r-- | qt-models/filtermodels.cpp | 9 | ||||
-rw-r--r-- | qt-models/filtermodels.h | 12 |
2 files changed, 9 insertions, 12 deletions
diff --git a/qt-models/filtermodels.cpp b/qt-models/filtermodels.cpp index 31a84a8bb..abc8d3bac 100644 --- a/qt-models/filtermodels.cpp +++ b/qt-models/filtermodels.cpp @@ -79,6 +79,7 @@ CREATE_COMMON_METHODS_FOR_FILTER(SuitsFilterModel, count_dives_with_suit) CREATE_INSTANCE_METHOD(MultiFilterSortModel) FilterModelBase::FilterModelBase(QObject *parent) : QStringListModel(parent) + , anyChecked(false) { } @@ -401,7 +402,7 @@ bool MultiFilterSortModel::filterAcceptsRow(int source_row, const QModelIndex &s } return showTrip; } - Q_FOREACH (MultiFilterInterface *model, models) { + Q_FOREACH (FilterModelBase *model, models) { if (!model->doFilter(d, index0, sourceModel())) shouldShow = false; } @@ -456,7 +457,7 @@ void MultiFilterSortModel::myInvalidate() #endif } -void MultiFilterSortModel::addFilterModel(MultiFilterInterface *model) +void MultiFilterSortModel::addFilterModel(FilterModelBase *model) { QAbstractItemModel *itemModel = dynamic_cast<QAbstractItemModel *>(model); Q_ASSERT(itemModel); @@ -464,7 +465,7 @@ void MultiFilterSortModel::addFilterModel(MultiFilterInterface *model) connect(itemModel, SIGNAL(dataChanged(QModelIndex, QModelIndex)), this, SLOT(myInvalidate())); } -void MultiFilterSortModel::removeFilterModel(MultiFilterInterface *model) +void MultiFilterSortModel::removeFilterModel(FilterModelBase *model) { QAbstractItemModel *itemModel = dynamic_cast<QAbstractItemModel *>(model); Q_ASSERT(itemModel); @@ -475,7 +476,7 @@ void MultiFilterSortModel::removeFilterModel(MultiFilterInterface *model) void MultiFilterSortModel::clearFilter() { justCleared = true; - Q_FOREACH (MultiFilterInterface *iface, models) { + Q_FOREACH (FilterModelBase *iface, models) { iface->clearFilter(); } justCleared = false; diff --git a/qt-models/filtermodels.h b/qt-models/filtermodels.h index 671ac1d19..b7d65aae2 100644 --- a/qt-models/filtermodels.h +++ b/qt-models/filtermodels.h @@ -7,16 +7,12 @@ #include <stdint.h> #include <vector> -class MultiFilterInterface { +class FilterModelBase : public QStringListModel { public: - MultiFilterInterface() : anyChecked(false) {} virtual bool doFilter(struct dive *d, QModelIndex &index0, QAbstractItemModel *sourceModel) const = 0; virtual void clearFilter() = 0; std::vector<char> checkState; bool anyChecked; -}; - -class FilterModelBase : public QStringListModel, public MultiFilterInterface { protected: explicit FilterModelBase(QObject *parent = 0); void updateList(const QStringList &new_list); @@ -97,8 +93,8 @@ class MultiFilterSortModel : public QSortFilterProxyModel { public: static MultiFilterSortModel *instance(); virtual bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const; - void addFilterModel(MultiFilterInterface *model); - void removeFilterModel(MultiFilterInterface *model); + void addFilterModel(FilterModelBase *model); + void removeFilterModel(FilterModelBase *model); int divesDisplayed; public slots: @@ -111,7 +107,7 @@ signals: void filterFinished(); private: MultiFilterSortModel(QObject *parent = 0); - QList<MultiFilterInterface *> models; + QList<FilterModelBase *> models; bool justCleared; struct dive_site *curr_dive_site; }; |