Slicer  5.1
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
List of all members | Public Types | Public Member Functions | Protected Slots | Protected Member Functions | Protected Attributes
qSlicerSubjectHierarchyFolderPlugin Class Reference

Subject hierarchy folder plugin. More...

#include <Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyFolderPlugin.h>

Inheritance diagram for qSlicerSubjectHierarchyFolderPlugin:
Inheritance graph
[legend]
Collaboration diagram for qSlicerSubjectHierarchyFolderPlugin:
Collaboration graph
[legend]

Public Types

typedef qSlicerSubjectHierarchyAbstractPlugin Superclass
 
- Public Types inherited from qSlicerSubjectHierarchyAbstractPlugin
enum  ActionSectionType {
  SectionTop = -400, SectionInteraction = -300, SectionComponent = -200, SectionNode = -100,
  SectionDefault = 0, SectionFolder = 100, SectionBottom = 200
}
 
typedef QObject Superclass
 

Public Member Functions

bool addNodeToSubjectHierarchy (vtkMRMLNode *node, vtkIdType parentItemID) override
 Make sure a folder display node that is added externally shows up in the hierarchy. More...
 
double canAddNodeToSubjectHierarchy (vtkMRMLNode *node, vtkIdType parentItemID=vtkMRMLSubjectHierarchyNode::INVALID_ITEM_ID) const override
 
double canOwnSubjectHierarchyItem (vtkIdType itemID) const override
 
Q_INVOKABLE QString colorItemAttributeName () const
 Name of color attribute in folder subject hierarchy items. More...
 
vtkMRMLDisplayNodecreateDisplayNodeForItem (vtkIdType itemID)
 
Q_INVOKABLE vtkIdType createFolderUnderItem (vtkIdType parentItemID)
 
void editProperties (vtkIdType itemID) override
 Open module belonging to item and set inputs in opened module. More...
 
QColor getDisplayColor (vtkIdType itemID, QMap< int, QVariant > &terminologyMetaData) const override
 
int getDisplayVisibility (vtkIdType itemID) const override
 
QIcon icon (vtkIdType itemID) override
 
QList< QAction * > itemContextMenuActions () const override
 Get item context menu item actions to add to tree view. More...
 
 qSlicerSubjectHierarchyFolderPlugin (QObject *parent=nullptr)
 
Q_INVOKABLE const QString roleForPlugin () const override
 
QList< QAction * > sceneContextMenuActions () const override
 
void setDisplayColor (vtkIdType itemID, QColor color, QMap< int, QVariant > terminologyMetaData) override
 
void setDisplayVisibility (vtkIdType itemID, int visible) override
 Set display visibility of an owned subject hierarchy item. More...
 
void showContextMenuActionsForItem (vtkIdType itemID) override
 
void showVisibilityContextMenuActionsForItem (vtkIdType itemID) override
 
QList< QAction * > visibilityContextMenuActions () const override
 
QIcon visibilityIcon (int visible) override
 Get visibility icon for a visibility state. More...
 
 ~qSlicerSubjectHierarchyFolderPlugin () override
 
- Public Member Functions inherited from qSlicerSubjectHierarchyAbstractPlugin
virtual Q_INVOKABLE bool canEditProperties (vtkIdType itemID)
 Returns true if the module can edit properties of this item using editProperties. More...
 
virtual double canReparentItemInsideSubjectHierarchy (vtkIdType itemID, vtkIdType parentItemID) const
 
virtual QString displayedItemName (vtkIdType itemID) const
 
virtual const QString helpText () const
 Get help text for plugin to be added in subject hierarchy module widget help box. More...
 
Q_INVOKABLE bool isThisPluginOwnerOfItem (vtkIdType itemID) const
 Determines if the item is owned by this plugin. More...
 
virtual QString name () const
 Get the name of the plugin. More...
 
 qSlicerSubjectHierarchyAbstractPlugin (QObject *parent=nullptr)
 
virtual bool reparentItemInsideSubjectHierarchy (vtkIdType itemID, vtkIdType parentItemID)
 
virtual void setName (QString name)
 
virtual bool showItemInView (vtkIdType itemID, vtkMRMLAbstractViewNode *viewNode, vtkIdList *allItemsToShow)
 
