Slicer 5.11
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
qMRMLSegmentSelectorWidget.h
Go to the documentation of this file.
1/*==============================================================================
2
3 Program: 3D Slicer
4
5 Copyright (c) Laboratory for Percutaneous Surgery (PerkLab)
6 Queen's University, Kingston, ON, Canada. All Rights Reserved.
7
8 See COPYRIGHT.txt
9 or http://www.slicer.org/copyright/copyright.txt for details.
10
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
16
17 This file was originally developed by Csaba Pinter, PerkLab, Queen's University
18 and was supported through the Applied Cancer Research Unit program of Cancer Care
19 Ontario with funds provided by the Ontario Ministry of Health and Long-Term Care
20
21==============================================================================*/
22
23#ifndef __qMRMLSegmentSelectorWidget_h
24#define __qMRMLSegmentSelectorWidget_h
25
26// qMRMLWidgets includes
27#include "qMRMLWidget.h"
28#include "qMRMLWidgetsExport.h"
29
30// CTK includes
31#include <ctkPimpl.h>
32#include <ctkVTKObject.h>
33
34// Qt includes
35#include <QStringList>
36
37class vtkMRMLNode;
38class qMRMLSegmentSelectorWidgetPrivate;
39class QTableWidgetItem;
40class QItemSelection;
41
44class QMRML_WIDGETS_EXPORT qMRMLSegmentSelectorWidget : public qMRMLWidget
45{
46 Q_OBJECT
47 QVTK_OBJECT
48
49public:
50 Q_PROPERTY(bool noneEnabled READ noneEnabled WRITE setNoneEnabled)
51 Q_PROPERTY(bool editEnabled READ editEnabled WRITE setEditEnabled)
56
57public:
60
62 explicit qMRMLSegmentSelectorWidget(QWidget* parent = nullptr);
65
67 Q_INVOKABLE vtkMRMLNode* currentNode();
69 Q_INVOKABLE QString currentNodeID();
70
73 Q_INVOKABLE QString currentSegmentID();
76 Q_INVOKABLE QStringList selectedSegmentIDs();
77
82 Q_INVOKABLE QStringList segmentIDs();
83
86 bool noneEnabled() const;
89 void setNoneEnabled(bool enable);
90
93 bool editEnabled() const;
96 void setEditEnabled(bool enable);
97
104
107 bool multiSelection() const;
110 void setMultiSelection(bool multi);
111
114 bool horizontalLayout() const;
117 void setHorizontalLayout(bool horizontal);
118
124
125public slots:
127 Q_INVOKABLE void setCurrentNode(vtkMRMLNode* node);
129 Q_INVOKABLE void setCurrentNodeID(const QString& nodeID);
130
133 Q_INVOKABLE void setCurrentSegmentID(QString segmentID);
136 Q_INVOKABLE void setSelectedSegmentIDs(QStringList segmentIDList);
137
138protected slots:
140 Q_INVOKABLE void onCurrentNodeChanged(vtkMRMLNode* node);
142 void onCurrentSegmentChanged(int index);
145
148
149signals:
152 void segmentSelectionChanged(QStringList);
153
156
160 void currentNodeChanged(bool validNode);
161
162protected:
163 QScopedPointer<qMRMLSegmentSelectorWidgetPrivate> d_ptr;
164
165private:
166 Q_DECLARE_PRIVATE(qMRMLSegmentSelectorWidget);
167 Q_DISABLE_COPY(qMRMLSegmentSelectorWidget);
168};
169
170#endif
Q_INVOKABLE vtkMRMLNode * currentNode()
Get currently selected segmentation MRML node.
void currentSegmentChanged(QString)
void segmentSelectionChanged(QStringList)
void onSegmentMultiSelectionChanged()
Handles selection change in case of multi-selection.
qMRMLSegmentSelectorWidget(QWidget *parent=nullptr)
Constructor.
Q_INVOKABLE QString currentNodeID()
Get currently selected segmentation node's ID.
void nodeAboutToBeEdited(vtkMRMLNode *node)
Signal emitted when edit node menu action is selected in the segmentation node combobox.
void onCurrentSegmentChanged(int index)
Handles changing of selection in the segment combobox.
void setNoneEnabled(bool enable)
Q_INVOKABLE void setCurrentNode(vtkMRMLNode *node)
Set segmentation MRML node.
Q_INVOKABLE void setSelectedSegmentIDs(QStringList segmentIDList)
Q_INVOKABLE QStringList segmentIDs()
Q_INVOKABLE void setCurrentSegmentID(QString segmentID)
Q_INVOKABLE QStringList selectedSegmentIDs()
void setSelectNodeUponCreation(bool value)
Q_INVOKABLE void onCurrentNodeChanged(vtkMRMLNode *node)
Handles changing of current segmentation MRML node.
QScopedPointer< qMRMLSegmentSelectorWidgetPrivate > d_ptr
Q_INVOKABLE void setCurrentNodeID(const QString &nodeID)
Set segmentation MRML node by its ID.
void setHorizontalLayout(bool horizontal)
Q_INVOKABLE QString currentSegmentID()
void setEditEnabled(bool enable)
void populateSegmentCombobox()
Populate segment combobox according to the segmentation node.
void setSegmentationNodeSelectorVisible(bool visible)
void currentNodeChanged(vtkMRMLNode *)
qMRMLWidget Superclass
Superclass typedef.
void setMultiSelection(bool multi)
qMRMLWidget(QWidget *parent=nullptr, Qt::WindowFlags f=Qt::WindowFlags())
Abstract Superclass for all specific types of MRML nodes.