12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #pragma once
- #include <QListWidget>
- #include <QEvent>
- #include <QItemDelegate>
- class SceneTree : public QListWidget {
- Q_OBJECT
- Q_PROPERTY(int gridItemWidth READ GetGridItemWidth WRITE
- SetGridItemWidth DESIGNABLE true)
- Q_PROPERTY(int gridItemHeight READ GetGridItemHeight WRITE
- SetGridItemHeight DESIGNABLE true)
- bool gridMode = false;
- int maxWidth = 150;
- int itemHeight = 24;
- public:
- void SetGridMode(bool grid);
- bool GetGridMode();
- void SetGridItemWidth(int width);
- void SetGridItemHeight(int height);
- int GetGridItemWidth();
- int GetGridItemHeight();
- explicit SceneTree(QWidget *parent = nullptr);
- private:
- void RepositionGrid(QDragMoveEvent *event = nullptr);
- protected:
- virtual bool eventFilter(QObject *obj, QEvent *event) override;
- virtual void resizeEvent(QResizeEvent *event) override;
- virtual void startDrag(Qt::DropActions supportedActions) override;
- virtual void dropEvent(QDropEvent *event) override;
- virtual void dragMoveEvent(QDragMoveEvent *event) override;
- virtual void dragLeaveEvent(QDragLeaveEvent *event) override;
- virtual void rowsInserted(const QModelIndex &parent, int start,
- int end) override;
- #if QT_VERSION < QT_VERSION_CHECK(6, 4, 3)
- virtual void
- selectionChanged(const QItemSelection &selected,
- const QItemSelection &deselected) override;
- #endif
- signals:
- void scenesReordered();
- };
|