From 73489780bf3a9eff0acb34acc03d671021ba0296 Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Mon, 2 Nov 2015 09:30:04 +0100 Subject: [PATCH] (#483) Improved how filters and filter collections are grayed out --- .../ProjectDataModel/RimCellFilter.cpp | 2 - .../ProjectDataModel/RimCellRangeFilter.cpp | 51 ++++++++----- .../ProjectDataModel/RimCellRangeFilter.h | 4 + .../RimCellRangeFilterCollection.cpp | 10 ++- .../RimEclipsePropertyFilter.cpp | 62 +++++++++++++++ .../RimEclipsePropertyFilter.h | 10 ++- .../RimEclipsePropertyFilterCollection.cpp | 31 +++++++- .../RimEclipsePropertyFilterCollection.h | 10 +-- .../ProjectDataModel/RimEclipseView.cpp | 2 + .../RimGeoMechPropertyFilter.cpp | 76 +++++++++++++++++-- .../RimGeoMechPropertyFilter.h | 9 ++- .../RimGeoMechPropertyFilterCollection.cpp | 31 +++++++- .../RimGeoMechPropertyFilterCollection.h | 1 + .../ProjectDataModel/RimGeoMechView.cpp | 2 + 14 files changed, 257 insertions(+), 44 deletions(-) diff --git a/ApplicationCode/ProjectDataModel/RimCellFilter.cpp b/ApplicationCode/ProjectDataModel/RimCellFilter.cpp index 343ff45948..6cb52f57f2 100644 --- a/ApplicationCode/ProjectDataModel/RimCellFilter.cpp +++ b/ApplicationCode/ProjectDataModel/RimCellFilter.cpp @@ -103,8 +103,6 @@ void RimCellFilter::updateIconState() QIcon newIcon(icPixmap); this->setUiIcon(newIcon); - - this->uiCapability()->updateConnectedEditors(); } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimCellRangeFilter.cpp b/ApplicationCode/ProjectDataModel/RimCellRangeFilter.cpp index 1a16f50c74..cb5216f40e 100644 --- a/ApplicationCode/ProjectDataModel/RimCellRangeFilter.cpp +++ b/ApplicationCode/ProjectDataModel/RimCellRangeFilter.cpp @@ -109,6 +109,14 @@ void RimCellRangeFilter::computeAndSetValidValues() this->updateIconState(); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimCellRangeFilter::updateActiveState() +{ + isActive.uiCapability()->setUiReadOnly(isRangeFilterControlled()); +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -226,21 +234,13 @@ void RimCellRangeFilter::defineEditorAttribute(const caf::PdmFieldHandle* field, //-------------------------------------------------------------------------------------------------- void RimCellRangeFilter::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) { - RimView* rimView = NULL; - firstAnchestorOrThisOfType(rimView); - CVF_ASSERT(rimView); - - bool isRangeFilterControlled = false; - if (rimView->viewController() && rimView->viewController()->isRangeFiltersControlled()) - { - isRangeFilterControlled = true; - } + bool readOnlyState = isRangeFilterControlled(); std::vector objFields; this->fields(objFields); for (size_t i = 0; i < objFields.size(); i ++) { - objFields[i]->uiCapability()->setUiReadOnly(isRangeFilterControlled); + objFields[i]->uiCapability()->setUiReadOnly(readOnlyState); } } @@ -251,17 +251,8 @@ void RimCellRangeFilter::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrde { RimCellFilter::defineUiTreeOrdering(uiTreeOrdering, uiConfigName); - RimView* rimView = NULL; - firstAnchestorOrThisOfType(rimView); - CVF_ASSERT(rimView); - - bool isRangeFilterControlled = false; - if (rimView->viewController() && rimView->viewController()->isRangeFiltersControlled()) - { - isRangeFilterControlled = true; - } - - isActive.uiCapability()->setUiReadOnly(isRangeFilterControlled); + updateActiveState(); + updateIconState(); } //-------------------------------------------------------------------------------------------------- @@ -295,6 +286,24 @@ QList RimCellRangeFilter::calculateValueOptions(const ca return options; } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +bool RimCellRangeFilter::isRangeFilterControlled() +{ + RimView* rimView = NULL; + firstAnchestorOrThisOfType(rimView); + CVF_ASSERT(rimView); + + bool isRangeFilterControlled = false; + if (rimView->viewController() && rimView->viewController()->isRangeFiltersControlled()) + { + isRangeFilterControlled = true; + } + + return isRangeFilterControlled; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimCellRangeFilter.h b/ApplicationCode/ProjectDataModel/RimCellRangeFilter.h index b6bcb87e5d..488cb974a7 100644 --- a/ApplicationCode/ProjectDataModel/RimCellRangeFilter.h +++ b/ApplicationCode/ProjectDataModel/RimCellRangeFilter.h @@ -59,6 +59,7 @@ public: void computeAndSetValidValues(); + void updateActiveState(); protected: virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue); @@ -68,6 +69,9 @@ protected: virtual QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly ); +private: + bool isRangeFilterControlled(); + private: const cvf::StructGridInterface* selectedGrid(); }; diff --git a/ApplicationCode/ProjectDataModel/RimCellRangeFilterCollection.cpp b/ApplicationCode/ProjectDataModel/RimCellRangeFilterCollection.cpp index 183cc2cbd9..fe47a95e20 100644 --- a/ApplicationCode/ProjectDataModel/RimCellRangeFilterCollection.cpp +++ b/ApplicationCode/ProjectDataModel/RimCellRangeFilterCollection.cpp @@ -139,6 +139,7 @@ RigActiveCellInfo* RimCellRangeFilterCollection::activeCellInfo() const void RimCellRangeFilterCollection::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) { updateIconState(); + uiCapability()->updateConnectedEditors(); updateDisplayModeNotifyManagedViews(NULL); } @@ -331,12 +332,11 @@ void RimCellRangeFilterCollection::updateIconState() updateUiIconFromState(activeIcon); - uiCapability()->updateConnectedEditors(); - for (size_t i = 0; i < rangeFilters.size(); i++) { - RimCellFilter* cellFilter = rangeFilters[i]; - cellFilter->updateIconState(); + RimCellRangeFilter* rangeFilter = rangeFilters[i]; + rangeFilter->updateActiveState(); + rangeFilter->updateIconState(); } } @@ -356,5 +356,7 @@ void RimCellRangeFilterCollection::defineUiTreeOrdering(caf::PdmUiTreeOrdering& { isActive.uiCapability()->setUiReadOnly(false); } + + updateIconState(); } diff --git a/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilter.cpp b/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilter.cpp index eacaa228c6..791eb9aaea 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilter.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilter.cpp @@ -26,6 +26,7 @@ #include "RimEclipseResultDefinition.h" #include "RimEclipseView.h" #include "RimReservoirCellResultsStorage.h" +#include "RimViewController.h" #include "RiuMainWindow.h" @@ -104,6 +105,7 @@ void RimEclipsePropertyFilter::fieldChangedByUi(const caf::PdmFieldHandle* chang { updateFilterName(); this->updateIconState(); + this->uiCapability()->updateConnectedEditors(); parentContainer()->updateDisplayModelNotifyManagedViews(); } @@ -152,6 +154,66 @@ void RimEclipsePropertyFilter::defineUiOrdering(QString uiConfigName, caf::PdmUi uiOrdering.add(&lowerBound); uiOrdering.add(&upperBound); uiOrdering.add(&filterMode); + + updateReadOnlyStateOfAllFields(); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimEclipsePropertyFilter::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName) +{ + PdmObject::defineUiTreeOrdering(uiTreeOrdering, uiConfigName); + + updateActiveState(); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimEclipsePropertyFilter::updateReadOnlyStateOfAllFields() +{ + bool readOnlyState = isPropertyFilterControlled(); + + std::vector objFields; + this->fields(objFields); + + // Include fields declared in RimResultDefinition + objFields.push_back(&(resultDefinition->m_resultTypeUiField)); + objFields.push_back(&(resultDefinition->m_porosityModelUiField)); + objFields.push_back(&(resultDefinition->m_resultVariableUiField)); + + for (size_t i = 0; i < objFields.size(); i++) + { + objFields[i]->uiCapability()->setUiReadOnly(readOnlyState); + } +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +bool RimEclipsePropertyFilter::isPropertyFilterControlled() +{ + RimView* rimView = NULL; + firstAnchestorOrThisOfType(rimView); + CVF_ASSERT(rimView); + + bool isPropertyFilterControlled = false; + RimViewController* vc = rimView->viewController(); + if (vc && vc->isPropertyFilterOveridden()) + { + isPropertyFilterControlled = true; + } + + return isPropertyFilterControlled; +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimEclipsePropertyFilter::updateActiveState() +{ + isActive.uiCapability()->setUiReadOnly(isPropertyFilterControlled()); } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilter.h b/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilter.h index 71d0c82b0d..b4e45f6cde 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilter.h +++ b/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilter.h @@ -57,10 +57,18 @@ public: virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue); virtual void initAfterRead(); + void updateActiveState(); + protected: - virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) ; + virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering); + virtual void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName); + virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute); +private: + void updateReadOnlyStateOfAllFields(); + bool isPropertyFilterControlled(); + private: double m_minimumResultValue; double m_maximumResultValue; diff --git a/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.cpp b/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.cpp index ab5d5574ee..a25d0c0f1b 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.cpp @@ -70,6 +70,7 @@ RimEclipseView* RimEclipsePropertyFilterCollection::reservoirView() void RimEclipsePropertyFilterCollection::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) { updateIconState(); + uiCapability()->updateConnectedEditors(); updateDisplayModelNotifyManagedViews(); } @@ -170,5 +171,33 @@ void RimEclipsePropertyFilterCollection::updateIconState() updateUiIconFromState(activeIcon); - uiCapability()->updateConnectedEditors(); + for (size_t i = 0; i < propertyFilters.size(); i++) + { + RimEclipsePropertyFilter* cellFilter = propertyFilters[i]; + cellFilter->updateActiveState(); + cellFilter->updateIconState(); + } +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimEclipsePropertyFilterCollection::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName) +{ + PdmObject::defineUiTreeOrdering(uiTreeOrdering, uiConfigName); + + RimView* rimView = NULL; + this->firstAnchestorOrThisOfType(rimView); + RimViewController* viewController = rimView->viewController(); + if (viewController && (viewController->isPropertyFilterOveridden() + || viewController->isVisibleCellsOveridden())) + { + isActive.uiCapability()->setUiReadOnly(true, uiConfigName); + } + else + { + isActive.uiCapability()->setUiReadOnly(false, uiConfigName); + } + + updateIconState(); } diff --git a/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.h b/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.h index 1da0ae9e7b..0632f93333 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.h +++ b/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.h @@ -48,12 +48,10 @@ public: void updateDisplayModelNotifyManagedViews(); void updateIconState(); - - // Overridden methods - virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue); - virtual caf::PdmFieldHandle* objectToggleField(); - protected: // Overridden methods - virtual void initAfterRead(); + virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue); + virtual void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName); + virtual void initAfterRead(); + virtual caf::PdmFieldHandle* objectToggleField(); }; diff --git a/ApplicationCode/ProjectDataModel/RimEclipseView.cpp b/ApplicationCode/ProjectDataModel/RimEclipseView.cpp index 30b6a637c1..268ddd07fc 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseView.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseView.cpp @@ -1667,7 +1667,9 @@ void RimEclipseView::calculateCurrentTotalCellVisibility(cvf::UByteArray* totalV void RimEclipseView::updateIconStateForFilterCollections() { m_rangeFilterCollection()->updateIconState(); + m_rangeFilterCollection()->uiCapability()->updateConnectedEditors(); // NB - notice that it is the filter collection managed by this view that the icon update applies to m_propertyFilterCollection()->updateIconState(); + m_propertyFilterCollection()->uiCapability()->updateConnectedEditors(); } diff --git a/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilter.cpp b/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilter.cpp index c6e6819d5c..95de4de8bd 100644 --- a/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilter.cpp +++ b/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilter.cpp @@ -18,18 +18,21 @@ ///////////////////////////////////////////////////////////////////////////////// #include "RimGeoMechPropertyFilter.h" -#include "RimGeoMechPropertyFilterCollection.h" -#include "RimGeoMechResultDefinition.h" -#include "cvfMath.h" - -#include "cafPdmUiDoubleSliderEditor.h" -#include "cvfAssert.h" #include "RigFemPartResultsCollection.h" #include "RigGeoMechCaseData.h" + +#include "RimGeoMechPropertyFilterCollection.h" +#include "RimGeoMechResultDefinition.h" #include "RimGeoMechView.h" +#include "RimViewController.h" + #include "RiuMainWindow.h" +#include "cafPdmUiDoubleSliderEditor.h" + +#include "cvfAssert.h" +#include "cvfMath.h" CAF_PDM_SOURCE_INIT(RimGeoMechPropertyFilter, "GeoMechPropertyFilter"); @@ -59,7 +62,6 @@ RimGeoMechPropertyFilter::RimGeoMechPropertyFilter() m_minimumResultValue = cvf::UNDEFINED_DOUBLE; m_maximumResultValue = cvf::UNDEFINED_DOUBLE; - } //-------------------------------------------------------------------------------------------------- @@ -81,6 +83,7 @@ void RimGeoMechPropertyFilter::fieldChangedByUi(const caf::PdmFieldHandle* chang { this->updateIconState(); this->updateFilterName(); + this->uiCapability()->updateConnectedEditors(); parentContainer()->updateDisplayModelNotifyManagedViews(); } @@ -133,6 +136,65 @@ void RimGeoMechPropertyFilter::defineUiOrdering(QString uiConfigName, caf::PdmUi uiOrdering.add(&lowerBound); uiOrdering.add(&upperBound); uiOrdering.add(&filterMode); + + updateReadOnlyStateOfAllFields(); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimGeoMechPropertyFilter::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName) +{ + PdmObject::defineUiTreeOrdering(uiTreeOrdering, uiConfigName); + + updateActiveState(); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimGeoMechPropertyFilter::updateReadOnlyStateOfAllFields() +{ + bool readOnlyState = isPropertyFilterControlled(); + + std::vector objFields; + this->fields(objFields); + + // Include fields declared in RimResultDefinition + objFields.push_back(&(resultDefinition->m_resultPositionTypeUiField)); + objFields.push_back(&(resultDefinition->m_resultVariableUiField)); + + for (size_t i = 0; i < objFields.size(); i++) + { + objFields[i]->uiCapability()->setUiReadOnly(readOnlyState); + } +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +bool RimGeoMechPropertyFilter::isPropertyFilterControlled() +{ + RimView* rimView = NULL; + firstAnchestorOrThisOfType(rimView); + CVF_ASSERT(rimView); + + bool isPropertyFilterControlled = false; + RimViewController* vc = rimView->viewController(); + if (vc && vc->isPropertyFilterOveridden()) + { + isPropertyFilterControlled = true; + } + + return isPropertyFilterControlled; +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimGeoMechPropertyFilter::updateActiveState() +{ + isActive.uiCapability()->setUiReadOnly(isPropertyFilterControlled()); } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilter.h b/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilter.h index b6866a2d3c..3551a31a6e 100644 --- a/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilter.h +++ b/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilter.h @@ -50,11 +50,18 @@ public: void updateFilterName(); void computeResultValueRange(); - virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue); + void updateActiveState(); + protected: + virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue); virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) ; + virtual void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName); virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute); +private: + void updateReadOnlyStateOfAllFields(); + bool isPropertyFilterControlled(); + private: RimGeoMechPropertyFilterCollection* m_parentContainer; double m_minimumResultValue; diff --git a/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilterCollection.cpp b/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilterCollection.cpp index 15449a7683..97545ce789 100644 --- a/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilterCollection.cpp +++ b/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilterCollection.cpp @@ -69,6 +69,7 @@ RimGeoMechView* RimGeoMechPropertyFilterCollection::reservoirView() void RimGeoMechPropertyFilterCollection::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) { updateIconState(); + uiCapability()->updateConnectedEditors(); updateDisplayModelNotifyManagedViews(); } @@ -172,5 +173,33 @@ void RimGeoMechPropertyFilterCollection::updateIconState() updateUiIconFromState(activeIcon); - uiCapability()->updateConnectedEditors(); + for (size_t i = 0; i < propertyFilters.size(); i++) + { + RimGeoMechPropertyFilter* propFilter = propertyFilters[i]; + propFilter->updateActiveState(); + propFilter->updateIconState(); + } +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimGeoMechPropertyFilterCollection::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName) +{ + PdmObject::defineUiTreeOrdering(uiTreeOrdering, uiConfigName); + + RimView* rimView = NULL; + this->firstAnchestorOrThisOfType(rimView); + RimViewController* viewController = rimView->viewController(); + if (viewController && (viewController->isPropertyFilterOveridden() + || viewController->isVisibleCellsOveridden())) + { + isActive.uiCapability()->setUiReadOnly(true, uiConfigName); + } + else + { + isActive.uiCapability()->setUiReadOnly(false, uiConfigName); + } + + updateIconState(); } diff --git a/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilterCollection.h b/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilterCollection.h index 0d997426ec..f26d9c7d18 100644 --- a/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilterCollection.h +++ b/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilterCollection.h @@ -55,6 +55,7 @@ public: protected: // Overridden methods virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue); + virtual void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName); virtual caf::PdmFieldHandle* objectToggleField(); virtual void initAfterRead(); }; diff --git a/ApplicationCode/ProjectDataModel/RimGeoMechView.cpp b/ApplicationCode/ProjectDataModel/RimGeoMechView.cpp index e458574644..2b1482ce44 100644 --- a/ApplicationCode/ProjectDataModel/RimGeoMechView.cpp +++ b/ApplicationCode/ProjectDataModel/RimGeoMechView.cpp @@ -575,9 +575,11 @@ void RimGeoMechView::calculateCurrentTotalCellVisibility(cvf::UByteArray* totalV void RimGeoMechView::updateIconStateForFilterCollections() { m_rangeFilterCollection()->updateIconState(); + m_rangeFilterCollection()->uiCapability()->updateConnectedEditors(); // NB - notice that it is the filter collection managed by this view that the icon update applies to m_propertyFilterCollection()->updateIconState(); + m_propertyFilterCollection()->uiCapability()->updateConnectedEditors(); } //--------------------------------------------------------------------------------------------------