forked from qt-creator/qt-creator
QmlDesigner: Add UI setting for experimental features
Change-Id: I58a7c2affad4f7762989b8009dfa90f78479fa6f Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -32,6 +32,8 @@ namespace QmlDesigner {
|
|||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
|
const char experimentalFeatures[] = "QML/Designer/UseExperimentalFeatures44";
|
||||||
|
|
||||||
bool hideBuildMenuSetting()
|
bool hideBuildMenuSetting()
|
||||||
{
|
{
|
||||||
return Core::ICore::settings()
|
return Core::ICore::settings()
|
||||||
@@ -58,6 +60,11 @@ bool hideToolsMenuSetting()
|
|||||||
return Core::ICore::settings()->value(Core::Constants::SETTINGS_MENU_HIDE_TOOLS, false).toBool();
|
return Core::ICore::settings()->value(Core::Constants::SETTINGS_MENU_HIDE_TOOLS, false).toBool();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool showExperimentalFeatures()
|
||||||
|
{
|
||||||
|
return Core::ICore::settings()->value(experimentalFeatures, false).toBool();
|
||||||
|
}
|
||||||
|
|
||||||
void setSettingIfDifferent(const Key &key, bool value, bool &dirty)
|
void setSettingIfDifferent(const Key &key, bool value, bool &dirty)
|
||||||
{
|
{
|
||||||
QtcSettings *s = Core::ICore::settings();
|
QtcSettings *s = Core::ICore::settings();
|
||||||
@@ -70,12 +77,11 @@ void setSettingIfDifferent(const Key &key, bool value, bool &dirty)
|
|||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
StudioSettingsPage::StudioSettingsPage()
|
StudioSettingsPage::StudioSettingsPage()
|
||||||
: m_buildCheckBox(new QCheckBox(tr("Build")))
|
: m_buildCheckBox(new QCheckBox(tr("Build"))), m_debugCheckBox(new QCheckBox(tr("Debug"))),
|
||||||
, m_debugCheckBox(new QCheckBox(tr("Debug")))
|
m_analyzeCheckBox(new QCheckBox(tr("Analyze"))), m_toolsCheckBox(new QCheckBox(tr("Tools"))),
|
||||||
, m_analyzeCheckBox(new QCheckBox(tr("Analyze")))
|
m_pathChooserExamples(new Utils::PathChooser()),
|
||||||
, m_toolsCheckBox(new QCheckBox(tr("Tools")))
|
m_pathChooserBundles(new Utils::PathChooser()),
|
||||||
, m_pathChooserExamples(new Utils::PathChooser())
|
m_experimentalCheckBox(new QCheckBox(tr("Enable Experimental Features")))
|
||||||
, m_pathChooserBundles(new Utils::PathChooser())
|
|
||||||
{
|
{
|
||||||
const QString toolTip = tr(
|
const QString toolTip = tr(
|
||||||
"Hide top-level menus with advanced functionality to simplify the UI. <b>Build</b> is "
|
"Hide top-level menus with advanced functionality to simplify the UI. <b>Build</b> is "
|
||||||
@@ -110,6 +116,7 @@ StudioSettingsPage::StudioSettingsPage()
|
|||||||
m_debugCheckBox->setChecked(hideDebugMenuSetting());
|
m_debugCheckBox->setChecked(hideDebugMenuSetting());
|
||||||
m_analyzeCheckBox->setChecked(hideAnalyzeMenuSetting());
|
m_analyzeCheckBox->setChecked(hideAnalyzeMenuSetting());
|
||||||
m_toolsCheckBox->setChecked(hideToolsMenuSetting());
|
m_toolsCheckBox->setChecked(hideToolsMenuSetting());
|
||||||
|
m_experimentalCheckBox->setChecked(showExperimentalFeatures());
|
||||||
|
|
||||||
// Examples path setting
|
// Examples path setting
|
||||||
auto examplesGroupBox = new QGroupBox(tr("Examples"));
|
auto examplesGroupBox = new QGroupBox(tr("Examples"));
|
||||||
@@ -149,6 +156,18 @@ StudioSettingsPage::StudioSettingsPage()
|
|||||||
bundlesLayout->addWidget(m_pathChooserBundles);
|
bundlesLayout->addWidget(m_pathChooserBundles);
|
||||||
bundlesLayout->addWidget(bundlesResetButton);
|
bundlesLayout->addWidget(bundlesResetButton);
|
||||||
|
|
||||||
|
auto experimentalGroupBox = new QGroupBox(tr("Experimental Features"));
|
||||||
|
boxLayout->addWidget(experimentalGroupBox);
|
||||||
|
|
||||||
|
auto experimentalLayout = new QHBoxLayout(this);
|
||||||
|
experimentalGroupBox->setLayout(experimentalLayout);
|
||||||
|
|
||||||
|
experimentalLayout->addWidget(m_experimentalCheckBox);
|
||||||
|
m_experimentalCheckBox->setToolTip(
|
||||||
|
tr("This option enables experimental features in Qt Design Studio. "
|
||||||
|
"Please provide feedback and bug reports at: %1")
|
||||||
|
.arg("https://bugreports.qt.io/projects/QDS"));
|
||||||
|
|
||||||
boxLayout->addSpacerItem(
|
boxLayout->addSpacerItem(
|
||||||
new QSpacerItem(10, 10, QSizePolicy::Expanding, QSizePolicy::Expanding));
|
new QSpacerItem(10, 10, QSizePolicy::Expanding, QSizePolicy::Expanding));
|
||||||
}
|
}
|
||||||
@@ -173,6 +192,8 @@ void StudioSettingsPage::apply()
|
|||||||
m_toolsCheckBox->isChecked(),
|
m_toolsCheckBox->isChecked(),
|
||||||
dirty);
|
dirty);
|
||||||
|
|
||||||
|
setSettingIfDifferent(experimentalFeatures, m_experimentalCheckBox->isChecked(), dirty);
|
||||||
|
|
||||||
if (dirty) {
|
if (dirty) {
|
||||||
const QString restartText = tr(
|
const QString restartText = tr(
|
||||||
"The menu visibility change will take effect after restart.");
|
"The menu visibility change will take effect after restart.");
|
||||||
|
@@ -32,6 +32,7 @@ private:
|
|||||||
QCheckBox *m_toolsCheckBox;
|
QCheckBox *m_toolsCheckBox;
|
||||||
Utils::PathChooser *m_pathChooserExamples;
|
Utils::PathChooser *m_pathChooserExamples;
|
||||||
Utils::PathChooser *m_pathChooserBundles;
|
Utils::PathChooser *m_pathChooserBundles;
|
||||||
|
QCheckBox *m_experimentalCheckBox;
|
||||||
};
|
};
|
||||||
|
|
||||||
class QMLDESIGNERBASE_EXPORT StudioConfigSettingsPage : public QObject, Core::IOptionsPage
|
class QMLDESIGNERBASE_EXPORT StudioConfigSettingsPage : public QObject, Core::IOptionsPage
|
||||||
|
Reference in New Issue
Block a user