From f7bbfc167947a7404d5b43e8d092da2b48509917 Mon Sep 17 00:00:00 2001 From: Gaute Lindkvist Date: Fri, 2 Oct 2020 12:32:02 +0200 Subject: [PATCH] Provide an automatic name for an analysis plot of a set of single summary cases --- .../AnalysisPlots/RimAnalysisPlot.cpp | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/ApplicationCode/ProjectDataModel/AnalysisPlots/RimAnalysisPlot.cpp b/ApplicationCode/ProjectDataModel/AnalysisPlots/RimAnalysisPlot.cpp index fe1c1b9c8f..7f3822510b 100644 --- a/ApplicationCode/ProjectDataModel/AnalysisPlots/RimAnalysisPlot.cpp +++ b/ApplicationCode/ProjectDataModel/AnalysisPlots/RimAnalysisPlot.cpp @@ -19,6 +19,7 @@ #include "RimAnalysisPlot.h" #include "RiaPreferences.h" +#include "RiaTextStringTools.h" #include "RiuGroupedBarChartBuilder.h" #include "RiuPlotMainWindowTools.h" @@ -28,6 +29,7 @@ #include "RifSummaryReaderInterface.h" #include "RimAnalysisPlotDataEntry.h" +#include "RimCalculatedSummaryCase.h" #include "RimDerivedSummaryCase.h" #include "RimPlotAxisProperties.h" #include "RimPlotAxisPropertiesInterface.h" @@ -1598,6 +1600,31 @@ void RimAnalysisPlot::updatePlotTitle() if ( !autoTitle.isEmpty() ) autoTitle += separator; autoTitle += ( *getOrCreateSelectedCurveDefAnalyser()->m_singleSummaryCases.begin() )->displayCaseName(); } + else if ( getOrCreateSelectedCurveDefAnalyser()->m_singleSummaryCases.size() > 1 ) + { + if ( !autoTitle.isEmpty() ) autoTitle += separator; + + QStringList caseNameList; + for ( auto summaryCase : getOrCreateSelectedCurveDefAnalyser()->m_singleSummaryCases ) + { + if ( !dynamic_cast( summaryCase ) ) + { + caseNameList.push_back( summaryCase->displayCaseName() ); + } + } + + QString root = RiaTextStringTools::findCommonRoot( caseNameList ); + QRegularExpression trimRe( "[^a-zA-Z0-9]+$" ); + QString trimmedRoot = root.replace( trimRe, "" ); + if ( !trimmedRoot.isEmpty() ) + { + autoTitle += trimmedRoot; + } + else + { + autoTitle += "Several Summary Cases"; + } + } if ( getOrCreateSelectedCurveDefAnalyser()->m_summaryItems.size() == 1 ) {