virtual Q_INVOKABLE void showViewContextMenuActionsForItem (vtkIdType itemID, QVariantMap eventData)
 
virtual Q_INVOKABLE QString tooltip (vtkIdType itemID) const
 Generate tooltip for a owned subject hierarchy item. More...
 
virtual Q_INVOKABLE QList< QAction * > viewContextMenuActions () const
 
 ~qSlicerSubjectHierarchyAbstractPlugin () override
 

Protected Slots

void createFolderUnderCurrentNode ()
 Create folder node under current node. More...
 
void createFolderUnderScene ()
 Create folder node under the scene. More...
 
void onApplyColorToBranchToggled (bool)
 Toggle apply color to branch. More...
 

Protected Member Functions

vtkMRMLDisplayNodedisplayNodeForItem (vtkIdType itemID) const
 
bool isApplyColorToBranchEnabledForItem (vtkIdType itemID) const
 Determine if apply color to branch option is enabled to a given item or not. More...
 
void setApplyColorToBranchEnabledForItem (vtkIdType itemID, bool enabled)
 Determine if apply color to branch option is enabled to a given item or not. More...
 
- Protected Member Functions inherited from qSlicerSubjectHierarchyAbstractPlugin
void hideAllContextMenuActions () const
 

Protected Attributes

QScopedPointer< qSlicerSubjectHierarchyFolderPluginPrivate > d_ptr
 
- Protected Attributes inherited from qSlicerSubjectHierarchyAbstractPlugin
QString m_Name
 Name of the plugin. More...
 

Additional Inherited Members

- Properties inherited from qSlicerSubjectHierarchyAbstractPlugin
QString name
 
- Signals inherited from qSlicerSubjectHierarchyAbstractPlugin
void requestExpandItem (vtkIdType itemID)
 Signal requesting expanding of the subject hierarchy tree item belonging to an item. More...
 
void requestInvalidateFilter () const
 
- Static Public Member Functions inherited from qSlicerSubjectHierarchyAbstractPlugin
static Q_INVOKABLE void setActionPosition (QAction *action, int section, int weight=0, double weightAdjustment=0.0)
 
static Q_INVOKABLE qSlicerAbstractModuleWidgetswitchToModule (QString moduleName)
 

Detailed Description

Subject hierarchy folder plugin.

Support folder items in subject hierarchy

  1. Folders define hierarchies in subject hierarchy.
  2. Folder items have a directly associated display node after any interaction with display settings of the folder. A special display node type vtkMRMLFolderDisplayNode is used.
  3. Folders have a feature for overriding display properties of the displayable nodes in its branch. If the user activates it, then all the child displayable nodes use the display settings from the display node associated to the folder.

Definition at line 53 of file qSlicerSubjectHierarchyFolderPlugin.h.

Member Typedef Documentation

◆ Superclass

Definition at line 60 of file qSlicerSubjectHierarchyFolderPlugin.h.

Constructor & Destructor Documentation

◆ qSlicerSubjectHierarchyFolderPlugin()

qSlicerSubjectHierarchyFolderPlugin::qSlicerSubjectHierarchyFolderPlugin ( QObject *  parent = nullptr)

◆ ~qSlicerSubjectHierarchyFolderPlugin()

qSlicerSubjectHierarchyFolderPlugin::~qSlicerSubjectHierarchyFolderPlugin ( )
override

Member Function Documentation

◆ addNodeToSubjectHierarchy()

bool qSlicerSubjectHierarchyFolderPlugin::addNodeToSubjectHierarchy ( vtkMRMLNode node,
vtkIdType  parentItemID 
)
overridevirtual

Make sure a folder display node that is added externally shows up in the hierarchy.

Reimplemented from qSlicerSubjectHierarchyAbstractPlugin.

◆ canAddNodeToSubjectHierarchy()

double qSlicerSubjectHierarchyFolderPlugin::canAddNodeToSubjectHierarchy ( vtkMRMLNode node,
vtkIdType  parentItemID = vtkMRMLSubjectHierarchyNode::INVALID_ITEM_ID 
) const
overridevirtual

Determines if a data node can be placed in the hierarchy using the actual plugin, and gets a confidence value for a certain MRML node (usually the type and possibly attributes are checked).

