diff --git a/ApplicationCode/ProjectDataModel/Completions/RimFractureModel.cpp b/ApplicationCode/ProjectDataModel/Completions/RimFractureModel.cpp index 40159a5f81..ae042c438b 100644 --- a/ApplicationCode/ProjectDataModel/Completions/RimFractureModel.cpp +++ b/ApplicationCode/ProjectDataModel/Completions/RimFractureModel.cpp @@ -47,7 +47,9 @@ #include "RimReservoirCellResultsStorage.h" #include "RimStimPlanColors.h" #include "RimStimPlanFractureTemplate.h" +#include "RimTools.h" #include "RimWellPath.h" +#include "RimWellPathCollection.h" #include "RimWellPathGeometryDef.h" #include "RimWellPathTarget.h" @@ -241,6 +243,8 @@ RimFractureModel::RimFractureModel() CAF_PDM_InitScriptableFieldNoDefault( &m_elasticProperties, "ElasticProperties", "Elastic Properties", "", "", "" ); m_elasticProperties.uiCapability()->setUiHidden( true ); m_elasticProperties.uiCapability()->setUiTreeHidden( true ); + + setDeletable( true ); } //-------------------------------------------------------------------------------------------------- @@ -248,6 +252,17 @@ RimFractureModel::RimFractureModel() //-------------------------------------------------------------------------------------------------- RimFractureModel::~RimFractureModel() { + RimWellPath* wellPath = m_thicknessDirectionWellPath.value(); + RimWellPathCollection* wellPathCollection = RimTools::wellPathCollection(); + + if ( wellPath && wellPathCollection ) + { + wellPathCollection->removeWellPath( wellPath ); + delete wellPath; + + wellPathCollection->uiCapability()->updateConnectedEditors(); + wellPathCollection->scheduleRedrawAffectedViews(); + } } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimElasticPropertiesCurve.cpp b/ApplicationCode/ProjectDataModel/RimElasticPropertiesCurve.cpp index bc04838801..49b872bc4a 100644 --- a/ApplicationCode/ProjectDataModel/RimElasticPropertiesCurve.cpp +++ b/ApplicationCode/ProjectDataModel/RimElasticPropertiesCurve.cpp @@ -132,7 +132,7 @@ void RimElasticPropertiesCurve::performDataExtraction( bool* isUsingPseudoLength *isUsingPseudoLength = false; RimEclipseCase* eclipseCase = dynamic_cast( m_case.value() ); - if ( eclipseCase ) + if ( eclipseCase && m_fractureModel ) { RigEclipseWellLogExtractor eclExtractor( eclipseCase->eclipseCaseData(), m_fractureModel->thicknessDirectionWellPath()->wellPathGeometry(), diff --git a/ApplicationCode/ProjectDataModel/RimFractureModelCurve.cpp b/ApplicationCode/ProjectDataModel/RimFractureModelCurve.cpp index c6fe1c3462..fcc7f1b2c6 100644 --- a/ApplicationCode/ProjectDataModel/RimFractureModelCurve.cpp +++ b/ApplicationCode/ProjectDataModel/RimFractureModelCurve.cpp @@ -179,7 +179,7 @@ void RimFractureModelCurve::performDataExtraction( bool* isUsingPseudoLength ) *isUsingPseudoLength = false; RimEclipseCase* eclipseCase = dynamic_cast( m_case.value() ); - if ( eclipseCase ) + if ( eclipseCase && m_fractureModel ) { RigEclipseWellLogExtractor eclExtractor( eclipseCase->eclipseCaseData(), m_fractureModel->thicknessDirectionWellPath()->wellPathGeometry(), diff --git a/ApplicationCode/ProjectDataModel/RimFractureModelStressCurve.cpp b/ApplicationCode/ProjectDataModel/RimFractureModelStressCurve.cpp index da6338b9e4..89a607a0a8 100644 --- a/ApplicationCode/ProjectDataModel/RimFractureModelStressCurve.cpp +++ b/ApplicationCode/ProjectDataModel/RimFractureModelStressCurve.cpp @@ -110,7 +110,7 @@ void RimFractureModelStressCurve::performDataExtraction( bool* isUsingPseudoLeng // Extract porosity data: get the porosity values from parent RimFractureModelPlot* fractureModelPlot; firstAncestorOrThisOfType( fractureModelPlot ); - if ( !fractureModelPlot ) + if ( !fractureModelPlot || !m_fractureModel ) { RiaLogging::error( QString( "No fracture model plot found." ) ); return; @@ -196,6 +196,9 @@ QString RimFractureModelStressCurve::createCurveAutoName() return caf::AppEnum::uiText( m_curveProperty() ); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- void RimFractureModelStressCurve::addDatapointsForBottomOfLayers( std::vector& tvDepthValues, std::vector& stress, const std::vector& stressGradients ) diff --git a/ApplicationCode/ProjectDataModel/RimLayerCurve.cpp b/ApplicationCode/ProjectDataModel/RimLayerCurve.cpp index 7220dcd54c..2dfbd21f62 100644 --- a/ApplicationCode/ProjectDataModel/RimLayerCurve.cpp +++ b/ApplicationCode/ProjectDataModel/RimLayerCurve.cpp @@ -107,7 +107,7 @@ void RimLayerCurve::performDataExtraction( bool* isUsingPseudoLength ) *isUsingPseudoLength = false; RimEclipseCase* eclipseCase = dynamic_cast( m_case.value() ); - if ( eclipseCase ) + if ( eclipseCase && m_fractureModel ) { RigEclipseWellLogExtractor eclExtractor( eclipseCase->eclipseCaseData(), m_fractureModel->thicknessDirectionWellPath()->wellPathGeometry(),