##// END OF EJS Templates
Move event in catalogue with Drag&Drop
Move event in catalogue with Drag&Drop

File last commit:

r1362:c5e93e891fc6
r1362:c5e93e891fc6
Show More
CatalogueTreeModel.h
59 lines | 2.4 KiB | text/x-c | CLexer
/ gui / include / Catalogue / CatalogueTreeModel.h
Refactoring of catalogue display using a QTreeView and a custom model based on QTreeWidgetItem
r1283 #ifndef SCIQLOP_CATALOGUETREEMODEL_H
#define SCIQLOP_CATALOGUETREEMODEL_H
#include <Common/spimpl.h>
#include <QAbstractItemModel>
Refactoring of catalogue: use a custom item class
r1284
class CatalogueAbstractTreeItem;
Refactoring of catalogue display using a QTreeView and a custom model based on QTreeWidgetItem
r1283
/**
* @brief Model to display catalogue items based on QTreeWidgetItem
Refactoring of catalogue: use a custom item class
r1284 * @warning Do not use the method QTreeWidgetItem::treeWidget for an item added to this model or the
* application will crash
Refactoring of catalogue display using a QTreeView and a custom model based on QTreeWidgetItem
r1283 */
class CatalogueTreeModel : public QAbstractItemModel {
Q_OBJECT
signals:
void itemRenamed(const QModelIndex &index);
Move event in catalogue with Drag&Drop
r1362 void itemDropped(const QModelIndex &parentIndex, const QMimeData *data, Qt::DropAction action);
Refactoring of catalogue display using a QTreeView and a custom model based on QTreeWidgetItem
r1283
public:
CatalogueTreeModel(QObject *parent = nullptr);
enum class Column { Name, Validation, Count };
Refactoring of catalogue: use a custom item class
r1284 QModelIndex addTopLevelItem(CatalogueAbstractTreeItem *item);
QVector<CatalogueAbstractTreeItem *> topLevelItems() const;
Refactoring of catalogue display using a QTreeView and a custom model based on QTreeWidgetItem
r1283
Refactoring of catalogue: use a custom item class
r1284 void addChildItem(CatalogueAbstractTreeItem *child, const QModelIndex &parentIndex);
Add catalogue handling
r1356 void removeChildItem(CatalogueAbstractTreeItem *child, const QModelIndex &parentIndex);
/// Refresh the data for the specified index
void refresh(const QModelIndex &index);
Refactoring of catalogue display using a QTreeView and a custom model based on QTreeWidgetItem
r1283
Refactoring of catalogue: use a custom item class
r1284 CatalogueAbstractTreeItem *item(const QModelIndex &index) const;
QModelIndex indexOf(CatalogueAbstractTreeItem *item, int column = 0) const;
Refactoring of catalogue display using a QTreeView and a custom model based on QTreeWidgetItem
r1283
// model
QModelIndex index(int row, int column,
const QModelIndex &parent = QModelIndex()) const override;
QModelIndex parent(const QModelIndex &index) const override;
int rowCount(const QModelIndex &parent) const override;
int columnCount(const QModelIndex &parent) const override;
Qt::ItemFlags flags(const QModelIndex &index) const override;
QVariant data(const QModelIndex &index, int role) const override;
bool setData(const QModelIndex &index, const QVariant &value, int role) override;
Refactoring of catalogue: use a custom item class
r1284 bool canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column,
const QModelIndex &parent) const override;
bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column,
const QModelIndex &parent) override;
Qt::DropActions supportedDropActions() const;
QStringList mimeTypes() const;
Refactoring of catalogue display using a QTreeView and a custom model based on QTreeWidgetItem
r1283 private:
class CatalogueTreeModelPrivate;
spimpl::unique_impl_ptr<CatalogueTreeModelPrivate> impl;
};
#endif // CATALOGUETREEMODEL_H