VTK  9.3.1
vtkQtTreeView.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-FileCopyrightText: Copyright 2008 Sandia Corporation
3 // SPDX-License-Identifier: LicenseRef-BSD-3-Clause-Sandia-USGov
19 #ifndef vtkQtTreeView_h
20 #define vtkQtTreeView_h
21 
22 #include "vtkQtView.h"
23 #include "vtkViewsQtModule.h" // For export macro
24 
25 #include "vtkSmartPointer.h" // Needed for member variables
26 #include <QList> // Needed for member variables
27 #include <QPointer> // Needed for member variables
28 
29 class QAbstractItemDelegate;
30 class QAbstractItemView;
31 class QColumnView;
32 class QItemSelection;
33 class QModelIndex;
34 class QTreeView;
35 class QItemSelectionModel;
36 class QVBoxLayout;
37 
38 VTK_ABI_NAMESPACE_BEGIN
40 class vtkApplyColors;
42 
43 class VTKVIEWSQT_EXPORT vtkQtTreeView : public vtkQtView
44 {
45  Q_OBJECT
46 
47 Q_SIGNALS:
48  void expanded(const QModelIndex&);
49  void collapsed(const QModelIndex&);
50  void updatePreviewWidget(const QModelIndex&);
51 
52 public:
53  static vtkQtTreeView* New();
54  vtkTypeMacro(vtkQtTreeView, vtkQtView);
55  void PrintSelf(ostream& os, vtkIndent indent) override;
56 
63  QWidget* GetWidget() override;
64 
68  void SetShowHeaders(bool);
69 
73  void SetAlternatingRowColors(bool);
74 
78  void SetEnableDragDrop(bool);
79 
83  void SetShowRootNode(bool);
84 
88  void HideColumn(int i);
89 
93  void ShowColumn(int i);
94 
98  void HideAllButFirstColumn();
99 
103  void SetFilterColumn(int i);
104 
108 #if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
109  void SetFilterRegExp(const QRegularExpression& pattern);
110 #else
111  void SetFilterRegExp(const QRegExp& pattern);
112 #endif
113 
117  void SetFilterTreeLevel(int level);
118 
122  void Collapse(const QModelIndex& index);
123 
127  void CollapseAll();
128 
132  void Expand(const QModelIndex& index);
133 
139  void ExpandAll();
140 
144  void ExpandToDepth(int depth);
145 
149  void ResizeColumnToContents(int column);
150 
154  void SetUseColumnView(int state);
155 
159  void Update() override;
160 
164  void SetItemDelegate(QAbstractItemDelegate* delegate);
165 
167 
170  void SetColorArrayName(const char* name);
171  const char* GetColorArrayName();
173 
175 
178  void SetColorByArray(bool vis);
179  bool GetColorByArray();
180  vtkBooleanMacro(ColorByArray, bool);
182 
183  void ApplyViewTheme(vtkViewTheme* theme) override;
184 
185 protected:
186  vtkQtTreeView();
187  ~vtkQtTreeView() override;
188 
191 
192 private Q_SLOTS:
193  void slotQtSelectionChanged(const QItemSelection&, const QItemSelection&);
194 
195 private: // NOLINT(readability-redundant-access-specifiers)
196  void SetVTKSelection();
197  vtkMTimeType CurrentSelectionMTime;
198  vtkMTimeType LastInputMTime;
199 
200  vtkSetStringMacro(ColorArrayNameInternal);
201  vtkGetStringMacro(ColorArrayNameInternal);
202 
203  QPointer<QTreeView> TreeView;
204  QPointer<QColumnView> ColumnView;
205  QPointer<QWidget> Widget;
206  QPointer<QVBoxLayout> Layout;
207  QPointer<QItemSelectionModel> SelectionModel;
208  QList<int> HiddenColumns;
209  vtkQtTreeModelAdapter* TreeAdapter;
210  QAbstractItemView* View;
211  char* ColorArrayNameInternal;
212  QFilterTreeProxyModel* TreeFilter;
213 
215 
216  vtkQtTreeView(const vtkQtTreeView&) = delete;
217  void operator=(const vtkQtTreeView&) = delete;
218 };
219 
220 VTK_ABI_NAMESPACE_END
221 #endif
virtual void ApplyViewTheme(vtkViewTheme *vtkNotUsed(theme))
Apply a theme to the view.
Definition: vtkView.h:141
static vtkView * New()
Adapts a tree to a Qt item model.
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:270
virtual void Update()
Update the view.
virtual QWidget * GetWidget()=0
Get the main container of this view (a QWidget).
virtual void AddRepresentationInternal(vtkDataRepresentation *vtkNotUsed(rep))
Subclass "hooks" for notifying subclasses of vtkView when representations are added or removed...
Definition: vtkView.h:219
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Sets theme colors for a graphical view.
Definition: vtkViewTheme.h:33
a simple class to control print indentation
Definition: vtkIndent.h:28
The superclass for all representations.
apply colors to a data set.
Superclass for Qt widget-based views.
Definition: vtkQtView.h:24
virtual void RemoveRepresentationInternal(vtkDataRepresentation *vtkNotUsed(rep))
Meant for use by subclasses and vtkRepresentation subclasses.
Definition: vtkView.h:220
A VTK view based on a Qt tree view.
Definition: vtkQtTreeView.h:43