aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2022-11-02 13:39:04 +0100
committerTim Jenssen <tim.jenssen@qt.io>2022-11-02 12:44:56 +0000
commit73cdb6239dd25305603e2ce4628f354e998398e3 (patch)
tree6662c57f2ddca7edcfdf61996a0bbd0c772ffa50
parentb1c48a27c0ca784cbaa9f27c72563d15aaddc0cd (diff)
QmlDesigner: Show Effect wizard only in enterprise version
Change-Id: If0c99beec083514ed5c531bb7a67cd7a392c3108 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/files/effect/wizard.json4
-rw-r--r--src/plugins/qmldesigner/qmldesignerplugin.cpp26
2 files changed, 24 insertions, 6 deletions
diff --git a/share/qtcreator/qmldesigner/studio_templates/files/effect/wizard.json b/share/qtcreator/qmldesigner/studio_templates/files/effect/wizard.json
index 82e80e65a9..3837321b1a 100644
--- a/share/qtcreator/qmldesigner/studio_templates/files/effect/wizard.json
+++ b/share/qtcreator/qmldesigner/studio_templates/files/effect/wizard.json
@@ -7,8 +7,8 @@
"trDisplayName": "Effect File (Effect Maker)",
"trDisplayCategory": "Effects",
"iconText": "qep",
- "platformIndependent": false,
- "enabled": true,
+ "platformIndependent": true,
+ "enabled": "%{JS: value('Features').indexOf('QmlDesigner.Wizards.Enterprise') >= 0}",
"featuresRequired": [ "QmlDesigner.Wizards.Enterprise" ],
"options": { "key": "DefaultSuffix", "value": "qep" },
diff --git a/src/plugins/qmldesigner/qmldesignerplugin.cpp b/src/plugins/qmldesigner/qmldesignerplugin.cpp
index d8c71fcd05..5e10ab394b 100644
--- a/src/plugins/qmldesigner/qmldesignerplugin.cpp
+++ b/src/plugins/qmldesigner/qmldesignerplugin.cpp
@@ -24,6 +24,7 @@
****************************************************************************/
#include "qmldesignerplugin.h"
+#include "coreplugin/iwizardfactory.h"
#include "designmodecontext.h"
#include "designmodewidget.h"
#include "dynamiclicensecheck.h"
@@ -61,8 +62,10 @@
#include <coreplugin/coreconstants.h>
#include <coreplugin/designmode.h>
#include <coreplugin/editormanager/editormanager.h>
+#include <coreplugin/featureprovider.h>
#include <coreplugin/icore.h>
#include <coreplugin/idocument.h>
+#include <coreplugin/iwizardfactory.h>
#include <coreplugin/messagebox.h>
#include <coreplugin/modemanager.h>
#include <extensionsystem/pluginmanager.h>
@@ -74,19 +77,19 @@
#include <sqlitelibraryinitializer.h>
#include <qmljs/qmljsmodelmanagerinterface.h>
+#include <utils/algorithm.h>
#include <utils/hostosinfo.h>
#include <utils/qtcassert.h>
-#include <utils/algorithm.h>
#include <QAction>
-#include <QTimer>
+#include <QApplication>
#include <QCoreApplication>
-#include <qplugin.h>
#include <QDebug>
#include <QProcessEnvironment>
#include <QScreen>
+#include <QTimer>
#include <QWindow>
-#include <QApplication>
+#include <qplugin.h>
#include "nanotrace/nanotrace.h"
#include <modelnodecontextmenu_helper.h>
@@ -99,6 +102,17 @@ namespace QmlDesigner {
namespace Internal {
+class EnterpriseFeatureProvider : public Core::IFeatureProvider
+{
+public:
+ QSet<Utils::Id> availableFeatures(Utils::Id id) const override
+ {
+ return {"QmlDesigner.Wizards.Enterprise"};
+ }
+ QSet<Utils::Id> availablePlatforms() const override { return {}; }
+ QString displayNameForPlatform(Utils::Id id) const override { return {}; }
+};
+
QString normalizeIdentifier(const QString &string)
{
if (string.isEmpty())
@@ -283,6 +297,10 @@ bool QmlDesignerPlugin::initialize(const QStringList & /*arguments*/, QString *e
#endif
//TODO Move registering those types out of the property editor, since they are used also in the states editor
Quick2PropertyEditorView::registerQmlTypes();
+
+ if (QmlDesigner::checkLicense() == QmlDesigner::FoundLicense::enterprise)
+ Core::IWizardFactory::registerFeatureProvider(new EnterpriseFeatureProvider);
+
return true;
}