From 94c487311827922387b77037b6a9e052efae3c7e Mon Sep 17 00:00:00 2001 From: rahuel Date: Wed, 7 Sep 2005 07:06:27 +0000 Subject: [PATCH] The order of deletion of Ports (during the deletion of nodes) was wrong. If a Node/Graph is renamed the graph must be "validated" again. --- src/Supervision/CNode_Impl.cxx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/Supervision/CNode_Impl.cxx b/src/Supervision/CNode_Impl.cxx index b75fb59..65d5ee1 100644 --- a/src/Supervision/CNode_Impl.cxx +++ b/src/Supervision/CNode_Impl.cxx @@ -208,13 +208,17 @@ void CNode_Impl::DeletePorts() { beginService( "CNode_Impl::DeletePorts" ); if ( DataFlowEditor()->IsEditing() && DataFlowNode() ) { int i ; - for ( i = 0 ; i < DataFlowNode()->ComputingNode()->GetNodeInPortsSize() ; i++ ) { +//JR Debug 06.09.2005 : Ports must be explored in the reversed side because deletion +// of a port changes indexes !!!... +// for ( i = 0 ; i < DataFlowNode()->ComputingNode()->GetNodeInPortsSize() ; i++ ) { + for ( i = DataFlowNode()->ComputingNode()->GetNodeInPortsSize()-1 ; i >= 0 ; i-- ) { SUPERV::Port_var aPort = DataFlowNode()->ComputingNode()->GetChangeNodeInPort( i )->ObjRef() ; if ( !CORBA::is_nil( aPort ) ) { aPort->Remove() ; } } - for ( i = 0 ; i < DataFlowNode()->ComputingNode()->GetNodeOutPortsSize() ; i++ ) { +// for ( i = 0 ; i < DataFlowNode()->ComputingNode()->GetNodeOutPortsSize() ; i++ ) { + for ( i = DataFlowNode()->ComputingNode()->GetNodeOutPortsSize()-1 ; i >= 0 ; i-- ) { SUPERV::Port_var aPort = DataFlowNode()->ComputingNode()->GetChangeNodeOutPort( i )->ObjRef() ; if ( !CORBA::is_nil( aPort ) ) { aPort->Remove() ; @@ -252,18 +256,30 @@ char * CNode_Impl::Name() { bool CNode_Impl::SetName( const char * aDataFlowName ) { // beginService( "CNode_Impl::SetName" ); bool RetVal = false ; + bool SameName ; if ( DataFlowEditor()->IsEditing() ) { if ( _IsNode ) { //JR 29.06.2005 debug : char * OldNodeName = my_strdup( DataFlowNode()->Name() ) ; // RetVal = DataFlowEditor()->ReNameNode( DataFlowNode()->Name() , - RetVal = DataFlowEditor()->ReNameNode( OldNodeName , - aDataFlowName ) ; + SameName = !strcmp( OldNodeName , aDataFlowName ) ; + if ( !SameName ) { + RetVal = DataFlowEditor()->ReNameNode( OldNodeName , + aDataFlowName ) ; + } delete [] OldNodeName ; } else { // RetVal = DataFlowEditor()->Graph()->Name( aDataFlowName ) ; - RetVal = DataFlowEditor()->Name( aDataFlowName ) ; + SameName = !strcmp( DataFlowEditor()->Graph()->Name() , aDataFlowName ) ; + if ( !SameName ) { + RetVal = DataFlowEditor()->Name( aDataFlowName ) ; + } + } +//JR Debug 06.09.2005 : UnValid was missing + if ( !SameName ) { + DataFlowEditor()->UnValid() ; + DataFlowEditor()->IsValid() ; } } // endService( "CNode_Impl::SetName" ); -- 2.39.2