Salome HOME
Issue #2365 problem with active panel in feature and Hide faces windows
[modules/shaper.git] / src / GeomValidators / GeomValidators_BooleanArguments.cpp
index 54cb1069eee9ff42f5dc077f84c0e03324d5730a..7c16a62631e70828dd67561eda77187fba0b685a 100644 (file)
@@ -1,8 +1,22 @@
-// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
-
-// File:        GeomValidators_BooleanArguments.cpp
-// Created:     30 June 2015
-// Author:      Dmitry Bobylev
+// Copyright (C) 2014-2017  CEA/DEN, 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
+// 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or
+// email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
+//
 
 #include <GeomValidators_BooleanArguments.h>
 
@@ -46,6 +60,7 @@ bool GeomValidators_BooleanArguments::isValid(const std::shared_ptr<ModelAPI_Fea
         }
       } else {
         isAllInSameCompSolid = false;
+        break;
       }
     }
   }
@@ -55,18 +70,21 @@ bool GeomValidators_BooleanArguments::isValid(const std::shared_ptr<ModelAPI_Fea
   anAttrSelList = theFeature->selectionList(*anIt);
   if(anAttrSelList) {
     aToolsNb = anAttrSelList->size();
-    for(int anIndex = 0; anIndex < aToolsNb; ++anIndex) {
-      AttributeSelectionPtr anAttr = anAttrSelList->value(anIndex);
-      ResultPtr aContext = anAttr->context();
-      ResultCompSolidPtr aResCompSolidPtr = ModelAPI_Tools::compSolidOwner(aContext);
-      if(aResCompSolidPtr.get()) {
-        if(aCompSolid.get()) {
-          isAllInSameCompSolid = aCompSolid == aResCompSolidPtr;
+    if(isAllInSameCompSolid) {
+      for(int anIndex = 0; anIndex < aToolsNb; ++anIndex) {
+        AttributeSelectionPtr anAttr = anAttrSelList->value(anIndex);
+        ResultPtr aContext = anAttr->context();
+        ResultCompSolidPtr aResCompSolidPtr = ModelAPI_Tools::compSolidOwner(aContext);
+        if(aResCompSolidPtr.get()) {
+          if(aCompSolid.get()) {
+            isAllInSameCompSolid = aCompSolid == aResCompSolidPtr;
+          } else {
+            aCompSolid = aResCompSolidPtr;
+          }
         } else {
-          aCompSolid = aResCompSolidPtr;
+          isAllInSameCompSolid = false;
+          break;
         }
-      } else {
-        isAllInSameCompSolid = false;
       }
     }
   }