]> SALOME platform Git repositories - modules/superv.git/commitdiff
Salome HOME
Fix for bug PAL 8912. Added dialog for modification of Data Stream parameters of...
authorasv <asv@opencascade.com>
Mon, 6 Jun 2005 13:39:57 +0000 (13:39 +0000)
committerasv <asv@opencascade.com>
Mon, 6 Jun 2005 13:39:57 +0000 (13:39 +0000)
src/SUPERVGUI/SUPERVGUI_CanvasView.cxx
src/SUPERVGUI/SUPERVGUI_CanvasView.h
src/SUPERVGUI/SUPERVGUI_Main.cxx

index ad96187da2e70a3452d3ac589d62f26d042d5f57..19358bd76086aee49c334768bb2beca2b7f78e4c 100644 (file)
@@ -149,6 +149,10 @@ SUPERVGUI_CanvasView::SUPERVGUI_CanvasView(SUPERVGUI_Canvas* theCanvas, SUPERVGU
   myDelPntItem = mySketchPopup->insertItem(tr("MSG_DEL_LAST_PNT"), this, SLOT(deletePoint()));
   mySketchPopup->insertItem(tr("MSG_DEL_LINK"), this, SLOT(cancelSketch()));
   myOrtoItem = mySketchPopup->insertItem(tr("MSG_ORTHO_LINE"), this, SLOT(setOrthoMode()));
+
+  // add "change dataflow parameters" popup item
+  myPopup->insertSeparator();
+  myDSParamsItem = myPopup->insertItem( tr( "MSG_SET_GRAPHPARAMS" ), myMain, SLOT( changeDSGraphParameters() ) );
 }
  
 
@@ -225,6 +229,9 @@ void SUPERVGUI_CanvasView::contentsMousePressEvent(QMouseEvent* theEvent)
     // Paste Node functionality
     SUPERVGUI_Clipboard* aCB = SUPERVGUI_Clipboard::getClipboard(); 
     myPopup->setItemEnabled(myPasteNodeItem, aCB->isCopyNode() );
+    
+    myPopup->setItemEnabled( myDSParamsItem, isHavingStreamPort()/*myMain->getDataflow()->IsStreamGraph()*/ );
+    
     myMain->showPopup(myPopup, theEvent);
     return;
   }
@@ -739,3 +746,58 @@ void SUPERVGUI_CanvasView::fitWithinRect()
   myCursor = cursor();
   setCursor(handCursor);
 }
+
+bool SUPERVGUI_CanvasView::isHavingStreamPort() const
+{
+  SUPERV::ListOfNodes* aNodesList = myMain->getDataflow()->Nodes();
+
+  //Computing Nodes
+  for ( int i = 0 ; i < (int) aNodesList->CNodes.length() ; i++ ) {
+    SUPERV::ListOfStreamPorts aStrPortsList = *( (aNodesList->CNodes)[i]->StreamPorts() );
+    if ((int) aStrPortsList.length() > 0) {
+      return true;
+    }
+  }
+   
+  //FactoryNodes
+  for ( int i = 0 ; i < (int) aNodesList->FNodes.length() ; i++ ) {
+    SUPERV::ListOfStreamPorts aStrPortsList = *( (aNodesList->FNodes)[i]->StreamPorts() );
+    if ((int) aStrPortsList.length() > 0) {
+      return true;
+    }
+  }
+       
+  //InLineNodes
+  for ( int i = 0 ; i < (int) aNodesList->INodes.length() ; i++ ) {
+    SUPERV::ListOfStreamPorts aStrPortsList = *( (aNodesList->INodes)[i]->StreamPorts() );
+    if ((int) aStrPortsList.length() > 0) {
+      return true;
+    }
+  }
+       
+  //GOTONodes
+  for ( int i = 0 ; i < (int) aNodesList->GNodes.length() ; i++ ) {
+    SUPERV::ListOfStreamPorts aStrPortsList = *( (aNodesList->GNodes)[i]->StreamPorts() );
+    if ((int) aStrPortsList.length() > 0) {
+      return true;
+    }
+  }
+       
+  //LoopNodes
+  for ( int i = 0 ; i < (int) aNodesList->LNodes.length() ; i++ ) {
+    SUPERV::ListOfStreamPorts aStrPortsList = *( (aNodesList->LNodes)[i]->StreamPorts() );
+    if ((int) aStrPortsList.length() > 0) {
+     return true;
+    }
+  }
+       
+  //SwitchNodes
+  for ( int i = 0 ; i < (int) aNodesList->SNodes.length() ; i++ ) {
+    SUPERV::ListOfStreamPorts aStrPortsList = *( (aNodesList->SNodes)[i]->StreamPorts() );
+    if ((int) aStrPortsList.length() > 0) {
+      return true;
+    }
+  }
+       
+  return false;
+}
index 52b5b5f2e323e05eb45603e08a153a271379ecdb..e44fb2a75b3683069dbb475a5bd610d1048b626f 100644 (file)
@@ -64,10 +64,13 @@ class SUPERVGUI_CanvasView: public QCanvasView {
     void setHilighted(SUPERVGUI_CanvasLink* theLink);
     void endSketch(SUPERVGUI_CanvasPort* thePort);
 
+    bool isHavingStreamPort() const;
+
     SUPERVGUI_Main* myMain;
     QPopupMenu*     myPopup;
     int             myAddStudyItem;
     int             myPasteNodeItem;
+    int             myDSParamsItem;
     QPopupMenu*     mySketchPopup;
     int             myDelPntItem;
     int             myOrtoItem;
index 7fde70dea8e1a86b99f26fbcccd22b5cfb005dc9..252609eabc8a5155d1d51c9f67e138f99e5e4ec0 100644 (file)
@@ -221,6 +221,13 @@ void SUPERVGUI_Main::filterNotification() {
   }
 }
 
+void SUPERVGUI_Main::changeDSGraphParameters() {
+  SUPERVGUI_DSGraphParameters* aDlg = new SUPERVGUI_DSGraphParameters(dataflow, dataflow->IsReadOnly());
+  if (aDlg->exec() )
+    sync();
+  delete aDlg;
+}
+
 void SUPERVGUI_Main::syncAsync() {
   Trace("SUPERVGUI_Main::syncAsync");
   QTimer::singleShot(1, this, SLOT(sync()));