diff --git a/ApplicationCode/Commands/ViewLink/RicLinkVisibleViewsFeature.cpp b/ApplicationCode/Commands/ViewLink/RicLinkVisibleViewsFeature.cpp index 73e7c6eb40..9988cf90c1 100644 --- a/ApplicationCode/Commands/ViewLink/RicLinkVisibleViewsFeature.cpp +++ b/ApplicationCode/Commands/ViewLink/RicLinkVisibleViewsFeature.cpp @@ -157,9 +157,10 @@ void RicLinkVisibleViewsFeature::linkViews(std::vector& views) viewLinker->addDependentView(rimView); } + viewLinker->updateDependentViews(); + viewLinker->updateUiNameAndIcon(); - viewLinker->updateDependentViews(); proj->viewLinkerCollection.uiCapability()->updateConnectedEditors(); proj->updateConnectedEditors(); diff --git a/ApplicationCode/ProjectDataModel/RimViewLink.cpp b/ApplicationCode/ProjectDataModel/RimViewLink.cpp index 89d79daa26..526aacad04 100644 --- a/ApplicationCode/ProjectDataModel/RimViewLink.cpp +++ b/ApplicationCode/ProjectDataModel/RimViewLink.cpp @@ -183,45 +183,11 @@ void RimViewController::fieldChangedByUi(const caf::PdmFieldHandle* changedField } else if (changedField == &m_managedView) { - updateOverrides(); - - if (m_managedView) - { - RimViewLinker* viewLinker = ownerViewLinker(); - - if (m_syncCellResult()) - { - viewLinker->updateCellResult(); - } - if (m_syncCamera()) - { - viewLinker->updateCamera(m_managedView); - } - - m_name = RimViewLinker::displayNameForView(m_managedView); - } - PdmObjectHandle* prevValue = oldValue.value >().rawPtr(); - if (prevValue) - { - RimView* rimView = dynamic_cast(prevValue); - rimView->setOverrideRangeFilterCollection(NULL); + RimView* previousManagedView = dynamic_cast(prevValue); + RimViewController::removeOverrides(previousManagedView); - RimEclipseView* rimEclipseView = dynamic_cast(rimView); - if (rimEclipseView) - { - rimEclipseView->setOverridePropertyFilterCollection(NULL); - } - - RimGeoMechView* geoView = dynamic_cast(rimView); - if (geoView) - { - geoView->setOverridePropertyFilterCollection(NULL); - } - } - - updateOptionSensitivity(); - updateDisplayNameAndIcon(); + setManagedView(m_managedView()); m_name.uiCapability()->updateConnectedEditors(); } @@ -268,12 +234,6 @@ RimGeoMechView* RimViewController::managedGeoView() void RimViewController::updateOverrides() { RimViewLinker* viewLinker = ownerViewLinker(); - - if (!this->isActive() ) - { - removeOverrides(); - return; - } RimView* masterView = viewLinker->masterView(); @@ -284,26 +244,17 @@ void RimViewController::updateOverrides() RimEclipseView* manEclView = managedEclipseView(); RimGeoMechView* manGeoView = managedGeoView(); - if (manGeoView) - { - manGeoView->updateIconStateForFilterCollections(); - } - - if (manEclView) - { - manEclView->updateIconStateForFilterCollections(); - } - if (isVisibleCellsOveridden()) { m_managedView->setOverrideRangeFilterCollection(NULL); if (manEclView) manEclView->setOverridePropertyFilterCollection(NULL); if (manGeoView) manGeoView->setOverridePropertyFilterCollection(NULL); m_managedView->scheduleGeometryRegen(OVERRIDDEN_CELL_VISIBILITY); + m_managedView->scheduleCreateDisplayModelAndRedraw(); } else { - if (m_syncRangeFilters) + if (isRangeFilterOveridden()) { m_managedView->setOverrideRangeFilterCollection(masterView->rangeFilterCollection()); } @@ -318,7 +269,7 @@ void RimViewController::updateOverrides() if (manEclView) { - if (m_syncPropertyFilters) + if (isPropertyFilterOveridden()) { manEclView->setOverridePropertyFilterCollection(masterEclipseView->propertyFilterCollection()); } @@ -334,7 +285,7 @@ void RimViewController::updateOverrides() { if (manGeoView) { - if (m_syncPropertyFilters) + if (isPropertyFilterOveridden()) { manGeoView->setOverridePropertyFilterCollection(masterGeoView->propertyFilterCollection()); } @@ -345,6 +296,16 @@ void RimViewController::updateOverrides() } } } + + if (manGeoView) + { + manGeoView->updateIconStateForFilterCollections(); + } + + if (manEclView) + { + manEclView->updateIconStateForFilterCollections(); + } } } @@ -353,11 +314,19 @@ void RimViewController::updateOverrides() //-------------------------------------------------------------------------------------------------- void RimViewController::removeOverrides() { - if (m_managedView) + removeOverrides(m_managedView); +} +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimViewController::removeOverrides(RimView* view) +{ + if (view) { - RimEclipseView* manEclView = managedEclipseView(); - RimGeoMechView* manGeoView = managedGeoView(); - m_managedView->setOverrideRangeFilterCollection(NULL); + RimEclipseView* manEclView = dynamic_cast(view); + RimGeoMechView* manGeoView = dynamic_cast(view); + + view->setOverrideRangeFilterCollection(NULL); if (manEclView) manEclView->setOverridePropertyFilterCollection(NULL); if (manGeoView) manGeoView->setOverridePropertyFilterCollection(NULL); } @@ -422,10 +391,12 @@ RimView* RimViewController::managedView() void RimViewController::setManagedView(RimView* view) { m_managedView = view; - - this->updateOverrides(); - this->updateOptionSensitivity(); - this->updateDisplayNameAndIcon(); + updateCameraLink(); + updateTimeStepLink(); + updateResultColorsControl(); + updateOverrides(); + updateOptionSensitivity(); + updateDisplayNameAndIcon(); } //-------------------------------------------------------------------------------------------------- @@ -464,11 +435,13 @@ void RimViewController::updateDisplayNameAndIcon() void RimViewController::updateCameraLink() { if (!this->isCameraLinked()) return; - - RimViewLinker* viewLinker = NULL; - this->firstAnchestorOrThisOfType(viewLinker); - viewLinker->updateScaleZ(viewLinker->masterView(), viewLinker->masterView()->scaleZ()); - viewLinker->updateCamera(viewLinker->masterView()); + if (m_managedView) + { + RimViewLinker* viewLinker = this->ownerViewLinker(); + + viewLinker->updateScaleZ(viewLinker->masterView(), viewLinker->masterView()->scaleZ()); + viewLinker->updateCamera(viewLinker->masterView()); + } } //-------------------------------------------------------------------------------------------------- @@ -480,9 +453,9 @@ void RimViewController::updateTimeStepLink() if (m_managedView) { - RimViewLinker* linkedViews = NULL; - this->firstAnchestorOrThisOfType(linkedViews); - linkedViews->updateTimeStep(m_managedView, m_managedView->currentTimeStep()); + RimViewLinker* viewLinker = this->ownerViewLinker(); + + viewLinker->updateTimeStep(viewLinker->masterView(), viewLinker->masterView()->currentTimeStep()); } } @@ -615,6 +588,7 @@ bool RimViewController::isMasterAndDepViewDifferentType() return isMasterAndDependentViewDifferentType; } + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimViewLink.h b/ApplicationCode/ProjectDataModel/RimViewLink.h index f596ed3d81..85b0aecfad 100644 --- a/ApplicationCode/ProjectDataModel/RimViewLink.h +++ b/ApplicationCode/ProjectDataModel/RimViewLink.h @@ -70,7 +70,6 @@ public: void updateOverrides(); void updateOptionSensitivity(); void removeOverrides(); - void updateDisplayNameAndIcon(); protected: // Pdm overridden methods @@ -93,6 +92,7 @@ private: RimEclipseView* managedEclipseView(); RimGeoMechView* managedGeoView(); + static void removeOverrides(RimView* view); private: caf::PdmField m_name;