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 = 0);
55  vtkQtTableModelAdapter(vtkTable* table, QObject *parent = 0);
57 
59 
63  virtual vtkDataObject* GetVTKDataObject() const;
65 
67 
71  const QModelIndexList qmil) const;
72  virtual QItemSelection VTKIndexSelectionToQItemSelection(
73  vtkSelection *vtksel) const;
75 
76  virtual void SetKeyColumnName(const char* name);
77  virtual void SetColorColumnName(const char* name);
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;
115  bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
116  Qt::ItemFlags flags(const QModelIndex &index) const;
117  QVariant headerData(int section, Qt::Orientation orientation,
118  int role = Qt::DisplayRole) const;
119  QModelIndex index(int row, int column,
120  const QModelIndex &parent = QModelIndex()) const;
121  QModelIndex parent(const QModelIndex &index) const;
122  int rowCount(const QModelIndex &parent = QModelIndex()) const;
123  int columnCount(const QModelIndex &parent = QModelIndex()) const;
125 
126  virtual bool dropMimeData(const QMimeData * data, Qt::DropAction action, int row, int column, const QModelIndex & parent) ;
127  virtual QMimeData * mimeData ( const QModelIndexList & indexes ) const;
128  virtual QStringList mimeTypes () const ;
129  Qt::DropActions supportedDropActions() const;
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 
158  vtkQtTableModelAdapter(const vtkQtTableModelAdapter &) VTK_DELETE_FUNCTION;
159  void operator=(const vtkQtTableModelAdapter&) VTK_DELETE_FUNCTION;
160 };
161 
162 #endif
vtkQtTableModelAdapter::mimeTypes
virtual QStringList mimeTypes() const
vtkQtTableModelAdapter::selectionDropped
void selectionDropped(vtkSelection *)
vtkQtTableModelAdapter::GetSplitMultiComponentColumns
bool GetSplitMultiComponentColumns() const
vtkQtTableModelAdapter::SetColorColumnName
virtual void SetColorColumnName(const char *name)
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
vtkTable
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:69
vtkQtTableModelAdapter::supportedDropActions
Qt::DropActions supportedDropActions() const
vtkQtTableModelAdapter::mimeData
virtual QMimeData * mimeData(const QModelIndexList &indexes) const
vtkSelection
A node in a selection tree.
Definition: vtkSelection.h:44
vtkQtTableModelAdapter::~vtkQtTableModelAdapter
~vtkQtTableModelAdapter()
vtkQtAbstractModelAdapter.h
vtkQtTableModelAdapter::setData
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)
vtkQtTableModelAdapter::vtkQtTableModelAdapter
vtkQtTableModelAdapter(QObject *parent=0)
vtkQtTableModelAdapter::parent
QModelIndex parent(const QModelIndex &index) const
vtkQtTableModelAdapter::headerData
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const
vtkQtTableModelAdapter::GetVTKDataObject
virtual vtkDataObject * GetVTKDataObject() const
vtkQtAbstractModelAdapter
Superclass for Qt model adapters.
Definition: vtkQtAbstractModelAdapter.h:46
vtkVariant
A atomic type representing the union of many types.
Definition: vtkVariant.h:76
vtkQtTableModelAdapter::columnCount
int columnCount(const QModelIndex &parent=QModelIndex()) const
vtkQtTableModelAdapter::dropMimeData
virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)
vtkQtTableModelAdapter::table
vtkTable * table() const
Definition: vtkQtTableModelAdapter.h:113
vtkX3D::name
@ name
Definition: vtkX3D.h:219
vtkQtTableModelAdapter::rowCount
int rowCount(const QModelIndex &parent=QModelIndex()) const
vtkQtTableModelAdapter::setTable
void setTable(vtkTable *table)
Set up the model based on the current table.
vtkQtTableModelAdapter::index
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const
vtkQtTableModelAdapter::flags
Qt::ItemFlags flags(const QModelIndex &index) const
vtkX3D::orientation
@ orientation
Definition: vtkX3D.h:262
vtkQtTableModelAdapter::SetVTKDataObject
virtual void SetVTKDataObject(vtkDataObject *data)
Set/Get the VTK data object as input to this adapter.
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::QModelIndexListToVTKIndexSelection
virtual vtkSelection * QModelIndexListToVTKIndexSelection(const QModelIndexList qmil) const
Selection conversion from VTK land to Qt land.
vtkQtTableModelAdapter::VTKIndexSelectionToQItemSelection
virtual QItemSelection VTKIndexSelectionToQItemSelection(vtkSelection *vtksel) const
vtkQtTableModelAdapter::SetDecorationLocation
void SetDecorationLocation(int s)
Specify how to color rows if colors are provided by SetColorColumnName().
vtkQtTableModelAdapter::SetIconSheet
void SetIconSheet(QImage sheet)
vtkDataObject
general representation of visualization data
Definition: vtkDataObject.h:65
vtkQtTableModelAdapter::vtkQtTableModelAdapter
vtkQtTableModelAdapter(vtkTable *table, QObject *parent=0)
vtkQtTableModelAdapter::SetIconSize
void SetIconSize(int w, int h)
vtkX3D::index
@ index
Definition: vtkX3D.h:246
vtkQtTableModelAdapter::SetIconIndexColumnName
void SetIconIndexColumnName(const char *name)
vtkQtTableModelAdapter::SetKeyColumnName
virtual void SetKeyColumnName(const char *name)
vtkQtTableModelAdapter::data
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const