From 305517f21289a649380dbf1e053a2b2f56c4153d Mon Sep 17 00:00:00 2001 From: Henning Gruendl Date: Mon, 15 Aug 2022 15:53:39 +0200 Subject: [PATCH] QmlDesigner: Fix floating widgets on start up Task-number: QDS-7423 Change-Id: I273b8a3926b574f4ec61500b798bff578684cb1f Reviewed-by: Brook Cronin Reviewed-by: Thomas Hartmann Reviewed-by: Qt CI Bot --- src/plugins/qmldesigner/designmodewidget.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp index 28d99003cae..c5c20a7f83f 100644 --- a/src/plugins/qmldesigner/designmodewidget.cpp +++ b/src/plugins/qmldesigner/designmodewidget.cpp @@ -390,19 +390,26 @@ void DesignModeWidget::setup() m_dockManager->initialize(); + // Hide all floating widgets if the initial mode isn't design mode + if (Core::ModeManager::instance()->currentModeId() != Core::Constants::MODE_DESIGN) { + for (auto &floatingWidget : m_dockManager->floatingWidgets()) + floatingWidget->hide(); + } + connect(Core::ModeManager::instance(), &Core::ModeManager::currentModeChanged, this, - [this](Utils::Id mode, Utils::Id oldMode) { + [this](Utils::Id mode, Utils::Id previousMode) { if (mode == Core::Constants::MODE_DESIGN) { m_dockManager->reloadActiveWorkspace(); m_dockManager->setModeChangeState(false); } - if (oldMode == Core::Constants::MODE_DESIGN && mode != Core::Constants::MODE_DESIGN) { + if (previousMode == Core::Constants::MODE_DESIGN + && mode != Core::Constants::MODE_DESIGN) { m_dockManager->save(); m_dockManager->setModeChangeState(true); - for (auto floatingWidget : m_dockManager->floatingWidgets()) + for (auto &floatingWidget : m_dockManager->floatingWidgets()) floatingWidget->hide(); } });