openblocks/editor/panes/explorermodel.h

51 lines
2.1 KiB
C
Raw Normal View History

#pragma once
2025-01-17 23:13:42 +00:00
#include "objects/base/instance.h"
#include "objects/part.h"
#include "qabstractitemmodel.h"
#include "qevent.h"
#include "qmenu.h"
2025-01-20 10:25:04 +00:00
#include "qnamespace.h"
#include "qtreeview.h"
2025-01-17 23:13:42 +00:00
#include <QOpenGLWidget>
#include <QWidget>
#include <memory>
// #ifndef EXPLORERMODEL_H
// #define EXPLORERMODEL_H
2025-01-17 23:13:42 +00:00
class ExplorerModel : public QAbstractItemModel {
Q_OBJECT
public:
Q_DISABLE_COPY_MOVE(ExplorerModel)
explicit ExplorerModel(InstanceRef dataRoot, QWidget *parent = nullptr);
~ExplorerModel() override;
QVariant data(const QModelIndex &index, int role) const override;
2025-01-20 10:25:04 +00:00
bool setData(const QModelIndex &index, const QVariant &value, int role) override;
2025-01-17 23:13:42 +00:00
Qt::ItemFlags flags(const QModelIndex &index) const override;
QVariant headerData(int section, Qt::Orientation orientation,
int role = Qt::DisplayRole) const override;
QModelIndex index(int row, int column,
const QModelIndex &parent = {}) const override;
QModelIndex parent(const QModelIndex &index) const override;
int rowCount(const QModelIndex &parent = {}) const override;
int columnCount(const QModelIndex &parent = {}) const override;
2025-01-20 10:25:04 +00:00
bool moveRows(const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild) override;
bool removeRows(int row, int count, const QModelIndex & parent = QModelIndex()) override;
bool insertRows(int row, int count, const QModelIndex & parent = QModelIndex()) override;
bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override;
QMimeData* mimeData(const QModelIndexList& indexes) const override;
QStringList mimeTypes() const override;
2025-01-20 10:25:04 +00:00
Qt::DropActions supportedDragActions() const override;
Qt::DropActions supportedDropActions() const override;
InstanceRef fromIndex(const QModelIndex index) const;
2025-02-01 21:55:07 +00:00
QModelIndex ObjectToIndex(InstanceRef item);
2025-01-17 23:13:42 +00:00
private:
InstanceRef rootItem;
2025-01-18 15:27:43 +00:00
QModelIndex toIndex(InstanceRef item);
2025-02-04 19:18:58 +00:00
QImage iconOf(const InstanceType* type) const;
2025-01-17 23:13:42 +00:00
};
// #endif