#2509 Fracture : Disconnect fracture template when unit changes

This commit is contained in:
Magne Sjaastad
2018-02-21 19:07:03 +01:00
parent 1b7dabdc51
commit 8ad30d9350
7 changed files with 40 additions and 0 deletions

View File

@@ -324,6 +324,8 @@ std::vector<std::pair<QString, QString>> RimEllipseFractureTemplate::uiResultNam
//--------------------------------------------------------------------------------------------------
void RimEllipseFractureTemplate::convertToUnitSystem(RiaEclipseUnitTools::UnitSystem neededUnit)
{
if (m_fractureTemplateUnit() == neededUnit) return;
setFractureTemplateUnit(neededUnit);
RimFractureTemplate::convertToUnitSystem(neededUnit);

View File

@@ -582,6 +582,34 @@ void RimFractureTemplate::convertToUnitSystem(RiaEclipseUnitTools::UnitSystem ne
// TODO : Convert NON-darcy values
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimFractureTemplate::disconnectAllFracturesAndRedrawViews() const
{
// The unit has changed. Disconnect all fractures referencing this fracture template to avoid mix of units between fracture
// and template
std::vector<caf::PdmObjectHandle*> referringObjects;
this->objectsWithReferringPtrFields(referringObjects);
for (auto objHandle : referringObjects)
{
RimFracture* fracture = dynamic_cast<RimFracture*>(objHandle);
if (fracture)
{
fracture->setFractureTemplate(nullptr);
}
}
RimProject* proj;
this->firstAncestorOrThisOfType(proj);
if (proj)
{
proj->createDisplayModelAndRedrawAllViews();
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -144,6 +144,8 @@ public:
virtual void loadDataAndUpdate() = 0;
void disconnectAllFracturesAndRedrawViews() const;
protected:
virtual caf::PdmFieldHandle* userDescriptionField() override;

View File

@@ -501,6 +501,8 @@ bool RimStimPlanFractureTemplate::showStimPlanMesh() const
//--------------------------------------------------------------------------------------------------
void RimStimPlanFractureTemplate::convertToUnitSystem(RiaEclipseUnitTools::UnitSystem neededUnit)
{
if (m_fractureTemplateUnit() == neededUnit) return;
setFractureTemplateUnit(neededUnit);
RimFractureTemplate::convertToUnitSystem(neededUnit);