From 917ae81ce6ed62ca0c477ecff12755334df61a8c Mon Sep 17 00:00:00 2001 From: Mahmoud Badri Date: Tue, 24 May 2022 16:04:50 +0300 Subject: [PATCH] QmlDesigner: focus material browser upon open When clicking the open material browser button in the material editor, focus the material browser window if it is already open. Also do the same when opening the material editor by double clicking a material in the material browser. Fixes: QDS-7006 Change-Id: If64d1ff6595dea5e33771485622322df708405d9 Reviewed-by: Miikka Heikkinen --- .../components/materialbrowser/materialbrowsermodel.cpp | 2 +- .../components/materialeditor/materialeditorview.cpp | 2 +- src/plugins/qmldesigner/designmodewidget.cpp | 8 ++++++-- src/plugins/qmldesigner/designmodewidget.h | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.cpp b/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.cpp index 005b6ed5ddc..d4bee4fcced 100644 --- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.cpp +++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.cpp @@ -275,7 +275,7 @@ void MaterialBrowserModel::applyToSelected(qint64 internalId, bool add) void MaterialBrowserModel::openMaterialEditor() { - QmlDesignerPlugin::instance()->mainWidget()->showDockWidget("MaterialEditor"); + QmlDesignerPlugin::instance()->mainWidget()->showDockWidget("MaterialEditor", true); } } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/components/materialeditor/materialeditorview.cpp b/src/plugins/qmldesigner/components/materialeditor/materialeditorview.cpp index 5f115b67778..c28152276c4 100644 --- a/src/plugins/qmldesigner/components/materialeditor/materialeditorview.cpp +++ b/src/plugins/qmldesigner/components/materialeditor/materialeditorview.cpp @@ -459,7 +459,7 @@ void MaterialEditorView::handleToolBarAction(int action) } case MaterialEditorContextObject::OpenMaterialBrowser: { - QmlDesignerPlugin::instance()->mainWidget()->showDockWidget("MaterialBrowser"); + QmlDesignerPlugin::instance()->mainWidget()->showDockWidget("MaterialBrowser", true); break; } } diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp index e6ffe1c8919..51dbd58c990 100644 --- a/src/plugins/qmldesigner/designmodewidget.cpp +++ b/src/plugins/qmldesigner/designmodewidget.cpp @@ -583,11 +583,15 @@ CrumbleBar *DesignModeWidget::crumbleBar() const return m_crumbleBar; } -void DesignModeWidget::showDockWidget(const QString &objectName) +void DesignModeWidget::showDockWidget(const QString &objectName, bool focus) { auto dockWidget = m_dockManager->findDockWidget(objectName); - if (dockWidget) + if (dockWidget) { dockWidget->toggleView(true); + + if (focus) + dockWidget->setFocus(); + } } void DesignModeWidget::contextHelp(const Core::IContext::HelpCallback &callback) const diff --git a/src/plugins/qmldesigner/designmodewidget.h b/src/plugins/qmldesigner/designmodewidget.h index 6f6f7283b0e..643c8df8e47 100644 --- a/src/plugins/qmldesigner/designmodewidget.h +++ b/src/plugins/qmldesigner/designmodewidget.h @@ -80,7 +80,7 @@ public: void disableWidgets(); CrumbleBar *crumbleBar() const; - void showDockWidget(const QString &objectName); + void showDockWidget(const QString &objectName, bool focus = false); void determineWorkspaceToRestoreAtStartup();