Medical Imaging Interaction Toolkit  2025.12.02
Medical Imaging Interaction Toolkit
QmitkFlatLabelInstanceProxyModel.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 
14 #ifndef QmitkFlatLabelInstanceProxyModel_h
15 #define QmitkFlatLabelInstanceProxyModel_h
16 
17 #include <QAbstractProxyModel>
18 #include <QVector>
19 #include <QModelIndex>
20 
27 class QmitkFlatLabelInstanceProxyModel : public QAbstractProxyModel
28 {
29  Q_OBJECT
30 
31 public:
32  explicit QmitkFlatLabelInstanceProxyModel(QObject* parent = nullptr);
33 
34  // QAbstractItemModel interface
35  QModelIndex mapToSource(const QModelIndex& proxyIndex) const override;
36  QModelIndex mapFromSource(const QModelIndex& sourceIndex) const override;
37 
38  QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const override;
39  QModelIndex parent(const QModelIndex& child) const override;
40 
41  int rowCount(const QModelIndex& parent = QModelIndex()) const override;
42  int columnCount(const QModelIndex& parent = QModelIndex()) const override;
43 
44  QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
45 
46  void setSourceModel(QAbstractItemModel* sourceModel) override;
47 
48 public slots:
51 
52 private slots:
53  void OnSourceModelReset();
54  void OnSourceDataChanged();
55 
56 private:
57  void CollectAcceptedIndexes(const QModelIndex& parent);
58 
59 private:
60  QVector<QPersistentModelIndex> m_SourceIndexes;
61 };
62 
63 #endif
A proxy model that flattens a hierarchical content of a QmitkMultiLabelTreeModel instance into a simp...
QmitkFlatLabelInstanceProxyModel(QObject *parent=nullptr)
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const override
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
QModelIndex parent(const QModelIndex &child) const override
void setSourceModel(QAbstractItemModel *sourceModel) override
QModelIndex mapToSource(const QModelIndex &proxyIndex) const override
void RebuildMapping()
Rebuilds the internal mapping from source indices to flat indices.
QModelIndex mapFromSource(const QModelIndex &sourceIndex) const override
int rowCount(const QModelIndex &parent=QModelIndex()) const override
int columnCount(const QModelIndex &parent=QModelIndex()) const override