Plasma Engine  2.0
Loading...
Searching...
No Matches
LayerAdapter.moc.h
1#pragma once
2
3#include <EditorPluginScene/EditorPluginSceneDLL.h>
4
5#include <EditorFramework/GUI/RawDocumentTreeModel.moc.h>
6#include <GuiFoundation/Widgets/ItemView.moc.h>
7
10struct plDocumentEvent;
11
13class PL_EDITORPLUGINSCENE_DLL plQtLayerAdapter : public plQtDocumentTreeModelAdapter
14{
15 Q_OBJECT;
16
17public:
20 virtual QVariant data(const plDocumentObject* pObject, int iRow, int iColumn, int iRole) const override;
21 virtual bool setData(const plDocumentObject* pObject, int iRow, int iColumn, const QVariant& value, int iRole) const override;
22
23 enum UserRoles
24 {
25 LayerGuid = Qt::UserRole + 0,
26 };
27
28private:
29 void LayerEventHandler(const plScene2LayerEvent& e);
30 void DocumentEventHander(const plDocumentEvent& e);
31
32private:
33 plScene2Document* m_pSceneDocument;
34 plEvent<const plScene2LayerEvent&>::Unsubscriber m_LayerEventUnsubscriber;
35 plEvent<const plDocumentEvent&>::Unsubscriber m_DocumentEventUnsubscriber;
36 plUuid m_CurrentActiveLayer;
37};
38
43{
44 Q_OBJECT
45public:
46 plQtLayerDelegate(QObject* pParent, plScene2Document* pDocument);
47
48 virtual bool mousePressEvent(QMouseEvent* pEvent, const QStyleOptionViewItem& option, const QModelIndex& index) override;
49 virtual bool mouseReleaseEvent(QMouseEvent* pEvent, const QStyleOptionViewItem& option, const QModelIndex& index) override;
50 virtual bool mouseMoveEvent(QMouseEvent* pEvent, const QStyleOptionViewItem& option, const QModelIndex& index) override;
51 virtual void paint(QPainter* pPainter, const QStyleOptionViewItem& opt, const QModelIndex& index) const override;
52 virtual QSize sizeHint(const QStyleOptionViewItem& opt, const QModelIndex& index) const override;
53 virtual bool helpEvent(QHelpEvent* pEvent, QAbstractItemView* pView, const QStyleOptionViewItem& option, const QModelIndex& index) override;
54 static QRect GetVisibleIconRect(const QStyleOptionViewItem& opt);
55 static QRect GetLoadedIconRect(const QStyleOptionViewItem& opt);
56
57 bool m_bPressed = false;
58 plScene2Document* m_pDocument = nullptr;
59};
60
63{
64 Q_OBJECT
65
66public:
68 ~plQtLayerModel() = default;
69
70private:
71 plScene2Document* m_pDocument = nullptr;
72};
Definition DocumentObjectBase.h:11
Adapter that defines data for specific type in the plQtDocumentTreeModel.
Definition RawDocumentTreeModel.moc.h:16
Model that maps a document to a qt tree model.
Definition RawDocumentTreeModel.moc.h:86
In combination with plQtItemView this delegate allows for receiving the full range of mouse input.
Definition ItemView.moc.h:12
Custom adapter for layers, used in plQtLayerPanel.
Definition LayerAdapter.moc.h:14
Custom delegate for layers, used in plQtLayerPanel. Provides buttons to toggle the layer visible / lo...
Definition LayerAdapter.moc.h:43
Custom model for layers, used in plQtLayerPanel.
Definition LayerAdapter.moc.h:63
Definition Scene2Document.h:66
This data type is the abstraction for 128-bit Uuid (also known as GUID) instances.
Definition Uuid.h:11
Definition Declarations.h:54
Definition Scene2Document.h:49