00001 #ifndef PROJECT_H
00002 #define PROJECT_H
00003
00004 #include "storabledata.h"
00005 #include "task.h"
00006
00007 #include <tools/global.h>
00008
00009 #include <QString>
00010
00011 namespace domain
00012 {
00013
00014 struct ProjectPrivate;
00015
00024 class DOMAIN_EXPORT Project : public StorableData
00025 {
00026 Q_OBJECT
00027
00028 friend class TaskManagerData;
00029 friend class Task;
00030
00031 public:
00032
00036 const QString& description() const;
00037
00041 QList<const Task*> tasks() const;
00042
00049 void setDescription(const QString& description);
00050
00054 QList<StorableData*> dependentData() const;
00055
00056 private:
00057
00063 Project(const QString& description);
00064
00068 ~Project();
00069
00070 Project(const Project& other);
00071 Project& operator=(const Project& other);
00072
00076 void addTask(Task* task);
00077
00081 void removeTask(Task* task);
00082
00083 ProjectPrivate* const d;
00084 };
00085 }
00086
00087 #endif