Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
QmitkBoundingObjectWidget.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef QmitkBoundingObjectWidget_h
14 #define QmitkBoundingObjectWidget_h
15 
16 // includes
18 #include <QComboBox>
19 #include <QPushButton>
20 #include <QTreeWidget>
21 #include <mitkBoundingObject.h>
23 #include <mitkDataNode.h>
24 #include <mitkDataStorage.h>
25 #include <QWidget>
26 
40 {
41  Q_OBJECT
42 
43 public:
49  QmitkBoundingObjectWidget(QWidget *parent = nullptr, Qt::WindowFlags f = {});
50 
53 
58  void SetDataStorage(mitk::DataStorage *dataStorage);
59 
65 
70  mitk::BoundingObject::Pointer GetSelectedBoundingObject();
71 
76  mitk::DataNode::Pointer GetSelectedBoundingObjectNode();
77 
86  mitk::DataNode::Pointer GetAllBoundingObjects();
87 
92  void setEnabled(bool flag);
93 
98  void OnBoundingObjectModified(const itk::EventObject &e);
99 
102 
103 signals:
106 
107 protected slots:
108  void CreateBoundingObject(int type);
111  void OnItemDoubleClicked(QTreeWidgetItem *item, int col);
112  void OnItemDataChanged(QTreeWidgetItem *item, int col);
113 
114 protected:
115  void AddItem(mitk::DataNode *node);
116  void RemoveItem();
117 
119  QTreeWidget *m_TreeWidget;
120  QComboBox *m_addComboBox;
121  QPushButton *m_DelButton;
122  QPushButton *m_SaveButton;
123  QPushButton *m_LoadButton;
124  QTreeWidgetItem *m_lastSelectedItem;
125  unsigned long m_lastAffineObserver;
126 
127  typedef std::map<QTreeWidgetItem *, mitk::DataNode *> ItemNodeMapType;
129 
131 
133  {
138  };
139 };
140 #endif
#define MITKQTWIDGETSEXT_EXPORT
Widget for creating, managing, and selecting bounding objects.
mitk::BoundingObject::Pointer GetSelectedBoundingObject()
Get the currently selected bounding object.
void setEnabled(bool flag)
Enable or disable the widget and toggle bounding object visibility.
void CreateBoundingObject(int type)
void AddItem(mitk::DataNode *node)
QmitkBoundingObjectWidget(QWidget *parent=nullptr, Qt::WindowFlags f={})
Construct the bounding object widget.
void RemoveAllItems()
Remove all bounding object items from the list and reset the counter.
mitk::DataStorage * GetDataStorage()
Get the currently assigned data storage.
void OnBoundingObjectModified(const itk::EventObject &e)
ITK observer callback for bounding object modification events.
~QmitkBoundingObjectWidget() override
Destructor.
void BoundingObjectsChanged()
Emitted when bounding objects are added, removed, or modified.
void SetDataStorage(mitk::DataStorage *dataStorage)
Set the data storage used to store bounding object nodes.
mitk::DataNode::Pointer GetSelectedBoundingObjectNode()
Get the data node of the currently selected bounding object.
void OnItemDataChanged(QTreeWidgetItem *item, int col)
void OnItemDoubleClicked(QTreeWidgetItem *item, int col)
std::map< QTreeWidgetItem *, mitk::DataNode * > ItemNodeMapType
mitk::DataNode::Pointer GetAllBoundingObjects()
Get a data node containing a BoundingObjectGroup with all bounding objects.
Central node class of the MITK data tree, associating a data object with properties and mappers.
Definition: mitkDataNode.h:72
Abstract data management class that organizes DataNode objects in a directed acyclic graph.