diff options
Diffstat (limited to 'qt-models/filtermodels.h')
-rw-r--r-- | qt-models/filtermodels.h | 24 |
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 |