Salome HOME
Merge remote-tracking branch 'origin/BR_LAND_COVER' into BR_v14_rc
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_CalculationOp.cxx
index f8311d5a4f90c45bb0ef1dfa8626dd9995559e35..8ca26d1c48ff4c0df1caa6a6d667cfb72cb40d43 100644 (file)
@@ -55,7 +55,9 @@ HYDROGUI_CalculationOp::HYDROGUI_CalculationOp( HYDROGUI_Module* theModule, bool
 : HYDROGUI_Operation( theModule ),
   myIsEdit( theIsEdit ),
   myActiveViewManager( NULL ),
-  myPreviewViewManager( NULL )
+  myPreviewViewManager( NULL ),
+  myShowGeomObjects( true ),
+  myShowZones( false )
 {
   setName( myIsEdit ? tr( "EDIT_CALCULATION" ) : tr( "CREATE_CALCULATION" ) );
 }
@@ -220,7 +222,7 @@ HYDROGUI_InputPanel* HYDROGUI_CalculationOp::createInputPanel() const
   connect( aPanel, SIGNAL( orderLandCoverChanged( bool& ) ), SLOT( onOrderLandCoverChanged( bool& ) ) );
     
   connect( aPanel, SIGNAL( Next( const int ) ), SLOT( onNext( const int ) ) );
-  connect( aPanel, SIGNAL( Back( const int ) ), SLOT( onHideZones() ) );
+  connect( aPanel, SIGNAL( Back( const int ) ), SLOT( onBack( const int ) ) );
   //connect( aPanel, SIGNAL( clicked( SUIT_DataObject* ) ), SLOT( onSelected( SUIT_DataObject* ) ) );
   connect( aPanel, SIGNAL( setMergeType( int, QString& ) ), SLOT( onSetMergeType( int, QString& ) ) );
   connect( aPanel, SIGNAL( moveZones( SUIT_DataObject*, const QList<SUIT_DataObject*>& ) ),
@@ -924,6 +926,8 @@ void HYDROGUI_CalculationOp::onNext( const int theIndex )
       return;
 
     QApplication::setOverrideCursor( Qt::WaitCursor );
+
+    setGeomObjectsVisible( false );
   
     QString aNewCaseName = aPanel->getObjectName();
     QString anOldCaseName = myEditedObject->GetName();
@@ -1049,8 +1053,9 @@ void HYDROGUI_CalculationOp::onNext( const int theIndex )
   }
 }
 
-void HYDROGUI_CalculationOp::onHideZones()
+void HYDROGUI_CalculationOp::onBack( const int theIndex )
 {
+  setGeomObjectsVisible( theIndex != 2 );
   setZonesVisible( false );
 }
 
@@ -1088,6 +1093,18 @@ void HYDROGUI_CalculationOp::setZonesVisible( bool theIsVisible )
   }
 }
 
+void HYDROGUI_CalculationOp::setGeomObjectsVisible( bool theIsVisible )
+{
+  myShowGeomObjects = theIsVisible;
+
+  HYDROData_SequenceOfObjects aSeq = myEditedObject->GetGeometryObjects();
+
+  HYDROData_SequenceOfObjects::Iterator anIter( aSeq );
+  for ( ; anIter.More(); anIter.Next() ) {
+    setObjectVisibility( anIter.Value(), theIsVisible );
+  }
+}
+
 void HYDROGUI_CalculationOp::AssignDefaultZonesColors()
 {
   HYDROData_SequenceOfObjects aRegions = myEditedObject->GetRegions();
@@ -1195,7 +1212,12 @@ void HYDROGUI_CalculationOp::setRules( HYDROData_CalculationCase::DataTag theDat
 void HYDROGUI_CalculationOp::createPreview()
 {
   LightApp_Application* anApp = module()->getApp();
-  HYDROData_SequenceOfObjects aSeq = myEditedObject->GetGeometryObjects();
+  HYDROData_SequenceOfObjects aSeq;
+  if ( myShowGeomObjects )
+  {
+    HYDROData_SequenceOfObjects aGeomObj = myEditedObject->GetGeometryObjects();
+    aSeq.Append( aGeomObj );
+  }
   Handle(HYDROData_Entity) anEntity;
 
   if ( myShowZones )