diff --git a/ApplicationCode/ProjectDataModel/RimEclipseResultDefinition.cpp b/ApplicationCode/ProjectDataModel/RimEclipseResultDefinition.cpp index 9e1e873ca3..196f74c1ea 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseResultDefinition.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseResultDefinition.cpp @@ -898,6 +898,8 @@ QString RimEclipseResultDefinition::diffResultUiShortNameHTML() const //-------------------------------------------------------------------------------------------------- void RimEclipseResultDefinition::loadResult() { + ensureProcessingOfObsoleteFields(); + if (isFlowDiagOrInjectionFlooding()) return; // Will load automatically on access if (ownerEclipseCase()) @@ -1319,36 +1321,7 @@ void RimEclipseResultDefinition::defineEditorAttribute(const caf::PdmFieldHandle //-------------------------------------------------------------------------------------------------- void RimEclipseResultDefinition::onEditorWidgetsCreated() { - if (m_flowSolution() && !m_selectedTracers_OBSOLETE().empty()) - { - std::vector selectedTracers; - selectedTracers.swap(m_selectedTracers_OBSOLETE.v()); - - std::set allInjectorTracers = setOfTracersOfType(true); - std::set allProducerTracers = setOfTracersOfType(false); - - std::vector selectedInjectorTracers; - std::vector selectedProducerTracers; - for (const QString& tracerName : selectedTracers) - { - if (allInjectorTracers.count(tracerName)) - { - selectedInjectorTracers.push_back(tracerName); - } - if (allProducerTracers.count(tracerName)) - { - selectedProducerTracers.push_back(tracerName); - } - } - if (!selectedInjectorTracers.empty()) - { - setSelectedInjectorTracers(selectedInjectorTracers); - } - if (!selectedProducerTracers.empty()) - { - setSelectedProducerTracers(selectedProducerTracers); - } - } + ensureProcessingOfObsoleteFields(); } //-------------------------------------------------------------------------------------------------- @@ -1968,3 +1941,40 @@ bool RimEclipseResultDefinition::isCaseDiffResult() const { return isCaseDiffResultAvailable() && m_differenceCase() != nullptr; } + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimEclipseResultDefinition::ensureProcessingOfObsoleteFields() +{ + if (m_flowSolution() && !m_selectedTracers_OBSOLETE().empty()) + { + std::vector selectedTracers; + selectedTracers.swap(m_selectedTracers_OBSOLETE.v()); + + std::set allInjectorTracers = setOfTracersOfType(true); + std::set allProducerTracers = setOfTracersOfType(false); + + std::vector selectedInjectorTracers; + std::vector selectedProducerTracers; + for (const QString& tracerName : selectedTracers) + { + if (allInjectorTracers.count(tracerName)) + { + selectedInjectorTracers.push_back(tracerName); + } + if (allProducerTracers.count(tracerName)) + { + selectedProducerTracers.push_back(tracerName); + } + } + if (!selectedInjectorTracers.empty()) + { + setSelectedInjectorTracers(selectedInjectorTracers); + } + if (!selectedProducerTracers.empty()) + { + setSelectedProducerTracers(selectedProducerTracers); + } + } +} diff --git a/ApplicationCode/ProjectDataModel/RimEclipseResultDefinition.h b/ApplicationCode/ProjectDataModel/RimEclipseResultDefinition.h index ad6f0d5d69..3d6e64f2b2 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseResultDefinition.h +++ b/ApplicationCode/ProjectDataModel/RimEclipseResultDefinition.h @@ -208,6 +208,8 @@ private: bool isCaseDiffResultAvailable() const; bool isCaseDiffResult() const; + void ensureProcessingOfObsoleteFields(); + private: bool m_diffResultOptionsEnabled; };