VTK
vtkQtTableModelAdapter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkQtTableModelAdapter.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 vtkQtTableModelAdapter_h
36 #define vtkQtTableModelAdapter_h
37 
38 #include "vtkConfigure.h"
39 #include "vtkGUISupportQtModule.h" // For export macro
41 #include <QImage> // Needed for icon support
42 
43 class vtkSelection;
44 class vtkTable;
45 class vtkVariant;
46 
47 class QMimeData;
48 
49 class VTKGUISUPPORTQT_EXPORT vtkQtTableModelAdapter : public vtkQtAbstractModelAdapter
50 {
51  Q_OBJECT
52 
53 public:
54  vtkQtTableModelAdapter(QObject *parent = nullptr);
55  vtkQtTableModelAdapter(vtkTable* table, QObject *parent = nullptr);
57 
59 
63  vtkDataObject* GetVTKDataObject() const override;
65 
67 
71  const QModelIndexList qmil) const override;
73  vtkSelection *vtksel) const override;
75 
76  void SetKeyColumnName(const char* name) override;
77  void SetColorColumnName(const char* name) override;
78  void SetIconIndexColumnName(const char* name);
79 
80  enum
81  {
82  HEADER = 0,
83  ITEM = 1
84  };
85 
86  enum
87  {
88  COLORS = 0,
89  ICONS = 1,
90  NONE = 2
91  };
92 
97  void SetDecorationLocation(int s);
98 
104 
107 
109 
112  void setTable(vtkTable* table);
113  vtkTable* table() const { return this->Table; }
114  QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
115  bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;
116  Qt::ItemFlags flags(const QModelIndex &index) const override;
117  QVariant headerData(int section, Qt::Orientation orientation,
118  int role = Qt::DisplayRole) const override;
119  QModelIndex index(int row, int column,
120  const QModelIndex &parent = QModelIndex()) const override;
121  QModelIndex parent(const QModelIndex &index) const override;
122  int rowCount(const QModelIndex &parent = QModelIndex()) const override;
123  int columnCount(const QModelIndex &parent = QModelIndex()) const override;
125 
126  bool dropMimeData(const QMimeData * data, Qt::DropAction action, int row, int column, const QModelIndex & parent) override ;
127  QMimeData * mimeData ( const QModelIndexList & indexes ) const override;
128  QStringList mimeTypes () const override;
129  Qt::DropActions supportedDropActions() const override;
130 
131  void SetIconSheet(QImage sheet);
132  void SetIconSize(int w, int h);
133  void SetIconSheetSize(int w, int h);
134 
135 signals:
137 
138 private:
139 
140  void getValue(int row, int column, vtkVariant& retVal) const;
141  bool noTableCheck() const;
142  void updateModelColumnHashTables();
143  QVariant getColorIcon(int row) const;
144  QVariant getIcon(int row) const;
145 
146  bool SplitMultiComponentColumns;
147  vtkTable* Table;
148  int DecorationLocation;
149  int DecorationStrategy;
150  QImage IconSheet;
151  int IconSize[2];
152  int IconSheetSize[2];
153  int IconIndexColumn;
154 
155  class vtkInternal;
156  vtkInternal* Internal;
157 
159  void operator=(const vtkQtTableModelAdapter&) = delete;
160 };
161 
162 #endif
vtkQtTableModelAdapter::flags
Qt::ItemFlags flags(const QModelIndex &index) const override
vtkQtTableModelAdapter::setData
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
vtkQtTableModelAdapter::selectionDropped
void selectionDropped(vtkSelection *)
vtkQtTableModelAdapter::GetSplitMultiComponentColumns
bool GetSplitMultiComponentColumns() const
vtkQtTableModelAdapter::supportedDropActions
Qt::DropActions supportedDropActions() const override
vtkQtTableModelAdapter::SetColorColumnName
void SetColorColumnName(const char *name) override
vtkX3D::value
@ value
Definition: vtkX3D.h:220
vtkQtTableModelAdapter::SetDecorationStrategy
void SetDecorationStrategy(int s)
Specify how to color rows if colors are provided by SetColorColumnName().
vtkX3D::data
@ data
Definition: vtkX3D.h:315
vtkQtTableModelAdapter::vtkQtTableModelAdapter
vtkQtTableModelAdapter(QObject *parent=nullptr)
vtkTable
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:69
vtkQtTableModelAdapter::parent
QModelIndex parent(const QModelIndex &index) const override
vtkQtTableModelAdapter::GetVTKDataObject
vtkDataObject * GetVTKDataObject() const override
vtkQtTableModelAdapter::headerData
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
vtkSelection
data object that represents a "selection" in VTK.
Definition: vtkSelection.h:64
vtkQtTableModelAdapter::mimeTypes
QStringList mimeTypes() const override
vtkQtAbstractModelAdapter.h
vtkQtTableModelAdapter::VTKIndexSelectionToQItemSelection
QItemSelection VTKIndexSelectionToQItemSelection(vtkSelection *vtksel) const override
vtkQtTableModelAdapter::dropMimeData
bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
vtkQtTableModelAdapter::SetKeyColumnName
void SetKeyColumnName(const char *name) override
vtkQtTableModelAdapter::SetVTKDataObject
void SetVTKDataObject(vtkDataObject *data) override
Set/Get the VTK data object as input to this adapter.
vtkQtTableModelAdapter::~vtkQtTableModelAdapter
~vtkQtTableModelAdapter() override
vtkQtTableModelAdapter::columnCount
int columnCount(const QModelIndex &parent=QModelIndex()) const override
vtkQtAbstractModelAdapter
Superclass for Qt model adapters.
Definition: vtkQtAbstractModelAdapter.h:46
vtkVariant
A atomic type representing the union of many types.
Definition: vtkVariant.h:72
vtkQtTableModelAdapter::QModelIndexListToVTKIndexSelection
vtkSelection * QModelIndexListToVTKIndexSelection(const QModelIndexList qmil) const override
Selection conversion from VTK land to Qt land.
vtkQtTableModelAdapter::table
vtkTable * table() const
Definition: vtkQtTableModelAdapter.h:113
vtkQtTableModelAdapter::vtkQtTableModelAdapter
vtkQtTableModelAdapter(vtkTable *table, QObject *parent=nullptr)
vtkX3D::name
@ name
Definition: vtkX3D.h:219
vtkQtTableModelAdapter::setTable
void setTable(vtkTable *table)
Set up the model based on the current table.
vtkQtTableModelAdapter::rowCount
int rowCount(const QModelIndex &parent=QModelIndex()) const override
vtkX3D::orientation
@ orientation
Definition: vtkX3D.h:262
vtkQtTableModelAdapter::SetIconSheetSize
void SetIconSheetSize(int w, int h)
vtkQtTableModelAdapter::SetSplitMultiComponentColumns
void SetSplitMultiComponentColumns(bool value)
vtkQtTableModelAdapter
Adapts a table to a Qt item model.
Definition: vtkQtTableModelAdapter.h:50
vtkQtTableModelAdapter::SetDecorationLocation
void SetDecorationLocation(int s)
Specify how to color rows if colors are provided by SetColorColumnName().
vtkQtTableModelAdapter::data
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
vtkQtTableModelAdapter::SetIconSheet
void SetIconSheet(QImage sheet)
vtkDataObject
general representation of visualization data
Definition: vtkDataObject.h:65
vtkQtTableModelAdapter::SetIconSize
void SetIconSize(int w, int h)
vtkX3D::index
@ index
Definition: vtkX3D.h:246
vtkQtTableModelAdapter::SetIconIndexColumnName
void SetIconIndexColumnName(const char *name)
vtkQtTableModelAdapter::mimeData
QMimeData * mimeData(const QModelIndexList &indexes) const override
vtkQtTableModelAdapter::index
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const override
h