roviz  0.7
Code Documentation of roviz
shared_window.h
1 #ifndef SHARED_WINDOW_H
2 #define SHARED_WINDOW_H
3 
4 #include <QMainWindow>
5 #include <QList>
6 #include <QVector>
7 #include <QMap>
8 #include <QByteArray>
9 #include <QIcon>
10 #include "core/export_handling.h"
11 
12 class RovizItemBaseDev;
13 class QCloseEvent;
14 class SettingsScope;
15 class QObject;
16 class QDockWidget;
17 class QToolButton;
18 class QTabBar;
19 class QLineEdit;
20 class QWidget;
21 
29 class ROVIZ_EXPORT SharedWindow : public QMainWindow
30 {
31 Q_OBJECT
32 
33 // Singleton
34 Q_DISABLE_COPY(SharedWindow)
35 
36 public:
37  ~SharedWindow();
38 
47  void addItem(RovizItemBaseDev *item);
48 
53  void removeItem(RovizItemBaseDev *item);
54 
58  void load(void);
59 
67  static SharedWindow *instance(SettingsScope *proj);
68 
75  void closeEvent(QCloseEvent *event) override;
76 
77 private:
78  static QMap<SettingsScope*, SharedWindow*> inst;
79 
80  const QIcon ico_start, ico_restart, ico_pause, ico_unpause, ico_stop, ico_new_tab;
81 
82  QObject *destructor;
83  QList<QDockWidget*> dock_items;
84  QList<RovizItemBaseDev*> parents;
85  bool running, paused, initialized;
86  SettingsScope *project_settings;
87  QToolButton *btn_start, *btn_pause, *btn_stop, *btn_new_tab;
88  QTabBar *tab;
89  QMainWindow *main_window;
90  int active_tab;
91  QVector<QByteArray> states;
92  QLineEdit *rename_edit;
93  int rename_index;
94 
95  // Singleton
96  SharedWindow(QWidget *parent);
97 
98  bool allChildrenClosed(void);
99 
100 public slots:
101  void destroy(void);
102  void start(void);
103  void pause(void);
104  void stop(void);
105  void addTab(void);
106  void changeToTab(int index);
107  void tabClosed(int index);
108  void tabMoved(int to, int from);
109  void tabStartRename(int index);
110  void tabFinishRename(void);
111  void itemClosed(void);
112 };
113 
114 #endif // SHARED_WINDOW_H
Provides a shared window that displays data from all items.
Definition: shared_window.h:29
The SettingsScope class acts as a container for scoped settings.
Definition: settings_scope.h:21
Base class that binds RovizItem to the itemframework/Qt.
Definition: roviz_item_base_dev.h:25