Salome HOME
Task #2924 : Ability to remove a result. Disable ability to remove groups and fields...
authormpv <mpv@opencascade.com>
Mon, 20 May 2019 13:59:21 +0000 (16:59 +0300)
committermpv <mpv@opencascade.com>
Mon, 20 May 2019 13:59:21 +0000 (16:59 +0300)
src/XGUI/XGUI_ContextMenuMgr.cpp
src/XGUI/XGUI_Workshop.cpp

index 0b7d41983895feaab0db5893ed59a6cbedc62ee3..536c1b0d8bdcda75521741ce73af4361c7846bb3 100644 (file)
@@ -338,7 +338,7 @@ void XGUI_ContextMenuMgr::updateObjectBrowserMenu()
         }
       }
       // end single selection
-    } else { // multiselection
+    } else { // multi-selection
       // parameter is commented because the actions are not in the list of result parameter actions
       if (hasResult /*&& (!hasParameter)*/) {
         action("SHOW_CMD")->setEnabled(true);
@@ -347,7 +347,7 @@ void XGUI_ContextMenuMgr::updateObjectBrowserMenu()
         action("SHADING_CMD")->setEnabled(true);
         action("WIREFRAME_CMD")->setEnabled(true);
       }
-    } // end multiselection
+    } // end multi-selection
 
     // Check folder management commands state if only features are selected
     if ((!hasResult) && hasFeature && (!hasParameter) && (!hasCompositeOwner) &&
@@ -468,7 +468,7 @@ void XGUI_ContextMenuMgr::updateObjectBrowserMenu()
     }
   }
   if (aDeactivate) {
-    // If at leas a one objec can not be edited then Show/Hide has to be disabled
+    // If at leas a one object can not be edited then Show/Hide has to be disabled
     action("SHOW_CMD")->setEnabled(false);
     action("HIDE_CMD")->setEnabled(false);
     action("SHOW_ONLY_CMD")->setEnabled(false);
index d0099ef119a39714c9d517c63bd007d6d9f01999..c6bd9299d1fb8bd378115945b3545981a6628181 100644 (file)
@@ -1835,7 +1835,9 @@ void XGUI_Workshop::deleteObjects()
   std::list<ResultPtr> aResults;
   for(QObjectPtrList::const_iterator anIt = anObjects.begin(); anIt != anObjects.end(); anIt++) {
     ResultPtr aRes = std::dynamic_pointer_cast<ModelAPI_Result>(*anIt);
-    if (aRes.get() && aRes->data()->isValid() && !aRes->data()->isDeleted())
+    if (aRes.get() && aRes->data()->isValid() && !aRes->data()->isDeleted() &&
+        aRes->groupName() != ModelAPI_ResultGroup::group() && // don't remove groups and fields
+        aRes->groupName() != ModelAPI_ResultField::group()) // because they are badly selected
       aResults.push_back(aRes);
   }
   if (!aResults.empty()) {