diff options
author | Mahmoud Badri <mahmoud.badri@qt.io> | 2022-05-24 16:04:50 +0300 |
---|---|---|
committer | Mahmoud Badri <mahmoud.badri@qt.io> | 2022-05-24 13:10:42 +0000 |
commit | 917ae81ce6ed62ca0c477ecff12755334df61a8c (patch) | |
tree | f9857ac38e4a255a6736672b29ce0b805996d356 | |
parent | 4c1e4ed9077a8fa024af6c19a6806ecf8babfdd9 (diff) |
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 <miikka.heikkinen@qt.io>
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 005b6ed5dd..d4bee4fcce 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 5f115b6777..c28152276c 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 e6ffe1c891..51dbd58c99 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 6f6f7283b0..643c8df8e4 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(); |