mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#6959 Calculated curve : Make sure relevant calculations are recalculated
This commit is contained in:
parent
e3ef1b436a
commit
0e2d021148
@ -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() ) );
|
||||
}
|
||||
|
||||
|
@ -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<int> ids;
|
||||
std::set<int> 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<RimSummaryCalculationVariable*> variables = summaryCalculation->allVariables();
|
||||
for ( RimSummaryCalculationVariable* variable : variables )
|
||||
|
@ -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 );
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user