mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-31 09:14:11 -05:00
CellFilters: Unify view filter nodes under RimFilterInViewCollection
This commit is contained in:
1 parent
b15c8d383c
commit
6edc17892f
21 files changed
+451
-64
No files matched your search
+3
-7
@@ -34,10 +34,9 @@ CAF_CMD_SOURCE_INIT( RicAddLinkedEclipsePropertyFilterFeature, "RicAddLinkedEcli
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RicAddLinkedEclipsePropertyFilterFeature::isCommandEnabled() const
|
||||
{
|
||||
auto filterCollections = RicEclipsePropertyFilterFeatureImpl::selectedPropertyFilterCollections();
|
||||
if ( filterCollections.size() == 1 )
|
||||
if ( auto* target = RicEclipsePropertyFilterFeatureImpl::resolveTargetPropertyFilterCollection() )
|
||||
{
|
||||
return RicEclipsePropertyFilterFeatureImpl::isPropertyFilterCommandAvailable( filterCollections[0] );
|
||||
return RicEclipsePropertyFilterFeatureImpl::isPropertyFilterCommandAvailable( target );
|
||||
}
|
||||
|
||||
return false;
|
||||
@@ -48,11 +47,8 @@ bool RicAddLinkedEclipsePropertyFilterFeature::isCommandEnabled() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicAddLinkedEclipsePropertyFilterFeature::onActionTriggered( bool isChecked )
|
||||
{
|
||||
auto filterCollections = RicEclipsePropertyFilterFeatureImpl::selectedPropertyFilterCollections();
|
||||
|
||||
if ( filterCollections.size() == 1 )
|
||||
if ( auto* coll = RicEclipsePropertyFilterFeatureImpl::resolveTargetPropertyFilterCollection() )
|
||||
{
|
||||
auto coll = filterCollections[0];
|
||||
auto filter = coll->addFilterLinkedToCellResult();
|
||||
coll->updateAllRequiredEditors();
|
||||
|
||||
|
||||
+6
-7
@@ -47,10 +47,9 @@ bool RicEclipseCombinedPropertyFilterNewFeature::isCommandEnabled() const
|
||||
auto dataColls = caf::selectedObjectsByTypeStrict<RimDataFilterCollection*>();
|
||||
if ( !dataColls.empty() ) return true;
|
||||
|
||||
auto filterCollections = RicEclipsePropertyFilterFeatureImpl::selectedPropertyFilterCollections();
|
||||
if ( filterCollections.size() == 1 )
|
||||
if ( auto* target = RicEclipsePropertyFilterFeatureImpl::resolveTargetPropertyFilterCollection() )
|
||||
{
|
||||
return RicEclipsePropertyFilterFeatureImpl::isPropertyFilterCommandAvailable( filterCollections[0] );
|
||||
return RicEclipsePropertyFilterFeatureImpl::isPropertyFilterCommandAvailable( target );
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -82,11 +81,11 @@ void RicEclipseCombinedPropertyFilterNewFeature::onActionTriggered( bool isCheck
|
||||
return;
|
||||
}
|
||||
|
||||
auto filterCollections = RicEclipsePropertyFilterFeatureImpl::selectedPropertyFilterCollections();
|
||||
if ( filterCollections.size() != 1 ) return;
|
||||
auto* target = RicEclipsePropertyFilterFeatureImpl::resolveTargetPropertyFilterCollection();
|
||||
if ( !target ) return;
|
||||
|
||||
RimCombinedFilter* created = filterCollections[0]->addNewCombinedFilter();
|
||||
filterCollections[0]->updateConnectedEditors();
|
||||
RimCombinedFilter* created = target->addNewCombinedFilter();
|
||||
target->updateConnectedEditors();
|
||||
if ( created )
|
||||
{
|
||||
Riu3DMainWindowTools::selectAsCurrentItem( created );
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "RimEclipsePropertyFilterCollection.h"
|
||||
#include "RimEclipseResultDefinition.h"
|
||||
#include "RimEclipseView.h"
|
||||
#include "RimFilterInViewCollection.h"
|
||||
#include "RimViewController.h"
|
||||
|
||||
#include "Riu3DMainWindowTools.h"
|
||||
@@ -52,6 +53,20 @@ std::vector<RimEclipsePropertyFilterCollection*> RicEclipsePropertyFilterFeature
|
||||
return caf::SelectionManager::instance()->objectsByType<RimEclipsePropertyFilterCollection>();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimEclipsePropertyFilterCollection* RicEclipsePropertyFilterFeatureImpl::resolveTargetPropertyFilterCollection()
|
||||
{
|
||||
auto direct = caf::SelectionManager::instance()->objectsByType<RimEclipsePropertyFilterCollection>();
|
||||
if ( !direct.empty() ) return direct.front();
|
||||
|
||||
auto facades = caf::SelectionManager::instance()->objectsByType<RimFilterInViewCollection>();
|
||||
if ( !facades.empty() && facades.front()->propertyFilters() ) return facades.front()->propertyFilters();
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -40,6 +40,11 @@ public:
|
||||
static std::vector<RimEclipsePropertyFilter*> selectedPropertyFilters();
|
||||
static std::vector<RimEclipsePropertyFilterCollection*> selectedPropertyFilterCollections();
|
||||
|
||||
// Looks at the strict selection first, then at any selected RimFilterInViewCollection facade. Returns
|
||||
// nullptr if neither is selected. Used by the property-filter "New ..." commands so they fire
|
||||
// when invoked from the unified facade tree node.
|
||||
static RimEclipsePropertyFilterCollection* resolveTargetPropertyFilterCollection();
|
||||
|
||||
static void addPropertyFilter( RimEclipsePropertyFilterCollection* propertyFilterCollection );
|
||||
static RimEclipsePropertyFilter* addPropertyFilterToCombinedFilter( RimCombinedFilter* combined );
|
||||
static void insertPropertyFilter( RimEclipsePropertyFilterCollection* propertyFilterCollection, size_t index );
|
||||
|
||||
@@ -50,11 +50,9 @@ bool RicEclipsePropertyFilterNewFeature::isCommandEnabled() const
|
||||
auto dataColls = caf::selectedObjectsByTypeStrict<RimDataFilterCollection*>();
|
||||
if ( !dataColls.empty() ) return true;
|
||||
|
||||
std::vector<RimEclipsePropertyFilterCollection*> filterCollections =
|
||||
RicEclipsePropertyFilterFeatureImpl::selectedPropertyFilterCollections();
|
||||
if ( filterCollections.size() == 1 )
|
||||
if ( auto* target = RicEclipsePropertyFilterFeatureImpl::resolveTargetPropertyFilterCollection() )
|
||||
{
|
||||
return RicEclipsePropertyFilterFeatureImpl::isPropertyFilterCommandAvailable( filterCollections[0] );
|
||||
return RicEclipsePropertyFilterFeatureImpl::isPropertyFilterCommandAvailable( target );
|
||||
}
|
||||
|
||||
return false;
|
||||
@@ -92,11 +90,9 @@ void RicEclipsePropertyFilterNewFeature::onActionTriggered( bool isChecked )
|
||||
return;
|
||||
}
|
||||
|
||||
std::vector<RimEclipsePropertyFilterCollection*> filterCollections =
|
||||
RicEclipsePropertyFilterFeatureImpl::selectedPropertyFilterCollections();
|
||||
if ( filterCollections.size() == 1 )
|
||||
if ( auto* target = RicEclipsePropertyFilterFeatureImpl::resolveTargetPropertyFilterCollection() )
|
||||
{
|
||||
RicEclipsePropertyFilterNewExec* filterExec = new RicEclipsePropertyFilterNewExec( filterCollections[0] );
|
||||
RicEclipsePropertyFilterNewExec* filterExec = new RicEclipsePropertyFilterNewExec( target );
|
||||
caf::CmdExecCommandManager::instance()->processExecuteCommand( filterExec );
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user