X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FParametersPlugin%2FParametersPlugin_Parameter.cpp;h=4428be15b7f949ef5dcd3d17adfadf7fc2173b89;hb=42de443bf267cba7278df5dd4ae8a5f19612bd25;hp=961182a7138aa7218aa957f43921d236932fea24;hpb=cbde248859fb0072f6012907391ea90cfc254574;p=modules%2Fshaper.git diff --git a/src/ParametersPlugin/ParametersPlugin_Parameter.cpp b/src/ParametersPlugin/ParametersPlugin_Parameter.cpp index 961182a71..4428be15b 100644 --- a/src/ParametersPlugin/ParametersPlugin_Parameter.cpp +++ b/src/ParametersPlugin/ParametersPlugin_Parameter.cpp @@ -35,6 +35,9 @@ void ParametersPlugin_Parameter::initAttributes() data()->addAttribute(VARIABLE_ID(), ModelAPI_AttributeString::typeId()); data()->addAttribute(EXPRESSION_ID(), ModelAPI_AttributeString::typeId()); + data()->addAttribute(COMMENT_ID(), ModelAPI_AttributeString::typeId()); + ModelAPI_Session::get()->validators()->registerNotObligatory(getKind(), COMMENT_ID()); + data()->addAttribute(EXPRESSION_ERROR_ID(), ModelAPI_AttributeString::typeId()); data()->string(EXPRESSION_ERROR_ID())->setIsArgument(false); ModelAPI_Session::get()->validators()->registerNotObligatory(getKind(), EXPRESSION_ERROR_ID()); @@ -107,20 +110,25 @@ double ParametersPlugin_Parameter::evaluate(const std::string& theExpression, st // Currently there is no way to get parent document, so we get PartSet for all. DocumentPtr aDocument = document(); if (data()->name() == aVariableName) { - if (aDocument = ModelAPI_Session::get()->moduleDocument()) + if (aDocument == ModelAPI_Session::get()->moduleDocument()) continue; aDocument = ModelAPI_Session::get()->moduleDocument(); } double aValue; ResultParameterPtr aParamRes; - if (!ModelAPI_Tools::findVariable(aVariableName, aValue, aParamRes, aDocument)) continue; + if (!ModelAPI_Tools::findVariable(std::dynamic_pointer_cast(data()->owner()), + aVariableName, aValue, aParamRes, aDocument)) continue; aParamsList.push_back(aParamRes); std::ostringstream sstream; sstream << aValue; std::string aParamValue = sstream.str(); - aContext.push_back(*it + "=" + aParamValue); + size_t aPos = aParamValue.find("."); + std::string aPnt = ""; + if (aPos == std::string::npos) + aPnt = "."; + aContext.push_back(*it + "=" + aParamValue + aPnt); } // compare the list of parameters to store if changed AttributeRefListPtr aParams = reflist(ARGUMENTS_ID()); @@ -150,5 +158,5 @@ double ParametersPlugin_Parameter::evaluate(const std::string& theExpression, st bool ParametersPlugin_Parameter::isPreviewNeeded() const { - return false; + return true; }