mirror of
https://github.com/OPM/ResInsight.git
synced 2026-09-03 20:53:13 -05:00
#6959 Calculated curve : Make sure relevant calculations are recalculated
This commit is contained in:
@@ -20,6 +20,7 @@
|
|||||||
|
|
||||||
#include "RiaLogging.h"
|
#include "RiaLogging.h"
|
||||||
#include "RiaSummaryTools.h"
|
#include "RiaSummaryTools.h"
|
||||||
|
#include "RicReplaceSummaryCaseFeature.h"
|
||||||
|
|
||||||
#include "RimMainPlotCollection.h"
|
#include "RimMainPlotCollection.h"
|
||||||
#include "RimObservedDataCollection.h"
|
#include "RimObservedDataCollection.h"
|
||||||
@@ -61,6 +62,8 @@ void RicReloadSummaryCaseFeature::onActionTriggered( bool isChecked )
|
|||||||
summaryCase->createSummaryReaderInterface();
|
summaryCase->createSummaryReaderInterface();
|
||||||
summaryCase->createRftReaderInterface();
|
summaryCase->createRftReaderInterface();
|
||||||
|
|
||||||
|
RicReplaceSummaryCaseFeature::updateRequredCalculatedCurves( summaryCase );
|
||||||
|
|
||||||
RiaLogging::info( QString( "Reloaded data for %1" ).arg( summaryCase->summaryHeaderFilename() ) );
|
RiaLogging::info( QString( "Reloaded data for %1" ).arg( summaryCase->summaryHeaderFilename() ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -46,6 +46,26 @@
|
|||||||
|
|
||||||
CAF_CMD_SOURCE_INIT( RicReplaceSummaryCaseFeature, "RicReplaceSummaryCaseFeature" );
|
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();
|
summaryCase->createRftReaderInterface();
|
||||||
RiaLogging::info( QString( "Replaced summary data for %1" ).arg( oldSummaryHeaderFilename ) );
|
RiaLogging::info( QString( "Replaced summary data for %1" ).arg( oldSummaryHeaderFilename ) );
|
||||||
|
|
||||||
RimSummaryCalculationCollection* calcColl = RimProject::current()->calculationCollection();
|
RicReplaceSummaryCaseFeature::updateRequredCalculatedCurves( summaryCase );
|
||||||
|
|
||||||
// Find and update all changed calculations
|
// Find and update all changed calculations
|
||||||
std::set<int> ids;
|
std::set<int> ids;
|
||||||
|
RimSummaryCalculationCollection* calcColl = RimProject::current()->calculationCollection();
|
||||||
for ( RimSummaryCalculation* summaryCalculation : calcColl->calculations() )
|
for ( RimSummaryCalculation* summaryCalculation : calcColl->calculations() )
|
||||||
{
|
{
|
||||||
bool needsUpdate = checkIfCalculationNeedsUpdate( summaryCalculation, summaryCase );
|
bool needsUpdate = checkIfCalculationNeedsUpdate( summaryCalculation, summaryCase );
|
||||||
if ( needsUpdate )
|
if ( needsUpdate )
|
||||||
{
|
{
|
||||||
ids.insert( summaryCalculation->id() );
|
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,
|
bool RicReplaceSummaryCaseFeature::checkIfCalculationNeedsUpdate( const RimSummaryCalculation* summaryCalculation,
|
||||||
const RimFileSummaryCase* summaryCase )
|
const RimSummaryCase* summaryCase )
|
||||||
{
|
{
|
||||||
std::vector<RimSummaryCalculationVariable*> variables = summaryCalculation->allVariables();
|
std::vector<RimSummaryCalculationVariable*> variables = summaryCalculation->allVariables();
|
||||||
for ( RimSummaryCalculationVariable* variable : variables )
|
for ( RimSummaryCalculationVariable* variable : variables )
|
||||||
|
|||||||
@@ -21,17 +21,20 @@
|
|||||||
#include "cafCmdFeature.h"
|
#include "cafCmdFeature.h"
|
||||||
|
|
||||||
class RimSummaryCalculation;
|
class RimSummaryCalculation;
|
||||||
class RimFileSummaryCase;
|
class RimSummaryCase;
|
||||||
|
|
||||||
class RicReplaceSummaryCaseFeature : public caf::CmdFeature
|
class RicReplaceSummaryCaseFeature : public caf::CmdFeature
|
||||||
{
|
{
|
||||||
CAF_CMD_HEADER_INIT;
|
CAF_CMD_HEADER_INIT;
|
||||||
|
|
||||||
|
public:
|
||||||
|
static void updateRequredCalculatedCurves( RimSummaryCase* sourceSummaryCase );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool isCommandEnabled() override;
|
bool isCommandEnabled() override;
|
||||||
void onActionTriggered( bool isChecked ) override;
|
void onActionTriggered( bool isChecked ) override;
|
||||||
void setupActionLook( QAction* actionToSetup ) override;
|
void setupActionLook( QAction* actionToSetup ) override;
|
||||||
|
|
||||||
bool checkIfCalculationNeedsUpdate( const RimSummaryCalculation* summaryCalculation,
|
static bool checkIfCalculationNeedsUpdate( const RimSummaryCalculation* summaryCalculation,
|
||||||
const RimFileSummaryCase* summaryCase );
|
const RimSummaryCase* summaryCase );
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user