Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
qSlicerMainWindow.h
Go to the documentation of this file.
1/*==============================================================================
2
3 Program: 3D Slicer
4
5 Copyright (c) Kitware Inc.
6
7 See COPYRIGHT.txt
8 or http://www.slicer.org/copyright/copyright.txt for details.
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15
16 This file was originally developed by Jean-Christophe Fillion-Robin, Kitware Inc.
17 and was partially funded by NIH grant 3P41RR013218-12S1
18
19==============================================================================*/
20
21#ifndef __qSlicerMainWindow_h
22#define __qSlicerMainWindow_h
23
24// Qt includes
25#include <QMainWindow>
26#include <QVariantMap>
27
28// CTK includes
29#include <ctkErrorLogModel.h>
30
31// Slicer includes
32#include "qSlicerBaseQTAppExport.h"
33#include "qSlicerIO.h"
34#include "vtkSlicerConfigure.h" // For Slicer_BUILD_DICOM_SUPPORT, Slicer_USE_PYTHONQT, Slicer_USE_QtTesting
35
36class ctkErrorLogWidget;
37class ctkPythonConsole;
39class qSlicerMainWindowPrivate;
41class vtkObject;
42
43class Q_SLICER_BASE_QTAPP_EXPORT qSlicerMainWindow : public QMainWindow
44{
45 Q_OBJECT
46public:
47 typedef QMainWindow Superclass;
48
49 qSlicerMainWindow(QWidget* parent = nullptr);
51
56
57#ifdef Slicer_USE_PYTHONQT
60 Q_INVOKABLE ctkPythonConsole* pythonConsole() const;
61#endif
64 Q_INVOKABLE ctkErrorLogWidget* errorLogWidget() const;
66 Q_INVOKABLE QDockWidget* errorLogDockWidget() const;
67
68public slots:
69 virtual void setHomeModuleCurrent();
70 virtual void restoreToolbars();
71
86
91
93
94 virtual void onLayoutActionTriggered(QAction* action);
95 virtual void onLayoutCompareActionTriggered(QAction* action);
96 virtual void onLayoutCompareGridActionTriggered(QAction* action);
97
99 virtual void setLayout(int);
100
103
106
107 virtual void onPythonConsoleToggled(bool);
108 virtual void onErrorLogToggled(bool);
109
111
117
119
130 virtual void saveGUIState(bool force = false);
131
134 virtual void restoreGUIState(bool force = false);
135
136 virtual void addFileToRecentFiles(const qSlicerIO::IOProperties& fileProperties);
137
140
141signals:
145
146protected slots:
147 virtual void onModuleLoaded(const QString& moduleName);
148 virtual void onModuleAboutToBeUnloaded(const QString& moduleName);
149 virtual void onNewFileLoaded(const qSlicerIO::IOProperties& fileProperties);
150 virtual void onFileSaved(const qSlicerIO::IOProperties& fileProperties);
151
152 virtual void onMRMLSceneModified(vtkObject*);
153 virtual void onLayoutChanged(int);
154 virtual void onWarningsOrErrorsOccurred(ctkErrorLogLevel::LogLevel logLevel);
155
156 // Show/hide update indicator on Extensions Manager toolbar icon
157 void setExtensionUpdatesAvailable(bool updateAvailable);
158
159#ifdef Slicer_USE_PYTHONQT
160 virtual void onPythonConsoleUserInput(const QString&);
161#endif
162
165 virtual void onErrorLogDockWidgetAreaChanged(Qt::DockWidgetArea);
166
170
171protected:
173 virtual void setupMenuActions();
174
177
179 virtual void disclaimer();
180
184 void dragEnterEvent(QDragEnterEvent* event) override;
185
188 void dropEvent(QDropEvent* event) override;
189
196 bool eventFilter(QObject* object, QEvent* event) override;
197
198 void closeEvent(QCloseEvent* event) override;
199 void showEvent(QShowEvent* event) override;
200
201 void changeEvent(QEvent* event) override;
202
203protected:
204 QScopedPointer<qSlicerMainWindowPrivate> d_ptr;
205
206 qSlicerMainWindow(qSlicerMainWindowPrivate* pimpl, QWidget* parent);
207
208private:
209 Q_DECLARE_PRIVATE(qSlicerMainWindow);
210 Q_DISABLE_COPY(qSlicerMainWindow);
211};
212
213#endif
QVariantMap IOProperties
Definition qSlicerIO.h:53
virtual void setLayoutNumberOfCompareViewColumns(int)
virtual void onModuleAboutToBeUnloaded(const QString &moduleName)
virtual void removeAllMaximizedViewNodes()
Restores the original (non-maximized) layout in all viewports.
virtual void addFileToRecentFiles(const qSlicerIO::IOProperties &fileProperties)
~qSlicerMainWindow() override
virtual void onLayoutCompareActionTriggered(QAction *action)
virtual void on_EditApplicationSettingsAction_triggered()
qSlicerMainWindow(QWidget *parent=nullptr)
virtual void setupMenuActions()
Connect MainWindow action with slots defined in MainWindowCore.
virtual void on_FileLoadDataAction_triggered()
virtual void on_CopyAction_triggered()
virtual void on_EditPlayMacroAction_triggered()
virtual void on_FileAddDataAction_triggered()
virtual void onLayoutChanged(int)
virtual void restoreToolbars()
virtual void onLayoutCompareGridActionTriggered(QAction *action)
void changeEvent(QEvent *event) override
virtual void on_SDBSaveToMRBAction_triggered()
virtual void on_FileLoadSceneAction_triggered()
void showEvent(QShowEvent *event) override
virtual void onLayoutActionTriggered(QAction *action)
void dragEnterEvent(QDragEnterEvent *event) override
bool eventFilter(QObject *object, QEvent *event) override
virtual void on_FileCloseSceneAction_triggered()
Q_INVOKABLE QDockWidget * errorLogDockWidget() const
Return a pointer to the dock widget that shows the Error Log.
virtual void setLayoutNumberOfCompareViewRows(int)
Q_INVOKABLE qSlicerModuleSelectorToolBar * moduleSelector() const
virtual void on_WindowToolbarsResetToDefaultAction_triggered()
virtual void on_FileSaveSceneAction_triggered()
virtual void on_FileImportSceneAction_triggered()
virtual void onMRMLSceneModified(vtkObject *)
virtual void setHomeModuleCurrent()
virtual void on_FileExitAction_triggered()
virtual void setLayout(int)
Set the view layout.
virtual void restoreGUIState(bool force=false)
void onUserViewedErrorLog()
QScopedPointer< qSlicerMainWindowPrivate > d_ptr
void dropEvent(QDropEvent *event) override
virtual void onNewFileLoaded(const qSlicerIO::IOProperties &fileProperties)
virtual void on_EditUndoAction_triggered()
virtual void on_FileFavoriteModulesAction_triggered()
virtual void on_LoadDICOMAction_triggered()
virtual void on_SDBSaveToDirectoryAction_triggered()
virtual void onPythonConsoleToggled(bool)
Q_INVOKABLE ctkErrorLogWidget * errorLogWidget() const
virtual void on_FavoriteModulesChanged()
Refresh favorite modules toolbar from application settings.
qSlicerMainWindow(qSlicerMainWindowPrivate *pimpl, QWidget *parent)
virtual void on_PasteAction_triggered()
virtual void saveGUIState(bool force=false)
virtual void on_FileAddVolumeAction_triggered()
virtual void on_FileAddTransformAction_triggered()
virtual void on_ShowStatusBarAction_triggered(bool)
void setExtensionUpdatesAvailable(bool updateAvailable)
virtual void onWarningsOrErrorsOccurred(ctkErrorLogLevel::LogLevel logLevel)
virtual void disclaimer()
Open a popup to warn the user Slicer is not for clinical use.
void initialWindowShown()
virtual void on_ViewExtensionsManagerAction_triggered()
virtual void on_ModuleHomeAction_triggered()
void closeEvent(QCloseEvent *event) override
virtual void onFileSaved(const qSlicerIO::IOProperties &fileProperties)
virtual void on_EditRedoAction_triggered()
virtual void onModuleLoaded(const QString &moduleName)
virtual void onErrorLogDockWidgetAreaChanged(Qt::DockWidgetArea)
virtual void on_EditRecordMacroAction_triggered()
virtual void onFileRecentLoadedActionTriggered()
virtual void onErrorLogToggled(bool)
virtual void on_CutAction_triggered()
virtual void pythonConsoleInitialDisplay()
Open Python console if it was requested.
Abstract MRML node to represent a view. The class holds the properties common to any view type (3D,...