/* tree.h */ #ifndef MYTREE_H #define MYTREE_H #include "area.hpp" /* ---------------------------------------------------------------------- */ #define TREE_MODEL #ifdef TREE_MODEL #include #else #include #endif /* ---------------------------------------------------------------------- */ #ifdef TREE_MODEL class TreeModel : public QAbstractItemModel { // Q_OBJECT public: TreeModel (Area * root, QObject *parent = 0); ~TreeModel (); QVariant data (const QModelIndex & index, int role) const; Qt::ItemFlags flags (const QModelIndex & index) const; QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; QModelIndex index (int row, int column, const QModelIndex & parent = QModelIndex ()) const; QModelIndex parent (const QModelIndex & index) const; int rowCount (const QModelIndex & parent = QModelIndex ()) const; int columnCount (const QModelIndex & parent = QModelIndex ()) const; Qt::DropActions supportedDropActions () const; QStringList mimeTypes() const; bool dropMimeData (const QMimeData * data, Qt::DropAction action, int row, int column, const QModelIndex & parent); private: Area * rootItem; }; class MyTree : public QTreeView { public: explicit MyTree (QWidget *parent = 0); // virtual ~ MyTree (); void setRoot (Area * root); }; #endif /* ---------------------------------------------------------------------- */ #ifndef TREE_MODEL class MyTreeNode : public QTreeWidgetItem { public: Area * area; }; class MyTree : public QTreeWidget { public: explicit MyTree (QWidget *parent = 0); // virtual ~MyTree (); void setRoot (Area * root); protected: // virtual QMimeData * mimeData (const QList items ) const; virtual QStringList mimeTypes () const; virtual Qt::DropActions supportedDropActions () const; virtual bool dropMimeData (QTreeWidgetItem * parent, int index, const QMimeData * data, Qt::DropAction action); private: void showBranch (MyTreeNode * branch, Area * list); private: Area * rootItem; }; #endif /* ---------------------------------------------------------------------- */ #endif // MYTREE_H