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
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
61class Q_SLICER_MODULE_SUBJECTHIERARCHY_WIDGETS_EXPORT qSlicerSubjectHierarchyScriptedPlugin
63{
64 Q_OBJECT
65
66public:
68 qSlicerSubjectHierarchyScriptedPlugin(QObject* parent = nullptr);
70
71 Q_INVOKABLE QString pythonSource()const;
72
75 Q_INVOKABLE bool setPythonSource(const QString filePath);
76
78 Q_INVOKABLE PyObject* self() const;
79
82 void setName(QString name) override;
83
84// Role-related virtual methods
85// If the subclass plugin does not offer a role, these do not need to be overridden
86public:
93 double canOwnSubjectHierarchyItem(vtkIdType itemID)const override;
94
97 const QString roleForPlugin()const override;
98
100 const QString helpText()const override;
101
104 QIcon icon(vtkIdType itemID) override;
105
107 QIcon visibilityIcon(int visible) override;
108
110 void editProperties(vtkIdType itemID) override;
111
114 QString displayedItemName(vtkIdType itemID)const override;
115
117 QString tooltip(vtkIdType itemID)const override;
118
120 void setDisplayVisibility(vtkIdType itemID, int visible) override;
121
124 int getDisplayVisibility(vtkIdType itemID)const override;
125
126// Function related virtual methods
127public:
130
133
138
141 void showContextMenuActionsForItem(vtkIdType itemID) override;
142
146 void showViewContextMenuActionsForItem(vtkIdType itemID, QVariantMap eventData) override;
147
148 // Parenting related virtual methods with default implementation
149public:
160 vtkMRMLNode* node,
161 vtkIdType parentItemID=vtkMRMLSubjectHierarchyNode::INVALID_ITEM_ID )const override;
162
171 double canReparentItemInsideSubjectHierarchy(vtkIdType itemID, vtkIdType parentItemID)const override;
172
175 bool reparentItemInsideSubjectHierarchy(vtkIdType itemID, vtkIdType parentItemID) override;
176
177protected:
178 QScopedPointer<qSlicerSubjectHierarchyScriptedPluginPrivate> d_ptr;
179
180private:
181 Q_DECLARE_PRIVATE(qSlicerSubjectHierarchyScriptedPlugin);
183};
184
185#endif
qSlicerSubjectHierarchyAbstractPlugin(QObject *parent=nullptr)
Q_INVOKABLE bool setPythonSource(const QString filePath)
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 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.
QMap< QString, QVariant > QVariantMap
_object PyObject