#ifndef SCIQLOP_CATALOGUEABSTRACTTREEITEM_H #define SCIQLOP_CATALOGUEABSTRACTTREEITEM_H #include #include #include class QMimeData; class CatalogueAbstractTreeItem { public: constexpr static const int DEFAULT_TYPE = -1; CatalogueAbstractTreeItem(int type = DEFAULT_TYPE); virtual ~CatalogueAbstractTreeItem(); void addChild(CatalogueAbstractTreeItem *child); QVector children() const; CatalogueAbstractTreeItem *parent() const; int type() const; QString text(int column = 0) const; virtual QVariant data(int column, int role) const; virtual Qt::ItemFlags flags(int column) const; virtual bool setData(int column, int role, const QVariant &value); virtual bool canDropMimeData(const QMimeData *data, Qt::DropAction action); private: class CatalogueAbstractTreeItemPrivate; spimpl::unique_impl_ptr impl; }; #endif // SCIQLOP_CATALOGUEABSTRACTTREEITEM_H