From bbffd88c1bc772068b72e0d271767001164ffa50 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Mon, 19 Sep 2022 16:53:32 +0200 Subject: [PATCH] QmlDesigner: Add setting for new states editor This makes it easy to enable/disable the new states editor. [QML} Designer\OldStatesEditor=false Change-Id: Ib3545bf0be8547af06eb0e9dda0cee2a143659b1 Reviewed-by: Qt CI Bot Reviewed-by: Aleksei German --- .../stateseditornew/stateseditorview.cpp | 4 +- .../designercore/model/viewmanager.cpp | 62 +++++++++++++------ src/plugins/qmldesigner/designersettings.cpp | 1 + src/plugins/qmldesigner/designersettings.h | 1 + 4 files changed, 46 insertions(+), 22 deletions(-) diff --git a/src/plugins/qmldesigner/components/stateseditornew/stateseditorview.cpp b/src/plugins/qmldesigner/components/stateseditornew/stateseditorview.cpp index 6d3d853a987..9a0af786c38 100644 --- a/src/plugins/qmldesigner/components/stateseditornew/stateseditorview.cpp +++ b/src/plugins/qmldesigner/components/stateseditornew/stateseditorview.cpp @@ -80,10 +80,10 @@ WidgetInfo StatesEditorView::widgetInfo() m_statesEditorWidget = new StatesEditorWidget(this, m_statesEditorModel.data()); return createWidgetInfo(m_statesEditorWidget.data(), - QLatin1String("StatesEditorNew"), + "StatesEditor", WidgetInfo::BottomPane, 0, - tr("States New")); + tr("States")); } void StatesEditorView::rootNodeTypeChanged(const QString &/*type*/, int /*majorVersion*/, int /*minorVersion*/) diff --git a/src/plugins/qmldesigner/designercore/model/viewmanager.cpp b/src/plugins/qmldesigner/designercore/model/viewmanager.cpp index c3fb2118547..4ecf8aec291 100644 --- a/src/plugins/qmldesigner/designercore/model/viewmanager.cpp +++ b/src/plugins/qmldesigner/designercore/model/viewmanager.cpp @@ -58,6 +58,14 @@ namespace QmlDesigner { +static bool useOldStatesEditor() +{ + return QmlDesignerPlugin::instance() + ->settings() + .value(DesignerSettingsKey::OLD_STATES_EDITOR) + .toBool(); +} + static Q_LOGGING_CATEGORY(viewBenchmark, "qtc.viewmanager.attach", QtWarningMsg) class ViewManagerData @@ -166,26 +174,30 @@ void ViewManager::detachRewriterView() void ViewManager::switchStateEditorViewToBaseState() { - if (d->statesEditorView.isAttached()) { - d->savedState = d->statesEditorView.currentState(); - d->statesEditorView.setCurrentState(d->statesEditorView.baseState()); - } - - // TODO Settings branch - if (d->newStatesEditorView.isAttached()) { - d->savedState = d->newStatesEditorView.currentState(); - d->newStatesEditorView.setCurrentState(d->newStatesEditorView.baseState()); + if (useOldStatesEditor()) { + if (d->statesEditorView.isAttached()) { + d->savedState = d->statesEditorView.currentState(); + d->statesEditorView.setCurrentState(d->statesEditorView.baseState()); + } + } else { + // TODO remove old statesview + if (d->newStatesEditorView.isAttached()) { + d->savedState = d->newStatesEditorView.currentState(); + d->newStatesEditorView.setCurrentState(d->newStatesEditorView.baseState()); + } } } void ViewManager::switchStateEditorViewToSavedState() { - if (d->savedState.isValid() && d->statesEditorView.isAttached()) - d->statesEditorView.setCurrentState(d->savedState); - - // TODO Settings branch - if (d->savedState.isValid() && d->newStatesEditorView.isAttached()) - d->newStatesEditorView.setCurrentState(d->savedState); + if (useOldStatesEditor()) { + if (d->savedState.isValid() && d->statesEditorView.isAttached()) + d->statesEditorView.setCurrentState(d->savedState); + } else { + // TODO remove old statesview + if (d->savedState.isValid() && d->newStatesEditorView.isAttached()) + d->newStatesEditorView.setCurrentState(d->savedState); + } } QList ViewManager::views() const @@ -211,9 +223,16 @@ QList ViewManager::standardViews() const &d->newStatesEditorView, // TODO &d->designerActionManagerView}; - if (QmlDesignerPlugin::instance()->settings().value( - DesignerSettingsKey::ENABLE_DEBUGVIEW).toBool()) - list.append(&d->debugView); + if (useOldStatesEditor()) + list.removeAll(&d->newStatesEditorView); + else + list.removeAll(&d->statesEditorView); + + if (QmlDesignerPlugin::instance() + ->settings() + .value(DesignerSettingsKey::ENABLE_DEBUGVIEW) + .toBool()) + list.append(&d->debugView); return list; } @@ -343,8 +362,11 @@ QList ViewManager::widgetInfos() const widgetInfoList.append(d->propertyEditorView.widgetInfo()); widgetInfoList.append(d->materialEditorView.widgetInfo()); widgetInfoList.append(d->materialBrowserView.widgetInfo()); - widgetInfoList.append(d->statesEditorView.widgetInfo()); - widgetInfoList.append(d->newStatesEditorView.widgetInfo()); // TODO + if (useOldStatesEditor()) + widgetInfoList.append(d->statesEditorView.widgetInfo()); + else + widgetInfoList.append(d->newStatesEditorView.widgetInfo()); + if (d->debugView.hasWidget()) widgetInfoList.append(d->debugView.widgetInfo()); diff --git a/src/plugins/qmldesigner/designersettings.cpp b/src/plugins/qmldesigner/designersettings.cpp index c1b69574d91..8841267385e 100644 --- a/src/plugins/qmldesigner/designersettings.cpp +++ b/src/plugins/qmldesigner/designersettings.cpp @@ -85,6 +85,7 @@ void DesignerSettings::fromSettings(QSettings *settings) restoreValue(settings, DesignerSettingsKey::EDIT3DVIEW_GRID_COLOR, "#aaaaaa"); restoreValue(settings, DesignerSettingsKey::SMOOTH_RENDERING, false); restoreValue(settings, DesignerSettingsKey::SHOW_DEBUG_SETTINGS, false); + restoreValue(settings, DesignerSettingsKey::OLD_STATES_EDITOR, true); settings->endGroup(); settings->endGroup(); diff --git a/src/plugins/qmldesigner/designersettings.h b/src/plugins/qmldesigner/designersettings.h index f39268b1869..851a5e8ef24 100644 --- a/src/plugins/qmldesigner/designersettings.h +++ b/src/plugins/qmldesigner/designersettings.h @@ -74,6 +74,7 @@ const char ALWAYS_DESIGN_MODE[] = "AlwaysDesignMode"; const char DISABLE_ITEM_LIBRARY_UPDATE_TIMER[] = "DisableItemLibraryUpdateTimer"; const char ASK_BEFORE_DELETING_ASSET[] = "AskBeforeDeletingAsset"; const char SMOOTH_RENDERING[] = "SmoothRendering"; +const char OLD_STATES_EDITOR[] = "OldStatesEditor"; } class QMLDESIGNERCORE_EXPORT DesignerSettings : public QHash