Surfaces: Improve UI and usability for surfaces (#6290)

* Add reload command to surface context menus. Still missing the part that actually reloads the data.

* Add additional check for null ptr to avoid crash

* Surfaces: implements reload command in context menu to reload surface data from its source (i.e. a file).
Rename function names to better show what they are actually doing
Refactor a bit to give all RimSurface subclasses the same interface for reloading data.
Also makes sure new RimGridCaseSurface instances are shown by default in the view(s)

* Fixes by clang-format

* Include offset and slice index in surface name shown in project explorer

* Allow importing the same file multiple times

* Disable lighting for surfaces, as it doesn't look good for now. Fixes #6084

* Surfaces: Remove depth offset setting from view. Add slider to depth offset edit for surface

* Create new surfaces only on collection context menu

* Make sure tree view icon is enabled/disabled when the check box is clicked

* Fix depth offset for grid case surfaces, missing base function call.

* Make public method .. public.

* Add reload command to surface context menus. Still missing the part that actually reloads the data.

* Add additional check for null ptr to avoid crash

* Surfaces: implements reload command in context menu to reload surface data from its source (i.e. a file).
Rename function names to better show what they are actually doing
Refactor a bit to give all RimSurface subclasses the same interface for reloading data.
Also makes sure new RimGridCaseSurface instances are shown by default in the view(s)

* Fixes by clang-format

* Include offset and slice index in surface name shown in project explorer

* Allow importing the same file multiple times

* Disable lighting for surfaces, as it doesn't look good for now. Fixes #6084

* Surfaces: Remove depth offset setting from view. Add slider to depth offset edit for surface

* Create new surfaces only on collection context menu

* Make sure tree view icon is enabled/disabled when the check box is clicked

* Fix depth offset for grid case surfaces, missing base function call.

* Make public method .. public.

* Fixes by clang-format

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This commit is contained in:
jonjenssen
2020-08-11 11:34:34 +02:00
committed by GitHub
parent af44659860
commit bbc659799e
20 changed files with 30895 additions and 164 deletions

View File

@@ -51,9 +51,6 @@ RimSurfaceInView::RimSurfaceInView()
CAF_PDM_InitFieldNoDefault( &m_surface, "SurfaceRef", "Surface", "", "", "" );
m_surface.uiCapability()->setUiHidden( true );
CAF_PDM_InitField( &m_depthOffset, "DepthOffset", 0.0, "Depth Offset", "", "", "" );
m_depthOffset.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleSliderEditor::uiEditorTypeName() );
CAF_PDM_InitFieldNoDefault( &m_resultDefinition, "ResultDefinition", "Result Definition", "", "", "" );
m_resultDefinition.uiCapability()->setUiHidden( true );
m_resultDefinition.uiCapability()->setUiTreeChildrenHidden( true );
@@ -74,7 +71,7 @@ RimSurfaceInView::~RimSurfaceInView()
//--------------------------------------------------------------------------------------------------
QString RimSurfaceInView::name() const
{
if ( m_surface ) return m_surface->userDescription();
if ( m_surface ) return m_surface->fullName();
return "";
}
@@ -126,14 +123,6 @@ RimSurfaceResultDefinition* RimSurfaceInView::surfaceResultDefinition()
return m_resultDefinition();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
double RimSurfaceInView::depthOffset() const
{
return m_depthOffset;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -203,6 +192,8 @@ void RimSurfaceInView::fieldChangedByUi( const caf::PdmFieldHandle* changedField
const QVariant& oldValue,
const QVariant& newValue )
{
this->updateUiIconFromToggleField();
bool scheduleRedraw = false;
if ( changedField == &m_isActive || changedField == &m_useSeparateDataSource || changedField == &m_separateDataSource )
@@ -214,11 +205,6 @@ void RimSurfaceInView::fieldChangedByUi( const caf::PdmFieldHandle* changedField
clearGeometry();
scheduleRedraw = true;
}
else if ( changedField == &m_depthOffset )
{
clearGeometry();
scheduleRedraw = true;
}
if ( scheduleRedraw )
{
@@ -235,29 +221,10 @@ void RimSurfaceInView::defineUiOrdering( QString uiConfigName, caf::PdmUiOrderin
{
uiOrdering.add( &m_name );
uiOrdering.add( &m_showInactiveCells );
uiOrdering.add( &m_depthOffset );
this->defineSeparateDataSourceUi( uiConfigName, uiOrdering );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSurfaceInView::defineEditorAttribute( const caf::PdmFieldHandle* field,
QString uiConfigName,
caf::PdmUiEditorAttribute* attribute )
{
auto doubleSliderAttrib = dynamic_cast<caf::PdmUiDoubleSliderEditorAttribute*>( attribute );
if ( doubleSliderAttrib )
{
if ( field == &m_depthOffset )
{
doubleSliderAttrib->m_minimum = -2000;
doubleSliderAttrib->m_maximum = 2000;
}
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -275,3 +242,11 @@ caf::PdmFieldHandle* RimSurfaceInView::userDescriptionField()
{
return &m_name;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSurfaceInView::initAfterRead()
{
this->updateUiIconFromToggleField();
}