VTK  9.0.1
vtkQtTreeModelAdapter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkQtTreeModelAdapter.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 /*-------------------------------------------------------------------------
16  Copyright 2008 Sandia Corporation.
17  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
18  the U.S. Government retains certain rights in this software.
19 -------------------------------------------------------------------------*/
32 #ifndef vtkQtTreeModelAdapter_h
33 #define vtkQtTreeModelAdapter_h
34 
35 #include "vtkGUISupportQtModule.h" // For export macro
36 
38 #include "vtkType.h" // Needed for vtkIdType
39 #include <QHash> // Needed for the decoration map
40 #include <QVector> // Needed for the index map
41 
42 class vtkSelection;
43 class vtkTree;
45 
46 class QMimeData;
47 
48 class VTKGUISUPPORTQT_EXPORT vtkQtTreeModelAdapter : public vtkQtAbstractModelAdapter
49 {
50  Q_OBJECT
51 
52 public:
53  vtkQtTreeModelAdapter(QObject* parent = nullptr, vtkTree* tree = nullptr);
55 
57 
61  vtkDataObject* GetVTKDataObject() const override;
63 
73 
75 
78  vtkSelection* QModelIndexListToVTKIndexSelection(const QModelIndexList qmil) const override;
79  QItemSelection VTKIndexSelectionToQItemSelection(vtkSelection* vtksel) const override;
81 
82  void SetKeyColumnName(const char* name) override;
83 
84  void SetColorColumnName(const char* name) override;
85 
89  void setTree(vtkTree* t);
90  vtkTree* tree() const { return this->Tree; }
91 
92  QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
93  bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override;
94  Qt::ItemFlags flags(const QModelIndex& index) const override;
95  QVariant headerData(
96  int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
97  QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const override;
98  QModelIndex parent(const QModelIndex& index) const override;
99  int rowCount(const QModelIndex& parent = QModelIndex()) const override;
100  int columnCount(const QModelIndex& parent = QModelIndex()) const override;
101 
103 
108  Qt::DropActions supportedDragActions() const override;
109  QMimeData* mimeData(const QModelIndexList& indexes) const override;
110  QStringList mimeTypes() const override;
112 
113 protected:
114  void treeModified();
115  void GenerateVTKIndexToQtModelIndex(vtkIdType vtk_index, QModelIndex qmodel_index);
116 
120  QVector<QModelIndex> VTKIndexToQtModelIndex;
121  QHash<QModelIndex, QVariant> IndexToDecoration;
122 
123 private:
125  void operator=(const vtkQtTreeModelAdapter&) = delete;
126 };
127 
128 #endif
129 // VTK-HeaderTest-Exclude: vtkQtTreeModelAdapter.h
vtkQtTreeModelAdapter::index
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const override
vtkQtTreeModelAdapter::data
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
vtkQtTreeModelAdapter::treeModified
void treeModified()
vtkQtTreeModelAdapter::ChildIterator
vtkAdjacentVertexIterator * ChildIterator
Definition: vtkQtTreeModelAdapter.h:118
vtkX3D::value
@ value
Definition: vtkX3D.h:226
vtkQtTreeModelAdapter::SetKeyColumnName
void SetKeyColumnName(const char *name) override
vtkQtTreeModelAdapter::rowCount
int rowCount(const QModelIndex &parent=QModelIndex()) const override
vtkIdType
int vtkIdType
Definition: vtkType.h:338
vtkQtTreeModelAdapter::GetVTKDataObjectMTime
vtkMTimeType GetVTKDataObjectMTime() const
Get the stored VTK data object modification time of when the adaption to a Qt model was done.
vtkQtTreeModelAdapter::setData
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
vtkX3D::data
@ data
Definition: vtkX3D.h:321
vtkQtTreeModelAdapter::TreeMTime
vtkMTimeType TreeMTime
Definition: vtkQtTreeModelAdapter.h:119
vtkQtTreeModelAdapter::mimeTypes
QStringList mimeTypes() const override
vtkSelection
data object that represents a "selection" in VTK.
Definition: vtkSelection.h:58
vtkQtTreeModelAdapter::headerData
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
vtkQtTreeModelAdapter::VTKIndexSelectionToQItemSelection
QItemSelection VTKIndexSelectionToQItemSelection(vtkSelection *vtksel) const override
vtkQtTreeModelAdapter::GenerateVTKIndexToQtModelIndex
void GenerateVTKIndexToQtModelIndex(vtkIdType vtk_index, QModelIndex qmodel_index)
vtkQtTreeModelAdapter::columnCount
int columnCount(const QModelIndex &parent=QModelIndex()) const override
vtkQtTreeModelAdapter::flags
Qt::ItemFlags flags(const QModelIndex &index) const override
vtkQtAbstractModelAdapter.h
vtkQtTreeModelAdapter::VTKIndexToQtModelIndex
QVector< QModelIndex > VTKIndexToQtModelIndex
Definition: vtkQtTreeModelAdapter.h:120
vtkType.h
vtkTree
A rooted tree data structure.
Definition: vtkTree.h:55
vtkQtAbstractModelAdapter
Superclass for Qt model adapters.
Definition: vtkQtAbstractModelAdapter.h:46
vtkQtTreeModelAdapter::IndexToDecoration
QHash< QModelIndex, QVariant > IndexToDecoration
Definition: vtkQtTreeModelAdapter.h:121
vtkQtTreeModelAdapter::~vtkQtTreeModelAdapter
~vtkQtTreeModelAdapter() override
vtkQtTreeModelAdapter::parent
QModelIndex parent(const QModelIndex &index) const override
vtkX3D::name
@ name
Definition: vtkX3D.h:225
vtkAdjacentVertexIterator
Iterates through adjacent vertices in a graph.
Definition: vtkAdjacentVertexIterator.h:45
vtkQtTreeModelAdapter::GetVTKDataObject
vtkDataObject * GetVTKDataObject() const override
vtkQtTreeModelAdapter::tree
vtkTree * tree() const
Definition: vtkQtTreeModelAdapter.h:90
vtkQtTreeModelAdapter::vtkQtTreeModelAdapter
vtkQtTreeModelAdapter(QObject *parent=nullptr, vtkTree *tree=nullptr)
vtkQtTreeModelAdapter::mimeData
QMimeData * mimeData(const QModelIndexList &indexes) const override
vtkX3D::orientation
@ orientation
Definition: vtkX3D.h:268
vtkQtTreeModelAdapter::setTree
void setTree(vtkTree *t)
Set up the model based on the current tree.
vtkQtTreeModelAdapter::QModelIndexListToVTKIndexSelection
vtkSelection * QModelIndexListToVTKIndexSelection(const QModelIndexList qmil) const override
Selection conversion from VTK land to Qt land.
vtkQtTreeModelAdapter::SetColorColumnName
void SetColorColumnName(const char *name) override
vtkDataObject
general representation of visualization data
Definition: vtkDataObject.h:60
vtkX3D::index
@ index
Definition: vtkX3D.h:252
vtkQtTreeModelAdapter::Tree
vtkTree * Tree
Definition: vtkQtTreeModelAdapter.h:117
vtkQtTreeModelAdapter
Adapts a tree to a Qt item model.
Definition: vtkQtTreeModelAdapter.h:49
vtkMTimeType
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:293
vtkQtTreeModelAdapter::supportedDragActions
Qt::DropActions supportedDragActions() const override
If drag/drop is enabled in the view, the model will package up the current pedigreeid vtkSelection in...
vtkQtTreeModelAdapter::SetVTKDataObject
void SetVTKDataObject(vtkDataObject *data) override
Set/Get the VTK data object as input to this adapter.