#14074 CellFilters: Hide empty case Data Filters node, add Filters submenu

The case-level Data Filters node (RimDataFilterCollection) was always shown under
RimEclipseCase, cluttering the tree when empty. Gate it in
RimEclipseCase::defineUiTreeOrdering on a new shouldBeVisibleInTree() check, and
refresh the owner case from onItemsChanged/onChildDeleted so the node appears and
disappears as the collection crosses the empty boundary.

Because a hidden node cannot be right-clicked to create the first filter, add a
RimEclipseCase::appendMenuItems override that exposes the filter-creation
commands as a Filters submenu on the case node. A shared
RicCellFilterFeatureTools::selectedDataFilterCollection() resolves a selected
RimEclipseCase to its data filter collection, so the cell, property and combined
filter create features target the case-level collection.
This commit is contained in:
Kristian Bendiksen
2026-06-01 16:41:21 +02:00
parent 78a6d0a8e5
commit e37b20afb1
7 changed files with 68 additions and 20 deletions
@@ -59,6 +59,11 @@ class RimEclipseResultAddressCollection;
class RimEclipseViewCollection;
class RimResultNameAlias;
namespace caf
{
class CmdFeatureMenuBuilder;
}
//==================================================================================================
//
// Interface for reservoirs.
@@ -151,6 +156,7 @@ protected:
void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
void childFieldChangedByUi( const caf::PdmFieldHandle* changedChildField ) override;
void defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "" ) override;
void appendMenuItems( caf::CmdFeatureMenuBuilder& menuBuilder ) const override;
void resultAliasUiOrdering( caf::PdmUiOrdering& uiOrdering );