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