#7031 Delta Summary Case: Fix crash when updating case name

This commit is contained in:
Magne Sjaastad
2020-11-23 12:45:19 +01:00
parent 2ab1efa56f
commit efd1ddca54
4 changed files with 37 additions and 9 deletions

View File

@@ -44,8 +44,6 @@ RiaSummaryCurveDefinition::RiaSummaryCurveDefinition( RimSummaryCase*
, m_summaryAddress( summaryAddress )
, m_isEnsembleCurve( isEnsembleCurve )
{
CAF_ASSERT( summaryCase );
if ( summaryCase )
{
RimSummaryCaseCollection* ensemble = nullptr;

View File

@@ -51,9 +51,31 @@ void RicNewDerivedSummaryFeature::onActionTriggered( bool isChecked )
auto derivedCase = new RimDerivedSummaryCase;
auto selectedCases = twoSelectedSummaryCases();
if ( selectedCases.empty() )
{
auto allCases = mainColl->allSummaryCases();
if ( allCases.size() > 0 )
{
selectedCases.push_back( allCases[0] );
}
if ( allCases.size() > 1 )
{
selectedCases.push_back( allCases[1] );
}
}
if ( !selectedCases.empty() )
{
derivedCase->setSummaryCases( selectedCases[0], selectedCases[1] );
RimSummaryCase* sumCase1 = selectedCases[0];
RimSummaryCase* sumCase2 = nullptr;
if ( selectedCases.size() > 1 )
{
sumCase2 = selectedCases[1];
}
derivedCase->setSummaryCases( sumCase1, sumCase2 );
derivedCase->createSummaryReaderInterface();
}

View File

@@ -205,14 +205,22 @@ void RimDerivedEnsembleCaseCollection::createDerivedEnsembleCases()
//--------------------------------------------------------------------------------------------------
bool RimDerivedEnsembleCaseCollection::hasCaseReference( const RimSummaryCase* sumCase ) const
{
for ( auto currCase : m_ensemble1->allSummaryCases() )
if ( m_ensemble1 )
{
if ( currCase == sumCase ) return true;
for ( auto currCase : m_ensemble1->allSummaryCases() )
{
if ( currCase == sumCase ) return true;
}
}
for ( auto currCase : m_ensemble2->allSummaryCases() )
if ( m_ensemble2 )
{
if ( currCase == sumCase ) return true;
for ( auto currCase : m_ensemble2->allSummaryCases() )
{
if ( currCase == sumCase ) return true;
}
}
return false;
}

View File

@@ -111,7 +111,6 @@ bool RimDerivedSummaryCase::isInUse() const
//--------------------------------------------------------------------------------------------------
void RimDerivedSummaryCase::setSummaryCases( RimSummaryCase* sumCase1, RimSummaryCase* sumCase2 )
{
if ( !sumCase1 || !sumCase2 ) return;
m_summaryCase1 = sumCase1;
m_summaryCase2 = sumCase2;
}
@@ -421,7 +420,8 @@ void RimDerivedSummaryCase::updateDisplayNameFromCases()
operatorText = "Sum";
QString name;
if ( case1Name == case2Name && m_summaryCase1->ensemble() && m_summaryCase2->ensemble() )
if ( case1Name == case2Name && m_summaryCase1 && m_summaryCase2 && m_summaryCase1->ensemble() &&
m_summaryCase2->ensemble() )
{
QString ensembleName1 = m_summaryCase1->ensemble()->name();
QString ensembleName2 = m_summaryCase2->ensemble()->name();