Parameters
nodeNode to be added to the hierarchy
parentItemIDProspective parent of the node to add. Default value is invalid. In that case the parent will be ignored, the confidence numbers are got based on the to-be child node alone.
Returns
Floating point confidence number between 0 and 1, where 0 means that the plugin cannot handle the node, and 1 means that the plugin is the only one that can handle the node (by node type or identifier attribute)

Reimplemented from qSlicerSubjectHierarchyAbstractPlugin.

◆ canOwnSubjectHierarchyItem()

double qSlicerSubjectHierarchyFolderPlugin::canOwnSubjectHierarchyItem ( vtkIdType  itemID) const
overridevirtual

Determines if the actual plugin can handle a subject hierarchy item. The plugin with the highest confidence number will "own" the item in the subject hierarchy (set icon, tooltip, set context menu etc.)

Parameters
itemItem to handle in the subject hierarchy tree
Returns
Floating point confidence number between 0 and 1, where 0 means that the plugin cannot handle the item, and 1 means that the plugin is the only one that can handle the item (by node type or identifier attribute)

Reimplemented from qSlicerSubjectHierarchyAbstractPlugin.

◆ colorItemAttributeName()

Q_INVOKABLE QString qSlicerSubjectHierarchyFolderPlugin::colorItemAttributeName ( ) const
inline

Name of color attribute in folder subject hierarchy items.

Definition at line 146 of file qSlicerSubjectHierarchyFolderPlugin.h.

◆ createDisplayNodeForItem()

vtkMRMLDisplayNode* qSlicerSubjectHierarchyFolderPlugin::createDisplayNodeForItem ( vtkIdType  itemID)

Create model display node for given item. If the folder item has an associated model hierarchy node, then create a display node associated to that. Otherwise create display node for folder item

◆ createFolderUnderCurrentNode

void qSlicerSubjectHierarchyFolderPlugin::createFolderUnderCurrentNode ( )
protectedslot

Create folder node under current node.

◆ createFolderUnderItem()

Q_INVOKABLE vtkIdType qSlicerSubjectHierarchyFolderPlugin::createFolderUnderItem ( vtkIdType  parentItemID)

Create folder under specified item

Parameters
parentNodeParent item for folder to create

◆ createFolderUnderScene

void qSlicerSubjectHierarchyFolderPlugin::createFolderUnderScene ( )
protectedslot

Create folder node under the scene.

◆ displayNodeForItem()

vtkMRMLDisplayNode* qSlicerSubjectHierarchyFolderPlugin::displayNodeForItem ( vtkIdType  itemID) const
protected

Retrieve model display node for given item. If the folder item has an associated model display node (created by the plugin), then return that. Otherwise see if it has a model hierarchy node with a display node.

◆ editProperties()

void qSlicerSubjectHierarchyFolderPlugin::editProperties ( vtkIdType  itemID)
overridevirtual

Open module belonging to item and set inputs in opened module.

Reimplemented from qSlicerSubjectHierarchyAbstractPlugin.

◆ getDisplayColor()

QColor qSlicerSubjectHierarchyFolderPlugin::getDisplayColor ( vtkIdType  itemID,
QMap< int, QVariant > &  terminologyMetaData 
) const
overridevirtual

Get display color of an owned subject hierarchy item In case of folders only color is set but no terminology. The properties are not used directly, but only if applied to the branch (similarly to how it worked in model hierarchies).

Reimplemented from qSlicerSubjectHierarchyAbstractPlugin.

◆ getDisplayVisibility()

int qSlicerSubjectHierarchyFolderPlugin::getDisplayVisibility ( vtkIdType  itemID) const
overridevirtual

Get display visibility of an owned subject hierarchy item

Returns
Display visibility (0: hidden, 1: shown, 2: partially shown)

Reimplemented from qSlicerSubjectHierarchyAbstractPlugin.

◆ icon()

QIcon qSlicerSubjectHierarchyFolderPlugin::icon ( vtkIdType  itemID)
overridevirtual

Get icon of an owned subject hierarchy item

Returns
Icon to set, nullptr if nothing to set

Reimplemented from qSlicerSubjectHierarchyAbstractPlugin.

◆ isApplyColorToBranchEnabledForItem()

bool qSlicerSubjectHierarchyFolderPlugin::isApplyColorToBranchEnabledForItem ( vtkIdType  itemID) const
protected

