mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#4859 Update the view when the comparison view is changed
This commit is contained in:
parent
98f9eef0da
commit
f24543ce56
@ -375,6 +375,39 @@ void Rim3dView::scheduleCreateDisplayModelAndRedraw()
|
|||||||
viewLinker->scheduleCreateDisplayModelAndRedrawForDependentViews();
|
viewLinker->scheduleCreateDisplayModelAndRedrawForDependentViews();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Update views using this as comparison
|
||||||
|
std::set<Rim3dView*> containingViews = viewsUsingThisAsComparisonView();
|
||||||
|
|
||||||
|
for ( auto view : containingViews )
|
||||||
|
{
|
||||||
|
RiaViewRedrawScheduler::instance()->scheduleDisplayModelUpdateAndRedraw( view );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
std::set<Rim3dView*> Rim3dView::viewsUsingThisAsComparisonView()
|
||||||
|
{
|
||||||
|
std::set<Rim3dView*> containingViews;
|
||||||
|
std::vector<caf::PdmFieldHandle*> fieldsReferringToMe;
|
||||||
|
|
||||||
|
this->referringPtrFields( fieldsReferringToMe );
|
||||||
|
for ( caf::PdmFieldHandle* field : fieldsReferringToMe )
|
||||||
|
{
|
||||||
|
if ( field->keyword() == m_comparisonView.keyword() )
|
||||||
|
{
|
||||||
|
Rim3dView* containingView = nullptr;
|
||||||
|
containingView = dynamic_cast<Rim3dView*>( field->ownerObject() );
|
||||||
|
if ( containingView && containingView->activeComparisonView() == this )
|
||||||
|
{
|
||||||
|
containingViews.insert( containingView );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return containingViews;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -449,6 +482,8 @@ void Rim3dView::setCurrentTimeStep( int frameIndex )
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void Rim3dView::updateCurrentTimeStepAndRedraw()
|
void Rim3dView::updateCurrentTimeStepAndRedraw()
|
||||||
{
|
{
|
||||||
|
if ( nativeOrOverrideViewer() )
|
||||||
|
{
|
||||||
this->updateCurrentTimeStep();
|
this->updateCurrentTimeStep();
|
||||||
|
|
||||||
if ( Rim3dView* depView = prepareComparisonView() )
|
if ( Rim3dView* depView = prepareComparisonView() )
|
||||||
@ -458,11 +493,21 @@ void Rim3dView::updateCurrentTimeStepAndRedraw()
|
|||||||
restoreComparisonView();
|
restoreComparisonView();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nativeOrOverrideViewer()->update();
|
||||||
|
}
|
||||||
|
|
||||||
|
std::set<Rim3dView*> containerViews = this->viewsUsingThisAsComparisonView();
|
||||||
|
if ( !containerViews.empty() && !isUsingOverrideViewer())
|
||||||
|
{
|
||||||
|
for ( auto view : containerViews )
|
||||||
|
{
|
||||||
|
view->updateCurrentTimeStepAndRedraw();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
RimProject* project;
|
RimProject* project;
|
||||||
firstAncestorOrThisOfTypeAsserted( project );
|
firstAncestorOrThisOfTypeAsserted( project );
|
||||||
project->mainPlotCollection()->updateCurrentTimeStepInPlots();
|
project->mainPlotCollection()->updateCurrentTimeStepInPlots();
|
||||||
|
|
||||||
if ( nativeOrOverrideViewer() ) nativeOrOverrideViewer()->update();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -1369,7 +1414,7 @@ Rim3dView* Rim3dView::prepareComparisonView()
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isUsingOverrideViewer())
|
if ( isUsingOverrideViewer() )
|
||||||
{
|
{
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
@ -154,6 +154,7 @@ public:
|
|||||||
void updateCurrentTimeStepAndRedraw() override;
|
void updateCurrentTimeStepAndRedraw() override;
|
||||||
virtual void scheduleGeometryRegen( RivCellSetEnum geometryType ) = 0;
|
virtual void scheduleGeometryRegen( RivCellSetEnum geometryType ) = 0;
|
||||||
void scheduleCreateDisplayModelAndRedraw();
|
void scheduleCreateDisplayModelAndRedraw();
|
||||||
|
|
||||||
void createDisplayModelAndRedraw();
|
void createDisplayModelAndRedraw();
|
||||||
void createHighlightAndGridBoxDisplayModelWithRedraw();
|
void createHighlightAndGridBoxDisplayModelWithRedraw();
|
||||||
void updateGridBoxData();
|
void updateGridBoxData();
|
||||||
@ -297,6 +298,7 @@ private:
|
|||||||
|
|
||||||
void setOverrideViewer( RiuViewer* overrideViewer );
|
void setOverrideViewer( RiuViewer* overrideViewer );
|
||||||
Rim3dView* activeComparisonView() const;
|
Rim3dView* activeComparisonView() const;
|
||||||
|
std::set<Rim3dView*> viewsUsingThisAsComparisonView();
|
||||||
|
|
||||||
Rim3dView* prepareComparisonView();
|
Rim3dView* prepareComparisonView();
|
||||||
void restoreComparisonView();
|
void restoreComparisonView();
|
||||||
|
@ -166,7 +166,7 @@ void RimCellEdgeColors::fieldChangedByUi( const caf::PdmFieldHandle* changedFiel
|
|||||||
{
|
{
|
||||||
loadResult();
|
loadResult();
|
||||||
|
|
||||||
if ( m_reservoirView ) m_reservoirView->createDisplayModelAndRedraw();
|
if ( m_reservoirView ) m_reservoirView->scheduleCreateDisplayModelAndRedraw();
|
||||||
|
|
||||||
if ( changedField == objectToggleField() )
|
if ( changedField == objectToggleField() )
|
||||||
{
|
{
|
||||||
|
@ -113,7 +113,7 @@ void RimEclipseCellColors::fieldChangedByUi( const caf::PdmFieldHandle* changedF
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( m_reservoirView ) m_reservoirView->createDisplayModelAndRedraw();
|
if ( m_reservoirView ) m_reservoirView->scheduleCreateDisplayModelAndRedraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user