Use Fwk base classes for named objects and checked objects

This commit is contained in:
Magne Sjaastad
2026-01-23 13:31:47 +01:00
parent 5c9438ab04
commit fde113259a
12 changed files with 62 additions and 136 deletions
@@ -140,7 +140,7 @@ void RimEquilibriumAxisAnnotation::defineUiOrdering( QString uiConfigName, caf::
if ( m_annotationType() == PlotAxisAnnotationType::PL_USER_DEFINED )
{
uiOrdering.add( &m_name );
uiOrdering.add( nameField() );
uiOrdering.add( &m_value );
}
else
@@ -207,6 +207,6 @@ void RimEquilibriumAxisAnnotation::updateName()
text = QString( "GOC %1" ).arg( value() );
}
m_name = text;
setName( text );
}
}
@@ -42,10 +42,10 @@ RimPlotAxisAnnotation::RimPlotAxisAnnotation()
m_annotationType = AnnotationType::LINE;
CAF_PDM_InitObject( "Plot Axis Annotation", ":/LeftAxis16x16.png" );
CAF_PDM_InitField( &m_isActive, "Active", true, "Active" );
m_isActive.uiCapability()->setUiHidden( true );
// Register keyword alias for backward compatibility (old keyword was "Active", base uses "IsChecked")
m_isChecked.registerKeywordAlias( "Active" );
m_isChecked.uiCapability()->setUiHidden( true );
CAF_PDM_InitFieldNoDefault( &m_name, "Name", "Name" );
CAF_PDM_InitFieldNoDefault( &m_value, "Value", "Value" );
CAF_PDM_InitFieldNoDefault( &m_rangeStart, "RangeStart", "Range Start" );
@@ -61,14 +61,6 @@ RimPlotAxisAnnotation::RimPlotAxisAnnotation()
m_color = cvf::Color3f( cvf::Color3f::BLACK );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimPlotAxisAnnotation::setName( const QString& name )
{
m_name = name;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -85,14 +77,6 @@ RimPlotAxisAnnotation::AnnotationType RimPlotAxisAnnotation::annotationType() co
return m_annotationType;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RimPlotAxisAnnotation::name() const
{
return m_name();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -165,22 +149,6 @@ RiaDefines::TextAlignment RimPlotAxisAnnotation::textAlignment() const
return m_textAlignment();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
caf::PdmFieldHandle* RimPlotAxisAnnotation::userDescriptionField()
{
return &m_name;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
caf::PdmFieldHandle* RimPlotAxisAnnotation::objectToggleField()
{
return &m_isActive;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -198,7 +166,7 @@ void RimPlotAxisAnnotation::fieldChangedByUi( const caf::PdmFieldHandle* changed
//--------------------------------------------------------------------------------------------------
void RimPlotAxisAnnotation::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
{
uiOrdering.add( &m_name );
uiOrdering.add( nameField() );
uiOrdering.add( &m_value );
uiOrdering.skipRemainingFields();
@@ -21,18 +21,19 @@
#include "RiaPlotDefines.h"
#include "cafPdmField.h"
#include "cafPdmObject.h"
#include "cafPdmPtrField.h"
#include "cvfColor3.h"
#include "RimCheckableNamedObject.h"
#include <QString>
//==================================================================================================
///
///
//==================================================================================================
class RimPlotAxisAnnotation : public caf::PdmObject
class RimPlotAxisAnnotation : public RimCheckableNamedObject
{
CAF_PDM_HEADER_INIT;
@@ -44,9 +45,6 @@ public:
};
RimPlotAxisAnnotation();
void setName( const QString& name );
QString name() const;
void setValue( double value );
virtual double value() const;
@@ -65,17 +63,12 @@ public:
double rangeStart() const;
double rangeEnd() const;
caf::PdmFieldHandle* userDescriptionField() override;
caf::PdmFieldHandle* objectToggleField() override;
void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
protected:
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
protected:
caf::PdmField<bool> m_isActive;
caf::PdmField<QString> m_name;
caf::PdmField<double> m_value;
caf::PdmField<double> m_rangeStart;
caf::PdmField<double> m_rangeEnd;
@@ -37,8 +37,9 @@ RimPolylinesAnnotation::RimPolylinesAnnotation()
{
CAF_PDM_InitObject( "PolylineAnnotation", ":/WellCollection.png" );
CAF_PDM_InitField( &m_isActive, "IsActive", true, "Is Active" );
m_isActive.uiCapability()->setUiHidden( true );
// Register keyword alias for backward compatibility (old keyword was "IsActive", base uses "IsChecked")
m_isChecked.registerKeywordAlias( "IsActive" );
m_isChecked.uiCapability()->setUiHidden( true );
CAF_PDM_InitField( &m_closePolyline, "ClosePolyline", false, "Close Polyline" );
CAF_PDM_InitField( &m_showLines, "ShowLines", true, "Show Lines" );
@@ -59,14 +60,6 @@ RimPolylinesAnnotation::~RimPolylinesAnnotation()
{
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimPolylinesAnnotation::isActive()
{
return m_isActive();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -74,7 +67,7 @@ bool RimPolylinesAnnotation::isVisible()
{
auto coll = firstAncestorOrThisOfType<RimAnnotationCollectionBase>();
return coll && coll->isActive() && m_isActive;
return coll && coll->isActive() && isChecked();
}
//--------------------------------------------------------------------------------------------------
@@ -108,11 +101,3 @@ RimPolylineAppearance* RimPolylinesAnnotation::appearance() const
{
return m_appearance;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
caf::PdmFieldHandle* RimPolylinesAnnotation::objectToggleField()
{
return &m_isActive;
}
@@ -19,7 +19,8 @@
#pragma once
#include "cafPdmChildField.h"
#include "cafPdmField.h"
#include "cafPdmObject.h"
#include "RimCheckableObject.h"
// Include to make Pdm work for cvf::Color
@@ -32,7 +33,7 @@ class RimPolylineAppearance;
///
///
//==================================================================================================
class RimPolylinesAnnotation : public caf::PdmObject
class RimPolylinesAnnotation : public RimCheckableObject
{
CAF_PDM_HEADER_INIT;
@@ -43,7 +44,6 @@ public:
virtual cvf::ref<RigPolyLinesData> polyLinesData() = 0;
virtual bool isEmpty() = 0;
bool isActive();
bool isVisible();
bool closePolyline() const;
@@ -53,11 +53,6 @@ public:
RimPolylineAppearance* appearance() const;
protected:
caf::PdmFieldHandle* objectToggleField() override;
protected:
caf::PdmField<bool> m_isActive;
caf::PdmField<bool> m_closePolyline;
caf::PdmField<bool> m_showLines;
caf::PdmField<bool> m_showSpheres;
@@ -30,10 +30,12 @@ RimTextAnnotationInView::RimTextAnnotationInView()
{
CAF_PDM_InitObject( "TextAnnotationInView", ":/TextAnnotation16x16.png" );
CAF_PDM_InitField( &m_isActive, "IsActive", true, "Is Active" );
// Register keyword alias for backward compatibility (old keyword was "IsActive", base uses "IsChecked")
m_isChecked.registerKeywordAlias( "IsActive" );
m_isChecked.uiCapability()->setUiHidden( true );
CAF_PDM_InitFieldNoDefault( &m_sourceAnnotation, "SourceAnnotation", "Source Annotation" );
m_isActive.uiCapability()->setUiHidden( true );
m_sourceAnnotation.uiCapability()->setUiHidden( true );
m_sourceAnnotation = nullptr;
}
@@ -46,18 +48,10 @@ RimTextAnnotationInView::RimTextAnnotationInView( RimTextAnnotation* sourceAnnot
{
CVF_ASSERT( sourceAnnotation );
m_isActive = sourceAnnotation->isActive();
setCheckState( sourceAnnotation->isActive() );
m_sourceAnnotation = sourceAnnotation;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimTextAnnotationInView::isActive() const
{
return m_isActive();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -93,7 +87,7 @@ bool RimTextAnnotationInView::isVisible() const
if ( globalColl ) visible = globalColl->isVisible();
}
}
if ( visible ) visible = m_isActive;
if ( visible ) visible = isChecked();
return visible;
}
@@ -102,7 +96,7 @@ bool RimTextAnnotationInView::isVisible() const
//--------------------------------------------------------------------------------------------------
void RimTextAnnotationInView::fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue )
{
if ( changedField == &m_isActive )
if ( changedField == objectToggleField() )
{
auto coll = firstAncestorOrThisOfType<RimAnnotationCollectionBase>();
@@ -110,14 +104,6 @@ void RimTextAnnotationInView::fieldChangedByUi( const caf::PdmFieldHandle* chang
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
caf::PdmFieldHandle* RimTextAnnotationInView::objectToggleField()
{
return &m_isActive;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -19,16 +19,17 @@
#pragma once
#include "cafPdmField.h"
#include "cafPdmObject.h"
#include "cafPdmPtrField.h"
#include "RimCheckableObject.h"
class RimTextAnnotation;
//==================================================================================================
///
///
//==================================================================================================
class RimTextAnnotationInView : public caf::PdmObject
class RimTextAnnotationInView : public RimCheckableObject
{
CAF_PDM_HEADER_INIT;
@@ -37,7 +38,6 @@ public:
RimTextAnnotationInView( RimTextAnnotation* sourceAnnotation );
~RimTextAnnotationInView() override {}
bool isActive() const;
void setSourceAnnotation( RimTextAnnotation* annotation );
RimTextAnnotation* sourceAnnotation() const;
@@ -45,10 +45,8 @@ public:
protected:
void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
caf::PdmFieldHandle* objectToggleField() override;
caf::PdmFieldHandle* userDescriptionField() override;
private:
caf::PdmField<bool> m_isActive;
caf::PdmPtrField<RimTextAnnotation*> m_sourceAnnotation;
};
@@ -93,7 +93,7 @@ void RimTimeAxisAnnotation::setTime( time_t time, const QString& dateTimeFormatS
QString formatString = dateTimeFormatString.isEmpty() ? internal::defaultDateTimeFormatString() : dateTimeFormatString;
m_name = RiaQDateTimeTools::toStringUsingApplicationLocale( RiaQDateTimeTools::fromTime_t( time ), formatString );
setName( RiaQDateTimeTools::toStringUsingApplicationLocale( RiaQDateTimeTools::fromTime_t( time ), formatString ) );
setAnnotationType( AnnotationType::LINE );
}
@@ -108,9 +108,9 @@ void RimTimeAxisAnnotation::setTimeRange( time_t startTime, time_t endTime, cons
QString formatString = dateTimeFormatString.isEmpty() ? internal::defaultDateTimeFormatString() : dateTimeFormatString;
m_name = QString( "%0 - %1" )
setName( QString( "%0 - %1" )
.arg( RiaQDateTimeTools::toStringUsingApplicationLocale( RiaQDateTimeTools::fromTime_t( startTime ), formatString ) )
.arg( RiaQDateTimeTools::toStringUsingApplicationLocale( RiaQDateTimeTools::fromTime_t( endTime ), formatString ) );
.arg( RiaQDateTimeTools::toStringUsingApplicationLocale( RiaQDateTimeTools::fromTime_t( endTime ), formatString ) ) );
setAnnotationType( AnnotationType::RANGE );
}
@@ -144,7 +144,7 @@ void RimTimeAxisAnnotation::setDefaultColor()
//--------------------------------------------------------------------------------------------------
void RimTimeAxisAnnotation::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
{
uiOrdering.add( &m_name );
uiOrdering.add( nameField() );
uiOrdering.add( &m_value );
uiOrdering.add( &m_rangeStart );
uiOrdering.add( &m_rangeEnd );
@@ -34,6 +34,7 @@
#include "RimCellFilter.h"
#include "RimCellFilterCollection.h"
#include "RimCellRangeFilter.h"
#include "RimCheckableNamedObject.h"
#include "RimEclipseCase.h"
#include "RimEclipseCellColors.h"
#include "RimEclipsePropertyFilterCollection.h"
@@ -62,12 +63,16 @@ RimViewController::RimViewController()
{
CAF_PDM_InitObject( "View Link" );
CAF_PDM_InitField( &m_isActive, "Active", true, "Active" );
m_isActive.uiCapability()->setUiHidden( true );
// Register keyword alias for backward compatibility (old keyword was "Active", base uses "IsChecked")
m_isChecked.registerKeywordAlias( "Active" );
m_isChecked.uiCapability()->setUiHidden( true );
// Set default name
QString defaultName = "View Config: Empty view";
CAF_PDM_InitField( &m_name, "Name", defaultName, "Managed View Name" );
m_name.uiCapability()->setUiHidden( true );
setName( defaultName );
// Set UI properties for inherited fields
nameField()->uiCapability()->setUiHidden( true );
CAF_PDM_InitFieldNoDefault( &m_managedView, "ManagedView", "Linked View" );
m_managedView.uiCapability()->setUiTreeChildrenHidden( true );
@@ -149,9 +154,9 @@ void RimViewController::defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrde
//--------------------------------------------------------------------------------------------------
void RimViewController::fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue )
{
if ( changedField == &m_isActive )
if ( changedField == objectToggleField() )
{
if ( !m_isActive )
if ( !isChecked() )
{
applyCellFilterCollectionByUserChoice();
}
@@ -220,7 +225,7 @@ void RimViewController::fieldChangedByUi( const caf::PdmFieldHandle* changedFiel
setManagedView( m_managedView() );
m_name.uiCapability()->updateConnectedEditors();
nameField()->uiCapability()->updateConnectedEditors();
}
}
@@ -473,8 +478,10 @@ void RimViewController::defineUiOrdering( QString uiConfigName, caf::PdmUiOrderi
void RimViewController::updateDisplayNameAndIcon()
{
caf::IconProvider iconProvider;
RimViewLinker::findNameAndIconFromView( &m_name.v(), &iconProvider, managedView() );
iconProvider.setActive( m_isActive() );
QString nameValue = name();
RimViewLinker::findNameAndIconFromView( &nameValue, &iconProvider, managedView() );
setName( nameValue );
iconProvider.setActive( isChecked() );
setUiIcon( iconProvider );
}
@@ -748,7 +755,7 @@ void RimViewController::scheduleGeometryRegenForDepViews( RivCellSetEnum geometr
//--------------------------------------------------------------------------------------------------
bool RimViewController::isActive() const
{
return ownerViewLinker()->isActive() && m_isActive();
return ownerViewLinker()->isActive() && isChecked();
}
//--------------------------------------------------------------------------------------------------
@@ -756,7 +763,7 @@ bool RimViewController::isActive() const
//--------------------------------------------------------------------------------------------------
bool RimViewController::isCameraLinked() const
{
if ( ownerViewLinker()->isActive() && m_isActive() )
if ( ownerViewLinker()->isActive() && isChecked() )
{
return m_syncCamera;
}
@@ -777,7 +784,7 @@ bool RimViewController::showCursor() const
//--------------------------------------------------------------------------------------------------
bool RimViewController::isTimeStepLinked() const
{
if ( ownerViewLinker()->isActive() && m_isActive() )
if ( ownerViewLinker()->isActive() && isChecked() )
{
return m_syncTimeStep;
}
@@ -790,7 +797,7 @@ bool RimViewController::isTimeStepLinked() const
//--------------------------------------------------------------------------------------------------
bool RimViewController::isResultColorControlled() const
{
if ( ownerViewLinker()->isActive() && m_isActive() )
if ( ownerViewLinker()->isActive() && isChecked() )
{
return m_syncCellResult;
}
@@ -803,7 +810,7 @@ bool RimViewController::isResultColorControlled() const
//--------------------------------------------------------------------------------------------------
bool RimViewController::isLegendDefinitionsControlled() const
{
if ( ownerViewLinker()->isActive() && m_isActive() )
if ( ownerViewLinker()->isActive() && isChecked() )
{
return m_syncLegendDefinitions;
}
@@ -887,7 +894,7 @@ bool RimViewController::isPropertyFilterControlAdvisable() const
//--------------------------------------------------------------------------------------------------
bool RimViewController::isCellFiltersControlled() const
{
if ( ownerViewLinker() && ownerViewLinker()->isActive() && m_isActive() )
if ( ownerViewLinker() && ownerViewLinker()->isActive() && isChecked() )
{
return m_syncCellFilters;
}
@@ -932,7 +939,7 @@ bool RimViewController::isPropertyFilterOveridden() const
{
if ( !isPropertyFilterControlPossible() ) return false;
if ( ownerViewLinker()->isActive() && m_isActive() )
if ( ownerViewLinker()->isActive() && isChecked() )
{
return m_syncPropertyFilters;
}
@@ -21,11 +21,11 @@
#include "cafIconProvider.h"
#include "cafPdmField.h"
#include "cafPdmObject.h"
#include "cafPdmPtrField.h"
#include "cvfObject.h"
#include "RimCheckableNamedObject.h"
#include "RivCellSetEnum.h"
class RimGridView;
@@ -41,7 +41,7 @@ class RimPropertyFilter;
///
///
//==================================================================================================
class RimViewController : public caf::PdmObject
class RimViewController : public RimCheckableNamedObject
{
CAF_PDM_HEADER_INIT;
@@ -89,9 +89,6 @@ protected: // Pdm overridden methods
void defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "" ) override;
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
caf::PdmFieldHandle* userDescriptionField() override { return &m_name; }
caf::PdmFieldHandle* objectToggleField() override { return &m_isActive; }
private:
void updateCameraLink();
void updateTimeStepLink();
@@ -112,10 +109,8 @@ private:
static bool askUserToRestoreOriginalCellFilterCollection( const QString& viewName );
private:
caf::PdmField<QString> m_name;
caf::PdmPtrField<Rim3dView*> m_managedView;
caf::PdmField<bool> m_isActive;
caf::PdmField<bool> m_syncCamera;
caf::PdmField<bool> m_showCursor;
caf::PdmField<bool> m_syncTimeStep;
@@ -58,8 +58,9 @@ RimViewLinker::RimViewLinker()
{
CAF_PDM_InitObject( "Linked Views" );
CAF_PDM_InitField( &m_name, "Name", QString( "View Group Name" ), "View Group Name" );
m_name.uiCapability()->setUiHidden( true );
// Set default name
setName( "View Group Name" );
nameField()->uiCapability()->setUiHidden( true );
CAF_PDM_InitFieldNoDefault( &m_masterView, "MainView", "Main View" );
m_masterView.uiCapability()->setUiTreeChildrenHidden( true );
@@ -455,7 +456,7 @@ void RimViewLinker::updateUiNameAndIcon()
QString name;
RimViewLinker::findNameAndIconFromView( &name, &iconProvider, m_masterView );
name += " (Primary)";
m_name.v() = name;
setName( name );
if ( m_masterView ) m_masterView->updateAutoName();
@@ -23,11 +23,12 @@
#include "cafPdmChildArrayField.h"
#include "cafPdmField.h"
#include "cafPdmObject.h"
#include "cafPdmPtrField.h"
#include "cvfVector3.h"
#include "RimNamedObject.h"
namespace caf
{
class IconProvider;
@@ -48,7 +49,7 @@ class RimPropertyFilter;
///
///
//==================================================================================================
class RimViewLinker : public caf::PdmObject
class RimViewLinker : public RimNamedObject
{
CAF_PDM_HEADER_INIT;
@@ -95,8 +96,6 @@ public:
void updateCursorPosition( const Rim3dView* sourceView, const cvf::Vec3d& domainCoord );
protected:
caf::PdmFieldHandle* userDescriptionField() override { return &m_name; }
void initAfterRead() override;
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override;
@@ -113,5 +112,4 @@ private:
private:
caf::PdmChildArrayField<RimViewController*> m_viewControllers;
caf::PdmPtrField<Rim3dView*> m_masterView;
caf::PdmField<QString> m_name;
};