diff --git a/ApplicationCode/Commands/CompletionExportCommands/RicExportFractureCompletionsImpl.cpp b/ApplicationCode/Commands/CompletionExportCommands/RicExportFractureCompletionsImpl.cpp index e07e031a5a..b6cb79b3f8 100644 --- a/ApplicationCode/Commands/CompletionExportCommands/RicExportFractureCompletionsImpl.cpp +++ b/ApplicationCode/Commands/CompletionExportCommands/RicExportFractureCompletionsImpl.cpp @@ -452,7 +452,7 @@ void RicExportFractureCompletionsImpl::getWellPressuresAndInitialProductionTimeS { RimSummaryCase* summaryCase = mainCollection->findSummaryCaseFromEclipseResultCase( resultCase ); - if ( summaryCase ) + if (summaryCase && summaryCase->summaryReader()) { std::vector values; if ( summaryCase->summaryReader()->values( wbhpPressureAddress, &values ) ) diff --git a/ApplicationCode/Commands/SummaryPlotCommands/RicSummaryPlotFeatureImpl.cpp b/ApplicationCode/Commands/SummaryPlotCommands/RicSummaryPlotFeatureImpl.cpp index 4842d67823..b608f034c5 100644 --- a/ApplicationCode/Commands/SummaryPlotCommands/RicSummaryPlotFeatureImpl.cpp +++ b/ApplicationCode/Commands/SummaryPlotCommands/RicSummaryPlotFeatureImpl.cpp @@ -63,7 +63,7 @@ //-------------------------------------------------------------------------------------------------- RimSummaryCurve* RicSummaryPlotFeatureImpl::addDefaultCurveToPlot( RimSummaryPlot* plot, RimSummaryCase* summaryCase ) { - if ( plot ) + if ( plot && summaryCase && summaryCase->summaryReader() ) { RifEclipseSummaryAddress defaultAddressToUse; @@ -486,9 +486,6 @@ void RicSummaryPlotFeatureImpl::createSummaryPlotsFromArgumentLine( const QStrin { RimEnsembleCurveSet* curveSet = new RimEnsembleCurveSet(); - curveSet->setSummaryCaseCollection( ensemble ); - curveSet->setSummaryAddress( addr ); - if ( ensembleColoringStyle == PARAMETER || ensembleColoringStyle == LOG_PARAMETER ) { curveSet->setColorMode( RimEnsembleCurveSet::BY_ENSEMBLE_PARAM ); @@ -780,6 +777,9 @@ std::vector RicSummaryPlotFeatureImpl::addCurvesFromAddressFil { std::vector createdCurves; + if ( !plot ) return createdCurves; + if ( !summaryCase || !summaryCase->summaryReader() ) return createdCurves; + std::set curveAddressesToUse; const std::set& addrs = summaryCase->summaryReader()->allResultAddresses(); @@ -850,4 +850,4 @@ void RicSummaryPlotFeatureImpl::filteredSummaryAdressesFromCase( } } } -} \ No newline at end of file +} diff --git a/ApplicationCode/ProjectDataModel/RimEclipseResultDefinition.cpp b/ApplicationCode/ProjectDataModel/RimEclipseResultDefinition.cpp index 19febfe8ed..47c4bcb0ec 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseResultDefinition.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseResultDefinition.cpp @@ -36,9 +36,11 @@ #include "Rim3dView.h" #include "Rim3dWellLogCurve.h" #include "RimCellEdgeColors.h" +#include "RimContourMapProjection.h" #include "RimEclipseCase.h" #include "RimEclipseCellColors.h" #include "RimEclipseContourMapProjection.h" +#include "RimEclipseContourMapView.h" #include "RimEclipseFaultColors.h" #include "RimEclipsePropertyFilter.h" #include "RimEclipseResultCase.h" @@ -307,14 +309,28 @@ void RimEclipseResultDefinition::fieldChangedByUi( const caf::PdmFieldHandle* ch loadDataAndUpdate(); } + RimEclipseContourMapView* contourMapView = nullptr; + this->firstAncestorOrThisOfType( contourMapView ); + if ( &m_differenceCase == changedField ) { m_timeLapseBaseTimestep = RigEclipseResultAddress::noTimeLapseValue(); + + if ( contourMapView ) + { + contourMapView->contourMapProjection()->updatedWeightingResult(); + } + loadDataAndUpdate(); } if ( &m_timeLapseBaseTimestep == changedField ) { + if ( contourMapView ) + { + contourMapView->contourMapProjection()->updatedWeightingResult(); + } + loadDataAndUpdate(); } diff --git a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCaseCollection.cpp b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCaseCollection.cpp index 383ed619f0..120f9c0d22 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCaseCollection.cpp +++ b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCaseCollection.cpp @@ -278,12 +278,12 @@ std::set RimSummaryCaseCollection::ensembleSummaryAddr } } - if ( maxAddrIndex >= 0 ) - { - const std::set& addrs = m_cases[maxAddrIndex]->summaryReader()->allResultAddresses(); - addresses.insert( addrs.begin(), addrs.end() ); - } - return addresses; + if (maxAddrIndex >= 0 && m_cases[maxAddrIndex]->summaryReader()) + { + const std::set& addrs = m_cases[maxAddrIndex]->summaryReader()->allResultAddresses(); + addresses.insert(addrs.begin(), addrs.end()); + } + return addresses; } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurve.cpp b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurve.cpp index cbe574fe49..7a1e372882 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurve.cpp +++ b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurve.cpp @@ -512,20 +512,20 @@ void RimSummaryCurve::onLoadDataAndUpdate( bool updateParentPlot ) { if ( plot->timeAxisProperties()->timeMode() == RimSummaryTimeAxisProperties::DATE ) { - auto reader = summaryCaseY()->summaryReader(); - auto errAddress = reader->errorAddress( summaryAddressY() ); - if ( errAddress.isValid() ) + auto reader = summaryCaseY()->summaryReader(); + if (reader) { - std::vector errValues; - reader->values( errAddress, &errValues ); - m_qwtPlotCurve->setSamplesFromTimeTAndYValues( curveTimeStepsY, - curveValuesY, - errValues, - isLogCurve ); - } - else - { - m_qwtPlotCurve->setSamplesFromTimeTAndYValues( curveTimeStepsY, curveValuesY, isLogCurve ); + auto errAddress = reader->errorAddress(summaryAddressY()); + if (errAddress.isValid()) + { + std::vector errValues; + reader->values(errAddress, &errValues); + m_qwtPlotCurve->setSamplesFromTimeTAndYValues(curveTimeStepsY, curveValuesY, errValues, isLogCurve); + } + else + { + m_qwtPlotCurve->setSamplesFromTimeTAndYValues(curveTimeStepsY, curveValuesY, isLogCurve); + } } } else diff --git a/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.cpp b/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.cpp index b2df5a8e89..9c4d92b160 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.cpp +++ b/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.cpp @@ -583,12 +583,12 @@ std::vector RimSummaryPlotSourceStepping::summaryRea { for ( auto curve : curveCollection->curves() ) { - if ( isYAxisStepping() && curve->summaryCaseY() ) + if (isYAxisStepping() && curve->summaryCaseY() && curve->summaryCaseY()->summaryReader()) { readers.push_back( curve->summaryCaseY()->summaryReader() ); } - if ( isXAxisStepping() && curve->summaryCaseX() ) + if (isXAxisStepping() && curve->summaryCaseX() && curve->summaryCaseX()->summaryReader()) { readers.push_back( curve->summaryCaseX()->summaryReader() ); } @@ -604,7 +604,7 @@ std::vector RimSummaryPlotSourceStepping::summaryRea { for ( auto curve : curveSet->curves() ) { - if ( isYAxisStepping() && curve->summaryCaseY() ) + if (isYAxisStepping() && curve->summaryCaseY() && curve->summaryCaseY()->summaryReader()) { readers.push_back( curve->summaryCaseY()->summaryReader() ); }