diff options
author | Henning Gruendl <henning.gruendl@qt.io> | 2023-04-28 13:57:14 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@qt.io> | 2023-04-28 14:03:02 +0000 |
commit | 3c2c5b1abc55ef21464d88616c33d4cb2c03ceb8 (patch) | |
tree | 9ad6e1690756872ded0dc6c656d370bc5237e6ea | |
parent | e7fcc5b0487a13b9988a687891e45960894cc77c (diff) |
QmlDesigner: Fix view menus intially enabled
- Fix views, workspaces and output menus being enabled in welcome mode
- Use mode instead of context change to enable/disable menus
Change-Id: I68053112d66e100e3bf3b07368310a3c3c50999d
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
-rw-r--r-- | src/plugins/qmldesigner/designmodewidget.cpp | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp index 913fb05f0b..ef22c2bb97 100644 --- a/src/plugins/qmldesigner/designmodewidget.cpp +++ b/src/plugins/qmldesigner/designmodewidget.cpp @@ -221,14 +221,29 @@ void DesignModeWidget::setup() mworkspaces->setOnAllDisabledBehavior(Core::ActionContainer::Show); // Connect opening of the 'workspaces' menu with creation of the workspaces menu connect(mworkspaces->menu(), &QMenu::aboutToShow, this, &DesignModeWidget::aboutToShowWorkspaces); - // Disable workspace menu when context is different to C_DESIGN_MODE - connect(Core::ICore::instance(), &Core::ICore::contextChanged, - this, [mworkspaces](const Core::Context &context){ - if (context.contains(Core::Constants::C_DESIGN_MODE)) + + Core::ActionContainer *mpanes = Core::ActionManager::actionContainer(Core::Constants::M_VIEW_PANES); + + // Initially disable menus + mviews->menu()->setEnabled(false); + mworkspaces->menu()->setEnabled(false); + mpanes->menu()->setEnabled(false); + + // Enable/disable menus when mode is different to MODE_DESIGN + connect(Core::ModeManager::instance(), + &Core::ModeManager::currentModeChanged, + this, + [mviews, mworkspaces, mpanes](Utils::Id mode, Utils::Id) { + if (mode == Core::Constants::MODE_DESIGN) { + mviews->menu()->setEnabled(true); mworkspaces->menu()->setEnabled(true); - else + mpanes->menu()->setEnabled(true); + } else { + mviews->menu()->setEnabled(false); mworkspaces->menu()->setEnabled(false); - }); + mpanes->menu()->setEnabled(false); + } + }); // Create a DockWidget for each QWidget and add them to the DockManager const Core::Context designContext(Core::Constants::C_DESIGN_MODE); |