#14345 Route ensemble data filters to ensemble views

Use the ensemble data filter collection as the source for views owned by a reservoir grid ensemble. Apply the source for newly inserted views, case changes, and project-load initialization while preserving case-level sources for ordinary case views.

Add a regression test verifying that an ensemble view switches from its case collection to the ensemble collection.
This commit is contained in:
Kristian Bendiksen committed 2026-09-09 10:14:41 +02:00
1 parent d332a9bfdc
commit d81e1e69f4
5 files changed
+49 -14

No files matched your search

@@ -18,10 +18,15 @@
#include "gtest/gtest.h"
#include "RigActiveCellInfo.h"
#include "RimCellFilter.h"
#include "RimCellRangeFilter.h"
#include "RimCombinedFilter.h"
#include "RimDataFilterCollection.h"
#include "RimDataFilterInViewCollection.h"
#include "RimEclipseResultCase.h"
#include "RimEclipseView.h"
#include "RimReservoirGridEnsemble.h"
#include "cafSignal.h"
@@ -225,3 +230,19 @@ TEST( RimDataFilterCollection, pdmRoundTripPreservesFilters )
EXPECT_NE( nullptr, dynamic_cast<RimCellRangeFilter*>( items[0] ) );
EXPECT_NE( nullptr, dynamic_cast<RimCombinedFilter*>( items[1] ) );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
TEST( RimDataFilterCollection, ensembleViewUsesEnsembleDataFilters )
{
auto eclipseCase = std::make_unique<RimEclipseResultCase>();
auto ensemble = std::make_unique<RimReservoirGridEnsemble>();
auto* view = new RimEclipseView();
view->setEclipseCase( eclipseCase.get() );
EXPECT_EQ( eclipseCase->dataFilterCollection(), view->dataFiltersInView()->sourceCollection() );
ensemble->addView( view );
EXPECT_EQ( ensemble->dataFilterCollection(), view->dataFiltersInView()->sourceCollection() );
}