X-Git-Url: https://git.sven.stormbind.net/?a=blobdiff_plain;f=src%2Ftaskmodel.h;fp=src%2Ftaskmodel.h;h=d73681b4efeaabad388037d8057f4cef48c62be4;hb=d483bd8e6523c23c6f1d8908a2e0611c2bc9ff4f;hp=0000000000000000000000000000000000000000;hpb=7dfa3fe589d1722d49681f42cdb0bf1e6efb5223;p=sven%2Fvym.git diff --git a/src/taskmodel.h b/src/taskmodel.h new file mode 100644 index 0000000..d73681b --- /dev/null +++ b/src/taskmodel.h @@ -0,0 +1,74 @@ +#ifndef TASKMODEL_H +#define TASKMODEL_H + +#include +#include +#include + +#include "task.h" + +class BranchItem; +class VymModel; + +class TaskModel : public QAbstractTableModel { + Q_OBJECT + + public: + TaskModel(QObject *parent = 0); + QModelIndex index(Task *t) const; + QModelIndex indexRowEnd(Task *t); + Task *getTask(const QModelIndex &ix) const; + Task *getTask(const int i) const; + int rowCount(const QModelIndex &parent) const; + int columnCount(const QModelIndex &parent) const; + QVariant data(const QModelIndex &index, int role) const; + QVariant headerData(int section, Qt::Orientation orientation, + int role) const; + Qt::ItemFlags flags(const QModelIndex &index) const; + bool setData(const QModelIndex &index, const QVariant &value, + int role = Qt::EditRole); + // bool setData(const QModelIndex &index, Task *t, int + // role=Qt::EditRole); + void emitDataChanged(Task *t); + bool insertRows(int position, int rows, + const QModelIndex &index = QModelIndex(), Task *t = nullptr); + bool removeRows(int position, int rows, + const QModelIndex &index = QModelIndex()); + + int count(VymModel *model = nullptr) const; + Task *createTask(BranchItem *bi); + void deleteTask(Task *t); + bool updateAwake(bool force = false); + void recalcPriorities(); + + void setShowParentsLevel(uint i); + uint getShowParentsLevel(); + + // Drag and drop support + Qt::DropActions supportedDropActions() const; + QStringList mimeTypes() const; + QMimeData *mimeData(const QModelIndexList &indexes) const; + bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, + int column, const QModelIndex &parent); + + private: + QList tasks; + uint showParentsLevel; + + QIcon arrow_up_icon; + QIcon arrow_2up_icon; + QIcon task_new_icon; + QIcon task_new_morning_icon; + QIcon task_new_sleeping_icon; + QIcon task_wip_icon; + + QIcon task_wip_morning_icon; + QIcon task_wip_sleeping_icon; + QIcon task_finished_icon; + + QIcon taskfilter_stopsign_icon; + QIcon taskfilter_stopsign_arrow_up_icon; + QIcon taskfilter_stopsign_arrow_2up_icon; +}; + +#endif