00001 #ifndef TASKMODEL_H
00002 #define TASKMODEL_H
00003
00004 #include "domainmodel.h"
00005
00006 namespace domain
00007 {
00008 class Task;
00009 }
00010
00011 namespace control
00012 {
00013
00014 class CONTROL_EXPORT TaskModel : public DomainModel
00015 {
00016 public:
00017
00018 enum Columns
00019 {
00020 Id,
00021 Type,
00022 Status,
00023 User,
00024 Project,
00025 StartTime,
00026 Deadline,
00027 Duration,
00028 Fields,
00029 LastColumn
00030 };
00031
00032 TaskModel(domain::TaskManagerData* data,
00033 QList<const domain::Task*> shownTasks);
00034 TaskModel(domain::TaskManagerData* data);
00035
00036 int columnCount(const QModelIndex& parent = QModelIndex()) const;
00037 int rowCount(const QModelIndex& parent = QModelIndex()) const;
00038 QVariant headerData(int section, Qt::Orientation orientation,
00039 int role = Qt::DisplayRole) const;
00040 QVariant data(const QModelIndex& index,
00041 int role = Qt::DisplayRole) const;
00042 const domain::Task* taskForIndex(const QModelIndex& index) const;
00043 QModelIndex indexForTask(const domain::Task* task) const;
00044
00045 private:
00046
00047 QString projectString(const domain::Task* task) const;
00048 QStringList fieldsString(const domain::Task* task) const;
00049
00050 QList<const domain::Task*> tasks() const;
00051
00052 QList<const domain::Task*> taskList;
00053 bool showAll;
00054 };
00055
00056 }
00057
00058 #endif