summaryrefslogtreecommitdiffstats
path: root/qt-models/filtermodels.h
diff options
context:
space:
mode:
Diffstat (limited to 'qt-models/filtermodels.h')
-rw-r--r--qt-models/filtermodels.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/qt-models/filtermodels.h b/qt-models/filtermodels.h
index 8830e99c3..6956146e1 100644
--- a/qt-models/filtermodels.h
+++ b/qt-models/filtermodels.h
@@ -6,6 +6,8 @@
#include <QStringListModel>
#include <QSortFilterProxyModel>
+#include <QDateTime>
+
#include <stdint.h>
#include <vector>
@@ -13,6 +15,25 @@ struct dive;
struct dive_trip;
class DiveTripModel;
+struct FilterData {
+ bool validFilter = false;
+ int minVisibility = 0;
+ int maxVisibility = 5;
+ int minRating = 0;
+ int maxRating = 5;
+ double minWaterTemp = 0;
+ double maxWaterTemp = 100;
+ double minAirTemp = 0;
+ double maxAirTemp = 100;
+ QDateTime from;
+ QDateTime to = QDateTime::currentDateTime();
+ QStringList tags;
+ QStringList people;
+ QStringList location;
+ QStringList equipment;
+ bool invertFilter;
+};
+
class FilterModelBase : public QAbstractListModel {
Q_OBJECT
private:
@@ -137,14 +158,17 @@ slots:
void stopFilterDiveSite();
void filterChanged(const QModelIndex &from, const QModelIndex &to, const QVector<int> &roles);
void setLayout(DiveTripModel::Layout layout);
+ void filterDataChanged(const FilterData& data);
signals:
void filterFinished();
+
private:
MultiFilterSortModel(QObject *parent = 0);
QList<FilterModelBase *> models;
struct dive_site *curr_dive_site;
DiveTripModel *model;
+ FilterData filterData;
};
#endif