#1801 Flow Characteristics Plot: Sort wells according to Status and name

This commit is contained in:
Bjørnar Grip Fjær 2017-08-21 13:37:35 +02:00
parent ba660767f5
commit 9392821f8f

View File

@ -223,6 +223,7 @@ QList<caf::PdmOptionItemInfo> RimFlowCharacteristicsPlot::calculateValueOptions(
if (m_flowDiagSolution) if (m_flowDiagSolution)
{ {
std::vector<QString> tracerNames = m_flowDiagSolution->tracerNames(); std::vector<QString> tracerNames = m_flowDiagSolution->tracerNames();
std::vector<std::pair<QString, QString>> sortedTracerNames;
for (QString tracerName : tracerNames) for (QString tracerName : tracerNames)
{ {
if (!caf::Utils::isStringMatch(m_tracerFilter, tracerName)) continue; if (!caf::Utils::isStringMatch(m_tracerFilter, tracerName)) continue;
@ -234,14 +235,14 @@ QList<caf::PdmOptionItemInfo> RimFlowCharacteristicsPlot::calculateValueOptions(
{ {
if (tracerStatus == RimFlowDiagSolution::INJECTOR || tracerStatus == RimFlowDiagSolution::VARYING) if (tracerStatus == RimFlowDiagSolution::INJECTOR || tracerStatus == RimFlowDiagSolution::VARYING)
{ {
options.push_back(caf::PdmOptionItemInfo(tracerName, tracerName)); sortedTracerNames.push_back(std::make_pair(tracerName, tracerName));
} }
} }
else if (m_cellFilter() == RigFlowDiagResults::CELLS_DRAINED) else if (m_cellFilter() == RigFlowDiagResults::CELLS_DRAINED)
{ {
if (tracerStatus == RimFlowDiagSolution::PRODUCER || tracerStatus == RimFlowDiagSolution::VARYING) if (tracerStatus == RimFlowDiagSolution::PRODUCER || tracerStatus == RimFlowDiagSolution::VARYING)
{ {
options.push_back(caf::PdmOptionItemInfo(tracerName, tracerName)); sortedTracerNames.push_back(std::make_pair(tracerName, tracerName));
} }
} }
else if (m_cellFilter() == RigFlowDiagResults::CELLS_COMMUNICATION) else if (m_cellFilter() == RigFlowDiagResults::CELLS_COMMUNICATION)
@ -262,9 +263,21 @@ QList<caf::PdmOptionItemInfo> RimFlowCharacteristicsPlot::calculateValueOptions(
prefix = "U : "; prefix = "U : ";
break; break;
} }
options.push_back(caf::PdmOptionItemInfo(prefix + tracerName, tracerName)); sortedTracerNames.push_back(std::make_pair(prefix + tracerName, tracerName));
} }
} }
std::sort(sortedTracerNames.begin(),
sortedTracerNames.end(),
[](const std::pair<QString, QString>& a, const std::pair<QString, QString>& b) -> bool
{
return a.first < b.first;
});
for (auto& tracer : sortedTracerNames)
{
options.push_back(caf::PdmOptionItemInfo(tracer.first, tracer.second));
}
} }
} }