#4114 Regression Test : Missing data for flow diag property filter

This commit is contained in:
Magne Sjaastad 2019-02-20 11:43:35 +01:00
parent f2146c6007
commit 2894002b05
2 changed files with 42 additions and 30 deletions

View File

@ -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<QString> selectedTracers;
selectedTracers.swap(m_selectedTracers_OBSOLETE.v());
std::set<QString, TracerComp> allInjectorTracers = setOfTracersOfType(true);
std::set<QString, TracerComp> allProducerTracers = setOfTracersOfType(false);
std::vector<QString> selectedInjectorTracers;
std::vector<QString> 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<QString> selectedTracers;
selectedTracers.swap(m_selectedTracers_OBSOLETE.v());
std::set<QString, TracerComp> allInjectorTracers = setOfTracersOfType(true);
std::set<QString, TracerComp> allProducerTracers = setOfTracersOfType(false);
std::vector<QString> selectedInjectorTracers;
std::vector<QString> 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);
}
}
}

View File

@ -208,6 +208,8 @@ private:
bool isCaseDiffResultAvailable() const;
bool isCaseDiffResult() const;
void ensureProcessingOfObsoleteFields();
private:
bool m_diffResultOptionsEnabled;
};