VTK  9.0.1
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 
42 class QAbstractItemDelegate;
43 class QAbstractItemView;
45 class QColumnView;
46 class QItemSelection;
47 class QModelIndex;
48 class QTreeView;
49 class vtkApplyColors;
50 class QVBoxLayout;
52 class QItemSelectionModel;
53 
54 class VTKVIEWSQT_EXPORT vtkQtTreeView : public vtkQtView
55 {
56  Q_OBJECT
57 
58 signals:
59  void expanded(const QModelIndex&);
60  void collapsed(const QModelIndex&);
61  void updatePreviewWidget(const QModelIndex&);
62 
63 public:
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 
89  void SetEnableDragDrop(bool);
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  void SetFilterRegExp(const QRegExp& pattern);
120 
125 
129  void Collapse(const QModelIndex& index);
130 
134  void CollapseAll();
135 
139  void Expand(const QModelIndex& index);
140 
146  void ExpandAll();
147 
151  void ExpandToDepth(int depth);
152 
156  void ResizeColumnToContents(int column);
157 
161  void SetUseColumnView(int state);
162 
166  void Update() override;
167 
171  void SetItemDelegate(QAbstractItemDelegate* delegate);
172 
174 
177  void SetColorArrayName(const char* name);
178  const char* GetColorArrayName();
180 
182 
185  void SetColorByArray(bool vis);
187  vtkBooleanMacro(ColorByArray, bool);
189 
190  void ApplyViewTheme(vtkViewTheme* theme) override;
191 
192 protected:
194  ~vtkQtTreeView() override;
195 
198 
199 private slots:
200  void slotQtSelectionChanged(const QItemSelection&, const QItemSelection&);
201 
202 private:
203  void SetVTKSelection();
204  vtkMTimeType CurrentSelectionMTime;
205  vtkMTimeType LastInputMTime;
206 
207  vtkSetStringMacro(ColorArrayNameInternal);
208  vtkGetStringMacro(ColorArrayNameInternal);
209 
210  QPointer<QTreeView> TreeView;
211  QPointer<QColumnView> ColumnView;
212  QPointer<QWidget> Widget;
213  QPointer<QVBoxLayout> Layout;
214  QPointer<QItemSelectionModel> SelectionModel;
215  QList<int> HiddenColumns;
216  vtkQtTreeModelAdapter* TreeAdapter;
217  QAbstractItemView* View;
218  char* ColorArrayNameInternal;
219  QFilterTreeProxyModel* TreeFilter;
220 
222 
223  vtkQtTreeView(const vtkQtTreeView&) = delete;
224  void operator=(const vtkQtTreeView&) = delete;
225 };
226 
227 #endif
apply colors to a data set.
The superclass for all representations.
a simple class to control print indentation
Definition: vtkIndent.h:34
Adapts a tree to a Qt item model.
A VTK view based on a Qt tree view.
Definition: vtkQtTreeView.h:55
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 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()
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.
static vtkQtTreeView * New()
void Expand(const QModelIndex &index)
Expands the model item specified by the index.
~vtkQtTreeView() override
void collapsed(const QModelIndex &)
QWidget * GetWidget() override
Get the main container of this view (a QWidget).
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)
const char * GetColorArrayName()
void ExpandAll()
Expands all expandable items.
void SetFilterRegExp(const QRegExp &pattern)
The column used to filter on.
void expanded(const QModelIndex &)
void Update() override
Updates the view.
Superclass for Qt widget-based views.
Definition: vtkQtView.h:34
Sets theme colors for a graphical view.
Definition: vtkViewTheme.h:43
@ level
Definition: vtkX3D.h:401
@ name
Definition: vtkX3D.h:225
@ index
Definition: vtkX3D.h:252
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:293