Support copy of property filters to linked views

* Copy and overwrite property filters when linked
When linking property filters between different cases, the property filter settings are copied and the property filter is evaluated per case. The previous implementation worked only for a single case.

* Move field to private
This commit is contained in:
Magne Sjaastad
2022-11-28 14:34:26 +01:00
committed by GitHub
parent 7065d5eaf4
commit 9995af07a1
15 changed files with 216 additions and 88 deletions

View File

@@ -61,7 +61,7 @@ std::vector<RimEclipsePropertyFilterCollection*> RicEclipsePropertyFilterFeature
void RicEclipsePropertyFilterFeatureImpl::addPropertyFilter( RimEclipsePropertyFilterCollection* propertyFilterCollection )
{
RimEclipsePropertyFilter* propertyFilter = new RimEclipsePropertyFilter();
propertyFilterCollection->propertyFilters.push_back( propertyFilter );
propertyFilterCollection->propertyFiltersField().push_back( propertyFilter );
setDefaults( propertyFilter );
propertyFilterCollection->reservoirView()->scheduleGeometryRegen( PROPERTY_FILTERED );
@@ -69,6 +69,8 @@ void RicEclipsePropertyFilterFeatureImpl::addPropertyFilter( RimEclipsePropertyF
propertyFilterCollection->updateConnectedEditors();
Riu3DMainWindowTools::selectAsCurrentItem( propertyFilter, false );
propertyFilterCollection->onChildAdded( nullptr );
}
//--------------------------------------------------------------------------------------------------
@@ -78,7 +80,7 @@ void RicEclipsePropertyFilterFeatureImpl::insertPropertyFilter( RimEclipseProper
size_t index )
{
RimEclipsePropertyFilter* propertyFilter = new RimEclipsePropertyFilter();
propertyFilterCollection->propertyFilters.insertAt( static_cast<int>( index ), propertyFilter );
propertyFilterCollection->propertyFiltersField().insertAt( static_cast<int>( index ), propertyFilter );
setDefaults( propertyFilter );
propertyFilterCollection->reservoirView()->scheduleGeometryRegen( PROPERTY_FILTERED );

View File

@@ -59,8 +59,8 @@ void RicEclipsePropertyFilterInsertExec::redo()
RimEclipsePropertyFilterCollection* propertyFilterCollection = nullptr;
m_propertyFilter->firstAncestorOrThisOfTypeAsserted( propertyFilterCollection );
size_t index = propertyFilterCollection->propertyFilters.indexOf( m_propertyFilter );
CVF_ASSERT( index < propertyFilterCollection->propertyFilters.size() );
size_t index = propertyFilterCollection->propertyFiltersField().indexOf( m_propertyFilter );
CVF_ASSERT( index < propertyFilterCollection->propertyFilters().size() );
RicEclipsePropertyFilterFeatureImpl::insertPropertyFilter( propertyFilterCollection, index );
}

View File

@@ -69,7 +69,7 @@ void RicEclipsePropertyFilterNewExec::redo()
//--------------------------------------------------------------------------------------------------
void RicEclipsePropertyFilterNewExec::undo()
{
m_propertyFilterCollection->propertyFilters.erase( m_propertyFilterCollection->propertyFilters.size() - 1 );
m_propertyFilterCollection->propertyFiltersField().erase( m_propertyFilterCollection->propertyFilters().size() - 1 );
m_propertyFilterCollection->updateConnectedEditors();
}