From 015650a6fadd2592100950c57146fcc5c61764a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=A6=8C=20=EA=A6=AB=EA=A6=B6=20=EA=A6=8F=EA=A7=80?= =?UTF-8?q?=EA=A6=A6=EA=A6=BF=20=EA=A6=A7=20=EA=A6=AE=20=EA=A6=91=20?= =?UTF-8?q?=EA=A6=A9=20=EA=A6=AD=EA=A7=80?= Date: Thu, 5 Sep 2019 22:48:01 +0800 Subject: Task List abstract list model --- tasklist.hxx | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 tasklist.hxx (limited to 'tasklist.hxx') diff --git a/tasklist.hxx b/tasklist.hxx new file mode 100644 index 0000000..716c365 --- /dev/null +++ b/tasklist.hxx @@ -0,0 +1,37 @@ +#ifndef TASKLIST_HXX +#define TASKLIST_HXX + +#include + +struct Task +{ + enum TaskRoles { + IdRole = Qt::UserRole + 1, + SubjectRole + }; + QString id; + QString subject; +}; + +class TaskList : public QAbstractListModel +{ + Q_OBJECT + Q_PROPERTY(int rowCount READ rowCount NOTIFY rowCountChanged) + + public: + explicit TaskList(QObject* parent = nullptr) : QAbstractListModel{parent} {} + 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 roleNames() const Q_DECL_OVERRIDE; + + signals: + void rowCountChanged(); + + private: + QList tasks; + void addTask(Task const& task); +}; + +#endif // TASKLIST_HXX -- cgit v1.2.3