Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
qMRMLScreenShotDialog.h
Go to the documentation of this file.
1/*==============================================================================
2
3 Program: 3D Slicer
4
5 Copyright (c) 2010 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 Julien Finet, Kitware Inc.
17 and was partially funded by NIH grant 3P41RR013218-12S1
18
19==============================================================================*/
20
21#ifndef __qMRMLScreenShotDialog_h
22#define __qMRMLScreenShotDialog_h
23
24// Qt includes
25#include <QDialog>
26#include <QMetaType>
27#include <QString>
28
29// qMRMLWidget includes
30#include "qMRMLWidgetsExport.h"
31#include "qMRMLLayoutManager.h"
32
33class vtkImageData;
34
35class qMRMLScreenShotDialogPrivate;
36
37class QMRML_WIDGETS_EXPORT qMRMLScreenShotDialog : public QDialog
38{
39 Q_OBJECT
40 Q_ENUMS(WidgetType)
42 Q_PROPERTY(QString nameEdit READ nameEdit WRITE setNameEdit)
43 Q_PROPERTY(double scaleFactor READ scaleFactor WRITE setScaleFactor)
45public:
46 typedef QDialog Superclass;
47
49 ThreeD = 0,
50 Red = 1,
51 Yellow = 2,
52 Green = 3,
54 };
55
56 qMRMLScreenShotDialog(QWidget *parent = nullptr);
58
60 Q_INVOKABLE void setLayoutManager(qMRMLLayoutManager* newlayoutManager);
61 Q_INVOKABLE qMRMLLayoutManager* layoutManager()const;
62
63 void setNameEdit(const QString& newName);
64 QString nameEdit()const;
65
66 void setDescription(const QString& description);
67 QString description()const;
68
71 void setData(const QVariant& newData);
72 QVariant data()const;
73
76
77 void setScaleFactor(const double& newScaleFactor);
78 double scaleFactor()const;
79
80 void setShowScaleFactorSpinBox(const bool& state);
82
84 void setImageData(vtkImageData* screenshot);
85 vtkImageData* imageData()const;
86
87protected slots:
88
92 void grabScreenShot(int screenshotWindow);
94 void setLastWidgetType(int id);
97
99 void saveAs();
100
101
102private:
103 QString enumToString(int type);
104
105protected:
106 QScopedPointer<qMRMLScreenShotDialogPrivate> d_ptr;
107
108private:
109 Q_DECLARE_PRIVATE(qMRMLScreenShotDialog);
110 Q_DISABLE_COPY(qMRMLScreenShotDialog);
111};
112
114
115#endif
void resetDialog()
Reset the dialog.
QScopedPointer< qMRMLScreenShotDialogPrivate > d_ptr
WidgetType widgetType() const
void setData(const QVariant &newData)
void setNameEdit(const QString &newName)
void setImageData(vtkImageData *screenshot)
set/return the image data of the screenshot
Q_INVOKABLE qMRMLLayoutManager * layoutManager() const
~qMRMLScreenShotDialog() override
void setDescription(const QString &description)
void setLastWidgetType(int id)
void setWidgetType(WidgetType newType)
QString description() const
qMRMLScreenShotDialog(QWidget *parent=nullptr)
QString nameEdit() const
double scaleFactor() const
void grabScreenShot(int screenshotWindow)
vtkImageData * imageData() const
QVariant data() const
void setScaleFactor(const double &newScaleFactor)
bool showScaleFactorSpinBox() const
void saveAs()
Present save as dialog to directly save image.
Q_INVOKABLE void setLayoutManager(qMRMLLayoutManager *newlayoutManager)
Set/Get layout manager.
void setShowScaleFactorSpinBox(const bool &state)
Q_DECLARE_METATYPE(qSlicerExtensionsManagerModel::ServerAPI)