#4608 Add only one legend item per RFT ensemble

This commit is contained in:
Gaute Lindkvist 2019-08-22 14:20:04 +02:00
parent 510ea3f8be
commit 4bddefeb0c
2 changed files with 12 additions and 5 deletions

View File

@ -404,6 +404,8 @@ void RimWellRftPlot::updateCurvesInPlot(const std::set<RiaRftPltCurveDefinition>
defineCurveColorsAndSymbols(allCurveDefs); defineCurveColorsAndSymbols(allCurveDefs);
std::set<RimSummaryCaseCollection*> ensemblesWithSummaryCurves;
// Add new curves // Add new curves
for (const RiaRftPltCurveDefinition& curveDefToAdd : allCurveDefs) for (const RiaRftPltCurveDefinition& curveDefToAdd : allCurveDefs)
{ {
@ -428,10 +430,15 @@ void RimWellRftPlot::updateCurvesInPlot(const std::set<RiaRftPltCurveDefinition>
plotTrack->addCurve(curve); plotTrack->addCurve(curve);
auto rftCase = curveDefToAdd.address().summaryCase(); auto rftCase = curveDefToAdd.address().summaryCase();
curve->setSummaryCase(rftCase); curve->setSummaryCase(rftCase);
curve->setEnsemble(curveDefToAdd.address().ensemble());
RifEclipseRftAddress address(simWellName, curveDefToAdd.timeStep(), RifEclipseRftAddress::PRESSURE); RifEclipseRftAddress address(simWellName, curveDefToAdd.timeStep(), RifEclipseRftAddress::PRESSURE);
curve->setRftAddress(address); curve->setRftAddress(address);
curve->setZOrder(1); curve->setZOrder(1);
applyCurveAppearance(curve); applyCurveAppearance(curve);
bool isFirstSummaryCurveInEnsemble = ensemblesWithSummaryCurves.count(curveDefToAdd.address().ensemble()) == 0u;
curve->showLegend(isFirstSummaryCurveInEnsemble);
ensemblesWithSummaryCurves.insert(curveDefToAdd.address().ensemble());
} }
else if (m_showStatisticsCurves && curveDefToAdd.address().sourceType() == RifDataSourceForRftPlt::ENSEMBLE_RFT) else if (m_showStatisticsCurves && curveDefToAdd.address().sourceType() == RifDataSourceForRftPlt::ENSEMBLE_RFT)
{ {

View File

@ -308,14 +308,14 @@ QString RimWellLogRftCurve::createCurveAutoName()
{ {
name.push_back(m_eclipseResultCase->caseUserDescription()); name.push_back(m_eclipseResultCase->caseUserDescription());
} }
else if (m_ensemble) // Summary RFT curves have both ensemble and summary set. Prioritize ensemble for name.
{
name.push_back(m_ensemble->name());
}
else if (m_summaryCase) else if (m_summaryCase)
{ {
name.push_back(m_summaryCase->caseName()); name.push_back(m_summaryCase->caseName());
} }
else if (m_ensemble)
{
name.push_back(m_ensemble->name());
}
if (wellLogChannelName() != caf::AppEnum<RifEclipseRftAddress::RftWellLogChannelType>::text(RifEclipseRftAddress::NONE)) if (wellLogChannelName() != caf::AppEnum<RifEclipseRftAddress::RftWellLogChannelType>::text(RifEclipseRftAddress::NONE))
{ {
RifEclipseRftAddress::RftWellLogChannelType channelNameEnum = RifEclipseRftAddress::RftWellLogChannelType channelNameEnum =
@ -592,7 +592,7 @@ RifReaderRftInterface* RimWellLogRftCurve::rftReader() const
{ {
return m_eclipseResultCase()->rftReader(); return m_eclipseResultCase()->rftReader();
} }
else if (m_summaryCase()) else if (m_summaryCase()) // Summary RFT curves have both summary and ensemble set. Prioritize summary for reader.
{ {
return m_summaryCase()->rftReader(); return m_summaryCase()->rftReader();
} }