Updraft
1.0
Open source glider flight visualisation tool.
|
00001 #ifndef UPDRAFT_SRC_PLUGINS_TASKDECL_TASKFILE_H_ 00002 #define UPDRAFT_SRC_PLUGINS_TASKDECL_TASKFILE_H_ 00003 00004 #include <QObject> 00005 #include <QString> 00006 #include "datahistory.h" 00007 00008 namespace Updraft { 00009 00011 class TaskFile : public QObject { 00012 Q_OBJECT 00013 00014 public: 00016 enum StorageState { 00017 UNSTORED_EMPTY, 00018 UNSTORED_EDITED, 00019 STORED_SYNCHRONIZED, 00020 STORED_DIRTY 00021 }; 00022 00024 TaskFile(); 00025 00029 explicit TaskFile(const QString &filePath_); 00030 00032 QString getFileName() const; 00033 00035 QString getFilePath() const; 00036 00038 StorageState getStorageState() const; 00039 00041 bool isFirstInHistory() const; 00042 00044 bool isLastInHistory() const; 00045 00048 void save(); 00049 00053 void saveAs(const QString &filePath_); 00054 00059 TaskData* beginEdit(bool createNewState); 00060 00062 void endEdit(); 00063 00066 const TaskData* beginRead() const; 00067 00069 void endRead() const; 00070 00072 void undo(); 00073 00075 void redo(); 00076 00077 signals: 00079 void dataChanged(); 00080 00082 void storageStateChanged(); 00083 00084 private: 00086 void updateOnUndoRedo(); 00087 00089 QString filePath; 00090 00093 StorageState storageState; 00094 00096 DataHistory dataHistory; 00097 00100 mutable bool locked; 00101 }; 00102 00103 } // End namespace Updraft 00104 00105 #endif // UPDRAFT_SRC_PLUGINS_TASKDECL_TASKFILE_H_