33 #ifndef CXMAINWINDOW_H_
34 #define CXMAINWINDOW_H_
36 #include "cxGuiExport.h"
38 #include <QMainWindow>
41 #include "boost/shared_ptr.hpp"
55 class GUIExtenderService;
81 MainWindow(std::vector<GUIExtenderServicePtr> guiExtenders=std::vector<GUIExtenderServicePtr>());
84 virtual QMenu* createPopupMenu();
87 void patientChangedSlot();
91 void preferencesSlot();
93 void toggleFullScreenSlot();
96 void newPatientSlot();
97 void loadPatientFileSlot();
98 void savePatientFileSlot();
99 void clearPatientSlot();
101 void showControlPanelActionSlot();
102 void showSecondaryViewLayoutWindowActionSlot();
105 void onApplicationStateChangedSlot();
108 void onWorkflowStateChangedSlot();
109 void saveDesktopSlot();
110 void resetDesktopSlot();
113 void exportDataSlot();
114 void importDataSlot();
115 void deleteDataSlot();
117 void togglePointPickerActionSlot();
118 void updatePointPickerActionSlot();
121 void configureSlot();
124 void centerToImageCenterSlot();
125 void centerToTooltipSlot();
127 void updateTrackingActionSlot();
128 void toggleTrackingSlot();
129 void toggleStreamingSlot();
130 void updateStreamingActionSlot();
134 void recordFullscreen();
136 void onStartLogConsole();
137 void dockWidgetVisibilityChanged(
bool val);
138 void focusChanged(QWidget * old, QWidget * now);
145 void changeEvent(QEvent * event);
148 void focusInsideDockWidget(QObject* dockWidget);
150 void saveScreenShot(QPixmap pixmap, QString
id=
"");
151 void saveScreenShotThreaded(QImage pixmap, QString filename);
152 void updateWindowTitle();
153 void createActions();
155 void createToolBars();
157 void registerToolBar(QToolBar* toolbar, QString groupname =
"");
158 void addToWidgetGroupMap(QAction* action, QString groupname);
162 void setupGUIExtenders();
164 void closeEvent(QCloseEvent *event);
165 QDockWidget* addAsDockWidget(QWidget* widget, QString groupname);
166 QString getExistingSessionFolder();
170 QMenu* mWorkflowMenu;
173 QMenu* mNavigationMenu;
175 QAction* mHelpMenuAction;
178 QAction* mAboutAction;
179 QAction* mPreferencesAction;
180 QAction* mStartLogConsoleAction;
181 QAction* mFullScreenAction;
182 QAction* mQuitAction;
184 QAction* mShootScreenAction;
185 QAction* mShootWindowAction;
186 QAction* mRecordFullscreenAction;
188 QAction* mNewPatientAction;
189 QAction* mLoadFileAction;
190 QAction* mSaveFileAction;
191 QAction* mClearPatientAction;
192 QAction* mExportPatientAction;
193 QAction* mShowControlPanelAction;
194 QAction* mSecondaryViewLayoutWindowAction;
196 QActionGroup* mStandard3DViewActions;
197 QAction* mShowPointPickerAction;
199 QAction* mImportDataAction;
200 QAction* mDeleteDataAction;
202 QAction* mConfigureToolsAction;
203 QAction* mInitializeToolsAction;
204 QAction* mTrackingToolsAction;
206 QAction* mStartStreamingAction;
207 QActionGroup* mToolsActionGroup;
210 QAction* mCenterToImageCenterAction;
211 QAction* mCenterToTooltipAction;
212 QActionGroup* mInteractorStyleActionGroup;
215 QAction* mSaveDesktopAction;
216 QAction* mResetDesktopAction;
219 QToolBar* mDataToolBar;
220 QToolBar* mToolToolBar;
221 QToolBar* mNavigationToolBar;
222 QToolBar* mInteractorStyleToolBar;
223 QToolBar* mWorkflowToolBar;
224 QToolBar* mDesktopToolBar;
225 QToolBar* mHelpToolBar;
226 QToolBar* mScreenshotToolBar;
228 std::map<QString, QActionGroup*> mWidgetGroupsMap;
230 QString mLastImportDataFolder;
232 boost::shared_ptr<ServiceTrackerListener<GUIExtenderService> > mServiceListener;
233 std::map<GUIExtenderService*, std::vector<QWidget*> > mWidgetsByPlugin;
236 QPointer<class SecondaryMainWindow> mControlPanel;
237 QPointer<class SecondaryViewLayoutWindow> mSecondaryViewLayoutWindow;
241 std::set<QToolBar*> mToolbars;
boost::shared_ptr< class VisServices > VisServicesPtr
This is the main gui class which controls the workflow.
boost::shared_ptr< class LayoutInteractor > LayoutInteractorPtr
boost::shared_ptr< class ProcessWrapper > ProcessWrapperPtr
boost::shared_ptr< class CameraControl > CameraControlPtr