VTK
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 -------------------------------------------------------------------------*/
35 #ifndef vtkQtTreeModelAdapter_h
36 #define vtkQtTreeModelAdapter_h
37 
38 #include "vtkGUISupportQtModule.h" // For export macro
39 
41 #include <QHash> // Needed for the decoration map
42 #include <QVector> // Needed for the index map
43 #include "vtkType.h" // Needed for vtkIdType
44 
45 class vtkSelection;
46 class vtkTree;
48 
49 class QMimeData;
50 
51 class VTKGUISUPPORTQT_EXPORT vtkQtTreeModelAdapter : public vtkQtAbstractModelAdapter
52 {
53  Q_OBJECT
54 
55 public:
56  vtkQtTreeModelAdapter(QObject *parent = nullptr, vtkTree* tree = nullptr);
58 
60 
64  vtkDataObject* GetVTKDataObject() const override;
66 
76 
78 
82  const QModelIndexList qmil) const override;
84  vtkSelection *vtksel) const override;
86 
87  void SetKeyColumnName(const char* name) override;
88 
89  void SetColorColumnName(const char* name) override;
90 
94  void setTree(vtkTree* t);
95  vtkTree* tree() const { return this->Tree; }
96 
97  QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
98  bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;
99  Qt::ItemFlags flags(const QModelIndex &index) const override;
100  QVariant headerData(int section, Qt::Orientation orientation,
101  int role = Qt::DisplayRole) const override;
102  QModelIndex index(int row, int column,
103  const QModelIndex &parent = QModelIndex()) const override;
104  QModelIndex parent(const QModelIndex &index) const override;
105  int rowCount(const QModelIndex &parent = QModelIndex()) const override;
106  int columnCount(const QModelIndex &parent = QModelIndex()) const override;
107 
109 
114  Qt::DropActions supportedDragActions() const override;
115  QMimeData * mimeData ( const QModelIndexList & indexes ) const override;
116  QStringList mimeTypes () const override;
118 
119 protected:
120  void treeModified();
121  void GenerateVTKIndexToQtModelIndex(vtkIdType vtk_index, QModelIndex qmodel_index);
122 
126  QVector<QModelIndex> VTKIndexToQtModelIndex;
127  QHash<QModelIndex, QVariant> IndexToDecoration;
128 
129 private:
131  void operator=(const vtkQtTreeModelAdapter&) = delete;
132 };
133 
134 #endif
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:124
vtkX3D::value
@ value
Definition: vtkX3D.h:220
vtkQtTreeModelAdapter::SetKeyColumnName
void SetKeyColumnName(const char *name) override
vtkQtTreeModelAdapter::rowCount
int rowCount(const QModelIndex &parent=QModelIndex()) const override
vtkIdType
int vtkIdType
Definition: vtkType.h:347
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:315
vtkQtTreeModelAdapter::TreeMTime
vtkMTimeType TreeMTime
Definition: vtkQtTreeModelAdapter.h:125
vtkQtTreeModelAdapter::mimeTypes
QStringList mimeTypes() const override
vtkSelection
data object that represents a "selection" in VTK.
Definition: vtkSelection.h:64
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:126
vtkType.h
vtkTree
A rooted tree data structure.
Definition: vtkTree.h:61
vtkQtAbstractModelAdapter
Superclass for Qt model adapters.
Definition: vtkQtAbstractModelAdapter.h:46
vtkQtTreeModelAdapter::IndexToDecoration
QHash< QModelIndex, QVariant > IndexToDecoration
Definition: vtkQtTreeModelAdapter.h:127
vtkQtTreeModelAdapter::~vtkQtTreeModelAdapter
~vtkQtTreeModelAdapter() override
vtkQtTreeModelAdapter::parent
QModelIndex parent(const QModelIndex &index) const override
vtkX3D::name
@ name
Definition: vtkX3D.h:219
vtkAdjacentVertexIterator
Iterates through adjacent vertices in a graph.
Definition: vtkAdjacentVertexIterator.h:48
vtkQtTreeModelAdapter::GetVTKDataObject
vtkDataObject * GetVTKDataObject() const override
vtkQtTreeModelAdapter::tree
vtkTree * tree() const
Definition: vtkQtTreeModelAdapter.h:95
vtkQtTreeModelAdapter::vtkQtTreeModelAdapter
vtkQtTreeModelAdapter(QObject *parent=nullptr, vtkTree *tree=nullptr)
vtkQtTreeModelAdapter::mimeData
QMimeData * mimeData(const QModelIndexList &indexes) const override
vtkX3D::orientation
@ orientation
Definition: vtkX3D.h:262
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:65
vtkX3D::index
@ index
Definition: vtkX3D.h:246
vtkQtTreeModelAdapter::Tree
vtkTree * Tree
Definition: vtkQtTreeModelAdapter.h:123
vtkQtTreeModelAdapter
Adapts a tree to a Qt item model.
Definition: vtkQtTreeModelAdapter.h:52
vtkMTimeType
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:302
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.