scene-tree.hpp 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #pragma once
  2. #include <QListWidget>
  3. #include <QEvent>
  4. #include <QItemDelegate>
  5. class SceneTree : public QListWidget {
  6. Q_OBJECT
  7. Q_PROPERTY(int gridItemWidth READ GetGridItemWidth WRITE
  8. SetGridItemWidth DESIGNABLE true)
  9. Q_PROPERTY(int gridItemHeight READ GetGridItemHeight WRITE
  10. SetGridItemHeight DESIGNABLE true)
  11. bool gridMode = false;
  12. int maxWidth = 150;
  13. int itemHeight = 24;
  14. public:
  15. void SetGridMode(bool grid);
  16. bool GetGridMode();
  17. void SetGridItemWidth(int width);
  18. void SetGridItemHeight(int height);
  19. int GetGridItemWidth();
  20. int GetGridItemHeight();
  21. explicit SceneTree(QWidget *parent = nullptr);
  22. protected:
  23. virtual bool eventFilter(QObject *obj, QEvent *event) override;
  24. virtual void resizeEvent(QResizeEvent *event) override;
  25. virtual void startDrag(Qt::DropActions supportedActions) override;
  26. virtual void dropEvent(QDropEvent *event) override;
  27. virtual void dragMoveEvent(QDragMoveEvent *event) override;
  28. virtual void rowsInserted(const QModelIndex &parent, int start,
  29. int end) override;
  30. };