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 //#include "qMRMLItemModel.h"
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   //virtual QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole)const;
00036   virtual QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex())const;
00037   //virtual bool insertRows(int row, int count, const QModelIndex &parent=QModelIndex());
00038   virtual QMap<int, QVariant> itemData(const QModelIndex &index)const;
00039   //virtual QMimeData * mimeData(const QModelIndexList &indexes)const;
00040   //virtual QStringList mimeTypes()const;
00041   virtual QModelIndex parent(const QModelIndex &index)const;
00042 
00043   //virtual bool removeColumns(int column, int count, const QModelIndex &parent=QModelIndex());
00044   //virtual bool removeRows(int row, int count, const QModelIndex &parent=QModelIndex());
00045   virtual int rowCount(const QModelIndex &parent=QModelIndex()) const;
00046   virtual bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole);
00047   //virtual bool setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles);
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   //virtual qMRMLAbstractItemHelper* itemFromVTKObject(vtkObject* object, int column)const =0;
00056   //virtual qMRMLAbstractRootItemHelper* rootItem(vtkMRMLScene* scene)const =0;
00057   
00058 private:
00059   qMRMLAbstractItemHelperFactory* sourceItemFactory()const;
00060   QCTK_DECLARE_PRIVATE(qMRMLTreeProxyModel);
00061 };
00062 
00063 #endif

Generated on 6 Apr 2011 for Slicer3 by  doxygen 1.6.1