(#395) Fixed update issues for managed child views

This commit is contained in:
Magne Sjaastad 2015-08-28 08:06:35 +02:00
parent 17d081c43d
commit 75a34e605f
3 changed files with 32 additions and 21 deletions

View File

@ -242,6 +242,6 @@ void RimManagedViewCollection::configureOverrides()
for (size_t i = 0; i < managedViews.size(); i++)
{
RimManagedViewConfig* managedViewConfig = managedViews[i];
managedViewConfig->configureOverridesUpdateDisplayModel();
managedViewConfig->configureOverrides();
}
}

View File

@ -191,6 +191,8 @@ void RimManagedViewConfig::fieldChangedByUi(const caf::PdmFieldHandle* changedFi
{
geoView->setOverridePropertyFilterCollection(NULL);
}
rimView->managedViewCollection()->configureOverrides();
}
}
}
@ -200,7 +202,7 @@ void RimManagedViewConfig::fieldChangedByUi(const caf::PdmFieldHandle* changedFi
//--------------------------------------------------------------------------------------------------
void RimManagedViewConfig::initAfterRead()
{
configureOverridesUpdateDisplayModel();
configureOverrides();
}
//--------------------------------------------------------------------------------------------------
@ -227,6 +229,31 @@ RimGeoMechView* RimManagedViewConfig::managedGeoView()
///
//--------------------------------------------------------------------------------------------------
void RimManagedViewConfig::configureOverridesUpdateDisplayModel()
{
configureOverrides();
if (managedView)
{
managedView->rangeFilterCollection()->updateDisplayModeNotifyManagedViews();
}
RimEclipseView* eclipseView = managedEclipseView();
if (eclipseView)
{
eclipseView->propertyFilterCollection()->updateDisplayModelNotifyManagedViews();
}
RimGeoMechView* geoView = managedGeoView();
if (geoView)
{
geoView->propertyFilterCollection()->updateDisplayModelNotifyManagedViews();
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimManagedViewConfig::configureOverrides()
{
RimView* masterView = NULL;
firstAnchestorOrThisOfType(masterView);
@ -279,22 +306,5 @@ void RimManagedViewConfig::configureOverridesUpdateDisplayModel()
// Propagate overrides in current view to managed views
managedView->managedViewCollection()->configureOverrides();
}
if (managedView)
{
managedView->rangeFilterCollection()->updateDisplayModeNotifyManagedViews();
}
RimEclipseView* eclipseView = managedEclipseView();
if (eclipseView)
{
eclipseView->propertyFilterCollection()->updateDisplayModelNotifyManagedViews();
}
RimGeoMechView* geoView = managedGeoView();
if (geoView)
{
geoView->propertyFilterCollection()->updateDisplayModelNotifyManagedViews();
}
}

View File

@ -47,7 +47,7 @@ public:
caf::PdmField<bool> syncRangeFilters;
caf::PdmField<bool> syncPropertyFilters;
void configureOverridesUpdateDisplayModel();
void configureOverrides();
protected:
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
@ -56,7 +56,8 @@ protected:
virtual void initAfterRead();
private:
void allVisibleViews(std::vector<RimView*>& views);
void allVisibleViews(std::vector<RimView*>& views);
void configureOverridesUpdateDisplayModel();
RimEclipseView* managedEclipseView();
RimGeoMechView* managedGeoView();