mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-25 14:40:26 -05:00
Add RimCombinedFilter, a node placed under the Eclipse property-filter collection that holds child filters (cell or property) and combines their results with a user-chosen AND or OR mode. Supports nesting and is exposed to Python via the generated rips CombinedFilter class. To let the same evaluation machinery handle any filter type, introduce a unified applyToCellVisibility(cellVis, grid, timeStep) virtual on RimCellFilter with a default implementation that bridges the existing range/index dispatch. RimEclipsePropertyFilter overrides it with the body extracted from RivReservoirViewPartMgr::computePropertyVisibility, which collapses to a generic per-child call and preserves the prior behavior for ordinary property filters. Loosen RimEclipsePropertyFilterCollection::m_propertyFilters to PdmChildArrayField<RimCellFilter*>, keeping the XML tag "PropertyFilters" and the typed propertyFilters() accessor. Add recursive helpers (hasActiveEvaluatableDescendant, hasActiveDynamicPropertyDescendant, hasActiveFormationNamesPropertyDescendant) so hasActiveFilters, hasActiveDynamicFilters and isUsingFormationNames see property filters nested inside a combined filter. Bridge filter changes inside a combined filter to updateDisplayModelNotifyManagedViews, since the property-filter collection doesn't subscribe to filterChanged signals. The existing RicNew* cell-filter creation features now route the new child into a selected combined filter when one is selected, otherwise into the top-level cell-filter collection as before. The combined filter's context menu offers the full mixed set: property, polygon, range, index, user-defined, and nested combined filter.