From b13705d8895ca7a14a18ecdf70171351221626ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20M=C3=B6bius?= Date: Tue, 20 Apr 2010 06:36:32 +0000 Subject: [PATCH] Marlin: Fixed bug 194 ( Race condition when adding context menus) git-svn-id: http://www.openflipper.org/svnrepo/OpenFlipper/branches/Free@9049 383ad7c9-94d9-4d36-a494-682f7c89f535 --- widgets/coreWidget/ContextMenu.cc | 5 +++++ widgets/coreWidget/viewMode.cc | 4 ++-- widgets/viewModeWidget/viewModeWidget.cc | 4 +++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/widgets/coreWidget/ContextMenu.cc b/widgets/coreWidget/ContextMenu.cc index 91f0be0a..ccab980b 100644 --- a/widgets/coreWidget/ContextMenu.cc +++ b/widgets/coreWidget/ContextMenu.cc @@ -479,10 +479,15 @@ bool CoreWidget::addContextMenus( QMenu* _menu , ContextMenuType _type , int _id } /// \todo Sort the menu entries by the order given in visibleContextMenus + //first add all menus QMapIterator it(menuMap); QStringList visible = viewModes_[id]->visibleContextMenus; + if (visible.contains("ALL_THAT_EXIST")) { + //this plugin adds all context menus, no special configuration so far. + visible = viewModes_[0]->visibleContextMenus; + } visible.replaceInStrings(QRegExp(".*>"), ""); while (it.hasNext()) { diff --git a/widgets/coreWidget/viewMode.cc b/widgets/coreWidget/viewMode.cc index ad1c7611..e2219492 100644 --- a/widgets/coreWidget/viewMode.cc +++ b/widgets/coreWidget/viewMode.cc @@ -110,7 +110,7 @@ void CoreWidget::slotAddViewModeToolboxes(QString _mode, bool _custom, QStringLi vm->icon = "Unknown.png"; vm->visibleToolbars = QString("Main Toolbar;Viewer Toolbar").split(";"); - vm->visibleContextMenus = viewModes_[0]->visibleContextMenus; + vm->visibleContextMenus = QString("ALL_THAT_EXIST").split(" "); if (_custom) { viewModes_.push_back(vm); @@ -156,7 +156,7 @@ void CoreWidget::slotAddViewModeToolbars(QString _mode, bool _custom, QStringLis vm->custom = _custom; vm->icon = "Unknown.png"; - vm->visibleContextMenus = viewModes_[0]->visibleContextMenus; + vm->visibleContextMenus = QString("ALL_THAT_EXIST").split(" "); if (_custom) { viewModes_.push_back(vm); diff --git a/widgets/viewModeWidget/viewModeWidget.cc b/widgets/viewModeWidget/viewModeWidget.cc index 7696e14a..6b96e7b0 100644 --- a/widgets/viewModeWidget/viewModeWidget.cc +++ b/widgets/viewModeWidget/viewModeWidget.cc @@ -296,7 +296,7 @@ void viewModeWidget::slotSetIcon() { } // ======================================================================================================= -// ToolBox and ToolBar Lists update functions +// ToolBox, ToolBar and ContextMenu Lists update functions // ======================================================================================================= void viewModeWidget::slotSetAllWidgets(){ toolboxList->clear(); @@ -319,6 +319,8 @@ void viewModeWidget::slotSetAllWidgets(){ toolboxes = modes_[i]->visibleToolboxes; toolbars = modes_[i]->visibleToolbars; contextmenus = modes_[i]->visibleContextMenus; + if (contextmenus.contains("ALL_THAT_EXIST")) + contextmenus = modes_[0]->visibleContextMenus; toolboxList->addItems(toolboxes); //add corresponding widgets toolbarList->addItems(toolbars); contextMenuList->addItems(contextmenus); -- GitLab