Salome HOME
refs #497: redesign of HYDRO main menu.
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_CalculationOp.cxx
index 8ac82917eff6034f7497ad77a7240f32ad18270b..0e9967790d033461efd7ca603991ec99c7879af3 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// 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
@@ -6,7 +6,7 @@
 // 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
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -155,8 +155,8 @@ void HYDROGUI_CalculationOp::startOperation()
       Handle(HYDROData_Object) anObject1, anObject2;
       HYDROData_PriorityType aPriority;
       HYDROData_Zone::MergeAltitudesType aMergeType;
-      int aRulesNb = myEditedObject->GetRulesCount();
-      for ( int anIndex = 0; anIndex < aRulesNb; anIndex++ ) {
+      for ( int anIndex = 0; ; anIndex++ )
+      {
         if ( myEditedObject->GetRule( anIndex, anObject1, aPriority, anObject2, aMergeType ) ) {
           HYDROData_CustomRule aRule;
           aRule.Object1 = anObject1;
@@ -166,6 +166,8 @@ void HYDROGUI_CalculationOp::startOperation()
 
           aRules << aRule;
         }
+        else
+          break;
       }
       aPanel->setRules( aRules );
     }
@@ -589,8 +591,7 @@ bool HYDROGUI_CalculationOp::processApply( int&     theUpdateFlags,
   }
 
   // For manual mode priority rules are redundant
-  if ( aPanel->getMode() == HYDROData_CalculationCase::MANUAL &&
-       myEditedObject->GetRulesCount() > 0 ) {
+  if ( aPanel->getMode() == HYDROData_CalculationCase::MANUAL ) {
     myEditedObject->ClearRules( false );
   }
  
@@ -699,9 +700,9 @@ void HYDROGUI_CalculationOp::onNext( const int theIndex )
       }
 
       // Clear priority rules
-      if ( myEditedObject->GetRulesCount() > 0 ) {
+      //@ASL if ( myEditedObject->GetRulesCount() > 0 ) {
         myEditedObject->ClearRules( true );
-      }
+      //@ASL }
       // Set priority rules
       foreach ( const HYDROData_CustomRule& aRule, aPanel->getRules() ) {
         myEditedObject->AddRule( aRule.Object1, aRule.Priority,