#14746 Fix duplicate AppEnum serialization text and detect it in addItem

RimGridCalculation::AdditionalCasesType::ALL_CASES and
RimIntersectionFilterEnum::INTERSECT_FILTER_BETWEEN both reused the
serialization text of a sibling enum value (NONE and
INTERSECT_SHOW_BELOW respectively), so they would silently round-trip
as the wrong value when read back from a project file.

AppEnumMapperBase::addItem only asserted alias uniqueness, not text
uniqueness, so this class of bug went undetected. Add a CAF_ASSERT
checking that a new enum value's serialization text does not match an
existing value's text or aliases.

Found while investigating the AppEnum alias-duplication note in #14654.
This commit is contained in:
Magne Sjaastad committed 2026-09-14 08:14:19 -04:00
1 parent 98c84cde99
commit 64361c2f78
3 files changed
+9 -2

No files matched your search

@@ -80,7 +80,7 @@ void caf::AppEnum<RimGridCalculation::AdditionalCasesType>::setUp()
addItem( RimGridCalculation::AdditionalCasesType::NONE, "NONE", "None" );
addItem( RimGridCalculation::AdditionalCasesType::GRID_CASE_GROUP, "GRID_CASE_GROUP", "Case Group" );
addItem( RimGridCalculation::AdditionalCasesType::ENSEMBLE, "ENSEMBLE", "Ensemble" );
addItem( RimGridCalculation::AdditionalCasesType::ALL_CASES, "NONE", "All Cases" );
addItem( RimGridCalculation::AdditionalCasesType::ALL_CASES, "ALL_CASES", "All Cases" );
setDefault( RimGridCalculation::AdditionalCasesType::NONE );
}
}; // namespace caf