mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
(#449) Minor fixes related to isActive
This commit is contained in:
parent
9aeb949b06
commit
08e266c2f3
@ -94,7 +94,7 @@ void RicLinkVisibleViewsFeature::onActionTriggered(bool isChecked)
|
||||
|
||||
viewLink->initAfterReadRecursively();
|
||||
viewLink->updateOptionSensitivity();
|
||||
viewLink->updateUiIcon();
|
||||
viewLink->updateUiIconFromActiveState();
|
||||
}
|
||||
|
||||
proj->viewLinkerCollection()->viewLinkers().push_back(linkedViews);
|
||||
|
@ -447,8 +447,8 @@ void RimView::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QV
|
||||
RimViewLinker* viewLinker = proj->findViewLinkerFromView(this);
|
||||
if (viewLinker)
|
||||
{
|
||||
RimViewLink* linkedView = viewLinker->viewLinkFromView(this);
|
||||
if (!linkedView || linkedView->syncCamera())
|
||||
RimViewLink* viewLink = viewLinker->viewLinkFromView(this);
|
||||
if (this == viewLinker->mainView() || (viewLink && viewLink->isActive() && viewLink->syncCamera()))
|
||||
{
|
||||
viewLinker->updateScaleZ(this, scaleZ);
|
||||
}
|
||||
@ -484,11 +484,15 @@ void RimView::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QV
|
||||
this->firstAnchestorOrThisOfType(proj);
|
||||
RimViewLinker* viewLinker = proj->findViewLinkerFromView(this);
|
||||
if (viewLinker)
|
||||
{
|
||||
RimViewLink* viewLink = viewLinker->viewLinkFromView(this);
|
||||
if (this == viewLinker->mainView() || (viewLink && viewLink->isActive() && viewLink->syncTimeStep()))
|
||||
{
|
||||
viewLinker->updateTimeStep(this, m_currentTimeStep);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (changedField == &backgroundColor)
|
||||
{
|
||||
if (viewer() != NULL)
|
||||
@ -590,10 +594,9 @@ void RimView::notifyCameraHasChanged()
|
||||
RimViewLinker* viewLinker = proj->findViewLinkerFromView(this);
|
||||
if (viewLinker)
|
||||
{
|
||||
RimViewLink* linkedView = viewLinker->viewLinkFromView(this);
|
||||
RimViewLink* viewLink = viewLinker->viewLinkFromView(this);
|
||||
|
||||
// There is no view config for a master view, but all views for sync must be updated
|
||||
if (!linkedView || linkedView->syncCamera())
|
||||
if (this == viewLinker->mainView() || (viewLink && viewLink->isActive() && viewLink->syncCamera()))
|
||||
{
|
||||
viewLinker->allViewsForCameraSync(this, viewsToUpdate);
|
||||
}
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include "RimProject.h"
|
||||
#include "RimView.h"
|
||||
#include "RimViewLinker.h"
|
||||
#include "RimViewLinkerCollection.h"
|
||||
|
||||
#include "RiuViewer.h"
|
||||
|
||||
@ -42,7 +43,7 @@ CAF_PDM_SOURCE_INIT(RimViewLink, "RimViewLink");
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimViewLink::RimViewLink(void)
|
||||
{
|
||||
CAF_PDM_InitObject("View Config", "", "", "");
|
||||
CAF_PDM_InitObject("View Link", "", "", "");
|
||||
|
||||
CAF_PDM_InitField(&isActive, "Active", true, "Active", "", "", "");
|
||||
isActive.uiCapability()->setUiHidden(true);
|
||||
@ -138,46 +139,35 @@ void RimViewLink::fieldChangedByUi(const caf::PdmFieldHandle* changedField, cons
|
||||
{
|
||||
if (changedField == &isActive)
|
||||
{
|
||||
updateUiIcon();
|
||||
updateUiIconFromActiveState();
|
||||
if (syncCamera()) doSyncCamera();
|
||||
if (syncTimeStep()) doSyncTimeStep();
|
||||
if (syncCellResult()) doSyncCellResult();
|
||||
configureOverrides();
|
||||
}
|
||||
else if (changedField == &syncCamera && syncCamera())
|
||||
{
|
||||
RimViewLinker* linkedViews = NULL;
|
||||
this->firstAnchestorOrThisOfType(linkedViews);
|
||||
linkedViews->updateScaleZ(linkedViews->mainView(), linkedViews->mainView()->scaleZ());
|
||||
|
||||
if (m_managedView && m_managedView->viewer())
|
||||
{
|
||||
m_managedView->viewer()->navigationPolicyUpdate();
|
||||
}
|
||||
doSyncCamera();
|
||||
}
|
||||
else if (changedField == &syncTimeStep && syncTimeStep())
|
||||
{
|
||||
if (m_managedView)
|
||||
{
|
||||
RimViewLinker* linkedViews = NULL;
|
||||
this->firstAnchestorOrThisOfType(linkedViews);
|
||||
linkedViews->updateTimeStep(m_managedView, m_managedView->currentTimeStep());
|
||||
}
|
||||
doSyncTimeStep();
|
||||
}
|
||||
else if (changedField == &syncCellResult && syncCellResult())
|
||||
{
|
||||
RimViewLinker* linkedViews = NULL;
|
||||
this->firstAnchestorOrThisOfType(linkedViews);
|
||||
linkedViews->updateCellResult();
|
||||
doSyncCellResult();
|
||||
}
|
||||
else if (changedField == &syncRangeFilters)
|
||||
{
|
||||
configureOverridesUpdateDisplayModel();
|
||||
configureOverrides();
|
||||
}
|
||||
else if (changedField == &syncPropertyFilters)
|
||||
{
|
||||
configureOverridesUpdateDisplayModel();
|
||||
configureOverrides();
|
||||
}
|
||||
else if (changedField == &m_managedView)
|
||||
{
|
||||
configureOverridesUpdateDisplayModel();
|
||||
configureOverrides();
|
||||
|
||||
if (m_managedView)
|
||||
{
|
||||
@ -222,14 +212,14 @@ void RimViewLink::fieldChangedByUi(const caf::PdmFieldHandle* changedField, cons
|
||||
|
||||
updateOptionSensitivity();
|
||||
updateDisplayNameAndIcon();
|
||||
updateUiIcon();
|
||||
updateUiIconFromActiveState();
|
||||
|
||||
name.uiCapability()->updateConnectedEditors();
|
||||
}
|
||||
else if (&syncVisibleCells == changedField)
|
||||
{
|
||||
updateOptionSensitivity();
|
||||
configureOverridesUpdateDisplayModel();
|
||||
configureOverrides();
|
||||
}
|
||||
}
|
||||
|
||||
@ -240,7 +230,7 @@ void RimViewLink::initAfterRead()
|
||||
{
|
||||
configureOverrides();
|
||||
updateDisplayNameAndIcon();
|
||||
updateUiIcon();
|
||||
updateUiIconFromActiveState();
|
||||
updateOptionSensitivity();
|
||||
}
|
||||
|
||||
@ -264,40 +254,15 @@ RimGeoMechView* RimViewLink::managedGeoView()
|
||||
return dynamic_cast<RimGeoMechView*>(rimView);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimViewLink::configureOverridesUpdateDisplayModel()
|
||||
{
|
||||
configureOverrides();
|
||||
|
||||
// This update scheduling actually schedules update in the master view (not the managed view). Is that intentional ? JJS
|
||||
/*
|
||||
if (m_managedView)
|
||||
{
|
||||
m_managedView->rangeFilterCollection()->updateDisplayModeNotifyManagedViews();
|
||||
}
|
||||
|
||||
RimEclipseView* eclipseView = managedEclipseView();
|
||||
if (eclipseView)
|
||||
{
|
||||
eclipseView->propertyFilterCollection()->updateDisplayModelNotifyManagedViews();
|
||||
}
|
||||
|
||||
RimGeoMechView* geoView = managedGeoView();
|
||||
if (geoView)
|
||||
{
|
||||
geoView->propertyFilterCollection()->updateDisplayModelNotifyManagedViews();
|
||||
}
|
||||
*/
|
||||
// Todo : Notify the managed view of the possible change of visualCellsOverride
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimViewLink::configureOverrides()
|
||||
{
|
||||
RimViewLinkerCollection* viewLinkerColl = NULL;
|
||||
this->firstAnchestorOrThisOfType(viewLinkerColl);
|
||||
if (!viewLinkerColl->isActive()) return;
|
||||
|
||||
RimViewLinker* viewLinker = NULL;
|
||||
this->firstAnchestorOrThisOfType(viewLinker);
|
||||
|
||||
@ -472,7 +437,7 @@ void RimViewLink::removeOverrides()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimViewLink::updateUiIcon()
|
||||
void RimViewLink::updateUiIconFromActiveState()
|
||||
{
|
||||
RimViewLinker::applyIconEnabledState(this, m_originalIcon, !isActive());
|
||||
}
|
||||
@ -485,3 +450,53 @@ void RimViewLink::updateDisplayNameAndIcon()
|
||||
RimViewLinker::findNameAndIconFromView(&name.v(), &m_originalIcon, managedView());
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimViewLink::doSyncCamera()
|
||||
{
|
||||
RimViewLinkerCollection* viewLinkerColl = NULL;
|
||||
this->firstAnchestorOrThisOfType(viewLinkerColl);
|
||||
if (!viewLinkerColl->isActive()) return;
|
||||
|
||||
RimViewLinker* viewLinker = NULL;
|
||||
this->firstAnchestorOrThisOfType(viewLinker);
|
||||
viewLinker->updateScaleZ(viewLinker->mainView(), viewLinker->mainView()->scaleZ());
|
||||
|
||||
if (m_managedView && m_managedView->viewer())
|
||||
{
|
||||
m_managedView->viewer()->navigationPolicyUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimViewLink::doSyncTimeStep()
|
||||
{
|
||||
RimViewLinkerCollection* viewLinkerColl = NULL;
|
||||
this->firstAnchestorOrThisOfType(viewLinkerColl);
|
||||
if (!viewLinkerColl->isActive()) return;
|
||||
|
||||
if (m_managedView)
|
||||
{
|
||||
RimViewLinker* linkedViews = NULL;
|
||||
this->firstAnchestorOrThisOfType(linkedViews);
|
||||
linkedViews->updateTimeStep(m_managedView, m_managedView->currentTimeStep());
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimViewLink::doSyncCellResult()
|
||||
{
|
||||
RimViewLinkerCollection* viewLinkerColl = NULL;
|
||||
this->firstAnchestorOrThisOfType(viewLinkerColl);
|
||||
if (!viewLinkerColl->isActive()) return;
|
||||
|
||||
RimViewLinker* linkedViews = NULL;
|
||||
this->firstAnchestorOrThisOfType(linkedViews);
|
||||
linkedViews->updateCellResult();
|
||||
}
|
||||
|
||||
|
@ -59,10 +59,9 @@ public:
|
||||
void updateOptionSensitivity();
|
||||
void removeOverrides();
|
||||
|
||||
void updateUiIcon();
|
||||
void updateUiIconFromActiveState();
|
||||
void updateDisplayNameAndIcon();
|
||||
|
||||
|
||||
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);
|
||||
@ -72,9 +71,10 @@ protected:
|
||||
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering);
|
||||
virtual caf::PdmFieldHandle* objectToggleField() { return &isActive; }
|
||||
|
||||
|
||||
private:
|
||||
void configureOverridesUpdateDisplayModel();
|
||||
void doSyncCamera();
|
||||
void doSyncTimeStep();
|
||||
void doSyncCellResult();
|
||||
|
||||
RimEclipseView* managedEclipseView();
|
||||
RimGeoMechView* managedGeoView();
|
||||
|
@ -305,6 +305,8 @@ void RimViewLinker::applyAllOperations()
|
||||
updateRangeFilters();
|
||||
updatePropertyFilters();
|
||||
updateScaleZ(m_mainView, m_mainView->scaleZ());
|
||||
|
||||
m_mainView->notifyCameraHasChanged();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -25,6 +25,7 @@
|
||||
|
||||
#include "RimProject.h"
|
||||
#include "RimView.h"
|
||||
#include "RimViewLink.h"
|
||||
#include "RimViewLinker.h"
|
||||
|
||||
#include "RiuCadNavigation.h"
|
||||
@ -263,11 +264,15 @@ void RiuViewer::slotSetCurrentFrame(int frameIndex)
|
||||
m_reservoirView->firstAnchestorOrThisOfType(proj);
|
||||
RimViewLinker* viewLinker = proj->findViewLinkerFromView(m_reservoirView);
|
||||
if (viewLinker)
|
||||
{
|
||||
RimViewLink* viewLink = viewLinker->viewLinkFromView(m_reservoirView);
|
||||
if (m_reservoirView == viewLinker->mainView() || (viewLink && viewLink->isActive() && viewLink->syncTimeStep()))
|
||||
{
|
||||
viewLinker->updateTimeStep(m_reservoirView, frameIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
|
Loading…
Reference in New Issue
Block a user