Salome HOME
epaisseur des polylignes = 2
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_StreamOp.cxx
index b36158151611c1accfcefcde8d58ec0b0355e919..ca1f6e5df7c3038e9fd1f2799732eaee717f08a1 100755 (executable)
@@ -1,8 +1,4 @@
-// Copyright (C) 2007-2015  CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
+// Copyright (C) 2014-2015  EDF-R&D
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
@@ -27,6 +23,7 @@
 #include "HYDROGUI_Shape.h"
 #include "HYDROGUI_StreamDlg.h"
 #include "HYDROGUI_Tool.h"
+#include "HYDROGUI_Tool2.h"
 #include "HYDROGUI_UpdateFlags.h"
 
 #include <HYDROData_Document.h>
@@ -96,7 +93,8 @@ void HYDROGUI_StreamOp::startOperation()
 {
   HYDROGUI_Operation::startOperation();
 
-  myEditedObject.Nullify();
+  if ( !myIsEdit || isApplyAndClose() )
+    myEditedObject.Nullify();
   myHydAxis.clear();
   myProfiles.clear();
   myProfileParams.clear();
@@ -108,8 +106,9 @@ void HYDROGUI_StreamOp::startOperation()
   QString anObjectName = HYDROGUI_Tool::GenerateObjectName( module(), tr( "DEFAULT_STREAM_NAME" ) );
   if ( myIsEdit )
   {
-    myEditedObject =
-      Handle(HYDROData_Stream)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) );
+    if ( isApplyAndClose() )
+      myEditedObject =
+        Handle(HYDROData_Stream)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) );
     if ( !myEditedObject.IsNull() )
     {
       anObjectName = myEditedObject->GetName();
@@ -247,13 +246,13 @@ bool HYDROGUI_StreamOp::processApply( int& theUpdateFlags,
   myEditedObject->SetHydraulicAxis( aHydAxis );
   myEditedObject->SetProfiles( aRefProfiles, false );
 
-  if ( myEditedObject->IsMustBeUpdated() )
+  if ( myEditedObject->IsMustBeUpdated( HYDROData_Entity::Geom_2d ) )
     myEditedObject->Update();
 
   if ( !myIsEdit )
   {
-    myEditedObject->SetFillingColor( HYDROData_Stream::DefaultFillingColor() );
-    myEditedObject->SetBorderColor( HYDROData_Stream::DefaultBorderColor() );
+    myEditedObject->SetFillingColor( myEditedObject->DefaultFillingColor() );
+    myEditedObject->SetBorderColor( myEditedObject->DefaultBorderColor() );
   }
 
   // Erase preview
@@ -293,8 +292,8 @@ void HYDROGUI_StreamOp::createPreview()
       {
         myPreviewPrs = new HYDROGUI_Shape( aCtx, NULL, getPreviewZLayer() );
 
-        QColor aFillingColor = HYDROData_Stream::DefaultFillingColor();
-        QColor aBorderColor = HYDROData_Stream::DefaultBorderColor();
+        QColor aFillingColor = Qt::green;
+        QColor aBorderColor = Qt::transparent;
         if ( !myEditedObject.IsNull() )
         {
           aFillingColor = myEditedObject->GetFillingColor();
@@ -437,20 +436,7 @@ void HYDROGUI_StreamOp::onAddProfiles()
 void HYDROGUI_StreamOp::onRemoveProfiles( const QStringList& theProfilesToRemove )
 {
   QStringList aToRemove = theProfilesToRemove;
-
-  // Take the Object Browser selection into account
-  HYDROData_SequenceOfObjects aSelectedObjects = HYDROGUI_Tool::GetSelectedObjects( module() ); 
-  for( int i = 1, n = aSelectedObjects.Length(); i <= n; i++ )
-  {
-    Handle(HYDROData_Profile) aProfile = 
-      Handle(HYDROData_Profile)::DownCast( aSelectedObjects.Value( i ) );
-    if ( aProfile.IsNull() )
-      continue;
-
-    QString aProfileName = aProfile->GetName();
-    aToRemove.append( aProfileName );
-  }
-
+  
   aToRemove.removeDuplicates();
   if ( aToRemove.isEmpty() )
     return;