summaryrefslogtreecommitdiffstats
path: root/qt-models
diff options
context:
space:
mode:
Diffstat (limited to 'qt-models')
-rw-r--r--qt-models/filtermodels.cpp9
-rw-r--r--qt-models/filtermodels.h12
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;
};