File indexing completed on 2025-04-27 04:04:21
0001 /* 0002 * SPDX-FileCopyrightText: (C) 2017 Atul Sharma <atulsharma406@gmail.com> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef IMAGELISTMODEL_H 0008 #define IMAGELISTMODEL_H 0009 0010 #include <QAbstractListModel> 0011 0012 #include "openfilemodel.h" 0013 0014 class ImageListModel : public OpenFileModel 0015 { 0016 Q_OBJECT 0017 0018 Q_PROPERTY(Types::LocationGroup locationGroup READ locationGroup WRITE setLocationGroup NOTIFY locationGroupChanged) 0019 Q_PROPERTY(Types::TimeGroup timeGroup READ timeGroup WRITE setTimeGroup NOTIFY timeGroupChanged) 0020 Q_PROPERTY(Types::QueryType queryType READ queryType WRITE setQueryType NOTIFY queryTypeChanged) 0021 Q_PROPERTY(QByteArray query READ query WRITE setQuery NOTIFY queryChanged) 0022 0023 public: 0024 explicit ImageListModel(QObject *parent = nullptr); 0025 ~ImageListModel(); 0026 0027 Types::LocationGroup locationGroup() const; 0028 void setLocationGroup(const Types::LocationGroup &group); 0029 0030 Types::TimeGroup timeGroup() const; 0031 void setTimeGroup(const Types::TimeGroup &group); 0032 0033 Types::QueryType queryType() const; 0034 void setQueryType(const Types::QueryType &type); 0035 0036 QByteArray query() const; 0037 void setQuery(const QByteArray &statement); 0038 0039 Q_INVOKABLE QByteArray queryForIndex(const int &index); 0040 0041 void slotLocationGroupChanged(); 0042 void slotTimeGroupChanged(); 0043 void slotResetModel(); 0044 0045 Q_SIGNALS: 0046 void imageListChanged(); 0047 void locationGroupChanged(); 0048 void timeGroupChanged(); 0049 void queryTypeChanged(); 0050 void queryChanged(); 0051 0052 private: 0053 Types::LocationGroup m_locationGroup; 0054 Types::TimeGroup m_timeGroup; 0055 Types::QueryType m_queryType; 0056 QByteArray m_query; 0057 0058 QList<QPair<QByteArray, QString>> m_times; 0059 QList<QPair<QByteArray, QString>> m_locations; 0060 }; 0061 0062 #endif