diff options
| author | ꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id> | 2019-09-15 18:42:35 +0800 |
|---|---|---|
| committer | ꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id> | 2019-09-15 18:42:35 +0800 |
| commit | cd679da218281c5716001a4e2055451ab9bcc926 (patch) | |
| tree | 43c1a719690062d4c0f65bbff593b7e5e23b5eb9 /qrtclient/ticket.hxx | |
A Qt Core based library that depends on librtclient
and can be used for a Qt based project
Diffstat (limited to 'qrtclient/ticket.hxx')
| -rw-r--r-- | qrtclient/ticket.hxx | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/qrtclient/ticket.hxx b/qrtclient/ticket.hxx new file mode 100644 index 0000000..af438ae --- /dev/null +++ b/qrtclient/ticket.hxx @@ -0,0 +1,56 @@ +#ifndef QRTCLIENT_TICKET_HXX +#define QRTCLIENT_TICKET_HXX + +#include <QAbstractListModel> + +struct rt_ticketlist; + +namespace RTClient { + + class Ticket + { + public: + Ticket(QString subject) : m_subject{subject} {} + QString const& subject() const { return m_subject; } + + private: + QString m_subject; + }; + + class TicketList : public QAbstractListModel + { + Q_OBJECT + Q_PROPERTY(int rowCount READ rowCount NOTIFY rowCountChanged) + + public: + enum TicketRoles { + SubjectRole = Qt::UserRole + 1, + }; + + explicit TicketList(QObject* parent = nullptr) + : QAbstractListModel{parent} {} + ~TicketList() {} + + int rowCount(QModelIndex const& parent + = QModelIndex()) const Q_DECL_OVERRIDE; + QVariant data(const QModelIndex& index + , int role = Qt::DisplayRole + ) const Q_DECL_OVERRIDE; + + protected: + QHash<int, QByteArray> roleNames() const Q_DECL_OVERRIDE; + + signals: + void rowCountChanged(); + + private: + QList<Ticket> tickets; + void addTicket(Ticket const& ticket); + + private slots: + void addTickets(struct rt_ticketlist* ticketList); + }; + +} + +#endif // QRTCLIENT_TICKET_HXX |