Slicer 5.4
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
qSlicerSubjectHierarchyScriptedPlugin.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 __qSlicerSubjectHierarchyScriptedPlugin_h
24#define __qSlicerSubjectHierarchyScriptedPlugin_h
25
26// SubjectHierarchy includes
28
29#include "qSlicerSubjectHierarchyModuleWidgetsExport.h"
30
31// Forward Declare PyObject*
32#ifndef PyObject_HEAD
33struct _object;
34typedef _object PyObject;
35#endif
36class qSlicerSubjectHierarchyScriptedPluginPrivate;
37
38class vtkObject;
39class QStandardItem;
40class QAction;
42
62class Q_SLICER_MODULE_SUBJECTHIERARCHY_WIDGETS_EXPORT qSlicerSubjectHierarchyScriptedPlugin
64{
65 Q_OBJECT
66
67public:
69 qSlicerSubjectHierarchyScriptedPlugin(QObject* parent = nullptr);
71
72 Q_INVOKABLE QString pythonSource()const;
73
76 Q_INVOKABLE bool setPythonSource(const QString newPythonSource);
77
79 Q_INVOKABLE PyObject* self() const;
80
83 void setName(QString name) override;
84
85// Role-related virtual methods
86// If the subclass plugin does not offer a role, these do not need to be overridden
87public:
94 double canOwnSubjectHierarchyItem(vtkIdType itemID)const override;
95
98 const QString roleForPlugin()const override;
99
101 const QString helpText()const override;
102
105 QIcon icon(vtkIdType itemID) override;
106
108 QIcon visibilityIcon(int visible) override;
109
111 void editProperties(vtkIdType itemID) override;
112
115 QString displayedItemName(vtkIdType itemID)const override;
116
118 QString tooltip(vtkIdType itemID)const override;
119
121 void setDisplayVisibility(vtkIdType itemID, int visible) override;
122
125 int getDisplayVisibility(vtkIdType itemID)const override;
126
127// Function related virtual methods
128public:
130 QList<QAction*> itemContextMenuActions()const override;
131
133 QList<QAction*> viewContextMenuActions()const override;
134
138 QList<QAction*> sceneContextMenuActions()const override;
139
142 void showContextMenuActionsForItem(vtkIdType itemID) override;
143
147 void showViewContextMenuActionsForItem(vtkIdType itemID, QVariantMap eventData) override;
148
149 // Parenting related virtual methods with default implementation
150public:
161 vtkMRMLNode* node,
162 vtkIdType parentItemID=vtkMRMLSubjectHierarchyNode::INVALID_ITEM_ID )const override;
163
172 double canReparentItemInsideSubjectHierarchy(vtkIdType itemID, vtkIdType parentItemID)const override;
173
176 bool reparentItemInsideSubjectHierarchy(vtkIdType itemID, vtkIdType parentItemID) override;
177
178protected:
179 QScopedPointer<qSlicerSubjectHierarchyScriptedPluginPrivate> d_ptr;
180
181private:
182 Q_DECLARE_PRIVATE(qSlicerSubjectHierarchyScriptedPlugin);
184};
185
186#endif
Abstract plugin for handling Subject Hierarchy items.
Scripted abstract plugin for handling subject hierarchy items or providing actions for items.
QString displayedItemName(vtkIdType itemID) const override
int getDisplayVisibility(vtkIdType itemID) const override
QScopedPointer< qSlicerSubjectHierarchyScriptedPluginPrivate > d_ptr
void showViewContextMenuActionsForItem(vtkIdType itemID, QVariantMap eventData) override
Q_INVOKABLE QString pythonSource() const
QIcon icon(vtkIdType itemID) override
void showContextMenuActionsForItem(vtkIdType itemID) override
qSlicerSubjectHierarchyScriptedPlugin(QObject *parent=nullptr)
double canAddNodeToSubjectHierarchy(vtkMRMLNode *node, vtkIdType parentItemID=vtkMRMLSubjectHierarchyNode::INVALID_ITEM_ID) const override
QList< QAction * > viewContextMenuActions() const override
Get view item context menu item actions to add to views.
void editProperties(vtkIdType itemID) override
Open module belonging to item and set inputs in opened module.
Q_INVOKABLE bool setPythonSource(const QString newPythonSource)
Q_INVOKABLE PyObject * self() const
Convenience method allowing to retrieve the associated scripted instance.
double canReparentItemInsideSubjectHierarchy(vtkIdType itemID, vtkIdType parentItemID) const override
QList< QAction * > sceneContextMenuActions() const override
bool reparentItemInsideSubjectHierarchy(vtkIdType itemID, vtkIdType parentItemID) override
void setDisplayVisibility(vtkIdType itemID, int visible) override
Set display visibility of a owned subject hierarchy item.
const QString roleForPlugin() const override
void setName(QString name) override
QList< QAction * > itemContextMenuActions() const override
Get item context menu item actions to add to tree view.
QString tooltip(vtkIdType itemID) const override
Generate tooltip for a owned subject hierarchy item.
double canOwnSubjectHierarchyItem(vtkIdType itemID) const override
const QString helpText() const override
Get help text for plugin to be added in subject hierarchy module widget help box.
QIcon visibilityIcon(int visible) override
Get visibility icon for a visibility state.
Abstract Superclass for all specific types of MRML nodes.