File indexing completed on 2025-02-02 05:02:35
0001 /* 0002 SPDX-FileCopyrightText: 2018 Volker Krause <vkrause@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef TICKETTOKENMODEL_H 0008 #define TICKETTOKENMODEL_H 0009 0010 #include <QAbstractListModel> 0011 0012 class ReservationManager; 0013 0014 /** Filtered model of all reservations with a valid ticket token 0015 * for display in the details page. 0016 */ 0017 class TicketTokenModel : public QAbstractListModel 0018 { 0019 Q_OBJECT 0020 Q_PROPERTY(QObject* reservationManager READ reservationManager WRITE setReservationManager) 0021 Q_PROPERTY(QStringList reservationIds READ reservationIds WRITE setReservationIds) 0022 Q_PROPERTY(int initialIndex READ initialIndex NOTIFY initialIndexChanged) 0023 0024 public: 0025 enum Roles { 0026 ReservationRole = Qt::UserRole 0027 }; 0028 0029 explicit TicketTokenModel(QObject *parent = nullptr); 0030 ~TicketTokenModel() override; 0031 0032 QObject* reservationManager() const; 0033 void setReservationManager(QObject *mgr); 0034 QStringList reservationIds() const; 0035 void setReservationIds(const QStringList &resIds); 0036 0037 Q_INVOKABLE QVariant reservationAt(int row) const; 0038 Q_INVOKABLE QString reservationIdAt(int row) const; 0039 0040 int rowCount(const QModelIndex &parent) const override; 0041 QVariant data(const QModelIndex &index, int role) const override; 0042 QHash<int, QByteArray> roleNames() const override; 0043 0044 int initialIndex() const; 0045 0046 Q_SIGNALS: 0047 void initialIndexChanged(); 0048 0049 private: 0050 ReservationManager *m_resMgr = nullptr; 0051 QStringList m_pendingResIds; 0052 QStringList m_resIds; 0053 QStringList m_personNames; 0054 }; 0055 0056 #endif // TICKETTOKENMODEL_H