Skip to content

Commit

Permalink
Fix handling of final modifiers of replaceable components (#12022)
Browse files Browse the repository at this point in the history
  • Loading branch information
adeas31 committed Feb 22, 2024
1 parent 4f26c77 commit e055520
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions OMEdit/OMEditLIB/Element/ElementProperties.cpp
Expand Up @@ -482,7 +482,7 @@ void Parameter::setValueWidget(QString value, bool defaultValue, QString fromUni
signalsState = mpValueCheckBox->blockSignals(true);
mpValueCheckBox->setChecked(value.compare("true") == 0);
mpValueCheckBox->blockSignals(signalsState);
mValueCheckBoxModified = valueModified;
mValueCheckBoxModified = valueModified && !defaultValue;
break;
case Parameter::Normal:
default:
Expand Down Expand Up @@ -1643,7 +1643,7 @@ void ElementParameters::fetchElementModifiers()
if (mpElement->getModifier()) {
foreach (auto *pModifier, mpElement->getModifier()->getModifiers()) {
Parameter *pParameter = findParameter(pModifier->getName());
ElementParameters::applyFinalStartFixedAndDisplayUnitModifiers(pParameter, pModifier, mInherited || mNested, true, false);
ElementParameters::applyFinalStartFixedAndDisplayUnitModifiers(pParameter, pModifier, mInherited || mNested, true, mNested);
// set final and each checkboxes in the menu
if (pParameter && !pParameter->isShowStartAndFixed()) {
pParameter->getFinalEachMenu()->setFinal(pModifier->isFinal());
Expand Down Expand Up @@ -1901,6 +1901,7 @@ void ElementParameters::updateElementParameters()
QStringList modifiersList;
foreach (ElementModifier elementModifier, elementModifiersList) {
int index = elementModifier.mValue.indexOf('(');
bool onlyName = false;
QString modifierStartStr;
if (index > -1) {
modifierStartStr = elementModifier.mValue.left(index);
Expand All @@ -1909,6 +1910,7 @@ void ElementParameters::updateElementParameters()
QString modifierValue;
if (elementModifier.mValue.isEmpty()) {
modifierValue = QString(elementModifier.mKey);
onlyName = true;
} else if (elementModifier.mValue.startsWith(QStringLiteral("redeclare")) || ((index > -1) && (modifierStartStr.compare(elementModifier.mKey) == 0))) {
modifierValue = QString(elementModifier.mValue);
} else {
Expand All @@ -1932,6 +1934,10 @@ void ElementParameters::updateElementParameters()
modifierValue.prepend(modifier);
}
}
// skip adding empty parameter names
if (onlyName && modifierValue.compare(elementModifier.mKey) == 0) {
continue;
}
modifiersList.append(modifierValue);
}
if (mNested) {
Expand Down

0 comments on commit e055520

Please sign in to comment.