Salome HOME
0052660: Plot2D Viewer: Plot2d_Curve can't be selected
[modules/gui.git] / src / CAM / CAM_Module.cxx
index 2cba7bc1ed8f5f14137a37a04ceaee0a1bd26510..5d7d569de4a9ea0170d0079bd71e953f3a454d77 100755 (executable)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2015  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -232,6 +232,15 @@ bool CAM_Module::isSelectionCompatible()
  */
 bool CAM_Module::activateModule( SUIT_Study* /*study*/ )
 {
+  // IMN 05/03/2015: we copied myActionMap for reset/unset actions accelerator keys
+  // after activate/deactivate modules
+  for ( QMap<QPair<int, QAction*>, QKeySequence>::Iterator it = myActionShortcutMap.begin(); it != myActionShortcutMap.end(); ++it )
+  {
+    myActionMap.insert( it.key().first, it.key().second );
+    // Reset actions accelerator keys
+    it.key().second->setShortcut( it.value() );
+  }
+  myActionShortcutMap.clear();
   return true;
 }
 
@@ -249,6 +258,14 @@ bool CAM_Module::activateModule( SUIT_Study* /*study*/ )
  */
 bool CAM_Module::deactivateModule( SUIT_Study* )
 {
+  // IMN 05/03/2015: we copied myActionMap for reset/unset actions accelerator keys
+  // after activate/deactivate modules
+  myActionShortcutMap.clear();
+  for ( QMap<int, QAction*>::Iterator it = myActionMap.begin(); it != myActionMap.end(); ++it )
+  {
+    myActionShortcutMap.insert( qMakePair( it.key(), it.value() ), it.value()->shortcut() );
+  }
+  myActionMap.clear();
   return true;
 }
 
@@ -572,12 +589,12 @@ int CAM_Module::createTool( const int id, const QString& tBar, const int idx )
   \return menu item ID or -1 if menu item could not be added
 */
 int CAM_Module::createMenu( const QString& subMenu, const int menu,
-                            const int id, const int group, const int idx )
+                            const int id, const int group, const int idx, QMenu * menuObj )
 {
   if ( !menuMgr() )
     return -1;
   
-  return menuMgr()->insert( subMenu, menu, group, id, idx );
+  return menuMgr()->insert( subMenu, menu, group, id, idx, menuObj );
 }
 
 /*!