diff --git a/src/plugins/qmldesignerbase/qmldesignerbaseplugin.cpp b/src/plugins/qmldesignerbase/qmldesignerbaseplugin.cpp index 703c1cf7605..11a180578f4 100644 --- a/src/plugins/qmldesignerbase/qmldesignerbaseplugin.cpp +++ b/src/plugins/qmldesignerbase/qmldesignerbaseplugin.cpp @@ -9,13 +9,13 @@ #include "utils/designersettings.h" #include +#include #include #include namespace QmlDesigner { - class QmlDesignerBasePlugin::Data { public: @@ -29,6 +29,9 @@ public: }; namespace { + +const char experimentalFeatures[] = "QML/Designer/UseExperimentalFeatures"; + QmlDesignerBasePlugin *global; } @@ -57,6 +60,19 @@ StudioConfigSettingsPage *QmlDesignerBasePlugin::studioConfigSettingsPage() return global->d->studioConfigSettingsPage.get(); } +bool QmlDesignerBasePlugin::experimentalFeaturesEnabled() +{ + return Core::ICore::settings()->value(experimentalFeaturesSettingsKey(), false).toBool(); +} + +QByteArray QmlDesignerBasePlugin::experimentalFeaturesSettingsKey() +{ + QString version = Utils::appInfo().displayVersion; + version.remove('.'); + + return QByteArray(experimentalFeatures) + version.toLatin1(); +} + bool QmlDesignerBasePlugin::initialize(const QStringList &, QString *) { d = std::make_unique(); diff --git a/src/plugins/qmldesignerbase/qmldesignerbaseplugin.h b/src/plugins/qmldesignerbase/qmldesignerbaseplugin.h index 997189dacf6..0820c1ef245 100644 --- a/src/plugins/qmldesignerbase/qmldesignerbaseplugin.h +++ b/src/plugins/qmldesignerbase/qmldesignerbaseplugin.h @@ -28,6 +28,9 @@ public: static QStyle *style(); static class StudioConfigSettingsPage *studioConfigSettingsPage(); + static bool experimentalFeaturesEnabled(); + static QByteArray experimentalFeaturesSettingsKey(); + private: bool initialize(const QStringList &arguments, QString *errorMessage) override;