From d1743be8e7a27a8b81ec2e9dd5e9668e3129606a Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Fri, 10 Feb 2017 19:12:21 +0100 Subject: [PATCH] #1178 Update well allocation plots when well color changes --- .../ProjectDataModel/RimEclipseWell.cpp | 5 +++++ .../RimEclipseWellCollection.cpp | 22 +++++++++++++++++++ .../RimEclipseWellCollection.h | 2 ++ 3 files changed, 29 insertions(+) diff --git a/ApplicationCode/ProjectDataModel/RimEclipseWell.cpp b/ApplicationCode/ProjectDataModel/RimEclipseWell.cpp index 261715ffc2..2d11357522 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseWell.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseWell.cpp @@ -119,6 +119,11 @@ void RimEclipseWell::fieldChangedByUi(const caf::PdmFieldHandle* changedField, c RiuMainWindow::instance()->refreshDrawStyleActions(); } + + if (changedField == &wellPipeColor) + { + RimEclipseWellCollection::updateWellAllocationPlots(); + } } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimEclipseWellCollection.cpp b/ApplicationCode/ProjectDataModel/RimEclipseWellCollection.cpp index c11c9add94..1fe54e09d2 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseWellCollection.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseWellCollection.cpp @@ -30,6 +30,8 @@ #include "RimEclipseCase.h" #include "RimEclipseView.h" #include "RimEclipseWell.h" +#include "RimProject.h" +#include "RimWellAllocationPlot.h" #include "RiuMainWindow.h" @@ -435,6 +437,8 @@ void RimEclipseWellCollection::fieldChangedByUi(const caf::PdmFieldHandle* chang if (m_reservoirView) m_reservoirView->scheduleCreateDisplayModelAndRedraw(); + RimEclipseWellCollection::updateWellAllocationPlots(); + m_applySingleColorToWells = false; } @@ -472,6 +476,24 @@ void RimEclipseWellCollection::assignDefaultWellColors() well->updateConnectedEditors(); } } + + RimEclipseWellCollection::updateWellAllocationPlots(); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimEclipseWellCollection::updateWellAllocationPlots() +{ + RimProject* proj = RiaApplication::instance()->project(); + + std::vector wellAllocationPlots; + proj->descendantsIncludingThisOfType(wellAllocationPlots); + + for (auto wap : wellAllocationPlots) + { + wap->loadDataAndUpdate(); + } } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimEclipseWellCollection.h b/ApplicationCode/ProjectDataModel/RimEclipseWellCollection.h index 8bceb970e8..9f07d47984 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseWellCollection.h +++ b/ApplicationCode/ProjectDataModel/RimEclipseWellCollection.h @@ -122,6 +122,8 @@ public: void assignDefaultWellColors(); + static void updateWellAllocationPlots(); + protected: virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;