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>
This commit is contained in:
Mahmoud Badri
2022-05-24 16:04:50 +03:00
parent 4c1e4ed907
commit 917ae81ce6
4 changed files with 9 additions and 5 deletions

View File

@@ -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

View File

@@ -459,7 +459,7 @@ void MaterialEditorView::handleToolBarAction(int action)
}
case MaterialEditorContextObject::OpenMaterialBrowser: {
QmlDesignerPlugin::instance()->mainWidget()->showDockWidget("MaterialBrowser");
QmlDesignerPlugin::instance()->mainWidget()->showDockWidget("MaterialBrowser", true);
break;
}
}

View File

@@ -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

View File

@@ -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();