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
@ -220,7 +220,7 @@ QString Rim3dView::name() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
QString Rim3dView::autoName() const
|
QString Rim3dView::autoName() const
|
||||||
{
|
{
|
||||||
@ -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,20 +482,32 @@ void Rim3dView::setCurrentTimeStep( int frameIndex )
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void Rim3dView::updateCurrentTimeStepAndRedraw()
|
void Rim3dView::updateCurrentTimeStepAndRedraw()
|
||||||
{
|
{
|
||||||
this->updateCurrentTimeStep();
|
if ( nativeOrOverrideViewer() )
|
||||||
|
|
||||||
if ( Rim3dView* depView = prepareComparisonView() )
|
|
||||||
{
|
{
|
||||||
depView->updateCurrentTimeStep();
|
this->updateCurrentTimeStep();
|
||||||
|
|
||||||
restoreComparisonView();
|
if ( Rim3dView* depView = prepareComparisonView() )
|
||||||
|
{
|
||||||
|
depView->updateCurrentTimeStep();
|
||||||
|
|
||||||
|
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();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -494,7 +539,7 @@ void Rim3dView::createDisplayModelAndRedraw()
|
|||||||
if ( isTimeStepDependentDataVisibleInThisOrComparisonView() )
|
if ( isTimeStepDependentDataVisibleInThisOrComparisonView() )
|
||||||
{
|
{
|
||||||
// To make the override viewer see the new frame (skeletons) created by createDisplayModelAndRedraw
|
// To make the override viewer see the new frame (skeletons) created by createDisplayModelAndRedraw
|
||||||
// But avoid any call back down to this Rim3dView, instead do the update manually to not confuse the
|
// But avoid any call back down to this Rim3dView, instead do the update manually to not confuse the
|
||||||
// m_currentTimeStep
|
// m_currentTimeStep
|
||||||
nativeOrOverrideViewer()->caf::Viewer::slotSetCurrentFrame( currentTimeStep() );
|
nativeOrOverrideViewer()->caf::Viewer::slotSetCurrentFrame( currentTimeStep() );
|
||||||
depView->updateCurrentTimeStep();
|
depView->updateCurrentTimeStep();
|
||||||
@ -504,8 +549,8 @@ void Rim3dView::createDisplayModelAndRedraw()
|
|||||||
}
|
}
|
||||||
else if ( !isUsingOverrideViewer() && viewer() )
|
else if ( !isUsingOverrideViewer() && viewer() )
|
||||||
{
|
{
|
||||||
// Remove the comparison scene data when
|
// Remove the comparison scene data when
|
||||||
// we do not have a comparison view
|
// we do not have a comparison view
|
||||||
// and are not doing override generation
|
// and are not doing override generation
|
||||||
viewer()->setMainScene( nullptr, true );
|
viewer()->setMainScene( nullptr, true );
|
||||||
viewer()->removeAllFrames( true );
|
viewer()->removeAllFrames( true );
|
||||||
@ -1365,11 +1410,11 @@ Rim3dView* Rim3dView::prepareComparisonView()
|
|||||||
Rim3dView* depView = activeComparisonView();
|
Rim3dView* depView = activeComparisonView();
|
||||||
|
|
||||||
if ( !depView )
|
if ( !depView )
|
||||||
{
|
{
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isUsingOverrideViewer())
|
if ( isUsingOverrideViewer() )
|
||||||
{
|
{
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
@ -109,7 +109,7 @@ public:
|
|||||||
|
|
||||||
void setName( const QString& name );
|
void setName( const QString& name );
|
||||||
QString name() const;
|
QString name() const;
|
||||||
QString autoName() const;
|
QString autoName() const;
|
||||||
|
|
||||||
// Implementation of RiuViewerToViewInterface
|
// Implementation of RiuViewerToViewInterface
|
||||||
cvf::Color3f backgroundColor() const override
|
cvf::Color3f backgroundColor() const override
|
||||||
@ -154,13 +154,14 @@ 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 createHighlightAndGridBoxDisplayModelWithRedraw();
|
void createDisplayModelAndRedraw();
|
||||||
void updateGridBoxData();
|
void createHighlightAndGridBoxDisplayModelWithRedraw();
|
||||||
void updateAnnotationItems();
|
void updateGridBoxData();
|
||||||
void updateScaling();
|
void updateAnnotationItems();
|
||||||
void updateZScaleLabel();
|
void updateScaling();
|
||||||
void updateMeasurement();
|
void updateZScaleLabel();
|
||||||
|
void updateMeasurement();
|
||||||
|
|
||||||
bool isMasterView() const;
|
bool isMasterView() const;
|
||||||
|
|
||||||
@ -295,8 +296,9 @@ private:
|
|||||||
|
|
||||||
// Pure private methods : Override viewer and comparison view
|
// Pure private methods : Override viewer and comparison view
|
||||||
|
|
||||||
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