From a49c830a0f851af160ca9320f34c33b8808f4d84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rnar=20Grip=20Fj=C3=A6r?= Date: Tue, 4 Apr 2017 14:45:50 +0200 Subject: [PATCH] #1394 Delete statistics cases when last source case is deleted --- .../Commands/RicCloseCaseFeature.cpp | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/ApplicationCode/Commands/RicCloseCaseFeature.cpp b/ApplicationCode/Commands/RicCloseCaseFeature.cpp index a239d440b5..aca46ec016 100644 --- a/ApplicationCode/Commands/RicCloseCaseFeature.cpp +++ b/ApplicationCode/Commands/RicCloseCaseFeature.cpp @@ -158,6 +158,26 @@ void RicCloseCaseFeature::deleteEclipseCase(RimEclipseCase* eclipseCase) } else { + RimIdenticalGridCaseGroup* caseGroup = caseCollection->parentCaseGroup(); + if (caseGroup) + { + // When deleting the last source case for statistics, remove any views on statistics cases. + // This is done because the views do not work well + if (caseGroup->caseCollection()->reservoirs.size() == 1) + { + std::vector children; + caseGroup->statisticsCaseCollection()->reservoirs.childObjects(&children); + + for (size_t i = children.size(); i-- > 0;) + { + caf::PdmObjectHandle* obj = children[i]; + delete obj; + caseGroup->statisticsCaseCollection()->reservoirs.erase(i); + } + + caseGroup->statisticsCaseCollection()->uiCapability()->updateConnectedEditors(); + } + } removeCaseFromAllGroups(eclipseCase); } }