From 6335d5bf9af46d9cd45a8334b2835220b2d959e7 Mon Sep 17 00:00:00 2001 From: jfa Date: Tue, 24 Apr 2007 10:21:31 +0000 Subject: [PATCH] NPAL15529: EDF396: Insertion Loop Node in 3rd view. --- src/SUPERVGUI/SUPERVGUI.cxx | 120 +++++++++--------- src/SUPERVGUI/SUPERVGUI_Canvas.cxx | 45 ++++++- src/SUPERVGUI/SUPERVGUI_CanvasArray.cxx | 8 +- src/SUPERVGUI/SUPERVGUI_CanvasControlNode.cxx | 94 ++++++++++++-- src/SUPERVGUI/SUPERVGUI_CanvasControlNode.h | 80 ++++++++---- src/SUPERVGUI/SUPERVGUI_CanvasNode.cxx | 5 +- src/SUPERVGUI/SUPERVGUI_CanvasNode.h | 4 +- src/SUPERVGUI/SUPERVGUI_CanvasPort.cxx | 13 +- src/SUPERVGUI/SUPERVGUI_Main.cxx | 19 +-- 9 files changed, 269 insertions(+), 119 deletions(-) diff --git a/src/SUPERVGUI/SUPERVGUI.cxx b/src/SUPERVGUI/SUPERVGUI.cxx index f80b931..266c28b 100644 --- a/src/SUPERVGUI/SUPERVGUI.cxx +++ b/src/SUPERVGUI/SUPERVGUI.cxx @@ -455,70 +455,76 @@ void SUPERVGUI::setMain( SUIT_ViewWindow* w) { } void SUPERVGUI::displayDataflow() { - Trace("SUPERVGUI::displayDataflow"); - OB_Browser* aBrowser = (( SalomeApp_Application* )application())->objectBrowser(); - SUPERV_Graph aDataFlow; - QString aIORName; - - OB_ListItem* item = (OB_ListItem*)(aBrowser->listView()->currentItem()); - _PTR(SObject) aObj - ( (( SalomeApp_Study* )(application()->activeStudy()))->studyDS()->FindObjectID(item->text(2).latin1()) ); - _PTR(GenericAttribute) anAttr; - if (aObj->FindAttribute(anAttr, "AttributeIOR")) { - _PTR(AttributeIOR) anIOR ( anAttr ); - aIORName = QString(anIOR->Value().c_str()); - if (isContains(study, aIORName)) { - if (QMessageBox::warning(application()->desktop(), tr("WARNING"), - tr("MSG_GRAPH_DISPLAYED").arg(""), - QMessageBox::Yes, QMessageBox::No) == QMessageBox::No) - return; - } - //aDataFlow = engine->getStreamGraph(anIOR->Value().c_str()); - aDataFlow = engine->getGraph(anIOR->Value().c_str()); - if (SUPERV_isNull(aDataFlow)) { - QMessageBox::warning(0, tr("ERROR"), tr("MSG_ACCESS_BAD_IOR")); + Trace("SUPERVGUI::displayDataflow"); + + OB_Browser* aBrowser = getApp()->objectBrowser(); + OB_ListItem* item = (OB_ListItem*)(aBrowser->listView()->currentItem()); + + SalomeApp_Study* anAppStudy = (SalomeApp_Study*)(getApp()->activeStudy()); + _PTR(SObject) aObj (anAppStudy->studyDS()->FindObjectID(item->text(2).latin1())); + + SUPERV_Graph aDataFlow; + QString aIORName; + + _PTR(GenericAttribute) anAttr; + if (aObj->FindAttribute(anAttr, "AttributeIOR")) { + _PTR(AttributeIOR) anIOR ( anAttr ); + aIORName = QString(anIOR->Value().c_str()); + if (isContains(study, aIORName)) { + if (QMessageBox::warning(application()->desktop(), tr("WARNING"), + tr("MSG_GRAPH_DISPLAYED").arg(""), + QMessageBox::Yes, QMessageBox::No) == QMessageBox::No) return; - } - /* ASV: 20.10.04: fix for 6896 - if (aDataFlow->IsStreamGraph()) { - SUPERV_StreamGraph aDataFlowStream = aDataFlow->ToStreamGraph(); - if (SUPERV_isNull(aDataFlowStream)) { - QMessageBox::warning(0, tr("ERROR"), tr("MSG_ACCESS_BAD_IOR")); - return; - } - aDataFlow = aDataFlowStream; - } - */ } - SUPERVGraph_ViewFrame* aViewFrame; - if ( !myInitialViewFrame ) { - // first case : create a ViewFrame object - aViewFrame = dynamic_cast( createGraph() ); - } - else { - // second case : get empty initial view frame as new ViewFrame object - aViewFrame = myInitialViewFrame; - // mkr : IPAL12991 --> - SUPERVGraph_View* view = myInitialViewFrame->getViewWidget(); - if (view) - unregisterGraph(dynamic_cast(view)); - // mkr : IPAL12991 <-- - // mkr : PAL8237 : remove first "gag" Main from children - // srn: commented as it cases on application exit "X Windows error" - //aViewFrame->removeChild( aViewFrame->queryList("SUPERVGUI_Main")->first() ); + //SUPERV_Graph aDataFlow = engine->getStreamGraph(anIOR->Value().c_str()); + aDataFlow = engine->getGraph(anIOR->Value().c_str()); + if (SUPERV_isNull(aDataFlow)) { + QMessageBox::warning(0, tr("ERROR"), tr("MSG_ACCESS_BAD_IOR")); + return; } - if( aViewFrame ) { - main = new SUPERVGUI_Main( aViewFrame, application()->desktop(), aDataFlow ); - registerGraph( aIORName, main ); - aViewFrame->show(); + /* ASV: 20.10.04: fix for 6896 + if (aDataFlow->IsStreamGraph()) { + SUPERV_StreamGraph aDataFlowStream = aDataFlow->ToStreamGraph(); + if (SUPERV_isNull(aDataFlowStream)) { + QMessageBox::warning(0, tr("ERROR"), tr("MSG_ACCESS_BAD_IOR")); + return; + } + aDataFlow = aDataFlowStream; } + */ + } - if ( myInitialViewFrame ) { - myInitialViewFrame = 0; - myIVFBackgroundColor = QColor(); - } + SUPERVGraph_ViewFrame* aViewFrame; + if ( !myInitialViewFrame ) { + // first case : create a ViewFrame object + aViewFrame = dynamic_cast( createGraph() ); + } + else { + // second case : get empty initial view frame as new ViewFrame object + aViewFrame = myInitialViewFrame; + // mkr : IPAL12991 --> + SUPERVGraph_View* view = myInitialViewFrame->getViewWidget(); + if (view) + unregisterGraph(dynamic_cast(view)); + // mkr : IPAL12991 <-- + // mkr : PAL8237 : remove first "gag" Main from children + // srn: commented as it cases on application exit "X Windows error" + //aViewFrame->removeChild( aViewFrame->queryList("SUPERVGUI_Main")->first() ); + delete view; + } + + if ( aViewFrame ) { + main = new SUPERVGUI_Main( aViewFrame, application()->desktop(), aDataFlow ); + registerGraph( aIORName, main ); + aViewFrame->show(); + } + + if ( myInitialViewFrame ) { + myInitialViewFrame = 0; + myIVFBackgroundColor = QColor(); + } } 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) { diff --git a/src/SUPERVGUI/SUPERVGUI_CanvasArray.cxx b/src/SUPERVGUI/SUPERVGUI_CanvasArray.cxx index 0e7dbb7..bbd3ffc 100644 --- a/src/SUPERVGUI/SUPERVGUI_CanvasArray.cxx +++ b/src/SUPERVGUI/SUPERVGUI_CanvasArray.cxx @@ -45,7 +45,7 @@ else x += (CELL_WIDTH + CELL_SPACE); \ cell = getCellNode(aCNode); \ if (cell == NULL) { \ - SUPERVGUI_CanvasCellNode* aNode = new SUPERVGUI_CanvasCellNode(myMgr, this, myMain, aCNode); \ + SUPERVGUI_CanvasCellNode* aNode = SUPERVGUI_CanvasCellNode::Create(myMgr, this, myMain, aCNode); \ aNode->move(x, y); \ aNode->show(); \ aNode->sync(); \ @@ -67,12 +67,12 @@ SUPERV_CNode aCNodeEnd = SUPERV::CNode::_narrow(nodes->NodesName[co]->Coupled()); \ cell = getCellNode(aCNode); \ if (cell == NULL) { \ - SUPERVGUI_CanvasCellNode* aNode = new SUPERVGUI_CanvasCellNode( myMgr, this, myMain, aCNode); \ + SUPERVGUI_CanvasCellNode* aNode = SUPERVGUI_CanvasCellNode::Create(myMgr, this, myMain, aCNode); \ aNode->move(x, y); \ aNode->show(); \ aNode->sync(); \ y += (CELL_HEIGHT + CELL_SPACE); \ - SUPERVGUI_CanvasCellNode* aNodeEnd = new SUPERVGUI_CanvasCellEndNode( myMgr, this, myMain, aCNodeEnd, aNode); \ + SUPERVGUI_CanvasCellNode* aNodeEnd = SUPERVGUI_CanvasCellEndNode::Create(myMgr, this, myMain, aCNodeEnd, aNode); \ aNodeEnd->move(x, y); \ aNodeEnd->show(); \ aNodeEnd->sync(); \ @@ -283,7 +283,7 @@ SUPERVGUI_CanvasCellNode* SUPERVGUI_CanvasArray::getCellNode(SUPERV::CNode_ptr t SUPERVGUI_CanvasCellNode* SUPERVGUI_CanvasArray::addNode(SUPERV_CNode node) { Trace("SUPERVGUI_CanvasArray::addNode"); - SUPERVGUI_CanvasCellNode* n = new SUPERVGUI_CanvasCellNode( myMgr, this, myMain, node); + SUPERVGUI_CanvasCellNode* n = SUPERVGUI_CanvasCellNode::Create(myMgr, this, myMain, node); n->move(nodeX, nodeY); n->show(); update(); diff --git a/src/SUPERVGUI/SUPERVGUI_CanvasControlNode.cxx b/src/SUPERVGUI/SUPERVGUI_CanvasControlNode.cxx index 71bd607..9baf326 100644 --- a/src/SUPERVGUI/SUPERVGUI_CanvasControlNode.cxx +++ b/src/SUPERVGUI/SUPERVGUI_CanvasControlNode.cxx @@ -41,12 +41,22 @@ //===================================================================== // Compute node //===================================================================== -SUPERVGUI_CanvasComputeNode::SUPERVGUI_CanvasComputeNode( SUIT_ResourceMgr* mgr, QObject* theParent, SUPERVGUI_Main* theMain, SUPERV_CNode theNode): - SUPERVGUI_CanvasNode( mgr, theParent, theMain, theNode) +SUPERVGUI_CanvasComputeNode::SUPERVGUI_CanvasComputeNode (SUIT_ResourceMgr* mgr, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode): + SUPERVGUI_CanvasNode(mgr, theParent, theMain, theNode) { Trace("SUPERVGUI_CanvasComputeNode::SUPERVGUI_CanvasComputeNode"); } +SUPERVGUI_CanvasComputeNode* SUPERVGUI_CanvasComputeNode::Create + (SUIT_ResourceMgr* mgr, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode) +{ + SUPERVGUI_CanvasComputeNode* aRet = new SUPERVGUI_CanvasComputeNode (mgr, theParent, theMain, theNode); + emit aRet->objectCreatedDeleted(); + return aRet; +} + QPopupMenu* SUPERVGUI_CanvasComputeNode::getPopupMenu(QWidget* theParent) { QPopupMenu* popup = SUPERVGUI_CanvasNode::getPopupMenu(theParent); @@ -68,16 +78,25 @@ QPopupMenu* SUPERVGUI_CanvasComputeNode::getPopupMenu(QWidget* theParent) //===================================================================== // Start control node //===================================================================== -SUPERVGUI_CanvasStartNode::SUPERVGUI_CanvasStartNode(SUIT_ResourceMgr* mgr, QObject* theParent, SUPERVGUI_Main* theMain, SUPERV_CNode theNode): +SUPERVGUI_CanvasStartNode::SUPERVGUI_CanvasStartNode (SUIT_ResourceMgr* mgr, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode): SUPERVGUI_CanvasNode( mgr, theParent, theMain, theNode), myCoupled(0) { Trace("SUPERVGUI_CanvasStartNode::SUPERVGUI_CanvasStartNode"); } +SUPERVGUI_CanvasStartNode* SUPERVGUI_CanvasStartNode::Create (SUIT_ResourceMgr* mgr, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode) +{ + SUPERVGUI_CanvasStartNode* aRet = new SUPERVGUI_CanvasStartNode (mgr, theParent, theMain, theNode); + emit aRet->objectCreatedDeleted(); + return aRet; +} + SUPERVGUI_CanvasNodePrs* SUPERVGUI_CanvasStartNode::createPrs() const { - return new SUPERVGUI_CanvasStartNodePrs( resMgr(), getMain()->getCanvas(), + return new SUPERVGUI_CanvasStartNodePrs (resMgr(), getMain()->getCanvas(), (SUPERVGUI_CanvasStartNode*)this); } @@ -177,8 +196,9 @@ void SUPERVGUI_CanvasStartNode::pastePort() //===================================================================== // End control node //===================================================================== -SUPERVGUI_CanvasEndNode::SUPERVGUI_CanvasEndNode(SUIT_ResourceMgr* mgr, QObject* theParent, SUPERVGUI_Main* theMain, - SUPERV_CNode theNode, SUPERVGUI_CanvasStartNode* theStart): +SUPERVGUI_CanvasEndNode::SUPERVGUI_CanvasEndNode (SUIT_ResourceMgr* mgr, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode, + SUPERVGUI_CanvasStartNode* theStart): SUPERVGUI_CanvasNode(mgr, theParent, theMain, theNode), myCoupled(theStart) { @@ -186,6 +206,15 @@ SUPERVGUI_CanvasEndNode::SUPERVGUI_CanvasEndNode(SUIT_ResourceMgr* mgr, QObject* myCoupled->setCoupled(this); } +SUPERVGUI_CanvasEndNode* SUPERVGUI_CanvasEndNode::Create (SUIT_ResourceMgr* mgr, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode, + SUPERVGUI_CanvasStartNode* theStart) +{ + SUPERVGUI_CanvasEndNode* aRet = new SUPERVGUI_CanvasEndNode (mgr, theParent, theMain, theNode, theStart); + emit aRet->objectCreatedDeleted(); + return aRet; +} + SUPERVGUI_CanvasNodePrs* SUPERVGUI_CanvasEndNode::createPrs() const { return new SUPERVGUI_CanvasEndNodePrs( resMgr(), getMain()->getCanvas(), @@ -214,12 +243,21 @@ QPopupMenu* SUPERVGUI_CanvasEndNode::getPopupMenu(QWidget* theParent) //===================================================================== // Goto control node //===================================================================== -SUPERVGUI_CanvasGotoNode::SUPERVGUI_CanvasGotoNode(SUIT_ResourceMgr* mgr, QObject* theParent, SUPERVGUI_Main* theMain, SUPERV_CNode theNode): +SUPERVGUI_CanvasGotoNode::SUPERVGUI_CanvasGotoNode (SUIT_ResourceMgr* mgr, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode): SUPERVGUI_CanvasNode(mgr, theParent, theMain, theNode) { Trace("SUPERVGUI_CanvasGotoNode::SUPERVGUI_CanvasGotoNode"); } +SUPERVGUI_CanvasGotoNode* SUPERVGUI_CanvasGotoNode::Create (SUIT_ResourceMgr* mgr, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode) +{ + SUPERVGUI_CanvasGotoNode* aRet = new SUPERVGUI_CanvasGotoNode (mgr, theParent, theMain, theNode); + emit aRet->objectCreatedDeleted(); + return aRet; +} + SUPERVGUI_CanvasNodePrs* SUPERVGUI_CanvasGotoNode::createPrs() const { return new SUPERVGUI_CanvasGotoNodePrs( resMgr(), getMain()->getCanvas(), @@ -291,12 +329,21 @@ void SUPERVGUI_CanvasGotoNode::linkToNode() { //===================================================================== // Macro node //===================================================================== -SUPERVGUI_CanvasMacroNode::SUPERVGUI_CanvasMacroNode(SUIT_ResourceMgr* mgr, QObject* theParent, SUPERVGUI_Main* theMain, SUPERV_CNode theNode): +SUPERVGUI_CanvasMacroNode::SUPERVGUI_CanvasMacroNode (SUIT_ResourceMgr* mgr, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode): SUPERVGUI_CanvasComputeNode(mgr, theParent, theMain, theNode) { Trace("SUPERVGUI_CanvasMacroNode::SUPERVGUI_CanvasMacroNode"); } +SUPERVGUI_CanvasMacroNode* SUPERVGUI_CanvasMacroNode::Create (SUIT_ResourceMgr* mgr, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode) +{ + SUPERVGUI_CanvasMacroNode* aRet = new SUPERVGUI_CanvasMacroNode (mgr, theParent, theMain, theNode); + emit aRet->objectCreatedDeleted(); + return aRet; +} + SUPERVGUI_CanvasNodePrs* SUPERVGUI_CanvasMacroNode::createPrs() const { return new SUPERVGUI_CanvasMacroNodePrs( resMgr(), getMain()->getCanvas(), @@ -381,9 +428,8 @@ void SUPERVGUI_CanvasMacroNode::remove() //===================================================================== // Cell node: node for table view //===================================================================== -SUPERVGUI_CanvasCellNode::SUPERVGUI_CanvasCellNode(SUIT_ResourceMgr* mgr, QObject* theParent, - SUPERVGUI_Main* theMain, - SUPERV_CNode theNode): +SUPERVGUI_CanvasCellNode::SUPERVGUI_CanvasCellNode (SUIT_ResourceMgr* mgr, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode): SUPERVGUI_CanvasNode(mgr, theParent, theMain, theNode, true) { Trace("SUPERVGUI_CanvasCellNode::SUPERVGUI_CanvasCellNode"); @@ -400,6 +446,14 @@ SUPERVGUI_CanvasCellNode::SUPERVGUI_CanvasCellNode(SUIT_ResourceMgr* mgr, QObjec myIsControl = true; } +SUPERVGUI_CanvasCellNode* SUPERVGUI_CanvasCellNode::Create (SUIT_ResourceMgr* mgr, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode) +{ + SUPERVGUI_CanvasCellNode* aRet = new SUPERVGUI_CanvasCellNode (mgr, theParent, theMain, theNode); + emit aRet->objectCreatedDeleted(); + return aRet; +} + SUPERVGUI_CanvasCellNode::~SUPERVGUI_CanvasCellNode() { } @@ -465,9 +519,8 @@ SUPERVGUI_CanvasNodePrs* SUPERVGUI_CanvasCellNode::createPrs() const return aPrs; } -SUPERVGUI_CanvasCellEndNode::SUPERVGUI_CanvasCellEndNode( SUIT_ResourceMgr* mgr, QObject* theParent, - SUPERVGUI_Main* theMain, - SUPERV_CNode theNode, +SUPERVGUI_CanvasCellEndNode::SUPERVGUI_CanvasCellEndNode (SUIT_ResourceMgr* mgr, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode, SUPERVGUI_CanvasCellNode* theStart): SUPERVGUI_CanvasCellNode(mgr, theParent, theMain, theNode) { @@ -476,12 +529,25 @@ SUPERVGUI_CanvasCellEndNode::SUPERVGUI_CanvasCellEndNode( SUIT_ResourceMgr* mgr, //set end cell for start cell as pair myPairCell->setPairCell(dynamic_cast(this)); } + +SUPERVGUI_CanvasCellEndNode* SUPERVGUI_CanvasCellEndNode::Create (SUIT_ResourceMgr* mgr, QObject* theParent, + SUPERVGUI_Main* theMain, + SUPERV_CNode theNode, + SUPERVGUI_CanvasCellNode* theStart) +{ + SUPERVGUI_CanvasCellEndNode* aRet = + new SUPERVGUI_CanvasCellEndNode (mgr, theParent, theMain, theNode, theStart); + emit aRet->objectCreatedDeleted(); + return aRet; +} + /* bool SUPERVGUI_CanvasCellEndNode::setNodeName(QString theName) { return SUPERVGUI_CanvasNode::setNodeName(theName); } */ + //----------------------------------------------------------- //*************** Select Inline node dialog****************** // Taken from SUPERVGUI_ControlNode.cxx without change diff --git a/src/SUPERVGUI/SUPERVGUI_CanvasControlNode.h b/src/SUPERVGUI/SUPERVGUI_CanvasControlNode.h index 8f6767f..ddb250e 100644 --- a/src/SUPERVGUI/SUPERVGUI_CanvasControlNode.h +++ b/src/SUPERVGUI/SUPERVGUI_CanvasControlNode.h @@ -35,17 +35,23 @@ class SUPERVGUI_CanvasComputeNode : public SUPERVGUI_CanvasNode { Q_OBJECT public: - SUPERVGUI_CanvasComputeNode( SUIT_ResourceMgr*, QObject* theParent, SUPERVGUI_Main* theMain, SUPERV_CNode theNode); + static SUPERVGUI_CanvasComputeNode* Create (SUIT_ResourceMgr*, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode); virtual ~SUPERVGUI_CanvasComputeNode() {} virtual QPopupMenu* getPopupMenu(QWidget* theParent); + + protected: + SUPERVGUI_CanvasComputeNode (SUIT_ResourceMgr*, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode); }; class SUPERVGUI_CanvasMacroNode : public SUPERVGUI_CanvasComputeNode { Q_OBJECT public: - SUPERVGUI_CanvasMacroNode( SUIT_ResourceMgr*, QObject* theParent, SUPERVGUI_Main* theMain, SUPERV_CNode theNode); + static SUPERVGUI_CanvasMacroNode* Create (SUIT_ResourceMgr*, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode); virtual ~SUPERVGUI_CanvasMacroNode() {} virtual QPopupMenu* getPopupMenu(QWidget* theParent); @@ -56,22 +62,27 @@ class SUPERVGUI_CanvasMacroNode : public SUPERVGUI_CanvasComputeNode { void exportDataflow(); protected: + SUPERVGUI_CanvasMacroNode (SUIT_ResourceMgr*, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode); + virtual SUPERVGUI_CanvasNodePrs* createPrs() const; }; class SUPERVGUI_CanvasEndNode; -class SUPERVGUI_CanvasStartNode : public SUPERVGUI_CanvasNode { +class SUPERVGUI_CanvasStartNode : public SUPERVGUI_CanvasNode +{ Q_OBJECT public: - SUPERVGUI_CanvasStartNode( SUIT_ResourceMgr*, QObject* theParent, SUPERVGUI_Main* theMain, SUPERV_CNode theNode); + static SUPERVGUI_CanvasStartNode* Create (SUIT_ResourceMgr*, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode); virtual ~SUPERVGUI_CanvasStartNode() {} virtual bool setNodeName(QString aName); SUPERVGUI_CanvasEndNode* getCoupled() const { return myCoupled; } - + virtual QPopupMenu* getPopupMenu(QWidget* theParent); public slots: @@ -83,6 +94,9 @@ class SUPERVGUI_CanvasStartNode : public SUPERVGUI_CanvasNode { virtual void pastePort(); protected: + SUPERVGUI_CanvasStartNode (SUIT_ResourceMgr*, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode); + virtual SUPERVGUI_CanvasNodePrs* createPrs() const; protected slots: @@ -93,7 +107,6 @@ class SUPERVGUI_CanvasStartNode : public SUPERVGUI_CanvasNode { void setCoupled(SUPERVGUI_CanvasEndNode* theEnd) { myCoupled = theEnd; } SUPERVGUI_CanvasEndNode* myCoupled; - }; @@ -101,8 +114,9 @@ class SUPERVGUI_CanvasEndNode : public SUPERVGUI_CanvasNode { Q_OBJECT public: - SUPERVGUI_CanvasEndNode( SUIT_ResourceMgr*, QObject* theParent, SUPERVGUI_Main* theMain, SUPERV_CNode theNode, - SUPERVGUI_CanvasStartNode* theStart); + static SUPERVGUI_CanvasEndNode* Create (SUIT_ResourceMgr*, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode, + SUPERVGUI_CanvasStartNode* theStart); virtual ~SUPERVGUI_CanvasEndNode() {} SUPERVGUI_CanvasStartNode* getCoupled() const { return myCoupled; } @@ -114,11 +128,14 @@ class SUPERVGUI_CanvasEndNode : public SUPERVGUI_CanvasNode { virtual void addInputPort();*/ protected: + SUPERVGUI_CanvasEndNode (SUIT_ResourceMgr*, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode, + SUPERVGUI_CanvasStartNode* theStart); + virtual SUPERVGUI_CanvasNodePrs* createPrs() const; private: SUPERVGUI_CanvasStartNode* myCoupled; - }; @@ -126,7 +143,8 @@ class SUPERVGUI_CanvasGotoNode : public SUPERVGUI_CanvasNode { Q_OBJECT public: - SUPERVGUI_CanvasGotoNode( SUIT_ResourceMgr*, QObject* theParent, SUPERVGUI_Main* theMain, SUPERV_CNode theNode); + static SUPERVGUI_CanvasGotoNode* Create (SUIT_ResourceMgr*, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode); virtual ~SUPERVGUI_CanvasGotoNode() {} virtual QPopupMenu* getPopupMenu(QWidget* theParent); @@ -135,6 +153,9 @@ class SUPERVGUI_CanvasGotoNode : public SUPERVGUI_CanvasNode { void linkToNode(); protected: + SUPERVGUI_CanvasGotoNode (SUIT_ResourceMgr*, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode); + virtual SUPERVGUI_CanvasNodePrs* createPrs() const; }; @@ -142,9 +163,9 @@ class SUPERVGUI_CanvasCellNode : public SUPERVGUI_CanvasNode { Q_OBJECT public: - SUPERVGUI_CanvasCellNode( SUIT_ResourceMgr*, QObject* theParent, - SUPERVGUI_Main* theMain, - SUPERV_CNode theNode); + static SUPERVGUI_CanvasCellNode* Create (SUIT_ResourceMgr*, QObject* theParent, + SUPERVGUI_Main* theMain, + SUPERV_CNode theNode); virtual ~SUPERVGUI_CanvasCellNode(); // asv : 26.01.05 : everything moved to CanvasNode::getPopupMenu() @@ -153,12 +174,16 @@ class SUPERVGUI_CanvasCellNode : public SUPERVGUI_CanvasNode { void setPairCell(SUPERVGUI_CanvasCellNode* thePairCell); SUPERVGUI_CanvasCellNode* getPairCell(); - virtual void sync(); + virtual void sync(); - // asv : 26.01.05 : decided to remove all "edition" operations on nodes in Table view - //virtual bool setNodeName(QString aName); + // asv : 26.01.05 : decided to remove all "edition" operations on nodes in Table view + //virtual bool setNodeName(QString aName); protected: + SUPERVGUI_CanvasCellNode (SUIT_ResourceMgr*, QObject* theParent, + SUPERVGUI_Main* theMain, + SUPERV_CNode theNode); + virtual SUPERVGUI_CanvasNodePrs* createPrs() const; protected: @@ -167,26 +192,31 @@ class SUPERVGUI_CanvasCellNode : public SUPERVGUI_CanvasNode { private: bool myIsControl; bool myIsStart; - }; -class SUPERVGUI_CanvasCellEndNode: public SUPERVGUI_CanvasCellNode { +class SUPERVGUI_CanvasCellEndNode : public SUPERVGUI_CanvasCellNode { public: - SUPERVGUI_CanvasCellEndNode( SUIT_ResourceMgr*, QObject* theParent, + static SUPERVGUI_CanvasCellEndNode* Create (SUIT_ResourceMgr*, QObject* theParent, + SUPERVGUI_Main* theMain, + SUPERV_CNode theNode, + SUPERVGUI_CanvasCellNode* theStart); + virtual ~SUPERVGUI_CanvasCellEndNode() {} + + // asv : 26.01.05 : decided to remove all "edition" operations on nodes in Table view + //virtual bool setNodeName(QString theName); + + protected: + SUPERVGUI_CanvasCellEndNode (SUIT_ResourceMgr*, QObject* theParent, SUPERVGUI_Main* theMain, SUPERV_CNode theNode, SUPERVGUI_CanvasCellNode* theStart); - virtual ~SUPERVGUI_CanvasCellEndNode() {} - - // asv : 26.01.05 : decided to remove all "edition" operations on nodes in Table view - //virtual bool setNodeName(QString theName); }; -/** +/** * Taken from SUPERVGUI_ControlNode.h without change */ -class SUPERVGUI_SelectInlineDlg: public QDialog { +class SUPERVGUI_SelectInlineDlg : public QDialog { Q_OBJECT public: diff --git a/src/SUPERVGUI/SUPERVGUI_CanvasNode.cxx b/src/SUPERVGUI/SUPERVGUI_CanvasNode.cxx index 54774c8..a13b244 100644 --- a/src/SUPERVGUI/SUPERVGUI_CanvasNode.cxx +++ b/src/SUPERVGUI/SUPERVGUI_CanvasNode.cxx @@ -41,7 +41,8 @@ #include -SUPERVGUI_CanvasNode::SUPERVGUI_CanvasNode( SUIT_ResourceMgr* mgr, QObject* theParent, SUPERVGUI_Main* theMain, SUPERV_CNode theNode, bool theIsCell): +SUPERVGUI_CanvasNode::SUPERVGUI_CanvasNode( SUIT_ResourceMgr* mgr, QObject* theParent, + SUPERVGUI_Main* theMain, SUPERV_CNode theNode, bool theIsCell): QObject(theParent), myMain(theMain), myNode(theNode), @@ -96,7 +97,6 @@ SUPERVGUI_CanvasNode::SUPERVGUI_CanvasNode( SUIT_ResourceMgr* mgr, QObject* theP // mkr : PAL8237 connect(this, SIGNAL(objectCreatedDeleted()), myMain, SLOT(onObjectCreatedDeleted())); - emit objectCreatedDeleted(); } SUPERVGUI_CanvasNode::~SUPERVGUI_CanvasNode() @@ -132,7 +132,6 @@ SUPERVGUI_CanvasNodePrs* SUPERVGUI_CanvasNode::createPrs() const //glNode->update(); //getGLContext()->insertObject( glNode, true /*false*/ ); // - return new SUPERVGUI_CanvasNodePrs( myMgr, myMain->getCanvas(), (SUPERVGUI_CanvasNode*)this); } diff --git a/src/SUPERVGUI/SUPERVGUI_CanvasNode.h b/src/SUPERVGUI/SUPERVGUI_CanvasNode.h index 6124d3d..3560a8d 100644 --- a/src/SUPERVGUI/SUPERVGUI_CanvasNode.h +++ b/src/SUPERVGUI/SUPERVGUI_CanvasNode.h @@ -41,7 +41,6 @@ class SUPERVGUI_CanvasNode : public QObject { Q_OBJECT public: - SUPERVGUI_CanvasNode( SUIT_ResourceMgr*, QObject*, SUPERVGUI_Main*, SUPERV_CNode theNode, bool theIsCell=false); virtual ~SUPERVGUI_CanvasNode(); // done to ignore port update when node is removed @@ -124,6 +123,9 @@ class SUPERVGUI_CanvasNode : public QObject { void exportToLib(); protected: + SUPERVGUI_CanvasNode (SUIT_ResourceMgr*, QObject*, SUPERVGUI_Main*, + SUPERV_CNode theNode, bool theIsCell=false); + // redefined by most of CanvasNode successors virtual SUPERVGUI_CanvasNodePrs* createPrs() const; SUIT_ResourceMgr* resMgr() const { return myMgr; } diff --git a/src/SUPERVGUI/SUPERVGUI_CanvasPort.cxx b/src/SUPERVGUI/SUPERVGUI_CanvasPort.cxx index c8c6b5a..e7db50f 100644 --- a/src/SUPERVGUI/SUPERVGUI_CanvasPort.cxx +++ b/src/SUPERVGUI/SUPERVGUI_CanvasPort.cxx @@ -34,7 +34,8 @@ #include "SalomeApp_Study.h" -SUPERVGUI_CanvasPort::SUPERVGUI_CanvasPort(QObject* theParent, SUPERVGUI_Main* theMain, SUPERV::Port_ptr thePort): +SUPERVGUI_CanvasPort::SUPERVGUI_CanvasPort (QObject* theParent, SUPERVGUI_Main* theMain, + SUPERV::Port_ptr thePort): QObject(theParent), myMain(theMain), myPrs(0), @@ -211,7 +212,8 @@ void SUPERVGUI_CanvasPort::copy() //*********************************************************** // Input Port //*********************************************************** -SUPERVGUI_CanvasPortIn::SUPERVGUI_CanvasPortIn(QObject* theParent, SUPERVGUI_Main* theMain, SUPERV::Port_ptr thePort): +SUPERVGUI_CanvasPortIn::SUPERVGUI_CanvasPortIn (QObject* theParent, SUPERVGUI_Main* theMain, + SUPERV::Port_ptr thePort): SUPERVGUI_CanvasPort(theParent, theMain, thePort) { Trace("SUPERVGUI_CanvasPortIn::SUPERVGUI_CanvasPortIn"); @@ -226,7 +228,9 @@ SUPERVGUI_CanvasPortIn::~SUPERVGUI_CanvasPortIn() QPopupMenu* SUPERVGUI_CanvasPortIn::getPopupMenu(QWidget* theParent) { QPopupMenu* popup = SUPERVGUI_CanvasPort::getPopupMenu(theParent); - bool editable = getEngine()->IsInput() && !getEngine()->IsLinked() && !getMain()->getDataflow()->IsExecuting(); + bool editable = (getEngine()->IsInput() && + !getEngine()->IsLinked() && + !getMain()->getDataflow()->IsExecuting()); if (!getEngine()->IsGate() && editable) popup->insertItem(tr("MSG_SETVALUE"), this, SLOT(setInput())); @@ -271,7 +275,8 @@ bool SUPERVGUI_CanvasPortIn::eventFilter(QObject* o, QEvent* e) //*********************************************************** // Output Port //*********************************************************** -SUPERVGUI_CanvasPortOut::SUPERVGUI_CanvasPortOut(QObject* theParent, SUPERVGUI_Main* theMain, SUPERV::Port_ptr thePort): +SUPERVGUI_CanvasPortOut::SUPERVGUI_CanvasPortOut (QObject* theParent, SUPERVGUI_Main* theMain, + SUPERV::Port_ptr thePort): SUPERVGUI_CanvasPort(theParent, theMain, thePort) { Trace("SUPERVGUI_CanvasPortOut::SUPERVGUI_CanvasPortOut"); diff --git a/src/SUPERVGUI/SUPERVGUI_Main.cxx b/src/SUPERVGUI/SUPERVGUI_Main.cxx index 9daf3ae..aa3771d 100644 --- a/src/SUPERVGUI/SUPERVGUI_Main.cxx +++ b/src/SUPERVGUI/SUPERVGUI_Main.cxx @@ -163,13 +163,13 @@ void SUPERVGUI_Main::init(SUIT_Desktop* theDesktop) { SalomeApp_Application* app = dynamic_cast( study->application() ); objectBrowser = app->objectBrowser(); - + myArray = new SUPERVGUI_CanvasArray( this, resMgr() ); myArrayView = new SUPERVGUI_ArrayView( myArray, this ); myCanvas = new SUPERVGUI_Canvas( this, resMgr() ); myCanvasView = new SUPERVGUI_CanvasView(myCanvas, this); - + message = app->logWindow(); notification = new NOTIFICATION_Consumer(); @@ -841,7 +841,7 @@ void SUPERVGUI_Main::addComputeNode(SUPERV_CNode theNode) { case CANVAS: case CONTROLFLOW: { - SUPERVGUI_CanvasNode* aNode = new SUPERVGUI_CanvasComputeNode( resMgr(), myCanvas, this, theNode); + SUPERVGUI_CanvasNode* aNode = SUPERVGUI_CanvasComputeNode::Create(resMgr(), myCanvas, this, theNode); aNode->move(theNode->X(), theNode->Y()); if (myCurrentView == CONTROLFLOW) aNode->hideAll(); aNode->show(); @@ -863,7 +863,7 @@ void SUPERVGUI_Main::addGOTONode(SUPERV_CNode theNode) { case CANVAS: case CONTROLFLOW: { - SUPERVGUI_CanvasNode* aNode = new SUPERVGUI_CanvasGotoNode( resMgr(), myCanvas, this, theNode); + SUPERVGUI_CanvasNode* aNode = SUPERVGUI_CanvasGotoNode::Create(resMgr(), myCanvas, this, theNode); aNode->move(theNode->X(), theNode->Y()); if (myCurrentView == CONTROLFLOW) aNode->hideAll(); aNode->show(); @@ -876,7 +876,8 @@ void SUPERVGUI_Main::addGOTONode(SUPERV_CNode theNode) { /** * Add Control node */ -void SUPERVGUI_Main::addControlNode(SUPERV_CNode theStartNode, SUPERV_CNode theEndNode, bool Update) { +void SUPERVGUI_Main::addControlNode(SUPERV_CNode theStartNode, SUPERV_CNode theEndNode, bool Update) +{ switch (myCurrentView) { case CANVASTABLE: myArray->destroy(); @@ -885,11 +886,13 @@ void SUPERVGUI_Main::addControlNode(SUPERV_CNode theStartNode, SUPERV_CNode theE case CANVAS: case CONTROLFLOW: { - SUPERVGUI_CanvasStartNode* aStartNode = new SUPERVGUI_CanvasStartNode( resMgr(), myCanvas, this, theStartNode); + SUPERVGUI_CanvasStartNode* aStartNode = + SUPERVGUI_CanvasStartNode::Create(resMgr(), myCanvas, this, theStartNode); aStartNode->move(theStartNode->X(), theStartNode->Y()); if (myCurrentView == CONTROLFLOW) aStartNode->hideAll(); - SUPERVGUI_CanvasEndNode* aEndNode = new SUPERVGUI_CanvasEndNode( resMgr(), myCanvas, this, theEndNode, aStartNode); + SUPERVGUI_CanvasEndNode* aEndNode = + SUPERVGUI_CanvasEndNode::Create(resMgr(), myCanvas, this, theEndNode, aStartNode); aEndNode->move(theEndNode->X(), theEndNode->Y()); if (myCurrentView == CONTROLFLOW) aEndNode->hideAll(); @@ -914,7 +917,7 @@ void SUPERVGUI_Main::addMacroNode(SUPERV_CNode theNode) { case CANVAS: case CONTROLFLOW: { - SUPERVGUI_CanvasNode* aNode = new SUPERVGUI_CanvasMacroNode( resMgr(), myCanvas, this, theNode); + SUPERVGUI_CanvasNode* aNode = SUPERVGUI_CanvasMacroNode::Create(resMgr(), myCanvas, this, theNode); aNode->move(theNode->X(), theNode->Y()); if (myCurrentView == CONTROLFLOW) aNode->hideAll(); aNode->show(); -- 2.39.2