VTK  9.1.0
vtkQtTreeView.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkQtTreeView.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 vtkQtTreeView_h
33#define vtkQtTreeView_h
34
35#include "vtkQtView.h"
36#include "vtkViewsQtModule.h" // For export macro
37
38#include "vtkSmartPointer.h" // Needed for member variables
39#include <QList> // Needed for member variables
40#include <QPointer> // Needed for member variables
41
42class QAbstractItemDelegate;
43class QAbstractItemView;
45class QColumnView;
46class QItemSelection;
47class QModelIndex;
48class QTreeView;
49class vtkApplyColors;
50class QVBoxLayout;
52class QItemSelectionModel;
53
54class VTKVIEWSQT_EXPORT vtkQtTreeView : public vtkQtView
55{
56 Q_OBJECT
57
58Q_SIGNALS:
59 void expanded(const QModelIndex&);
60 void collapsed(const QModelIndex&);
61 void updatePreviewWidget(const QModelIndex&);
62
63public:
64 static vtkQtTreeView* New();
65 vtkTypeMacro(vtkQtTreeView, vtkQtView);
66 void PrintSelf(ostream& os, vtkIndent indent) override;
67
74 QWidget* GetWidget() override;
75
79 void SetShowHeaders(bool);
80
85
90
94 void SetShowRootNode(bool);
95
99 void HideColumn(int i);
100
104 void ShowColumn(int i);
105
110
114 void SetFilterColumn(int i);
115
119#if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
120 void SetFilterRegExp(const QRegularExpression& pattern);
121#else
122 void SetFilterRegExp(const QRegExp& pattern);
123#endif
124
128 void SetFilterTreeLevel(int level);
129
133 void Collapse(const QModelIndex& index);
134
139
143 void Expand(const QModelIndex& index);
144
150 void ExpandAll();
151
155 void ExpandToDepth(int depth);
156
160 void ResizeColumnToContents(int column);
161
165 void SetUseColumnView(int state);
166
170 void Update() override;
171
175 void SetItemDelegate(QAbstractItemDelegate* delegate);
176
178
181 void SetColorArrayName(const char* name);
182 const char* GetColorArrayName();
184
186
189 void SetColorByArray(bool vis);
191 vtkBooleanMacro(ColorByArray, bool);
193
194 void ApplyViewTheme(vtkViewTheme* theme) override;
195
196protected:
198 ~vtkQtTreeView() override;
199
202
203private Q_SLOTS:
204 void slotQtSelectionChanged(const QItemSelection&, const QItemSelection&);
205
206private:
207 void SetVTKSelection();
208 vtkMTimeType CurrentSelectionMTime;
209 vtkMTimeType LastInputMTime;
210
211 vtkSetStringMacro(ColorArrayNameInternal);
212 vtkGetStringMacro(ColorArrayNameInternal);
213
214 QPointer<QTreeView> TreeView;
215 QPointer<QColumnView> ColumnView;
216 QPointer<QWidget> Widget;
217 QPointer<QVBoxLayout> Layout;
218 QPointer<QItemSelectionModel> SelectionModel;
219 QList<int> HiddenColumns;
220 vtkQtTreeModelAdapter* TreeAdapter;
221 QAbstractItemView* View;
222 char* ColorArrayNameInternal;
223 QFilterTreeProxyModel* TreeFilter;
224
226
227 vtkQtTreeView(const vtkQtTreeView&) = delete;
228 void operator=(const vtkQtTreeView&) = delete;
229};
230
231#endif
apply colors to a data set.
The superclass for all representations.
a simple class to control print indentation
Definition: vtkIndent.h:113
Adapts a tree to a Qt item model.
A VTK view based on a Qt tree view.
Definition: vtkQtTreeView.h:55
static vtkQtTreeView * New()
void SetFilterTreeLevel(int level)
The column used to filter on.
void SetShowRootNode(bool)
Show the root node of the tree (default is OFF)
void SetColorByArray(bool vis)
Whether to color vertices.
void ApplyViewTheme(vtkViewTheme *theme) override
void SetUseColumnView(int state)
Set whether to use a QColumnView (QTreeView is the default)
void SetFilterRegExp(const QRegularExpression &pattern)
The column used to filter on.
void ExpandToDepth(int depth)
Expands all expandable items to the given depth.
void SetColorArrayName(const char *name)
The array to use for coloring items in view.
void RemoveRepresentationInternal(vtkDataRepresentation *rep) override
void Collapse(const QModelIndex &index)
Collapses the model item specified by the index.
void AddRepresentationInternal(vtkDataRepresentation *rep) override
void SetFilterColumn(int i)
The column used to filter on.
bool GetColorByArray()
Whether to color vertices.
const char * GetColorArrayName()
The array to use for coloring items in view.
void updatePreviewWidget(const QModelIndex &)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void CollapseAll()
Collapses all expanded items.
void HideAllButFirstColumn()
Hide all but the first column in the view.
QWidget * GetWidget() override
Get the main container of this view (a QWidget).
void Expand(const QModelIndex &index)
Expands the model item specified by the index.
~vtkQtTreeView() override
void collapsed(const QModelIndex &)
void SetEnableDragDrop(bool)
Have the view alternate its row colors (default is OFF)
void ResizeColumnToContents(int column)
Resizes the column given to the size of its contents.
void ShowColumn(int i)
Show the column of the given index in the view.
void SetShowHeaders(bool)
Have the view show/hide its column headers (default is ON)
void SetItemDelegate(QAbstractItemDelegate *delegate)
Set item delegate to something custom.
void HideColumn(int i)
Hide the column of the given index from being shown in the view.
void SetAlternatingRowColors(bool)
Have the view alternate its row colors (default is OFF)
void ExpandAll()
Expands all expandable items.
void expanded(const QModelIndex &)
void Update() override
Updates the view.
Superclass for Qt widget-based views.
Definition: vtkQtView.h:34
Hold a reference to a vtkObjectBase instance.
Sets theme colors for a graphical view.
Definition: vtkViewTheme.h:132
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287