File indexing completed on 2025-02-02 05:02:35
0001 /* 0002 SPDX-FileCopyrightText: 2019 Volker Krause <vkrause@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef STATISTICSTIMERANGEMODEL_H 0008 #define STATISTICSTIMERANGEMODEL_H 0009 0010 #include <QAbstractListModel> 0011 0012 class ReservationManager; 0013 0014 /** Selectable time ranges for the statistics page. */ 0015 class StatisticsTimeRangeModel : public QAbstractListModel 0016 { 0017 Q_OBJECT 0018 Q_PROPERTY(ReservationManager* reservationManager READ reservationManager WRITE setReservationManager NOTIFY setupChanged) 0019 0020 public: 0021 explicit StatisticsTimeRangeModel(QObject *parent = nullptr); 0022 ~StatisticsTimeRangeModel() override; 0023 0024 enum CustomRoles { 0025 BeginRole = Qt::UserRole, 0026 EndRole 0027 }; 0028 Q_ENUM(CustomRoles); 0029 0030 ReservationManager* reservationManager() const; 0031 void setReservationManager(ReservationManager *resMgr); 0032 0033 int rowCount(const QModelIndex &parent = {}) const override; 0034 QVariant data(const QModelIndex &index, int role) const override; 0035 QHash<int, QByteArray> roleNames() const override; 0036 0037 Q_SIGNALS: 0038 void setupChanged(); 0039 0040 private: 0041 ReservationManager *m_resMgr = nullptr; 0042 std::vector<int> m_years; 0043 }; 0044 0045 #endif // STATISTICSTIMERANGEMODEL_H