roviz  0.7
Code Documentation of roviz
project_gui.h
1 #ifndef PROJECT_GUI_H
2 #define PROJECT_GUI_H
3 
4 #include <QObject>
5 #include <QPoint>
6 #include <QDialog>
7 #include <QPointer>
8 #include <QEnableSharedFromThis>
9 
10 class ItemView;
11 class AbstractProject;
14 class QTimer;
15 class QMenu;
16 
17 namespace Ui
18 {
19 class ProjectInfoDialog;
20 }
21 
22 class ProjectGui : public QObject, public QEnableSharedFromThis<ProjectGui>
23 {
24  Q_OBJECT
25 public:
26  ProjectGui(AbstractWorkspaceGui* parent, QSharedPointer<AbstractProject> project);
27  ~ProjectGui();
28 
29  bool isValid() const;
30  bool isLoaded() const;
31  bool isFastLoaded() const;
32  QSharedPointer<AbstractProject> project() const;
33  ItemView* itemView() const;
34  void reset();
35  bool save(bool autosave = false);
36  bool load();
37  bool unload();
38  int tabWidgetIndex() const;
39  void setTabWidgetIndex(int tabWidgetIndex);
40  QString projectGuiLabel() const;
41  QString projectName() const;
42  void setLoaded(bool isLoaded);
43  QString lastError() const;
44  int autosaveTimerInterval() const;
45  void setAutosaveTimerInterval(int value);
46  void showProjectContextMenue(const QPoint& globalPosition) const;
47  void setDialogPositionOffset(const QPoint &dialogPoistion);
48 
49 private:
50  QTimer* _autosaveTimer = nullptr;
51  int _autosaveTimerInterval;
52  bool saveReminder();
53  void showProjectChangedByExternalDialog();
54  ProjectChangedExternDialog* _projectChangedExternDialog = nullptr;
55  AbstractWorkspaceGui* _parent = nullptr;
56  QSharedPointer<AbstractProject> _project;
57  QMenu* _contextMenu = nullptr;
58  ItemView* _itemView = nullptr;
59  bool _isLoaded = false;
60  int _tabWidgetIndex = -1;
61  QString _projectGuiLabel;
62  QString _projectName;
63  QString _description;
64  bool _domChanged = false;
65  QString _lastError;
66  QPoint _dialogPositionOffset;
67  QPointer<QDialog> _projectInfoDialog;
68 
69 signals:
70  void projectGuiLabelChanged(QSharedPointer<ProjectGui> projectGui);
71  void projectLoaded(QSharedPointer<ProjectGui> projectGui);
72  void projectUnloaded(QSharedPointer<ProjectGui> projectGui);
73 
74 public slots:
75  void onLoadTrigger();
76  void onLoadAllTrigger();
77  void onUnloadTrigger();
78  void onUnloadAllTrigger();
79  void onSaveTrigger();
80  void onSaveAllTrigger();
81  void onRemoveTrigger();
82  void onDeleteTrigger();
83  void onFastLoad(bool state);
84  void showProjectInfo();
85  void onEditTrigger();
86  void onUnloadAllExceptThisTrigger();
87  void onUnloadAllExceptVisibleTrigger();
88 
89 private slots:
90  void onAutosaveTimeout();
91  void onMainWindowActivationChanged();
92  bool reloadDomDocument();
93  void onItemViewSceneChanged();
94  void onExternDomChanged();
95  void onStateChanged();
96  void onSearchProject();
97 };
98 #endif // PROJECT_GUI_H
Definition: item_origin_visualizer.h:10
Definition: item_view.h:12
Definition: project_changed_extern_dialog.h:21
Definition: abstract_workspace_gui.h:18
Definition: abstract_project.h:16
Definition: project_gui.h:22