00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00034 #ifndef __vtkQtTreeView_h
00035 #define __vtkQtTreeView_h
00036
00037 #include "QVTKWin32Header.h"
00038 #include "vtkQtView.h"
00039
00040 #include <QList>
00041 #include <QPointer>
00042 #include "vtkQtAbstractModelAdapter.h"
00043 #include "vtkSmartPointer.h"
00044 #include "QFilterTreeProxyModel.h"
00045
00046 class QAbstractItemDelegate;
00047 class QAbstractItemView;
00048 class QColumnView;
00049 class QItemSelection;
00050 class QTreeView;
00051 class vtkApplyColors;
00052 class QVBoxLayout;
00053 class vtkQtTreeModelAdapter;
00054 class QItemSelectionModel;
00055
00056 class QVTK_EXPORT vtkQtTreeView : public vtkQtView
00057 {
00058 Q_OBJECT
00059
00060 signals:
00061 void expanded(const QModelIndex&);
00062 void collapsed(const QModelIndex&);
00063 void updatePreviewWidget(const QModelIndex&);
00064
00065 public:
00066 static vtkQtTreeView *New();
00067 vtkTypeMacro(vtkQtTreeView, vtkQtView);
00068 void PrintSelf(ostream& os, vtkIndent indent);
00069
00073 virtual QWidget* GetWidget();
00074
00076 void SetShowHeaders(bool);
00077
00079 void SetAlternatingRowColors(bool);
00080
00082 void SetEnableDragDrop(bool);
00083
00085 void SetShowRootNode(bool);
00086
00088 void HideColumn(int i);
00089
00091 void ShowColumn(int i);
00092
00094 void HideAllButFirstColumn();
00095
00097 void SetFilterColumn(int i);
00098
00100 void SetFilterRegExp(const QRegExp& pattern);
00101
00103 void SetFilterTreeLevel(int level);
00104
00106 void Collapse( const QModelIndex & index );
00107
00109 void CollapseAll();
00110
00112 void Expand ( const QModelIndex & index );
00113
00116 void ExpandAll ();
00117
00119 void ExpandToDepth ( int depth );
00120
00122 void ResizeColumnToContents ( int column );
00123
00125 void SetUseColumnView(int state);
00126
00128 virtual void Update();
00129
00131 void SetItemDelegate(QAbstractItemDelegate* delegate);
00132
00134
00135 void SetColorArrayName(const char* name);
00136 const char* GetColorArrayName();
00138
00140
00141 void SetColorByArray(bool vis);
00142 bool GetColorByArray();
00143 vtkBooleanMacro(ColorByArray, bool);
00145
00146 virtual void ApplyViewTheme(vtkViewTheme* theme);
00147
00148 protected:
00149 vtkQtTreeView();
00150 ~vtkQtTreeView();
00151
00152 virtual void AddRepresentationInternal(vtkDataRepresentation* rep);
00153 virtual void RemoveRepresentationInternal(vtkDataRepresentation* rep);
00154
00155 private slots:
00156 void slotQtSelectionChanged(const QItemSelection&,const QItemSelection&);
00157
00158 private:
00159 void SetVTKSelection();
00160 unsigned long CurrentSelectionMTime;
00161 unsigned long LastInputMTime;
00162
00163 vtkSetStringMacro(ColorArrayNameInternal);
00164 vtkGetStringMacro(ColorArrayNameInternal);
00165
00166 QPointer<QTreeView> TreeView;
00167 QPointer<QColumnView> ColumnView;
00168 QPointer<QWidget> Widget;
00169 QPointer<QVBoxLayout> Layout;
00170 QPointer<QItemSelectionModel> SelectionModel;
00171 QList<int> HiddenColumns;
00172 vtkQtTreeModelAdapter* TreeAdapter;
00173 QAbstractItemView* View;
00174 char* ColorArrayNameInternal;
00175 QFilterTreeProxyModel* TreeFilter;
00176
00177 vtkSmartPointer<vtkApplyColors> ApplyColors;
00178
00179 vtkQtTreeView(const vtkQtTreeView&);
00180 void operator=(const vtkQtTreeView&);
00181
00182 };
00183
00184 #endif