#8773 Source Stepping : Realization cases are missing in some cases

This commit is contained in:
Magne Sjaastad
2022-04-06 08:43:02 +02:00
parent 22673c1073
commit 6417daf167
5 changed files with 78 additions and 65 deletions

View File

@@ -22,6 +22,9 @@
#include "RiaTextStringTools.h"
#include "RimCaseDisplayNameTools.h"
#include "RimProject.h"
#include "RimSummaryCase.h"
#include "RimSummaryCaseCollection.h"
#include "cafAppEnum.h"
@@ -131,6 +134,54 @@ std::vector<QStringList> RiaEnsembleNameTools::groupFilesByEnsemble( const QStri
return groupedByIteration;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RiaEnsembleNameTools::uniqueShortNameForEnsembleCase( RimSummaryCase* summaryCase )
{
CAF_ASSERT( summaryCase && summaryCase->ensemble() );
auto ensembleCaseName = summaryCase->nativeCaseName();
auto ensemble = summaryCase->ensemble();
auto summaryCases = ensemble->allSummaryCases();
QStringList summaryFilePaths;
summaryFilePaths.push_back( summaryCase->summaryHeaderFilename() );
for ( auto otherSummaryCase : summaryCases )
{
if ( otherSummaryCase != summaryCase )
{
summaryFilePaths.push_back( otherSummaryCase->summaryHeaderFilename() );
}
}
return RiaEnsembleNameTools::uniqueShortName( summaryCase->summaryHeaderFilename(), summaryFilePaths, ensembleCaseName );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RiaEnsembleNameTools::uniqueShortNameForSummaryCase( RimSummaryCase* summaryCase )
{
std::set<QString> allAutoShortNames;
std::vector<RimSummaryCase*> allCases;
RimProject::current()->descendantsOfType( allCases );
for ( auto sumCase : allCases )
{
if ( sumCase && sumCase != summaryCase )
{
allAutoShortNames.insert( sumCase->displayCaseName() );
}
}
return RimCaseDisplayNameTools::uniqueShortName( summaryCase->nativeCaseName(),
allAutoShortNames,
RimCaseDisplayNameTools::CASE_SHORT_NAME_LENGTH );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -19,9 +19,12 @@
#pragma once
#include <QString>
#include <map>
#include <vector>
class RimSummaryCase;
//==================================================================================================
//
//==================================================================================================
@@ -49,6 +52,9 @@ public:
static std::vector<QStringList> groupFilesByEnsemble( const QStringList& fileNames, EnsembleGroupingMode groupingMode );
static QString uniqueShortNameForEnsembleCase( RimSummaryCase* summaryCase );
static QString uniqueShortNameForSummaryCase( RimSummaryCase* summaryCase );
private:
static QStringList findUniqueEnsembleNames( const QStringList& fileNames,
const std::vector<QStringList>& fileNameComponents,