X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FFeaturesPlugin%2FFeaturesPlugin_ValidatorTransform.cpp;h=03a55a611aecd70abc07ba903f0b6ee0a6467245;hb=4289f04d4dcda1de53b4d33f63bc13e24a0fb650;hp=41dd47afb9751f5bb55b8d04786caf88f0460ebb;hpb=a94fc319f2aa64b43c9a73b5ff7063923648faec;p=modules%2Fshaper.git diff --git a/src/FeaturesPlugin/FeaturesPlugin_ValidatorTransform.cpp b/src/FeaturesPlugin/FeaturesPlugin_ValidatorTransform.cpp old mode 100755 new mode 100644 index 41dd47afb..03a55a611 --- a/src/FeaturesPlugin/FeaturesPlugin_ValidatorTransform.cpp +++ b/src/FeaturesPlugin/FeaturesPlugin_ValidatorTransform.cpp @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2017 CEA/DEN, EDF R&D +// Copyright (C) 2014-2019 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 @@ -12,10 +12,9 @@ // // 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 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or -// email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "FeaturesPlugin_ValidatorTransform.h" @@ -25,7 +24,6 @@ #include "ModelAPI_AttributeSelectionList.h" #include "ModelAPI_ResultPart.h" #include "ModelAPI_ResultBody.h" -#include "ModelAPI_ResultCompSolid.h" #include "ModelAPI_Session.h" bool FeaturesPlugin_ValidatorTransform::isValid(const AttributePtr& theAttribute, @@ -35,9 +33,11 @@ bool FeaturesPlugin_ValidatorTransform::isValid(const AttributePtr& theAttribute bool aValid = true; std::string anAttributeType = theAttribute->attributeType(); if (anAttributeType != ModelAPI_AttributeSelectionList::typeId()) { +// LCOV_EXCL_START theError = "The attribute with the %1 type is not processed"; theError.arg(theAttribute->attributeType()); return false; +// LCOV_EXCL_STOP } std::shared_ptr aCurSelList = @@ -52,14 +52,25 @@ bool FeaturesPlugin_ValidatorTransform::isValid(const AttributePtr& theAttribute std::shared_ptr aSelAttribute = aCurSelList->value(i); ResultPtr aResult = aSelAttribute->context(); if (!aResult) { + // this could be a whole feature selected + FeaturePtr aFeature = aSelAttribute->contextFeature(); + if (aFeature.get() && aFeature->results().size() > 0) { + if (aFeature->firstResult()->groupName() != ModelAPI_ResultBody::group()) { + anErrorGroupName = aFeature->firstResult()->groupName(); + aValid = false; + break; + } + continue; + } theError = "Invalid selection."; return false; - } if (isPartSetDocument) // PartSet document: Result Part is valid + } + if (isPartSetDocument) // PartSet document: Result Part is valid aValid = aResult->groupName() == ModelAPI_ResultPart::group(); else { // Part document: Result CompSolid is valid aValid = aResult->groupName() == ModelAPI_ResultBody::group(); if (aValid) { - ResultCompSolidPtr aComp = std::dynamic_pointer_cast(aResult); + ResultBodyPtr aComp = std::dynamic_pointer_cast(aResult); aValid = aComp.get() != NULL; } }