MNE-CPP  beta 1.0
plugingui.h
Go to the documentation of this file.
1 //=============================================================================================================
36 #ifndef PLUGINGUI_H
37 #define PLUGINGUI_H
38 
39 //*************************************************************************************************************
40 //=============================================================================================================
41 // INCLUDES
42 //=============================================================================================================
43 
44 #include "pluginitem.h"
45 #include "pluginscene.h"
46 
49 
50 #include <QMainWindow>
51 #include <QMap>
52 
53 
54 //*************************************************************************************************************
55 //=============================================================================================================
56 // FORWARD DECLARATIONS
57 //=============================================================================================================
58 
59 class QAction;
60 class QToolBox;
61 class QSpinBox;
62 class QComboBox;
63 class QButtonGroup;
64 class QActionGroup;
65 class QLineEdit;
66 class QToolButton;
67 class QAbstractButton;
68 class QGraphicsView;
69 
70 
71 
72 //*************************************************************************************************************
73 //=============================================================================================================
74 // DEFINE NAMESPACE MNEX
75 //=============================================================================================================
76 
77 namespace MNEX
78 {
79 
80 
81 class PluginGui : public QMainWindow
82 {
83  Q_OBJECT
84  friend class PluginScene;
85 public:
86  PluginGui(MNEX::PluginManager *pPluginManager, MNEX::PluginSceneManager *pPluginSceneManager);
87 
88  ~PluginGui();
89 
90  //=========================================================================================================
94  void clearScene();
95 
96  //=========================================================================================================
103  void loadConfig(const QString& sPath, const QString& sFileName);
104 
105  //=========================================================================================================
112  void saveConfig(const QString& sPath, const QString& sFileName);
113 
114 
115  inline IPlugin::SPtr getCurrentPlugin();
116 
117  void uiSetupRunningState(bool state);
118 
119 signals:
120  void selectedPluginChanged(IPlugin::SPtr pPlugin);
121 
122  void selectedConnectionChanged(PluginConnectorConnection::SPtr pConnection);
123 
124 private:
125 
126  void pointerGroupClicked(int id);
127  void actionGroupTriggered(QAction* action);
128 
129  bool removePlugin(IPlugin::SPtr pPlugin);
130 
131  void itemInserted(PluginItem *item);
132  void newItemSelected();
133 
134  void deleteItem();
135  void bringToFront();
136  void sendToBack();
137 
138  void createActions();
139  void createMenuItem();
140  void createToolbars();
141 
142  QAction* createItemAction(QString name, QMenu* menu);
143 
144  PluginManager* m_pPluginManager;
145  PluginSceneManager* m_pPluginSceneManager;
147  IPlugin::SPtr m_pCurrentPlugin;
148  PluginConnectorConnection::SPtr m_pCurrentConnection;
149 
150  PluginScene* m_pPluginScene;
151  QGraphicsView* m_pGraphicsView;
153  QToolButton* m_pSensorToolButton;
154  QToolButton* m_pAlgorithmToolButton;
155  QToolButton* m_pIOToolButton;
156  QToolBar* m_pToolBarPlugins;
157  QActionGroup* m_pActionGroupPlugins;
158 
159  QToolButton* m_pPointerButton;
160  QToolButton* m_pLinePointerButton;
161  QToolBar * m_pToolBarPointer;
162  QButtonGroup * m_pButtonGroupPointers;
163 
164  QToolBar* m_pToolBarItem;
165  QMenu* m_pMenuItem;
166  QAction* deleteAction;
167  QAction* toFrontAction;
168  QAction* sendBackAction;
169 };
170 
171 //*************************************************************************************************************
172 //=============================================================================================================
173 // INLINE DEFINITIONS
174 //=============================================================================================================
175 
176 inline IPlugin::SPtr PluginGui::getCurrentPlugin()
177 {
178  return m_pCurrentPlugin;
179 }
180 
181 } //NAMESPACE
182 
183 #endif // PLUGINGUI_H
Contains declaration of PluginSceneManager class.
QSharedPointer< PluginConnectorConnection > SPtr
Contains the declaration of the PluginManager class.
The PluginManager class provides a dynamic plugin loader. As well as the handling of the loaded plugi...
Definition: pluginmanager.h:82
void loadConfig(const QString &sPath, const QString &sFileName)
Definition: plugingui.cpp:182
QSharedPointer< IPlugin > SPtr
Definition: IPlugin.h:108
PluginScene class declaration.
Definition: arrow.h:75
The PluginSceneManager class manages plugins and connections of a set of plugins. ...
PluginItem class declaration.
void saveConfig(const QString &sPath, const QString &sFileName)
Definition: plugingui.cpp:297