Salome HOME
Memory Leaks
[modules/superv.git] / src / SUPERVGUI / SUPERVGUI_CanvasPort.cxx
index 756bd008dd9dd6fa745a758cd9f8e2a4364e8071..1a5c30b88545e3fc83a1646b52a24d2c53379236 100644 (file)
@@ -221,7 +221,8 @@ void SUPERVGUI_CanvasPortIn::setValue(const char* theValue)
 
 void SUPERVGUI_CanvasPortIn::setInput() 
 {
-  getMain()->Editing(); // PAL6170: GUI->Engine: setting "Editing" flag 
+  // asv 28.01.05 : set "Editing" flag only on "OK" pressed in BrowseDlg
+  //getMain()->Editing(); // PAL6170: GUI->Engine: setting "Editing" flag 
   if (!myDlg) {
     myDlg = new SUPERVGUI_GetValueDlg(this);
     myDlg->installEventFilter(this);
@@ -290,19 +291,19 @@ void SUPERVGUI_CanvasPortOut::toStudy()
 {
   Trace("SUPERVGUI_CanvasPortOut::toStudy");
 
-  if (getMain()->getStudy()->getStudyDocument()->GetProperties()->IsLocked()) {
+  // asv 08.02.05 : added && !myInStudy - fix for PAL8105
+  if ( getMain()->getStudy()->getStudyDocument()->GetProperties()->IsLocked() && !myInStudy ) {
     QMessageBox::warning(QAD_Application::getDesktop(), tr("WRN_WARNING"), 
                         tr("WRN_STUDY_LOCKED"));
     return;
   }
 
-  if (!getMain()->isFromStudy()) {
-    if (getMain()->addStudy())
-      getMain()->setAsFromStudy(true);
-  }
   myInStudy = !myInStudy;
   sync();
   getMain()->getCanvas()->update();
+
+  if ( myInStudy ) // put values to study (supervision, supervision->dataflow, supervision->dataflow->runXXX, etc.
+    getMain()->putDataStudy( getEngine(), STUDY_PORT_OUT ); 
 }