diff --git a/ApplicationCode/Commands/RicReloadSummaryCaseFeature.cpp b/ApplicationCode/Commands/RicReloadSummaryCaseFeature.cpp index bf7dc07583..21918dc2b6 100644 --- a/ApplicationCode/Commands/RicReloadSummaryCaseFeature.cpp +++ b/ApplicationCode/Commands/RicReloadSummaryCaseFeature.cpp @@ -20,6 +20,7 @@ #include "RiaLogging.h" #include "RiaSummaryTools.h" +#include "RicReplaceSummaryCaseFeature.h" #include "RimMainPlotCollection.h" #include "RimObservedDataCollection.h" @@ -61,6 +62,8 @@ void RicReloadSummaryCaseFeature::onActionTriggered( bool isChecked ) summaryCase->createSummaryReaderInterface(); summaryCase->createRftReaderInterface(); + RicReplaceSummaryCaseFeature::updateRequredCalculatedCurves( summaryCase ); + RiaLogging::info( QString( "Reloaded data for %1" ).arg( summaryCase->summaryHeaderFilename() ) ); } diff --git a/ApplicationCode/Commands/RicReplaceSummaryCaseFeature.cpp b/ApplicationCode/Commands/RicReplaceSummaryCaseFeature.cpp index 9bac9b6750..dd39a039a9 100644 --- a/ApplicationCode/Commands/RicReplaceSummaryCaseFeature.cpp +++ b/ApplicationCode/Commands/RicReplaceSummaryCaseFeature.cpp @@ -46,6 +46,26 @@ CAF_CMD_SOURCE_INIT( RicReplaceSummaryCaseFeature, "RicReplaceSummaryCaseFeature" ); +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RicReplaceSummaryCaseFeature::updateRequredCalculatedCurves( RimSummaryCase* sourceSummaryCase ) +{ + RimSummaryCalculationCollection* calcColl = RimProject::current()->calculationCollection(); + + for ( RimSummaryCalculation* summaryCalculation : calcColl->calculations() ) + { + bool needsUpdate = + RicReplaceSummaryCaseFeature::checkIfCalculationNeedsUpdate( summaryCalculation, sourceSummaryCase ); + if ( needsUpdate ) + { + summaryCalculation->parseExpression(); + summaryCalculation->calculate(); + summaryCalculation->updateDependentCurvesAndPlots(); + } + } +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -74,19 +94,17 @@ void RicReplaceSummaryCaseFeature::onActionTriggered( bool isChecked ) summaryCase->createRftReaderInterface(); RiaLogging::info( QString( "Replaced summary data for %1" ).arg( oldSummaryHeaderFilename ) ); - RimSummaryCalculationCollection* calcColl = RimProject::current()->calculationCollection(); + RicReplaceSummaryCaseFeature::updateRequredCalculatedCurves( summaryCase ); // Find and update all changed calculations - std::set ids; + std::set ids; + RimSummaryCalculationCollection* calcColl = RimProject::current()->calculationCollection(); for ( RimSummaryCalculation* summaryCalculation : calcColl->calculations() ) { bool needsUpdate = checkIfCalculationNeedsUpdate( summaryCalculation, summaryCase ); if ( needsUpdate ) { ids.insert( summaryCalculation->id() ); - summaryCalculation->parseExpression(); - summaryCalculation->calculate(); - summaryCalculation->updateDependentCurvesAndPlots(); } } @@ -174,7 +192,7 @@ void RicReplaceSummaryCaseFeature::setupActionLook( QAction* actionToSetup ) /// //-------------------------------------------------------------------------------------------------- bool RicReplaceSummaryCaseFeature::checkIfCalculationNeedsUpdate( const RimSummaryCalculation* summaryCalculation, - const RimFileSummaryCase* summaryCase ) + const RimSummaryCase* summaryCase ) { std::vector variables = summaryCalculation->allVariables(); for ( RimSummaryCalculationVariable* variable : variables ) diff --git a/ApplicationCode/Commands/RicReplaceSummaryCaseFeature.h b/ApplicationCode/Commands/RicReplaceSummaryCaseFeature.h index 0d60497cb1..5f16574a1e 100644 --- a/ApplicationCode/Commands/RicReplaceSummaryCaseFeature.h +++ b/ApplicationCode/Commands/RicReplaceSummaryCaseFeature.h @@ -21,17 +21,20 @@ #include "cafCmdFeature.h" class RimSummaryCalculation; -class RimFileSummaryCase; +class RimSummaryCase; class RicReplaceSummaryCaseFeature : public caf::CmdFeature { CAF_CMD_HEADER_INIT; +public: + static void updateRequredCalculatedCurves( RimSummaryCase* sourceSummaryCase ); + protected: bool isCommandEnabled() override; void onActionTriggered( bool isChecked ) override; void setupActionLook( QAction* actionToSetup ) override; - bool checkIfCalculationNeedsUpdate( const RimSummaryCalculation* summaryCalculation, - const RimFileSummaryCase* summaryCase ); + static bool checkIfCalculationNeedsUpdate( const RimSummaryCalculation* summaryCalculation, + const RimSummaryCase* summaryCase ); };