X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSUPERVGUI%2FSUPERVGUI_Clipboard.cxx;h=a26faf868e0c3e9e7acf92105a6db6442fa80ad4;hb=ea7f29f75031ca13b9454f5e9ac73730f1f584eb;hp=d286581b64672b12f7feb6a5729b90916ab0d315;hpb=7d3931c54614b3d73351551e662ccbd3be07a0d8;p=modules%2Fsuperv.git diff --git a/src/SUPERVGUI/SUPERVGUI_Clipboard.cxx b/src/SUPERVGUI/SUPERVGUI_Clipboard.cxx index d286581..a26faf8 100644 --- a/src/SUPERVGUI/SUPERVGUI_Clipboard.cxx +++ b/src/SUPERVGUI/SUPERVGUI_Clipboard.cxx @@ -136,9 +136,15 @@ QStringList getAllFunctions( SUPERV::Graph_var dataflow ) { void SUPERVGUI_Clipboard::pasteNode() { Trace("SUPERVGUI_Main::pasteNode"); SUPERV::CNode_var aNode = getCopyNode(); - if ( !CORBA::is_nil( aNode ) ) { + SUPERVGUI_Main* aMain = Supervision.getMain(); + if ( !CORBA::is_nil( aNode ) && aMain ) { - SUPERV::Graph_var dataflow = Supervision.getMain()->getDataflow(); + 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(); switch ( aNode->Kind() ) { @@ -361,7 +367,9 @@ void SUPERVGUI_Clipboard::pasteNode() { void SUPERVGUI_Clipboard::pastePort( SUPERVGUI_CanvasNode* node ) { SUPERV::Port_var aPort = getCopyPort(); - if ( !CORBA::is_nil(aPort) ) { + SUPERVGUI_Main* aMain = Supervision.getMain(); + if ( !CORBA::is_nil(aPort) && aMain ) { + SUPERV::INode_var aNode = node->getInlineNode(); if (!CORBA::is_nil(aNode)) { QString aName = aPort->Name(); @@ -372,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() );