MITK-IGT
IGT Extension of MITK
Loading...
Searching...
No Matches
QmitkUSZonesDataModel.h
Go to the documentation of this file.
1/*============================================================================
2
3The Medical Imaging Interaction Toolkit (MITK)
4
5Copyright (c) German Cancer Research Center (DKFZ)
6All rights reserved.
7
8Use of this source code is governed by a 3-clause BSD license that can be
9found in the LICENSE file.
10
11============================================================================*/
12
13#ifndef QmitkUSZonesDataModel_h
14#define QmitkUSZonesDataModel_h
15
16#include <mitkCommon.h>
17#include <mitkDataNode.h>
18#include <mitkDataStorage.h>
19#include <mitkNumericTypes.h>
20
21#include <QAbstractTableModel>
22
28class QmitkUSZonesDataModel : public QAbstractTableModel
29{
30 Q_OBJECT
31
32public:
33 typedef std::vector<mitk::DataNode::Pointer> DataNodeVector;
34
35 explicit QmitkUSZonesDataModel(QObject *parent = nullptr);
36 ~QmitkUSZonesDataModel() override;
37
46 void SetDataStorage(mitk::DataStorage::Pointer dataStorage, mitk::DataNode::Pointer baseNode);
47
48 void AddNode(const mitk::DataNode*);
49 void RemoveNode(const mitk::DataNode*);
50 void ChangeNode(const mitk::DataNode*);
51
53 int rowCount ( const QModelIndex & parent = QModelIndex() ) const override;
54
56 int columnCount ( const QModelIndex & parent = QModelIndex() ) const override;
57
59 QVariant headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const override;
60
62 Qt::ItemFlags flags ( const QModelIndex & index ) const override;
63
65 QVariant data ( const QModelIndex & index, int role = Qt::DisplayRole ) const override;
66
68 bool setData ( const QModelIndex & index, const QVariant & value, int role = Qt::EditRole ) override;
69
71 bool insertRows ( int row, int count, const QModelIndex& parent = QModelIndex() ) override;
72
74 bool removeRows ( int row, int count, const QModelIndex& parent = QModelIndex() ) override;
75
79 virtual bool removeRows ( int row, int count, const QModelIndex& parent, bool removeFromDataStorage );
80
81protected:
83
84 mitk::DataStorage::Pointer m_DataStorage;
85 mitk::DataNode::Pointer m_BaseNode;
86
87private:
88 mitk::MessageDelegate1<QmitkUSZonesDataModel, const mitk::DataNode*> m_ListenerAddNode;
89 mitk::MessageDelegate1<QmitkUSZonesDataModel, const mitk::DataNode*> m_ListenerChangeNode;
90 mitk::MessageDelegate1<QmitkUSZonesDataModel, const mitk::DataNode*> m_ListenerRemoveNode;
91};
92
93#endif
Implementation of the QAbstractTableModel for ultrasound risk zones. This class manages the data mode...
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
Return names for the columns, numbers for the rows and invalid for DisplayRole.
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
Return model data of the selected cell.
int columnCount(const QModelIndex &parent=QModelIndex()) const override
Return number of columns (3) of the model.
mitk::DataStorage::Pointer m_DataStorage
void SetDataStorage(mitk::DataStorage::Pointer dataStorage, mitk::DataNode::Pointer baseNode)
Set data storage and base node for the zone nodes of this model. The node event listeners will only r...
bool removeRows(int row, int count, const QModelIndex &parent=QModelIndex()) override
Remove given rows from the model.
QmitkUSZonesDataModel(QObject *parent=nullptr)
void RemoveNode(const mitk::DataNode *)
Qt::ItemFlags flags(const QModelIndex &index) const override
Return selectable and enabled for column 1 (size); selectable, enabled and editable for every other c...
void AddNode(const mitk::DataNode *)
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
Set model data for the selected cell.
std::vector< mitk::DataNode::Pointer > DataNodeVector
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Return number of rows of the model.
bool insertRows(int row, int count, const QModelIndex &parent=QModelIndex()) override
Insert empty rows into the model (creates zone nodes).
mitk::DataNode::Pointer m_BaseNode
void ChangeNode(const mitk::DataNode *)