Slicer 5.13
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
qSlicerGenericIOOptionsWidget.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==============================================================================*/
17
18#ifndef __qSlicerGenericIOOptionsWidget_h
19#define __qSlicerGenericIOOptionsWidget_h
20
21// QtGUI includes
22#include "qSlicerBaseQTGUIExport.h"
24
25// Slicer includes
27
28// VTK includes
29#include <vtkSmartPointer.h>
30
31class qSlicerGenericIOOptionsWidgetPrivate;
32
36class Q_SLICER_BASE_QTGUI_EXPORT qSlicerGenericIOOptionsWidget : public qSlicerFileWriterOptionsWidget
37{
38 Q_OBJECT
39public:
41 explicit qSlicerGenericIOOptionsWidget(QWidget* parent = nullptr);
44
47 Q_INVOKABLE vtkMRMLFileIOHandler* ioHandler() const;
48
50 void updateGUI(const qSlicerIO::IOProperties& ioProperties) override;
51
54 static vtkMRMLFileIOHandler* findIOHandler(const char* className);
55
58 template <class T>
59 static vtkSmartPointer<vtkMRMLFileIOHandler> findOrCreateIOHandler()
60 {
61 vtkSmartPointer<vtkMRMLFileIOHandler> newHandler = vtkSmartPointer<T>::New();
62 vtkMRMLFileIOHandler* registeredHandler = qSlicerGenericIOOptionsWidget::findIOHandler(newHandler->GetClassName());
63 if (registeredHandler)
64 {
65 return registeredHandler;
66 }
68 return newHandler;
69 }
70
71public slots:
72 void setFileName(const QString& fileName) override;
73 void setFileNames(const QStringList& fileNames) override;
74 void setObject(vtkObject* object) override;
75 void setMRMLScene(vtkMRMLScene* scene) override;
76
77protected slots:
80
86
87protected:
90
93
94private:
96 Q_DISABLE_COPY(qSlicerGenericIOOptionsWidget);
97};
98
99#endif
qSlicerFileWriterOptionsWidget(QWidget *parent=nullptr)
~qSlicerGenericIOOptionsWidget() override
void setObject(vtkObject *object) override
void onOptionChanged()
Called when the user changes an option.
void setFileNames(const QStringList &fileNames) override
qSlicerFileWriterOptionsWidget Superclass
Q_INVOKABLE vtkMRMLFileIOHandler * ioHandler() const
void setMRMLScene(vtkMRMLScene *scene) override
void setFileName(const QString &fileName) override
void updateOptions()
Request the description of options from the reader or writer and update the widgets.
void updateGUI(const qSlicerIO::IOProperties &ioProperties) override
Set values of options (for example, to set default options in a file dialog).
Q_INVOKABLE void setIOHandler(vtkMRMLFileIOHandler *ioHandler)
Reader or writer that describes the options.
static vtkMRMLFileIOHandler * findIOHandler(const char *className)
qSlicerGenericIOOptionsWidget(QWidget *parent=nullptr)
static vtkSmartPointer< vtkMRMLFileIOHandler > findOrCreateIOHandler()
static void initializeUnregisteredIOHandler(vtkMRMLFileIOHandler *handler)
Set the scene and the application logic's file IO manager in a reader or writer that is not registere...
qSlicerGenericIOOptionsWidget(vtkMRMLFileIOHandler *ioHandler, QWidget *parent=nullptr)
Q_DECLARE_PRIVATE_D(qGetPtrHelper(qSlicerIOOptions::d_ptr), qSlicerIOOptions)
QScopedPointer< qSlicerIOOptionsPrivate > d_ptr
QVariantMap IOProperties
Definition qSlicerIO.h:61
A set of MRML Nodes that supports serialization and undo/redo.