From 890b7f8ca51597876790f5ef81616b40ca8d7539 Mon Sep 17 00:00:00 2001 From: Gaute Lindkvist Date: Fri, 2 Oct 2020 10:46:10 +0200 Subject: [PATCH] Stop invalid analysis plot filters from removing cases --- .../AnalysisPlots/RimAnalysisPlot.cpp | 6 +++++- .../AnalysisPlots/RimPlotDataFilterItem.cpp | 17 +++++++++++++++++ .../AnalysisPlots/RimPlotDataFilterItem.h | 1 + 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/ApplicationCode/ProjectDataModel/AnalysisPlots/RimAnalysisPlot.cpp b/ApplicationCode/ProjectDataModel/AnalysisPlots/RimAnalysisPlot.cpp index df71981f16..fe1c1b9c8f 100644 --- a/ApplicationCode/ProjectDataModel/AnalysisPlots/RimAnalysisPlot.cpp +++ b/ApplicationCode/ProjectDataModel/AnalysisPlots/RimAnalysisPlot.cpp @@ -1097,7 +1097,7 @@ void RimAnalysisPlot::applyFilter( const RimPlotDataFilterItem* filter, { const std::vector curveDefsToFilter; - if ( !filter->isActive() ) return; + if ( !filter->isActive() || !filter->isValid() ) return; std::vector filteredCurveDefs; @@ -1166,6 +1166,10 @@ void RimAnalysisPlot::applyFilter( const RimPlotDataFilterItem* filter, } } } + else + { + casesToKeep = ( *filteredSumCases ); + } } else { diff --git a/ApplicationCode/ProjectDataModel/AnalysisPlots/RimPlotDataFilterItem.cpp b/ApplicationCode/ProjectDataModel/AnalysisPlots/RimPlotDataFilterItem.cpp index 065f6ca7df..5a764816df 100644 --- a/ApplicationCode/ProjectDataModel/AnalysisPlots/RimPlotDataFilterItem.cpp +++ b/ApplicationCode/ProjectDataModel/AnalysisPlots/RimPlotDataFilterItem.cpp @@ -127,6 +127,23 @@ RimPlotDataFilterItem::~RimPlotDataFilterItem() { } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +bool RimPlotDataFilterItem::isValid() const +{ + if ( m_filterTarget() == ENSEMBLE_CASE && ensembleParameterName().isEmpty() ) + { + return false; + } + else if ( ( m_filterTarget() == SUMMARY_CASE || m_filterTarget() == SUMMARY_ITEM ) && !summaryAddress().isValid() ) + { + return false; + } + + return true; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/AnalysisPlots/RimPlotDataFilterItem.h b/ApplicationCode/ProjectDataModel/AnalysisPlots/RimPlotDataFilterItem.h index 0c724ad6f3..457b43b41e 100644 --- a/ApplicationCode/ProjectDataModel/AnalysisPlots/RimPlotDataFilterItem.h +++ b/ApplicationCode/ProjectDataModel/AnalysisPlots/RimPlotDataFilterItem.h @@ -90,6 +90,7 @@ public: bool isActive() const { return m_isActive(); } FilterTarget filterTarget() const { return m_filterTarget(); } + bool isValid() const; RifEclipseSummaryAddress summaryAddress() const;