roviz  0.7
Code Documentation of roviz
project_manager.h
1 #ifndef PROJECT_MANAGER_H
2 #define PROJECT_MANAGER_H
3 
4 #include <QObject>
5 #include "file_workspace.h"
6 #include "sql_workspace.h"
7 
8 class ProjectManager : public QObject
9 {
10  Q_OBJECT
11 public:
12  explicit ProjectManager(QObject* parent = 0);
13  ~ProjectManager();
14  static QDomDocument recentWorkspacesDomTemplate();
15 
16  void initRecentWorkspaces();
17  bool saveRecentWorkspacesSettings() const;
18  QSharedPointer<AbstractWorkspace> defaultWorkspace() const;
19  bool isDefaultWorkspaceSet() const;
20  QSharedPointer<AbstractWorkspace> currentWorkspace() const;
21  void setCurrentWorkspace(const QSharedPointer<AbstractWorkspace>& currentWorkspace);
22  QVector<QSharedPointer<AbstractWorkspace> > recentWorkspaces() const;
23  void setRecentWorkspaces(const QVector<QSharedPointer<AbstractWorkspace> >& recentWorkspaces);
24  void removeRecentWorkspaces(const QSharedPointer<AbstractWorkspace>& workspace);
25  bool addRecentWorkspace(const QSharedPointer<AbstractWorkspace>& recentWorkspace);
26  int workspaceCount() const;
27  QVector<QSharedPointer<AbstractWorkspace>> workspaces() const;
28 
29  QString workDirectoryPath() const;
30  void setWorkDirectoryPath(const QString &workDirectoryPath);
31 
32 private:
33  QString _workDirectory;
34  QVector<QSharedPointer<AbstractWorkspace>> _recentWorkspaces;
35  QSharedPointer<AbstractWorkspace> _currentWorkspace;
36  void addWorkspaceElement(QSharedPointer<AbstractWorkspace> workspace, QDomDocument& dom) const;
37 
38 signals:
39  void recentWorkspaceListChanged();
40  void workspaceChanged();
41 };
42 
43 #endif // PROJECT_MANAGER_H
Definition: project_manager.h:8