roviz  0.7
Code Documentation of roviz
project_manager_gui.h
1 #ifndef PROJECT_MANAGER_GUI_H
2 #define PROJECT_MANAGER_GUI_H
3 
4 #include <QDialog>
5 #include "abstract_workspace_gui.h"
6 
7 class ProjectManager;
9 
10 class ProjectManagerGui : public QObject, public Singleton<ProjectManagerGui>
11 {
12  Q_OBJECT
13 
14 // Singleton properties----------------------------------
15 
16  Q_INTERFACES(AbstractSingleton)
17  Q_CLASSINFO("guiModule", "true")
18  Q_CLASSINFO("dependsOn", "PluginManager")
19  Q_CLASSINFO("dependsOn", "GuiManager")
20 
21 public:
22  Q_INVOKABLE ProjectManagerGui();
23  ~ProjectManagerGui();
24 
25 protected:
26  bool postInit();
27  bool preDestroy();
28 //-------------------------------------------------------
29 
30 public:
31  static AbstractWorkspaceGui* abstractWorkspaceGuiClass(
32  const QSharedPointer<AbstractWorkspace>& workspace,
33  const QVector<AbstractWorkspaceGui*>& workspaceGuis);
34 
35  bool start();
36  int showSelectWorkspaceDialog();
37  bool openWorkspace(QSharedPointer<AbstractWorkspace> workspace);
38  QString lastError() const;
39  ProjectManager *projectManager();
40 
41 private:
42  void setMainGuiElements();
43  void updateMenuEntries();
44  bool closeWorkspace();
45  void addProjectListDockWidgetToMainGui(ProjectListDockWidget* projectListDockWidget);
46  void removeProjectHandlerWindowToGui(ProjectListDockWidget* projectHandlerWindow);
47  ProjectListDockWidget* prepareProjectListDockWidget(QSharedPointer<AbstractWorkspace> workspace);
48  ProjectManager* _projectManager = nullptr;
49  ProjectListDockWidget* _projectListDockWidget = nullptr;
50  QTabWidget* _itemViewTabWidget = nullptr;
51  QVector<AbstractWorkspaceGui*> _abstractWorkspaceGuiClasses;
52  QMenu* _menuWorkspaces = nullptr;
53  QPixmap _menuePointSelected;
54  QString _lastError;
55 
56 private slots:
57  void openWorkspaceManager();
58  void onSwitchWorkspaceAction();
59  void onWorkspaceNameChanged(const QString& workspaceName);
60  void onWorkspaceUpdated();
61  void onRecentWorkspaceListChanged();
62  void customContextMenuRequested(const QPoint position);
63 };
64 
65 #endif // PROJECT_MANAGER_GUI_H
Definition: projectlist_dockwidget.h:16
Definition: project_manager.h:8
Definition: project_manager_gui.h:10
The AbstractSingleton class defines functions that every singleton must implement Every Singleton mus...
Definition: singleton.h:12
Definition: abstract_workspace_gui.h:18
bool postInit()
postInit will be called after all components and singletons have been constructed/initialized ...
Definition: project_manager_gui.cpp:67
The Singleton Template figures as baseclass for all Singletons. It provides a instance() functions wh...
Definition: singleton.h:54
bool preDestroy()
preDestroy will be called before any of the components and singletons will be destructed/deinitailize...
Definition: project_manager_gui.cpp:73