Determine if apply color to branch option is enabled to a given item or not.

◆ itemContextMenuActions()

QList<QAction*> qSlicerSubjectHierarchyFolderPlugin::itemContextMenuActions ( ) const
overridevirtual

Get item context menu item actions to add to tree view.

Reimplemented from qSlicerSubjectHierarchyAbstractPlugin.

◆ onApplyColorToBranchToggled

void qSlicerSubjectHierarchyFolderPlugin::onApplyColorToBranchToggled ( bool  )
protectedslot

Toggle apply color to branch.

◆ roleForPlugin()

Q_INVOKABLE const QString qSlicerSubjectHierarchyFolderPlugin::roleForPlugin ( ) const
overridevirtual

Get role that the plugin assigns to the subject hierarchy item. Each plugin should provide only one role.

Reimplemented from qSlicerSubjectHierarchyAbstractPlugin.

◆ sceneContextMenuActions()

QList<QAction*> qSlicerSubjectHierarchyFolderPlugin::sceneContextMenuActions ( ) const
overridevirtual

Get scene context menu item actions to add to tree view Separate method is needed for the scene, as its actions are set to the tree by a different method

See also
itemContextMenuActions

Reimplemented from qSlicerSubjectHierarchyAbstractPlugin.

◆ setApplyColorToBranchEnabledForItem()

void qSlicerSubjectHierarchyFolderPlugin::setApplyColorToBranchEnabledForItem ( vtkIdType  itemID,
bool  enabled 
)
protected

Determine if apply color to branch option is enabled to a given item or not.

◆ setDisplayColor()

void qSlicerSubjectHierarchyFolderPlugin::setDisplayColor ( vtkIdType  itemID,
QColor  color,
QMap< int, QVariant >  terminologyMetaData 
)
overridevirtual

Set display color of an owned subject hierarchy item In case of folders only color is set but no terminology. The properties are not used directly, but only if applied to the branch (similarly to how it worked in model hierarchies).

Parameters
colorDisplay color to set
terminologyMetaDataMap containing terminology meta data. Not used in this plugin

Reimplemented from qSlicerSubjectHierarchyAbstractPlugin.

◆ setDisplayVisibility()

void qSlicerSubjectHierarchyFolderPlugin::setDisplayVisibility ( vtkIdType  itemID,
int  visible 
)
overridevirtual

Set display visibility of an owned subject hierarchy item.

Reimplemented from qSlicerSubjectHierarchyAbstractPlugin.

◆ showContextMenuActionsForItem()

void qSlicerSubjectHierarchyFolderPlugin::showContextMenuActionsForItem ( vtkIdType  itemID)
overridevirtual

Show context menu actions valid for a given subject hierarchy item.

Parameters
itemIDSubject Hierarchy item to show the context menu items for

Reimplemented from qSlicerSubjectHierarchyAbstractPlugin.

◆ showVisibilityContextMenuActionsForItem()

void qSlicerSubjectHierarchyFolderPlugin::showVisibilityContextMenuActionsForItem ( vtkIdType  itemID)
overridevirtual

Show visibility context menu actions valid for a given subject hierarchy item.

Parameters
itemIDSubject Hierarchy item to show the visibility context menu items for

Reimplemented from qSlicerSubjectHierarchyAbstractPlugin.

◆ visibilityContextMenuActions()

QList<QAction*> qSlicerSubjectHierarchyFolderPlugin::visibilityContextMenuActions ( ) const
overridevirtual

Get visibility context menu item actions to add to tree view. These item visibility context menu actions can be shown in the implementations of

See also
showVisibilityContextMenuActionsForItem

Reimplemented from qSlicerSubjectHierarchyAbstractPlugin.

◆ visibilityIcon()

QIcon qSlicerSubjectHierarchyFolderPlugin::visibilityIcon ( int  visible)
overridevirtual

Get visibility icon for a visibility state.

Reimplemented from qSlicerSubjectHierarchyAbstractPlugin.

Member Data Documentation

◆ d_ptr

QScopedPointer<qSlicerSubjectHierarchyFolderPluginPrivate> qSlicerSubjectHierarchyFolderPlugin::d_ptr
protected

Definition at line 174 of file qSlicerSubjectHierarchyFolderPlugin.h.


The documentation for this class was generated from the following file: