Salome HOME
Join modifications from branch OCC_development_for_3_2_0a2
[modules/superv.git] / src / SUPERVGUI / SUPERVGUI_CanvasControlNode.cxx
index 0ceb073303d8f915604b223db8d7b9edd2f6e754..ca77bd9af8e2960c80979ccbdfa18c4f83577a3f 100644 (file)
@@ -301,6 +301,29 @@ void SUPERVGUI_CanvasMacroNode::exportDataflow()
   }
 }
 
+// mkr : IPAL11549 : before remove Macro Node we have to destroy
+//                   all its opened sub-graphs
+void SUPERVGUI_CanvasMacroNode::remove()
+{
+  SUPERV_Graph aGraph;
+  if (getEngine()->IsMacro()) {
+    SUPERV_Graph aMacro = getMacroNode();
+    if (aMacro->IsStreamMacro())
+      aGraph = aMacro->StreamObjRef();
+    else
+      aGraph = aMacro->FlowObjRef();
+  }
+  if (SUPERV_isNull(aGraph)) {
+    QMessageBox::warning(SUIT_Session::session()->activeApplication()->desktop(), tr("WARNING"), tr("MSG_NOSUBGRAPH_TO_REMOVE"));
+    return;
+  }
+  else {
+    getMain()->destroySubGraph(aGraph->Name());
+  }
+
+  SUPERVGUI_CanvasNode::remove();
+}
+
 //=====================================================================
 // Cell node: node for table view
 //=====================================================================