Updraft  1.0
Open source glider flight visualisation tool.
taskfile.h
Go to the documentation of this file.
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_
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines