X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FParametersPlugin%2FParametersPlugin_Parameter.cpp;h=d5aab74d2ccf4efbef286519c1e2988bb0c29532;hb=fc72d43b677baa05ae7fd317346fd8b723b799ed;hp=02010379877b7221d700704b4e4ef1de3aa1f0ba;hpb=380f01e1fce1a012267d604a1190d04bf4659447;p=modules%2Fshaper.git diff --git a/src/ParametersPlugin/ParametersPlugin_Parameter.cpp b/src/ParametersPlugin/ParametersPlugin_Parameter.cpp index 020103798..d5aab74d2 100644 --- a/src/ParametersPlugin/ParametersPlugin_Parameter.cpp +++ b/src/ParametersPlugin/ParametersPlugin_Parameter.cpp @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 CEA/DEN, EDF R&D +// Copyright (C) 2014-2023 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 @@ -75,12 +75,14 @@ void ParametersPlugin_Parameter::attributeChanged(const std::string& theID) void ParametersPlugin_Parameter::updateName() { - std::string aName = string(VARIABLE_ID())->value(); - data()->setName(Locale::Convert::toWString(aName)); + std::wstring aName = string(VARIABLE_ID())->isUValue() ? + Locale::Convert::toWString(string(VARIABLE_ID())->valueU()) : + Locale::Convert::toWString(string(VARIABLE_ID())->value()); + data()->setName(aName); ResultParameterPtr aParam = document()->createParameter(data()); - std::string anOldName = Locale::Convert::toString(aParam->data()->name()); - aParam->data()->setName(Locale::Convert::toWString(aName)); + std::wstring anOldName = aParam->data()->name(); + aParam->data()->setName(aName); setResult(aParam); @@ -88,12 +90,12 @@ void ParametersPlugin_Parameter::updateName() // update the depended expressions DocumentPtr aRootDoc = ModelAPI_Session::get()->moduleDocument(); if (aParam->document() != aRootDoc) { - std::list aNames; // collect names in the root document that must be checked + std::list aNames; // collect names in the root document that must be checked aNames.push_back(aName); if (anOldName != aName) { aNames.push_back(anOldName); } - std::list::iterator aNIter = aNames.begin(); + std::list::iterator aNIter = aNames.begin(); for (; aNIter != aNames.end(); aNIter++) { double aValue; ResultParameterPtr aRootParam; @@ -115,7 +117,9 @@ void ParametersPlugin_Parameter::updateName() bool ParametersPlugin_Parameter::updateExpression() { - std::string anExpression = string(EXPRESSION_ID())->value(); + std::wstring anExpression = string(EXPRESSION_ID())->isUValue() ? + Locale::Convert::toWString(string(EXPRESSION_ID())->valueU()) : + Locale::Convert::toWString(string(EXPRESSION_ID())->value()); std::string outErrorMessage; double aValue = evaluate(anExpression, outErrorMessage); @@ -139,7 +143,7 @@ void ParametersPlugin_Parameter::execute() setError("Expression error.", false); } -double ParametersPlugin_Parameter::evaluate(const std::string& /*theExpression*/, +double ParametersPlugin_Parameter::evaluate(const std::wstring& /*theExpression*/, std::string& theError) { FeaturePtr aMyPtr = std::dynamic_pointer_cast(data()->owner());