diff options
Diffstat (limited to 'src/plugins/qmldesigner/components/edit3d/edit3dactions.h')
-rw-r--r-- | src/plugins/qmldesigner/components/edit3d/edit3dactions.h | 42 |
1 files changed, 36 insertions, 6 deletions
diff --git a/src/plugins/qmldesigner/components/edit3d/edit3dactions.h b/src/plugins/qmldesigner/components/edit3d/edit3dactions.h index 5b87563c30..bad427a25b 100644 --- a/src/plugins/qmldesigner/components/edit3d/edit3dactions.h +++ b/src/plugins/qmldesigner/components/edit3d/edit3dactions.h @@ -5,12 +5,15 @@ #include <abstractaction.h> #include <QAction> +#include <QWidgetAction> #include <QIcon> +class QWidgetAction; namespace QmlDesigner { using SelectionContextOperation = std::function<void(const SelectionContext &)>; class Edit3DView; +class SeekerSliderAction; class Edit3DActionTemplate : public DefaultAction { @@ -29,6 +32,15 @@ public: View3DActionType m_type; }; +class Edit3DWidgetActionTemplate : public PureActionInterface +{ + Q_DISABLE_COPY(Edit3DWidgetActionTemplate) + +public: + explicit Edit3DWidgetActionTemplate(QWidgetAction *widget); + virtual void setSelectionContext(const SelectionContext &) {} +}; + class Edit3DAction : public AbstractAction { public: @@ -38,13 +50,15 @@ public: const QKeySequence &key, bool checkable, bool checked, - const QIcon &iconOff, - const QIcon &iconOn, + const QIcon &icon, Edit3DView *view, SelectionContextOperation selectionAction = nullptr, const QString &toolTip = {}); - virtual ~Edit3DAction(); + Edit3DAction(const QByteArray &menuId, + View3DActionType type, + Edit3DView *view, + PureActionInterface *pureInt); QByteArray category() const override; @@ -71,7 +85,7 @@ protected: private: QByteArray m_menuId; - Edit3DActionTemplate *m_actionTemplate = nullptr; + View3DActionType m_actionType; }; class Edit3DCameraAction : public Edit3DAction @@ -83,8 +97,7 @@ public: const QKeySequence &key, bool checkable, bool checked, - const QIcon &iconOff, - const QIcon &iconOn, + const QIcon &icon, Edit3DView *view, SelectionContextOperation selectionAction = nullptr); @@ -92,4 +105,21 @@ protected: bool isEnabled(const SelectionContext &selectionContext) const override; }; +class Edit3DParticleSeekerAction : public Edit3DAction +{ +public: + Edit3DParticleSeekerAction(const QByteArray &menuId, + View3DActionType type, + Edit3DView *view); + + SeekerSliderAction *seekerAction(); + +protected: + bool isVisible(const SelectionContext &) const override; + bool isEnabled(const SelectionContext &) const override; + +private: + SeekerSliderAction *m_seeker = nullptr; +}; + } // namespace QmlDesigner |