aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Gruendl <henning.gruendl@qt.io>2023-04-28 13:57:14 +0200
committerTim Jenssen <tim.jenssen@qt.io>2023-04-28 14:03:02 +0000
commit3c2c5b1abc55ef21464d88616c33d4cb2c03ceb8 (patch)
tree9ad6e1690756872ded0dc6c656d370bc5237e6ea
parente7fcc5b0487a13b9988a687891e45960894cc77c (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.cpp27
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);