Salome HOME
refs #1278: by default objects in study are not expanded
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ImmersibleZoneOp.cxx
index 294e9b2c949cdbf0dbb4791b57d7770a792d3e65..bf8ff273f62b8e797c373185f0a46397c01ffb8e 100644 (file)
@@ -23,6 +23,7 @@
 #include "HYDROGUI_Module.h"
 #include "HYDROGUI_Shape.h"
 #include "HYDROGUI_Tool.h"
+#include "HYDROGUI_Tool2.h"
 #include "HYDROGUI_UpdateFlags.h"
 #include "HYDROGUI_DataObject.h"
 
@@ -78,7 +79,8 @@ void HYDROGUI_ImmersibleZoneOp::startOperation()
 
   if ( myIsEdit )
   {
-    myEditedObject = Handle(HYDROData_ImmersibleZone)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) );
+    if ( isApplyAndClose() )
+      myEditedObject = Handle(HYDROData_ImmersibleZone)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) );
     if( !myEditedObject.IsNull() )
     {
       anObjectName = myEditedObject->GetName();
@@ -95,12 +97,12 @@ void HYDROGUI_ImmersibleZoneOp::startOperation()
 
   aPanel->setObjectName( anObjectName );
   aPanel->setPolylineNames( HYDROGUI_Tool::FindExistingObjectsNames( doc(), KIND_POLYLINEXY ) );
-  aPanel->setBathymetryNames( HYDROGUI_Tool::FindExistingObjectsNames( doc(), KIND_BATHYMETRY ) );
+  aPanel->setAdditionalParams( HYDROGUI_Tool::FindExistingObjectsNames( doc(), KIND_BATHYMETRY ) );
 
   aPanel->blockSignals( false );
 
   aPanel->setPolylineName( aSelectedPolyline );
-  aPanel->setBathymetryName( aSelectedBathymetry );
+  aPanel->setSelectedAdditionalParamName( aSelectedBathymetry );
 }
 
 void HYDROGUI_ImmersibleZoneOp::abortOperation()
@@ -161,7 +163,7 @@ bool HYDROGUI_ImmersibleZoneOp::processApply( int& theUpdateFlags,
       HYDROGUI_Tool::FindObjectByName( module(), aPolylineName, KIND_POLYLINEXY ) );
   }
 
-  QString aBathymetryName = aPanel->getBathymetryName();
+  QString aBathymetryName = aPanel->getSelectedAdditionalParamName();
   if ( !aBathymetryName.isEmpty() )
   {
     aZoneBathymetry = Handle(HYDROData_Bathymetry)::DownCast(
@@ -182,8 +184,8 @@ bool HYDROGUI_ImmersibleZoneOp::processApply( int& theUpdateFlags,
 
   if ( !myIsEdit )
   {
-    aZoneObj->SetFillingColor( HYDROData_ImmersibleZone::DefaultFillingColor() );
-    aZoneObj->SetBorderColor( HYDROData_ImmersibleZone::DefaultBorderColor() );
+    aZoneObj->SetFillingColor( aZoneObj->DefaultFillingColor() );
+    aZoneObj->SetBorderColor( aZoneObj->DefaultBorderColor() );
   }
 
   aZoneObj->SetPolyline( aZonePolyline );
@@ -241,19 +243,19 @@ void HYDROGUI_ImmersibleZoneOp::onCreatePreview( const QString& thePolylineName
 
   if ( aViewManager && myPreviewPrs )
   {
-    QColor aFillingColor = HYDROData_ImmersibleZone::DefaultFillingColor();
-    QColor aBorderColor = HYDROData_ImmersibleZone::DefaultBorderColor();
+    QColor aFillingColor = Qt::darkBlue;
+    QColor aBorderColor = Qt::transparent;
     if ( !myEditedObject.IsNull() ) {
       aFillingColor = myEditedObject->GetFillingColor();
       aBorderColor = myEditedObject->GetBorderColor();
     }
 
-    myPreviewPrs->setFillingColor( aFillingColor, false, false );
-    myPreviewPrs->setBorderColor( aBorderColor, false, false );
     TopoDS_Face aFace;
     if( !aZoneShape.IsNull() )
       aFace = TopoDS::Face( aZoneShape );
     myPreviewPrs->setFace( aFace, true, true, "" );
+    myPreviewPrs->setFillingColor( aFillingColor, false, false );
+    myPreviewPrs->setBorderColor( aBorderColor, false, false );
   }
 
   QApplication::restoreOverrideCursor();