-// Copyright (C) 2014-2020 CEA/DEN, EDF R&D
+// Copyright (C) 2014-2022 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
/// \return Context for translation
virtual std::string context() const {
-
+ bool isAppendAttr = true;
std::string aContext = myFeatureId;
if(!aContext.empty() && !myAttributeID.empty()) {
- aContext += ":";
+ // workaround for ModelAPI_Filter's attributes:
+ // do not keep attribute name, because it may be changed
+ // if the same filter is selected twice or more.
+ if (myAttributeID.find(aContext + "__") != std::string::npos)
+ isAppendAttr = false;
+ else
+ aContext += ":";
}
- aContext += myAttributeID;
+ if (isAppendAttr)
+ aContext += myAttributeID;
return aContext;
}
/// A feature ID
std::string myFeatureId;
- /// Flag which shows that current operation is in editing mode
- bool myIsEditing;
-
/// Flag which shows whether current widget is obligatory
/// The non-obligatory widgets should not accept the focus in the property panel
bool myIsObligatory;
ValueState myState;
private:
+ /// Flag which shows that current operation is in editing mode
+ bool myIsEditing;
+
/// Value should be computed on execute, like radius for circle's constraint (can not be zero)
bool myIsComputedDefault;