qMRMLTreeProxyModel.h
Go to the documentation of this file.00001 #ifndef __qMRMLTreeProxyModel_h
00002 #define __qMRMLTreeProxyModel_h
00003
00004 #include <QAbstractProxyModel>
00005 #include "qCTKPimpl.h"
00006 #include "qMRMLWidgetsExport.h"
00007
00008
00009 class vtkMRMLScene;
00010 class vtkMRMLNode;
00011 class qMRMLTreeProxyModelPrivate;
00012 class vtkObject;
00013 class qMRMLAbstractItemHelper;
00014 class qMRMLAbstractItemHelperFactory;
00015
00016 class QMRML_WIDGETS_EXPORT qMRMLTreeProxyModel : public QAbstractProxyModel
00017 {
00018 Q_OBJECT
00019
00020 public:
00021 qMRMLTreeProxyModel(QObject *parent=0);
00022 virtual ~qMRMLTreeProxyModel();
00023
00024 vtkMRMLScene* mrmlScene()const;
00025
00026 virtual QModelIndex mapFromSource(const QModelIndex & sourceIndex)const;
00027 virtual QModelIndex mapToSource(const QModelIndex & proxyIndex)const;
00028 virtual void setSourceModel(QAbstractItemModel * sourceModel);
00029
00030 virtual int columnCount(const QModelIndex &) const;
00031 virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole)const;
00032 virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent);
00033 virtual Qt::ItemFlags flags(const QModelIndex &index)const;
00034 virtual bool hasChildren(const QModelIndex &parent=QModelIndex())const;
00035
00036 virtual QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex())const;
00037
00038 virtual QMap<int, QVariant> itemData(const QModelIndex &index)const;
00039
00040
00041 virtual QModelIndex parent(const QModelIndex &index)const;
00042
00043
00044
00045 virtual int rowCount(const QModelIndex &parent=QModelIndex()) const;
00046 virtual bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole);
00047
00048 virtual Qt::DropActions supportedDropActions()const;
00049 public slots:
00050 void setMRMLScene(vtkMRMLScene* scene);
00051 protected:
00052 friend class qMRMLSortFilterProxyModel;
00053 virtual qMRMLAbstractItemHelper* item(const QModelIndex& index)const;
00054 virtual qMRMLAbstractItemHelperFactory* itemFactory()const = 0;
00055
00056
00057
00058 private:
00059 qMRMLAbstractItemHelperFactory* sourceItemFactory()const;
00060 QCTK_DECLARE_PRIVATE(qMRMLTreeProxyModel);
00061 };
00062
00063 #endif