Slicer 5.4
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
qMRMLSubjectHierarchyComboBox.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 __qMRMLSubjectHierarchyComboBox_h
24#define __qMRMLSubjectHierarchyComboBox_h
25
26// CTK includes
27#include <ctkComboBox.h>
28#include <ctkVTKObject.h>
29
30// SubjectHierarchy includes
31#include "qSlicerSubjectHierarchyModuleWidgetsExport.h"
32
34
35class qMRMLSubjectHierarchyComboBoxPrivate;
38class vtkMRMLScene;
39
41class Q_SLICER_MODULE_SUBJECTHIERARCHY_WIDGETS_EXPORT qMRMLSubjectHierarchyComboBox : public ctkComboBox
42{
43 Q_OBJECT
44 QVTK_OBJECT
45
50 Q_PROPERTY(bool showRootItem READ showRootItem WRITE setShowRootItem)
54 Q_PROPERTY(bool highlightReferencedItems READ highlightReferencedItems WRITE setHighlightReferencedItems)
56 Q_PROPERTY(int maximumNumberOfShownItems READ maximumNumberOfShownItems WRITE setMaximumNumberOfShownItems)
60 Q_PROPERTY(bool alignPopupVertically READ alignPopupVertically WRITE setAlignPopupVertically)
63 Q_PROPERTY(bool noneEnabled READ noneEnabled WRITE setNoneEnabled)
67 Q_PROPERTY(QString noneDisplay READ noneDisplay WRITE setNoneDisplay)
71 Q_PROPERTY(bool showCurrentItemParents READ showCurrentItemParents WRITE setShowCurrentItemParents)
76 Q_PROPERTY(bool showEmptyHierarchyItems READ showEmptyHierarchyItems WRITE setShowEmptyHierarchyItems)
77
79 Q_PROPERTY(QStringList includeItemAttributeNamesFilter READ includeItemAttributeNamesFilter WRITE setIncludeItemAttributeNamesFilter)
81 Q_PROPERTY(QStringList includeNodeAttributeNamesFilter READ includeNodeAttributeNamesFilter WRITE setIncludeNodeAttributeNamesFilter)
84 Q_PROPERTY(QStringList excludeItemAttributeNamesFilter READ excludeItemAttributeNamesFilter WRITE setExcludeItemAttributeNamesFilter)
87 Q_PROPERTY(QStringList excludeNodeAttributeNamesFilter READ excludeNodeAttributeNamesFilter WRITE setExcludeNodeAttributeNamesFilter)
88
91 Q_PROPERTY(QString attributeNameFilter READ attributeNameFilter WRITE setAttributeNameFilter)
96 Q_PROPERTY(QString attributeValueFilter READ attributeValueFilter WRITE setAttributeValueFilter)
97
98public:
99 typedef ctkComboBox Superclass;
100 qMRMLSubjectHierarchyComboBox(QWidget *parent=nullptr);
102
103public:
104 Q_INVOKABLE vtkMRMLScene* mrmlScene()const;
105 Q_INVOKABLE vtkMRMLSubjectHierarchyNode* subjectHierarchyNode()const;
106
107 Q_INVOKABLE void clearSelection();
108 Q_INVOKABLE vtkIdType currentItem()const;
109 Q_INVOKABLE vtkIdType rootItem()const;
110
111 void setShowRootItem(bool show);
112 bool showRootItem()const;
113
114 bool highlightReferencedItems()const;
115 void setHighlightReferencedItems(bool highlightOn);
116
117 int maximumNumberOfShownItems()const;
118 void setMaximumNumberOfShownItems(int maxNumberOfShownItems);
119
120 bool alignPopupVertically()const;
121 void setAlignPopupVertically(bool align);
122
123 bool noneEnabled()const;
124 void setNoneEnabled(bool enable);
125
126 QString noneDisplay()const;
127 void setNoneDisplay(const QString& displayName);
128
129 bool showCurrentItemParents()const;
130 void setShowCurrentItemParents(bool enable);
131
132 bool showEmptyHierarchyItems()const;
133 void setShowEmptyHierarchyItems(bool show);
134
135 QStringList includeItemAttributeNamesFilter()const;
136 QStringList includeNodeAttributeNamesFilter()const;
137 QStringList excludeItemAttributeNamesFilter()const;
138 QStringList excludeNodeAttributeNamesFilter()const;
139 QString attributeValueFilter()const;
140 QString attributeNameFilter()const;
148 Q_INVOKABLE void addItemAttributeFilter(QString attributeName, QVariant attributeValue=QString(), bool include=true);
150 Q_INVOKABLE void removeItemAttributeFilter(QString attributeName, QVariant attributeValue, bool include);
152 Q_INVOKABLE void removeItemAttributeFilter(QString attributeName, bool include);
161 Q_INVOKABLE void addNodeAttributeFilter(QString attributeName, QVariant attributeValue=QString(), bool include=true, QString className=QString());
163 Q_INVOKABLE void removeNodeAttributeFilter(QString attributeName, QVariant attributeValue, bool include, QString className);
165 Q_INVOKABLE void removeNodeAttributeFilter(QString attributeName, bool include);
166
167
169 Q_INVOKABLE void setLevelFilter(QStringList &levelFilter);
171 Q_INVOKABLE void setNodeTypes(const QStringList& types);
174 Q_INVOKABLE void setHideChildNodeTypes(const QStringList& types);
175
176 Q_INVOKABLE qMRMLSortFilterSubjectHierarchyProxyModel* sortFilterProxyModel()const;
177 Q_INVOKABLE qMRMLSubjectHierarchyModel* model()const;
178
179public:
181 void showPopup() override;
182
183public slots:
185 virtual void setMRMLScene(vtkMRMLScene* scene);
186
188 virtual void setCurrentItem(vtkIdType itemID);
189
191 virtual void setRootItem(vtkIdType itemID);
192
196 void setPluginAllowlist(QStringList allowlist);
200 void setPluginBlocklist(QStringList blocklist);
203 void disablePlugin(QString plugin);
204
206 void setPluginWhitelist(QStringList allowlist)
207 {
208 qWarning("qMRMLSubjectHierarchyComboBox::setPluginWhitelist is deprecated. Use setPluginAllowlist instead.");
209 this->setPluginAllowlist(allowlist);
210 }
212 void setPluginBlacklist(QStringList blocklist)
213 {
214 qWarning("qMRMLSubjectHierarchyComboBox::setPluginBlacklist is deprecated. Use setPluginBlocklist instead.");
215 this->setPluginBlocklist(blocklist);
216 }
217
218 void setIncludeItemAttributeNamesFilter(QStringList filter);
219 void setIncludeNodeAttributeNamesFilter(QStringList filter);
220 void setExcludeItemAttributeNamesFilter(QStringList filter);
221 void setExcludeNodeAttributeNamesFilter(QStringList filter);
222 void setAttributeNameFilter(QString& filter);
223 void setAttributeValueFilter(QString& filter);
224
225signals:
226 void currentItemChanged(vtkIdType);
227 void currentItemModified(vtkIdType);
228
229protected slots:
230 void updateComboBoxTitleAndIcon(vtkIdType selectedShItemID);
231
232 void hidePopup() override;
233
234 virtual void onMRMLSceneCloseEnded(vtkObject* sceneObject);
235
236protected:
238 void mousePressEvent(QMouseEvent* event) override;
239
240protected:
241 QScopedPointer<qMRMLSubjectHierarchyComboBoxPrivate> d_ptr;
242
243private:
244 Q_DECLARE_PRIVATE(qMRMLSubjectHierarchyComboBox);
245 Q_DISABLE_COPY(qMRMLSubjectHierarchyComboBox);
246};
247
248#endif
void setExcludeItemAttributeNamesFilter(QStringList filter)
void setPluginBlacklist(QStringList blocklist)
Deprecated. Use setPluginBlocklist instead.
virtual void onMRMLSceneCloseEnded(vtkObject *sceneObject)
void setIncludeNodeAttributeNamesFilter(QStringList filter)
void mousePressEvent(QMouseEvent *event) override
Handle mouse press event (disable context menu)
void currentItemModified(vtkIdType)
void updateComboBoxTitleAndIcon(vtkIdType selectedShItemID)
void setIncludeItemAttributeNamesFilter(QStringList filter)
void setExcludeNodeAttributeNamesFilter(QStringList filter)
void setAttributeValueFilter(QString &filter)
QScopedPointer< qMRMLSubjectHierarchyComboBoxPrivate > d_ptr
void setAttributeNameFilter(QString &filter)
void currentItemChanged(vtkIdType)
Item model for subject hierarchy.
A set of MRML Nodes that supports serialization and undo/redo.
MRML node to represent a complete subject hierarchy tree.