mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
(#395) Update visibility of options when main view changes
This commit is contained in:
parent
a44e548f93
commit
3afa94bb3b
@ -60,18 +60,20 @@ void RicLinkVisibleViewsFeature::onActionTriggered(bool isChecked)
|
||||
CVF_ASSERT(views.size() > 1);
|
||||
|
||||
RimView* masterView = views[0];
|
||||
|
||||
RimLinkedViews* linkedViews = new RimLinkedViews;
|
||||
linkedViews->mainView = masterView;
|
||||
|
||||
for (size_t i = 1; i < views.size(); i++)
|
||||
{
|
||||
RimView* rimView = views[i];
|
||||
|
||||
RimManagedViewConfig* viewConfig = new RimManagedViewConfig;
|
||||
viewConfig->managedView = rimView;
|
||||
|
||||
linkedViews->viewConfigs.push_back(viewConfig);
|
||||
|
||||
viewConfig->initAfterReadRecursively();
|
||||
viewConfig->updateViewChanged();
|
||||
}
|
||||
|
||||
proj->linkedViews.push_back(linkedViews);
|
||||
|
@ -331,3 +331,18 @@ RimManagedViewConfig* RimLinkedViews::viewConfigForView(RimView* view)
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimLinkedViews::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
||||
{
|
||||
if (changedField == &mainView)
|
||||
{
|
||||
for (size_t i = 0; i < viewConfigs.size(); i++)
|
||||
{
|
||||
viewConfigs[i]->updateViewChanged();
|
||||
viewConfigs[i]->updateConnectedEditors();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -64,6 +64,7 @@ public:
|
||||
RimManagedViewConfig* viewConfigForView(RimView* view);
|
||||
|
||||
protected:
|
||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
||||
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly);
|
||||
virtual caf::PdmFieldHandle* userDescriptionField() { return &name; }
|
||||
virtual void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "");
|
||||
|
@ -52,8 +52,8 @@ RimManagedViewConfig::RimManagedViewConfig(void)
|
||||
managedView.uiCapability()->setUiChildrenHidden(true);
|
||||
|
||||
CAF_PDM_InitField(&syncCamera, "SyncCamera", true, "Sync Camera", "", "", "");
|
||||
CAF_PDM_InitField(&syncCellResult, "SyncCellResult", true, "Sync Cell Result", "", "", "");
|
||||
CAF_PDM_InitField(&syncTimeStep, "SyncTimeStep", true, "Sync Time Step", "", "", "");
|
||||
CAF_PDM_InitField(&syncCellResult, "SyncCellResult", true, "Sync Cell Result", "", "", "");
|
||||
CAF_PDM_InitField(&syncRangeFilters, "SyncRangeFilters", true, "Sync Range Filters", "", "", "");
|
||||
CAF_PDM_InitField(&syncPropertyFilters, "SyncPropertyFilters", true,"Sync Property Filters", "", "", "");
|
||||
}
|
||||
@ -85,7 +85,7 @@ QList<caf::PdmOptionItemInfo> RimManagedViewConfig::calculateValueOptions(const
|
||||
{
|
||||
if (views[i] != masterView)
|
||||
{
|
||||
optionList.push_back(caf::PdmOptionItemInfo(displayNameForView(views[i]), QVariant::fromValue(caf::PdmPointer<caf::PdmObjectHandle>(views[i]))));
|
||||
optionList.push_back(caf::PdmOptionItemInfo(RimLinkedViews::displayNameForView(views[i]), QVariant::fromValue(caf::PdmPointer<caf::PdmObjectHandle>(views[i]))));
|
||||
}
|
||||
}
|
||||
|
||||
@ -151,7 +151,7 @@ void RimManagedViewConfig::fieldChangedByUi(const caf::PdmFieldHandle* changedFi
|
||||
linkedViews->updateCellResult();
|
||||
}
|
||||
|
||||
name = displayNameForView(managedView);
|
||||
name = RimLinkedViews::displayNameForView(managedView);
|
||||
}
|
||||
|
||||
PdmObjectHandle* prevValue = oldValue.value<caf::PdmPointer<PdmObjectHandle> >().rawPtr();
|
||||
@ -178,7 +178,9 @@ void RimManagedViewConfig::fieldChangedByUi(const caf::PdmFieldHandle* changedFi
|
||||
linkedViews->configureOverrides();
|
||||
}
|
||||
|
||||
updateViewChanged();
|
||||
updateDisplayName();
|
||||
|
||||
name.uiCapability()->updateConnectedEditors();
|
||||
}
|
||||
}
|
||||
@ -189,6 +191,7 @@ void RimManagedViewConfig::fieldChangedByUi(const caf::PdmFieldHandle* changedFi
|
||||
void RimManagedViewConfig::initAfterRead()
|
||||
{
|
||||
configureOverrides();
|
||||
|
||||
updateDisplayName();
|
||||
}
|
||||
|
||||
@ -297,19 +300,41 @@ void RimManagedViewConfig::configureOverrides()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RimManagedViewConfig::displayNameForView(RimView* view)
|
||||
void RimManagedViewConfig::updateViewChanged()
|
||||
{
|
||||
return RimLinkedViews::displayNameForView(view);
|
||||
/*
|
||||
CVF_ASSERT(view);
|
||||
RimLinkedViews* linkedViews = NULL;
|
||||
firstAnchestorOrThisOfType(linkedViews);
|
||||
CVF_ASSERT(linkedViews);
|
||||
|
||||
RimCase* rimCase = NULL;
|
||||
firstAnchestorOrThisOfType(rimCase);
|
||||
RimView* mainView = linkedViews->mainView();
|
||||
RimEclipseView* eclipseMasterView = dynamic_cast<RimEclipseView*>(mainView);
|
||||
RimGeoMechView* geoMasterView = dynamic_cast<RimGeoMechView*>(mainView);
|
||||
|
||||
QString displayName = rimCase->caseUserDescription() + " : " + view->name;
|
||||
bool hideCapabilities = false;
|
||||
if (eclipseMasterView && !managedEclipseView())
|
||||
{
|
||||
hideCapabilities = true;
|
||||
}
|
||||
if (geoMasterView && !managedGeoView())
|
||||
{
|
||||
hideCapabilities = true;
|
||||
}
|
||||
|
||||
return displayName;
|
||||
*/
|
||||
if (hideCapabilities)
|
||||
{
|
||||
this->syncCellResult.uiCapability()->setUiReadOnly(true);
|
||||
this->syncCellResult = false;
|
||||
this->syncRangeFilters.uiCapability()->setUiReadOnly(true);
|
||||
this->syncRangeFilters = false;
|
||||
this->syncPropertyFilters.uiCapability()->setUiReadOnly(true);
|
||||
this->syncPropertyFilters = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
this->syncCellResult.uiCapability()->setUiReadOnly(false);
|
||||
this->syncRangeFilters.uiCapability()->setUiReadOnly(false);
|
||||
this->syncPropertyFilters.uiCapability()->setUiReadOnly(false);
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -319,7 +344,7 @@ void RimManagedViewConfig::updateDisplayName()
|
||||
{
|
||||
if (managedView)
|
||||
{
|
||||
name = displayNameForView(managedView);
|
||||
name = RimLinkedViews::displayNameForView(managedView);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -44,12 +44,13 @@ public:
|
||||
caf::PdmPtrField<RimView*> managedView;
|
||||
|
||||
caf::PdmField<bool> syncCamera;
|
||||
caf::PdmField<bool> syncCellResult;
|
||||
caf::PdmField<bool> syncTimeStep;
|
||||
caf::PdmField<bool> syncCellResult;
|
||||
caf::PdmField<bool> syncRangeFilters;
|
||||
caf::PdmField<bool> syncPropertyFilters;
|
||||
|
||||
void configureOverrides();
|
||||
void updateViewChanged();
|
||||
|
||||
protected:
|
||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
||||
@ -61,10 +62,8 @@ protected:
|
||||
|
||||
private:
|
||||
void configureOverridesUpdateDisplayModel();
|
||||
void updateDisplayName();
|
||||
|
||||
RimEclipseView* managedEclipseView();
|
||||
RimGeoMechView* managedGeoView();
|
||||
|
||||
void updateDisplayName();
|
||||
QString displayNameForView(RimView* view);
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user