Salome HOME
bos #29480 Merge branch 'CR29480'
[modules/shaper.git] / src / XGUI / XGUI_Workshop.cpp
index f95053cbdbb8ae9961f31c07d4303b22433c2432..febea937bccd31377007d727e76eb45294ccd7a7 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2014-2021  CEA/DEN, EDF R&D
+// Copyright (C) 2014-2022  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
@@ -172,6 +172,8 @@ static Handle(VInspector_CallBack) MyVCallBack;
 
 #ifdef WIN32
 #include <windows.h>
+#pragma warning(disable : 4456) // for nested foreach
+#pragma warning(disable : 4189) // for declaration of unused variables (MAYBE_UNUSED)
 #else
 #include <dlfcn.h>
 #endif
@@ -1773,6 +1775,8 @@ void XGUI_Workshop::onContextMenuCommand(const QString& theId, bool isChecked)
     cleanHistory();
   else if (theId == "MOVE_CMD" || theId == "MOVE_SPLIT_CMD")
     moveObjects(theId == "MOVE_SPLIT_CMD");
+  else if (theId == "RECOVER_CMD")
+    recoverFeature();
   else if (theId == "COLOR_CMD")
     changeColor(anObjects);
   else if (theId == "AUTOCOLOR_CMD")
@@ -2287,6 +2291,15 @@ void XGUI_Workshop::moveObjects(const bool theSplit)
   myViewerProxy->update();
 }
 
+void XGUI_Workshop::recoverFeature()
+{
+  if (!abortAllOperations())
+    return;
+
+  static const QString RECOVER_OP_NAME = "Recover";
+  module()->launchOperation(RECOVER_OP_NAME, false);
+}
+
 //**************************************************************
 bool XGUI_Workshop::deleteFeatures(const QObjectPtrList& theObjects)
 {