summaryrefslogtreecommitdiff
path: root/src/plugins/qmldesigner/components/componentcore/qmleditormenu.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmldesigner/components/componentcore/qmleditormenu.h')
-rw-r--r--src/plugins/qmldesigner/components/componentcore/qmleditormenu.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/plugins/qmldesigner/components/componentcore/qmleditormenu.h b/src/plugins/qmldesigner/components/componentcore/qmleditormenu.h
new file mode 100644
index 0000000000..4163fccbea
--- /dev/null
+++ b/src/plugins/qmldesigner/components/componentcore/qmleditormenu.h
@@ -0,0 +1,65 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
+
+#pragma once
+
+#include <QMenu>
+
+class QStyleOptionMenuItem;
+
+namespace QmlDesigner {
+
+class QmlEditorMenuPrivate;
+class DesignerIcons;
+
+class QmlEditorMenu : public QMenu
+{
+ Q_OBJECT
+
+ Q_PROPERTY(bool qmlEditorMenu READ qmlEditorMenu CONSTANT)
+ Q_PROPERTY(bool iconsVisible READ iconsVisible WRITE setIconsVisible NOTIFY iconVisibilityChanged)
+
+public:
+ explicit QmlEditorMenu(QWidget *parent = nullptr);
+ explicit QmlEditorMenu(const QString &title, QWidget *parent = nullptr);
+ virtual ~QmlEditorMenu();
+
+ static bool isValid(const QMenu *menu);
+
+ bool iconsVisible() const;
+ void setIconsVisible(bool visible);
+
+signals:
+ void iconVisibilityChanged(bool);
+
+protected:
+ virtual void initStyleOption(QStyleOptionMenuItem *option, const QAction *action) const override;
+
+private:
+ bool qmlEditorMenu() const;
+
+ QmlEditorMenuPrivate *d = nullptr;
+};
+
+class QmlEditorStyleObject : public QObject
+{
+ Q_OBJECT
+
+ Q_PROPERTY(QIcon cascadeIconLeft READ cascadeIconLeft CONSTANT)
+ Q_PROPERTY(QIcon cascadeIconRight READ cascadeIconRight CONSTANT)
+ Q_PROPERTY(QIcon backspaceIcon READ backspaceIcon CONSTANT)
+ Q_PROPERTY(QIcon tickIcon READ tickIcon CONSTANT)
+
+public:
+ static QmlEditorStyleObject *instance();
+
+ QIcon cascadeIconLeft() const;
+ QIcon cascadeIconRight() const;
+ QIcon tickIcon() const;
+ QIcon backspaceIcon() const;
+
+private:
+ QmlEditorStyleObject();
+};
+
+} // namespace QmlDesigner