#ifndef CONTEXT_MODEL_H #define CONTEXT_MODEL_H #include #include "Core/ObjectsContext.h" class ContextModel : public QAbstractItemModel { Q_OBJECT public: explicit ContextModel(QObject* parent = nullptr); virtual ~ContextModel(); void setContext(uLib::ObjectsContext* context); QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const override; QModelIndex parent(const QModelIndex& child) const override; int rowCount(const QModelIndex& parent = QModelIndex()) const override; int columnCount(const QModelIndex& parent = QModelIndex()) const override; QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override; QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; Qt::ItemFlags flags(const QModelIndex& index) const override; bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override; // Drag and Drop support Qt::DropActions supportedDropActions() const override; QStringList mimeTypes() const override; QMimeData* mimeData(const QModelIndexList& indexes) const override; bool dropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent) override; private: uLib::ObjectsContext* m_rootContext; bool m_isReseting = false; }; #endif // CONTEXT_MODEL_H