X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSUPERVGUI%2FSUPERVGUI_Canvas.cxx;fp=src%2FSUPERVGUI%2FSUPERVGUI_Canvas.cxx;h=ddb63f95836d6498f538ec2a40a4d9c4fe678a79;hb=1f25d68b3c1179622df53d4403b253d3e0fb52da;hp=b3070b1b8bc698baaf33a007e0257b6903da2748;hpb=0523de189224d3c253468f9f7f994d39a4fc01fc;p=modules%2Fsuperv.git diff --git a/src/SUPERVGUI/SUPERVGUI_Canvas.cxx b/src/SUPERVGUI/SUPERVGUI_Canvas.cxx index b3070b1..ddb63f9 100644 --- a/src/SUPERVGUI/SUPERVGUI_Canvas.cxx +++ b/src/SUPERVGUI/SUPERVGUI_Canvas.cxx @@ -52,8 +52,10 @@ ihmList->removeRef(ihmNode); \ ihmNode->merge(); \ ihmNode = getNode(aCNodeEnd); \ - ihmList->removeRef(ihmNode); \ - ihmNode->merge(); \ + if (ihmNode) { \ + ihmList->removeRef(ihmNode); \ + ihmNode->merge(); \ + } \ } \ } @@ -206,7 +208,7 @@ void SUPERVGUI_Canvas::sync() { */ void SUPERVGUI_Canvas::merge() { if (SUPERV_isNull(myMain->getDataflow())) return; - + SUPERVGUI_CanvasNode* ihmNode; QObjectList* ihmList = queryList("SUPERVGUI_CanvasNode"); SUPERV_Nodes nodes = myMain->getDataflow()->Nodes(); @@ -228,6 +230,43 @@ void SUPERVGUI_Canvas::merge() { UPDATECONTROLNODES(LNodes); UPDATECONTROLNODES(SNodes); + /* + n = nodes->LNodes.length(); + for (int i=0; iLNodes[i]); + SUPERV_CNode aCNodeEnd = SUPERV::CNode::_narrow(nodes->LNodes[i]->Coupled()); + ihmNode = getNode(aCNode); + SUPERVGUI_CanvasNode* ihmNodeEnd = getNode(aCNodeEnd); + if (ihmNode == NULL) { + myMain->addControlNode(aCNode, aCNodeEnd, false); + } else { + if (ihmNodeEnd) { + ihmNode->move(aCNode->X(), aCNode->Y()); + ihmList->removeRef(ihmNode); + ihmNode->merge(); + ihmNode = getNode(aCNodeEnd); + ihmList->removeRef(ihmNode); + ihmNode->merge(); + } + } + } + n = nodes->SNodes.length(); + for (int i=0; iSNodes[i]); + SUPERV_CNode aCNodeEnd = SUPERV::CNode::_narrow(nodes->SNodes[i]->Coupled()); + ihmNode = getNode(aCNode); + if (ihmNode == NULL) { + myMain->addControlNode(aCNode, aCNodeEnd, false); + } else { + ihmNode->move(aCNode->X(), aCNode->Y()); + ihmList->removeRef(ihmNode); + ihmNode->merge(); + ihmNode = getNode(aCNodeEnd); + ihmList->removeRef(ihmNode); + ihmNode->merge(); + } + } + //*/ QObjectListIt it(*ihmList); while ((ihmNode=(SUPERVGUI_CanvasNode*)it.current()) != 0) {