#6369 Mud Weight Window: Update well log extraction curves WBS plot when MWW parameters change.

This commit is contained in:
Kristian Bendiksen 2020-08-31 14:31:35 +02:00
parent 97c1bf5f0d
commit ca0a596817
5 changed files with 50 additions and 3 deletions

View File

@ -42,7 +42,8 @@ CAF_PDM_XML_ABSTRACT_SOURCE_INIT( RimCase, "Case", "RimCase" );
///
//--------------------------------------------------------------------------------------------------
RimCase::RimCase()
: m_isInActiveDestruction( false )
: settingsChanged( this )
, m_isInActiveDestruction( false )
{
CAF_PDM_InitScriptableObjectWithNameAndComment( "Case", ":/Case48x48.png", "", "", "Case", "The ResInsight base class for Cases" );

View File

@ -81,6 +81,8 @@ public:
Rim2dIntersectionViewCollection* intersectionViewCollection();
caf::Signal<> settingsChanged;
protected:
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions,
bool* useOptionsOnly ) override;

View File

@ -415,6 +415,7 @@ void RimMudWeightWindowParameters::fieldChangedByUi( const caf::PdmFieldHandle*
m_userDefinedPPNonReservoir,
m_porePressureNonReservoirAddress );
geoMechCase->updateConnectedViews();
geoMechCase->settingsChanged.send();
}
}
}
@ -474,6 +475,7 @@ void RimMudWeightWindowParameters::handleFieldChanged( RimGeoMechCase*
}
geoMechCase->updateConnectedViews();
geoMechCase->settingsChanged.send();
}
//--------------------------------------------------------------------------------------------------

View File

@ -178,7 +178,11 @@ void RimWellLogExtractionCurve::setFromSimulationWellName( const QString& simWel
//--------------------------------------------------------------------------------------------------
void RimWellLogExtractionCurve::setCase( RimCase* rimCase )
{
disconnectCaseSignals( m_case.value() );
m_case = rimCase;
connectCaseSignals( rimCase );
clearGeneratedSimWellPaths();
}
@ -197,7 +201,9 @@ void RimWellLogExtractionCurve::setPropertiesFromView( Rim3dView* view )
{
if ( view )
{
disconnectCaseSignals( m_case.value() );
m_case = view->ownerCase();
connectCaseSignals( m_case );
}
RimGeoMechCase* geomCase = dynamic_cast<RimGeoMechCase*>( m_case.value() );
@ -763,6 +769,8 @@ void RimWellLogExtractionCurve::initAfterRead()
m_eclipseResultDefinition->setEclipseCase( eclipseCase );
m_geomResultDefinition->setGeoMechCase( geomCase );
connectCaseSignals( m_case.value() );
}
//--------------------------------------------------------------------------------------------------
@ -1101,3 +1109,33 @@ void RimWellLogExtractionCurve::setBranchIndex( int index )
{
m_branchIndex = index;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimWellLogExtractionCurve::connectCaseSignals( RimCase* rimCase )
{
if ( rimCase )
{
rimCase->settingsChanged.connect( this, &RimWellLogExtractionCurve::onCaseSettingsChanged );
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimWellLogExtractionCurve::disconnectCaseSignals( RimCase* rimCase )
{
if ( rimCase != nullptr )
{
rimCase->settingsChanged.disconnect( this );
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimWellLogExtractionCurve::onCaseSettingsChanged( const caf::SignalEmitter* emitter )
{
loadDataAndUpdate( true );
}

View File

@ -94,8 +94,12 @@ public:
RiaDefines::PhaseType phaseType() const override;
protected:
QString createCurveAutoName() override;
void onLoadDataAndUpdate( bool updateParentPlot ) override;
QString createCurveAutoName() override;
void onLoadDataAndUpdate( bool updateParentPlot ) override;
void onCaseSettingsChanged( const caf::SignalEmitter* emitter );
void connectCaseSignals( RimCase* rimCase );
void disconnectCaseSignals( RimCase* rimCase );
virtual void performDataExtraction( bool* isUsingPseudoLength );
void extractData( bool* isUsingPseudoLength, bool performDataSmoothing = false, double smoothingThreshold = -1.0 );