pqDataAssemblyTreeModel.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: ParaView
4  Module: pqDataAssemblyTreeModel.h
5 
6  Copyright (c) 2005,2006 Sandia Corporation, Kitware Inc.
7  All rights reserved.
8 
9  ParaView is a free software; you can redistribute it and/or modify it
10  under the terms of the ParaView license version 1.2.
11 
12  See License_v1.2.txt for the full ParaView license.
13  A copy of this license can be obtained by contacting
14  Kitware Inc.
15  28 Corporate Drive
16  Clifton Park, NY 12065
17  USA
18 
19 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR
23 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
26 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
27 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 
31 ========================================================================*/
32 #ifndef pqDataAssemblyTreeModel_h
33 #define pqDataAssemblyTreeModel_h
34 
35 #include "pqComponentsModule.h" // for exports
36 #include <QAbstractItemModel>
37 #include <QPair> // for QPair
38 #include <QScopedPointer> // for QScopedPointer.
39 
40 class vtkDataAssembly;
41 
56 class PQCOMPONENTS_EXPORT pqDataAssemblyTreeModel : public QAbstractItemModel
57 {
58  Q_OBJECT;
59  typedef QAbstractItemModel Superclass;
60 
61 public:
62  pqDataAssemblyTreeModel(QObject* parent = nullptr);
63  ~pqDataAssemblyTreeModel() override;
64 
68  void setDataAssembly(vtkDataAssembly* assembly);
69  vtkDataAssembly* dataAssembly() const;
70 
72 
75  void setUserCheckable(bool);
76  bool userCheckable() const { return this->UserCheckable; }
78 
80 
84  int nodeId(const QModelIndex& idx) const;
85  QList<int> nodeId(const QModelIndexList& idxes) const;
87 
89 
92  QModelIndex index(int nodeId) const;
93  QModelIndexList index(const QList<int>& nodeIds) const;
95 
97 
113  void setCheckedNodes(const QStringList& paths);
114  QStringList checkedNodes() const;
116 
122  static int GetIsDerivedRole(int role) { return -role; }
123 
136  {
140  };
141 
143 
147  void setRoleProperty(int role, RoleProperties property);
148  RoleProperties roleProperty(int role) const;
150 
152 
167  bool setData(const QList<QPair<QString, QVariant>>& values, int role);
168  QList<QPair<QString, QVariant>> data(int role) const;
170 
172 
175  int columnCount(const QModelIndex& parent = QModelIndex()) const override;
176  int rowCount(const QModelIndex& parent = QModelIndex()) const override;
177  QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const override;
178  QModelIndex parent(const QModelIndex& index = QModelIndex()) const override;
179  QVariant data(const QModelIndex& index, int role) const override;
180  Qt::ItemFlags flags(const QModelIndex& index) const override;
181  bool setData(const QModelIndex& index, const QVariant& value, int role) override;
183 Q_SIGNALS:
190  void modelDataChanged(int role);
191 
192 private:
193  void fireDataChanged(const QModelIndex& root, const QVector<int>& roles);
194 
195  Q_DISABLE_COPY(pqDataAssemblyTreeModel);
196 
197  class pqInternals;
198  QScopedPointer<pqInternals> Internals;
199 
200  bool UserCheckable;
201 };
202 
203 #endif
data
#define PQCOMPONENTS_EXPORT
static int GetIsDerivedRole(int role)
For custom roles, use this function to convert that role into a role that can be used in data() to ge...
bool userCheckable() const
Get whether the model is user-checkable.
RoleProperties
Supported role properties.
QAbstractItemModel implementation for vtkDataAssembly.
index