#7307 Janitor : Hide empty visualization folders in a 3D view

This commit is contained in:
Magne Sjaastad 2021-02-22 16:01:43 +01:00
parent f3a824eeef
commit c542b457a6
4 changed files with 50 additions and 6 deletions

View File

@ -1876,11 +1876,10 @@ void RimEclipseView::defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrderin
uiTreeOrdering.add( cellEdgeResult() ); uiTreeOrdering.add( cellEdgeResult() );
uiTreeOrdering.add( elementVectorResult() ); uiTreeOrdering.add( elementVectorResult() );
uiTreeOrdering.add( faultResultSettings() ); uiTreeOrdering.add( faultResultSettings() );
uiTreeOrdering.add( &m_intersectionResultDefCollection );
uiTreeOrdering.add( &m_surfaceResultDefCollection ); addRequiredUiTreeObjects( uiTreeOrdering );
uiTreeOrdering.add( wellCollection() ); uiTreeOrdering.add( wellCollection() );
uiTreeOrdering.add( &m_wellMeasurementCollection );
{ {
bool showFractureColors = false; bool showFractureColors = false;

View File

@ -959,9 +959,8 @@ void RimGeoMechView::defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrderin
uiTreeOrdering.add( cellResult() ); uiTreeOrdering.add( cellResult() );
uiTreeOrdering.add( m_tensorResults() ); uiTreeOrdering.add( m_tensorResults() );
uiTreeOrdering.add( &m_intersectionResultDefCollection );
uiTreeOrdering.add( &m_surfaceResultDefCollection ); addRequiredUiTreeObjects( uiTreeOrdering );
uiTreeOrdering.add( &m_wellMeasurementCollection );
uiTreeOrdering.add( m_intersectionCollection() ); uiTreeOrdering.add( m_intersectionCollection() );
if ( surfaceInViewCollection() ) uiTreeOrdering.add( surfaceInViewCollection() ); if ( surfaceInViewCollection() ) uiTreeOrdering.add( surfaceInViewCollection() );

View File

@ -25,19 +25,24 @@
#include "RimEclipseResultDefinition.h" #include "RimEclipseResultDefinition.h"
#include "RimGeoMechResultDefinition.h" #include "RimGeoMechResultDefinition.h"
#include "RimGridCollection.h" #include "RimGridCollection.h"
#include "RimIntersection.h"
#include "RimIntersectionCollection.h" #include "RimIntersectionCollection.h"
#include "RimIntersectionResultsDefinitionCollection.h" #include "RimIntersectionResultsDefinitionCollection.h"
#include "RimOilField.h" #include "RimOilField.h"
#include "RimProject.h" #include "RimProject.h"
#include "RimPropertyFilterCollection.h" #include "RimPropertyFilterCollection.h"
#include "RimSurfaceCollection.h" #include "RimSurfaceCollection.h"
#include "RimSurfaceInView.h"
#include "RimSurfaceInViewCollection.h" #include "RimSurfaceInViewCollection.h"
#include "RimTextAnnotation.h" #include "RimTextAnnotation.h"
#include "RimTools.h"
#include "RimViewController.h" #include "RimViewController.h"
#include "RimViewLinker.h" #include "RimViewLinker.h"
#include "RimViewLinkerCollection.h" #include "RimViewLinkerCollection.h"
#include "RimViewNameConfig.h" #include "RimViewNameConfig.h"
#include "RimWellMeasurementCollection.h"
#include "RimWellMeasurementInViewCollection.h" #include "RimWellMeasurementInViewCollection.h"
#include "RimWellPathCollection.h"
#include "Riu3DMainWindowTools.h" #include "Riu3DMainWindowTools.h"
#include "Riu3dSelectionManager.h" #include "Riu3dSelectionManager.h"
@ -50,6 +55,8 @@
#include "cvfPart.h" #include "cvfPart.h"
#include "cvfScene.h" #include "cvfScene.h"
#include "cafPdmUiTreeOrdering.h"
#include <set> #include <set>
CAF_PDM_XML_ABSTRACT_SOURCE_INIT( RimGridView, "GenericGridView" ); // Do not use. Abstract class CAF_PDM_XML_ABSTRACT_SOURCE_INIT( RimGridView, "GenericGridView" ); // Do not use. Abstract class
@ -508,6 +515,44 @@ void RimGridView::clearReservoirCellVisibilities()
m_currentReservoirCellVisibility = nullptr; m_currentReservoirCellVisibility = nullptr;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimGridView::addRequiredUiTreeObjects( caf::PdmUiTreeOrdering& uiTreeOrdering )
{
{
std::vector<RimIntersection*> intersections;
this->descendantsIncludingThisOfType( intersections );
if ( !intersections.empty() )
{
uiTreeOrdering.add( &m_intersectionResultDefCollection );
}
}
{
std::vector<RimSurfaceInView*> surfaces;
this->descendantsIncludingThisOfType( surfaces );
if ( !surfaces.empty() )
{
uiTreeOrdering.add( &m_surfaceResultDefCollection );
}
}
{
RimWellPathCollection* wellPathCollection = RimTools::wellPathCollection();
if ( wellPathCollection )
{
const RimWellMeasurementCollection* measurementCollection = wellPathCollection->measurementCollection();
if ( !measurementCollection->measurements().empty() )
{
uiTreeOrdering.add( &m_wellMeasurementCollection );
}
}
}
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -79,6 +79,7 @@ protected:
void selectOverlayInfoConfig() override; void selectOverlayInfoConfig() override;
RimGridCollection* gridCollection() const; RimGridCollection* gridCollection() const;
void clearReservoirCellVisibilities(); void clearReservoirCellVisibilities();
void addRequiredUiTreeObjects( caf::PdmUiTreeOrdering& uiTreeOrdering );
void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override; void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
void initAfterRead() override; void initAfterRead() override;