Salome HOME
Memory Leaks
[modules/superv.git] / src / SUPERVGUI / SUPERVGUI_Clipboard.cxx
index 4f20f9fab121634598a34860ddb48da8a0a41822..a26faf868e0c3e9e7acf92105a6db6442fa80ad4 100644 (file)
@@ -139,6 +139,9 @@ void SUPERVGUI_Clipboard::pasteNode() {
   SUPERVGUI_Main* aMain = Supervision.getMain();
   if ( !CORBA::is_nil( aNode ) && aMain ) {
     
+    if ( !aMain->ReadyToModify() ) // null dataflow or executing, ..
+      return;
+
     aMain->Editing(); // PAL6170: GUI->Engine: setting "Editing" flag, why here? -> PAL7960
 
     SUPERV::Graph_var dataflow = aMain->getDataflow();
@@ -367,8 +370,6 @@ void SUPERVGUI_Clipboard::pastePort( SUPERVGUI_CanvasNode* node )
   SUPERVGUI_Main* aMain = Supervision.getMain();
   if ( !CORBA::is_nil(aPort) && aMain ) {
 
-    aMain->Editing(); // PAL6170: GUI->Engine: setting "Editing" flag, why here? -> PAL7960
-
     SUPERV::INode_var aNode = node->getInlineNode();
     if (!CORBA::is_nil(aNode)) {
       QString aName = aPort->Name();
@@ -379,16 +380,20 @@ void SUPERVGUI_Clipboard::pastePort( SUPERVGUI_CanvasNode* node )
        QStringList aNames = node->getPortsNamesIN(aNode, true);
        if (aNames.contains(aName))
          QMessageBox::warning( QAD_Application::getDesktop(), tr("ERROR"), tr("MSG_PORT_EXIST") );
-       else
+       else {
+         aMain->Editing(); // PAL6170: GUI->Engine: setting "Editing" flag, why here? -> PAL7960
          aPastePort = aNode->InPort(aName.latin1(), aType.latin1());
+       }
       }
       else {
        //check if port with such name is already exists
        QStringList aNames = node->getPortsNamesIN(aNode, false);
        if (aNames.contains(aName))
          QMessageBox::warning( QAD_Application::getDesktop(), tr("ERROR"), tr("MSG_PORT_EXIST") );
-       else
+       else {
+         aMain->Editing(); // PAL6170: GUI->Engine: setting "Editing" flag, why here? -> PAL7960
          aPastePort = aNode->OutPort(aName.latin1(), aType.latin1());
+       }
       }
       if ( !CORBA::is_nil(aPastePort) )
        node->createPort( aPastePort.in() );