Refactors font size handling using RimFontSizeField

Replaces direct PdmField usage for font sizes with the new
RimFontSizeField. This provides a consistent way to manage font
size options across different plot types.

The RimFontSizeField encapsulates the logic for generating font size
options based on the default plot font size from preferences. This
removes redundant code in various plot classes and ensures that font
size settings are synchronized with user preferences.
This commit is contained in:
Magne Sjaastad committed 2025-08-25 12:43:36 +02:00
1 parent dc2816a91c
commit 546edadf35
27 files changed
+154 -105

No files matched your search

@@ -686,10 +686,6 @@ QList<caf::PdmOptionItemInfo> RimAnalysisPlot::calculateValueOptions( const caf:
options.push_back( { displayName, sumCase } );
}
}
else if ( fieldNeedingOptions == &m_barTextFontSize )
{
options = caf::FontTools::relativeSizeValueOptions( RiaPreferences::current()->defaultPlotFontSize() );
}
return options;
}
@@ -206,13 +206,13 @@ private:
caf::PdmField<SortGroupAppEnum> m_sortGroupForColors;
caf::PdmField<bool> m_useBarText;
caf::PdmField<bool> m_useCaseInBarText;
caf::PdmField<bool> m_useEnsembleInBarText;
caf::PdmField<bool> m_useSummaryItemInBarText;
caf::PdmField<bool> m_useTimeStepInBarText;
caf::PdmField<bool> m_useVectorNameInBarText;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_barTextFontSize;
caf::PdmField<bool> m_useBarText;
caf::PdmField<bool> m_useCaseInBarText;
caf::PdmField<bool> m_useEnsembleInBarText;
caf::PdmField<bool> m_useSummaryItemInBarText;
caf::PdmField<bool> m_useTimeStepInBarText;
caf::PdmField<bool> m_useVectorNameInBarText;
RimFontSizeField m_barTextFontSize;
caf::PdmChildField<RimPlotAxisProperties*> m_valueAxisProperties;
caf::PdmChildField<RimPlotDataFilterCollection*> m_plotDataFilterCollection;
@@ -18,6 +18,7 @@
#pragma once
#include "Appearance/RimFontSizeField.h"
#include "RiaFontCache.h"
#include "RimAnnotationCollectionBase.h"
@@ -72,7 +73,7 @@ private:
caf::PdmField<double> m_annotationPlaneDepth;
caf::PdmField<bool> m_snapAnnotations;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_annotationFontSize;
RimFontSizeField m_annotationFontSize;
caf::PdmChildField<RimAnnotationGroupCollection*> m_globalTextAnnotations;
caf::PdmChildField<RimAnnotationGroupCollection*> m_globalReachCircleAnnotations;
};
@@ -1,11 +1,13 @@
set(SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RimCurveSetAppearance.h
${CMAKE_CURRENT_LIST_DIR}/RimCurveAppearanceDefines.h
${CMAKE_CURRENT_LIST_DIR}/RimFontSizeField.h
)
set(SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RimCurveSetAppearance.cpp
${CMAKE_CURRENT_LIST_DIR}/RimCurveAppearanceDefines.cpp
${CMAKE_CURRENT_LIST_DIR}/RimFontSizeField.cpp
)
list(APPEND CODE_HEADER_FILES ${SOURCE_GROUP_HEADER_FILES})
@@ -0,0 +1,47 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2025- Equinor ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#include "RimFontSizeField.h"
#include "RiaPreferences.h"
#include "cafAppEnum.h"
#include "cafPdmUiFieldHandle.h"
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimFontSizeField::configureCapabilities()
{
if ( auto uiFieldHandle = uiCapability() )
{
auto callback = []() -> QList<caf::PdmOptionItemInfo>
{ return caf::FontTools::relativeSizeValueOptions( RiaPreferences::current()->defaultPlotFontSize() ); };
uiFieldHandle->setValueOptionsGenerator( callback );
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimFontSizeField& RimFontSizeField::operator=( const caf::FontTools::RelativeSize& value )
{
setValue( value );
return *this;
}
@@ -0,0 +1,51 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2025- Equinor ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "cafFontTools.h"
#include "cafPdmField.h"
#include "cafPdmFieldScriptingCapability.h"
//==================================================================================================
///
///
//==================================================================================================
class RimFontSizeField : public caf::PdmField<caf::FontTools::RelativeSizeEnum>
{
public:
void configureCapabilities() override;
RimFontSizeField& operator=( const caf::FontTools::RelativeSize& value );
};
namespace caf
{
template <>
class PdmFieldScriptingCapability<RimFontSizeField> : public PdmFieldScriptingCapability<PdmField<caf::FontTools::RelativeSizeEnum>>
{
public:
PdmFieldScriptingCapability( RimFontSizeField* field, const QString& fieldName, bool giveOwnership )
: PdmFieldScriptingCapability<PdmField<caf::FontTools::RelativeSizeEnum>>( field, fieldName, giveOwnership )
{
}
QString dataType() const override { return "str"; }
};
}; // namespace caf
@@ -297,11 +297,6 @@ QList<caf::PdmOptionItemInfo> RimAbstractCorrelationPlot::calculateValueOptions(
}
}
}
else if ( fieldNeedingOptions == &m_labelFontSize || fieldNeedingOptions == &m_axisTitleFontSize ||
fieldNeedingOptions == &m_axisValueFontSize )
{
options = caf::FontTools::relativeSizeValueOptions( RiaPreferences::current()->defaultPlotFontSize() );
}
else if ( fieldNeedingOptions == &m_curveSetForFiltering )
{
RimSummaryEnsemble* ensemble = nullptr;
@@ -148,9 +148,9 @@ protected:
caf::PdmField<bool> m_useAutoPlotTitle;
caf::PdmField<QString> m_description;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_labelFontSize;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_axisTitleFontSize;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_axisValueFontSize;
RimFontSizeField m_labelFontSize;
RimFontSizeField m_axisTitleFontSize;
RimFontSizeField m_axisValueFontSize;
private:
caf::PdmChildArrayField<RimAnalysisPlotDataEntry*> m_dataSources;
@@ -410,21 +410,6 @@ void RimCorrelationReportPlot::doUpdateLayout()
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QList<caf::PdmOptionItemInfo> RimCorrelationReportPlot::calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions )
{
QList<caf::PdmOptionItemInfo> options = RimPlotWindow::calculateValueOptions( fieldNeedingOptions );
if ( fieldNeedingOptions == &m_subTitleFontSize || fieldNeedingOptions == &m_labelFontSize ||
fieldNeedingOptions == &m_axisTitleFontSize || fieldNeedingOptions == &m_axisValueFontSize )
{
options = caf::FontTools::relativeSizeValueOptions( RiaPreferences::current()->defaultPlotFontSize() );
}
return options;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -75,7 +75,6 @@ private:
void childFieldChangedByUi( const caf::PdmFieldHandle* changedChildField ) override;
void doUpdateLayout() override;
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override;
void onDataSelection( const caf::SignalEmitter* emitter, std::pair<QString, RiaSummaryCurveDefinition> parameterAndCurveDef );
private:
@@ -84,10 +83,10 @@ private:
caf::PdmChildField<RimCorrelationMatrixPlot*> m_correlationMatrixPlot;
caf::PdmChildField<RimCorrelationPlot*> m_correlationPlot;
caf::PdmChildField<RimParameterResultCrossPlot*> m_parameterResultCrossPlot;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_subTitleFontSize;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_labelFontSize;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_axisTitleFontSize;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_axisValueFontSize;
RimFontSizeField m_subTitleFontSize;
RimFontSizeField m_labelFontSize;
RimFontSizeField m_axisTitleFontSize;
RimFontSizeField m_axisValueFontSize;
QPointer<RiuMultiPlotPage> m_viewer;
};
@@ -739,10 +739,6 @@ QList<caf::PdmOptionItemInfo> RimWellAllocationOverTimePlot::calculateValueOptio
options.push_back( caf::PdmOptionItemInfo( timeStep.toString( dateFormatStr ), timeStep ) );
}
}
else if ( fieldNeedingOptions == &m_axisTitleFontSize || fieldNeedingOptions == &m_axisValueFontSize )
{
options = caf::FontTools::relativeSizeValueOptions( RiaPreferences::current()->defaultPlotFontSize() );
}
return options;
}
@@ -138,9 +138,9 @@ private:
caf::PdmField<bool> m_groupSmallContributions;
caf::PdmField<double> m_smallContributionsThreshold;
QPointer<RiuQwtPlotWidget> m_plotWidget;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_axisTitleFontSize;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_axisValueFontSize;
QPointer<RiuQwtPlotWidget> m_plotWidget;
RimFontSizeField m_axisTitleFontSize;
RimFontSizeField m_axisValueFontSize;
const int m_initialNumberOfTimeSteps = 10;
};
@@ -754,11 +754,7 @@ QList<caf::PdmOptionItemInfo> RimWellConnectivityTable::calculateValueOptions( c
const bool isInjector = false;
options = RimFlowDiagnosticsTools::calcOptionsForSelectedTracerField( m_flowDiagSolution(), isInjector );
}
else if ( fieldNeedingOptions == &m_axisTitleFontSize || fieldNeedingOptions == &m_axisLabelFontSize ||
fieldNeedingOptions == &m_valueLabelFontSize )
{
options = caf::FontTools::relativeSizeValueOptions( RiaPreferences::current()->defaultPlotFontSize() );
}
return options;
}
@@ -197,10 +197,10 @@ private:
caf::PdmField<RimRegularLegendConfig::MappingEnum> m_mappingType;
caf::PdmField<caf::AppEnum<RangeType>> m_rangeType;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_axisTitleFontSize;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_axisLabelFontSize;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_valueLabelFontSize;
caf::PdmField<bool> m_showValueLabels;
RimFontSizeField m_axisTitleFontSize;
RimFontSizeField m_axisLabelFontSize;
RimFontSizeField m_valueLabelFontSize;
caf::PdmField<bool> m_showValueLabels;
const int m_initialNumberOfTimeSteps = 10;
};
@@ -1517,6 +1517,7 @@ QList<caf::PdmOptionItemInfo> Rim3dView::calculateValueOptions( const caf::PdmFi
}
else if ( fieldNeedingOptions == &m_fontSize )
{
// Not possible to use RimFontSizeField, as the values are computed based on defaultSceneFontSize()
options = caf::FontTools::relativeSizeValueOptions( RiaPreferences::current()->defaultSceneFontSize() );
}
else if ( fieldNeedingOptions == &m_scaleZ )
@@ -1169,11 +1169,6 @@ QList<caf::PdmOptionItemInfo> RimDepthTrackPlot::calculateValueOptions( const ca
options.push_back( caf::PdmOptionItemInfo( UnitAppEnum::uiText( depthUnit ), depthUnit ) );
}
}
else if ( fieldNeedingOptions == &m_subTitleFontSize || fieldNeedingOptions == &m_axisTitleFontSize ||
fieldNeedingOptions == &m_axisValueFontSize )
{
options = caf::FontTools::relativeSizeValueOptions( RiaPreferences::current()->defaultPlotFontSize() );
}
else if ( fieldNeedingOptions == &m_ensembleCurveSet )
{
RiaOptionItemFactory::appendOptionItemsForEnsembleCurveSets( &options );
@@ -236,9 +236,9 @@ private:
caf::PdmField<double> m_autoZoomMaxDepthFactor;
caf::PdmChildArrayField<RimPlotAxisAnnotation*> m_depthAnnotations;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_subTitleFontSize;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_axisTitleFontSize;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_axisValueFontSize;
RimFontSizeField m_subTitleFontSize;
RimFontSizeField m_axisTitleFontSize;
RimFontSizeField m_axisValueFontSize;
caf::PdmChildArrayField<RimWellLogTrack*> m_plots;
@@ -777,11 +777,6 @@ QList<caf::PdmOptionItemInfo> RimMultiPlot::calculateValueOptions( const caf::Pd
caf::PdmOptionItemInfo( RowCountEnum::uiText( enumVal ), enumVal, false, caf::IconProvider( iconPath, QSize( 24, 16 ) ) ) );
}
}
else if ( fieldNeedingOptions == &m_subTitleFontSize || fieldNeedingOptions == &m_axisTitleFontSize ||
fieldNeedingOptions == &m_axisValueFontSize )
{
return caf::FontTools::relativeSizeValueOptions( RiaPreferences::current()->defaultPlotFontSize() );
}
return options;
}
@@ -153,16 +153,16 @@ private:
static void setTickmarkCount( RimPlot* plot, RimPlotAxisPropertiesInterface::LegendTickmarkCountEnum tickmarkCount );
protected:
caf::PdmField<QString> m_projectFileVersionString;
caf::PdmField<bool> m_showPlotWindowTitle;
caf::PdmField<QString> m_plotWindowTitle;
caf::PdmField<ColumnCountEnum> m_columnCount;
caf::PdmField<RowCountEnum> m_rowsPerPage;
caf::PdmField<bool> m_showIndividualPlotTitles;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_subTitleFontSize;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_axisTitleFontSize;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_axisValueFontSize;
caf::PdmField<bool> m_pagePreviewMode;
caf::PdmField<QString> m_projectFileVersionString;
caf::PdmField<bool> m_showPlotWindowTitle;
caf::PdmField<QString> m_plotWindowTitle;
caf::PdmField<ColumnCountEnum> m_columnCount;
caf::PdmField<RowCountEnum> m_rowsPerPage;
caf::PdmField<bool> m_showIndividualPlotTitles;
RimFontSizeField m_subTitleFontSize;
RimFontSizeField m_axisTitleFontSize;
RimFontSizeField m_axisValueFontSize;
caf::PdmField<bool> m_pagePreviewMode;
caf::PdmField<RimPlotAxisPropertiesInterface::LegendTickmarkCountEnum> m_majorTickmarkCount;
@@ -211,10 +211,6 @@ QList<caf::PdmOptionItemInfo> RimPlotAxisProperties::calculateValueOptions( cons
options.push_back( caf::PdmOptionItemInfo( uiText, value ) );
}
}
else if ( fieldNeedingOptions == &m_titleFontSize || fieldNeedingOptions == &m_valuesFontSize )
{
options = caf::FontTools::relativeSizeValueOptions( RiaPreferences::current()->defaultPlotFontSize() );
}
return options;
}
@@ -19,6 +19,7 @@
#pragma once
#include "Appearance/RimFontSizeField.h"
#include "RimPlotAxisPropertiesInterface.h"
#include "RiuPlotAxis.h"
@@ -186,8 +187,8 @@ private:
bool m_isRangeSettingsEnabled;
bool m_isAlwaysRequired;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_titleFontSize;
RimFontSizeField m_titleFontSize;
caf::PdmField<caf::AppEnum<AxisTitlePositionType>> m_titlePositionEnum;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_valuesFontSize;
RimFontSizeField m_valuesFontSize;
caf::PdmChildArrayField<RimPlotAxisAnnotation*> m_annotations;
};
@@ -335,10 +335,6 @@ QList<caf::PdmOptionItemInfo> RimPlotWindow::calculateValueOptions( const caf::P
options.push_back( caf::PdmOptionItemInfo( "Vertical", QVariant::fromValue( false ) ) );
options.push_back( caf::PdmOptionItemInfo( "Horizontal", QVariant::fromValue( true ) ) );
}
else if ( fieldNeedingOptions == &m_titleFontSize || fieldNeedingOptions == &m_legendFontSize )
{
options = caf::FontTools::relativeSizeValueOptions( RiaPreferences::current()->defaultPlotFontSize() );
}
return options;
}
@@ -17,6 +17,7 @@
/////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "Appearance/RimFontSizeField.h"
#include "RimNameConfig.h"
#include "RimViewWindow.h"
@@ -122,8 +123,8 @@ protected:
caf::PdmField<bool> m_legendItemsClickable;
caf::PdmField<caf::AppEnum<LegendPosition>> m_legendPosition;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_titleFontSize;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_legendFontSize;
RimFontSizeField m_titleFontSize;
RimFontSizeField m_legendFontSize;
private:
int m_bottomMargin;
@@ -424,11 +424,6 @@ QList<caf::PdmOptionItemInfo> RimSummaryTable::calculateValueOptions( const caf:
options.push_back( caf::PdmOptionItemInfo( vectorName, vectorName ) );
}
}
else if ( fieldNeedingOptions == &m_axisTitleFontSize || fieldNeedingOptions == &m_axisLabelFontSize ||
fieldNeedingOptions == &m_valueLabelFontSize )
{
options = caf::FontTools::relativeSizeValueOptions( RiaPreferences::current()->defaultPlotFontSize() );
}
return options;
}
@@ -127,11 +127,11 @@ private:
caf::PdmChildField<RimRegularLegendConfig*> m_legendConfig;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_axisTitleFontSize;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_axisLabelFontSize;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_valueLabelFontSize;
caf::PdmField<bool> m_showValueLabels;
caf::PdmField<int> m_maxTimeLabelCount;
RimFontSizeField m_axisTitleFontSize;
RimFontSizeField m_axisLabelFontSize;
RimFontSizeField m_valueLabelFontSize;
caf::PdmField<bool> m_showValueLabels;
caf::PdmField<int> m_maxTimeLabelCount;
caf::PdmField<RimRegularLegendConfig::MappingEnum> m_mappingType;
caf::PdmField<caf::AppEnum<RangeType>> m_rangeType;
@@ -20,6 +20,7 @@
#include "RiaDateTimeDefines.h"
#include "Appearance/RimFontSizeField.h"
#include "RimPlotAxisPropertiesInterface.h"
#include "RimTimeAxisAnnotation.h"
@@ -176,8 +177,8 @@ private:
caf::PdmField<double> m_visibleTimeSinceStartRangeMax;
caf::PdmField<bool> m_isAutoZoom;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_titleFontSize;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_valuesFontSize;
RimFontSizeField m_titleFontSize;
RimFontSizeField m_valuesFontSize;
caf::PdmField<caf::AppEnum<AxisTitlePositionType>> m_titlePositionEnum;
caf::PdmField<bool> m_automaticDateComponents;
@@ -332,14 +332,14 @@ private:
caf::PdmField<double> m_visibleDepthRangeMin;
caf::PdmField<double> m_visibleDepthRangeMax;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_axisFontSize;
RimFontSizeField m_axisFontSize;
caf::PdmField<RegionAnnotationTypeEnum> m_regionAnnotationType;
caf::PdmField<RegionAnnotationDisplayEnum> m_regionAnnotationDisplay;
caf::PdmPtrField<RimColorLegend*> m_colorShadingLegend;
caf::PdmField<int> m_colorShadingTransparency;
caf::PdmField<bool> m_showRegionLabels;
caf::PdmField<caf::FontTools::RelativeSizeEnum> m_regionLabelFontSize;
RimFontSizeField m_regionLabelFontSize;
caf::PdmField<caf::AppEnum<FormationSource>> m_formationSource;
caf::PdmPtrField<RimCase*> m_formationCase;
caf::PdmField<caf::AppEnum<TrajectoryType>> m_formationTrajectoryType;