#4255 Read default plot font sizes from preferences and apply

This commit is contained in:
Gaute Lindkvist
2019-04-10 16:13:40 +02:00
parent 798e3ff19e
commit 9d06b59357
35 changed files with 679 additions and 202 deletions

View File

@@ -127,12 +127,12 @@ void RimSummaryPlotYAxisFormatter::applyYAxisPropertiesToPlot(RiuSummaryQwtPlot*
QFont axisTitleYFont = axisTitleY.font();
axisTitleYFont.setBold(true);
axisTitleYFont.setPixelSize(m_axisProperties->titleFontSize);
axisTitleYFont.setPointSize(m_axisProperties->titleFontSize());
axisTitleY.setFont(axisTitleYFont);
axisTitleY.setText(axisTitle);
switch (m_axisProperties->titlePositionEnum())
switch (m_axisProperties->titlePosition())
{
case RimPlotAxisProperties::AXIS_TITLE_CENTER:
axisTitleY.setRenderFlags(Qt::AlignCenter);
@@ -148,7 +148,7 @@ void RimSummaryPlotYAxisFormatter::applyYAxisPropertiesToPlot(RiuSummaryQwtPlot*
{
QFont yAxisFont = qwtPlot->axisFont(m_axisProperties->qwtPlotAxisType());
yAxisFont.setBold(false);
yAxisFont.setPixelSize(m_axisProperties->valuesFontSize);
yAxisFont.setPointSize(m_axisProperties->valuesFontSize());
qwtPlot->setAxisFont(m_axisProperties->qwtPlotAxisType(), yAxisFont);
}

View File

@@ -539,6 +539,61 @@ size_t RimSummaryPlot::singleColorCurveCount() const
return colorIndex;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimSummaryPlot::hasCustomFontSizes(RiaDefines::FontSettingType fontSettingType, int defaultFontSize) const
{
if (fontSettingType != RiaDefines::PLOT_FONT) return false;
for (auto plotAxis : allPlotAxes())
{
if (plotAxis->titleFontSize() != defaultFontSize || plotAxis->valuesFontSize() != defaultFontSize)
{
return true;
}
}
if (m_legendFontSize() != defaultFontSize)
{
return true;
}
return false;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimSummaryPlot::applyFontSize(RiaDefines::FontSettingType fontSettingType, int oldFontSize, int fontSize, bool forceChange /*= false*/)
{
if (fontSettingType != RiaDefines::PLOT_FONT) return false;
bool anyChange = false;
for (auto plotAxis : allPlotAxes())
{
if (forceChange || plotAxis->titleFontSize() == oldFontSize)
{
plotAxis->setTitleFontSize(fontSize);
anyChange = true;
}
if (forceChange || plotAxis->valuesFontSize() == oldFontSize)
{
plotAxis->setValuesFontSize(fontSize);
anyChange = true;
}
}
if (forceChange || m_legendFontSize() == oldFontSize)
{
m_legendFontSize = fontSize;
anyChange = true;
}
if (anyChange) loadDataAndUpdate();
return anyChange;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -847,12 +902,12 @@ void RimSummaryPlot::updateTimeAxis()
QFont font = timeAxisTitle.font();
font.setBold(true);
font.setPixelSize(m_timeAxisProperties->titleFontSize);
font.setPointSize(m_timeAxisProperties->titleFontSize());
timeAxisTitle.setFont(font);
timeAxisTitle.setText(axisTitle);
switch ( m_timeAxisProperties->titlePositionEnum() )
switch ( m_timeAxisProperties->titlePosition() )
{
case RimSummaryTimeAxisProperties::AXIS_TITLE_CENTER:
timeAxisTitle.setRenderFlags(Qt::AlignCenter);
@@ -868,7 +923,7 @@ void RimSummaryPlot::updateTimeAxis()
{
QFont timeAxisFont = m_qwtPlot->axisFont(QwtPlot::xBottom);
timeAxisFont.setBold(false);
timeAxisFont.setPixelSize(m_timeAxisProperties->valuesFontSize);
timeAxisFont.setPointSize(m_timeAxisProperties->valuesFontSize());
m_qwtPlot->setAxisFont(QwtPlot::xBottom, timeAxisFont);
}
}
@@ -1337,6 +1392,14 @@ void RimSummaryPlot::updateAxisRangesFromQwt()
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::set<RimPlotAxisPropertiesInterface*> RimSummaryPlot::allPlotAxes() const
{
return { m_timeAxisProperties, m_bottomAxisProperties, m_leftYAxisProperties, m_rightYAxisProperties };
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -1518,7 +1581,7 @@ void RimSummaryPlot::updateMdiWindowTitle()
QwtLegend* legend = new QwtLegend(m_qwtPlot);
auto font = legend->font();
font.setPixelSize(m_legendFontSize());
font.setPointSize(m_legendFontSize());
legend->setFont(font);
m_qwtPlot->insertLegend(legend, QwtPlot::BottomLegend);
}

View File

@@ -45,6 +45,7 @@ class RimEnsembleCurveSet;
class RimEnsembleCurveSetCollection;
class RimSummaryCurveFilter_OBSOLETE;
class RimSummaryTimeAxisProperties;
class RimPlotAxisPropertiesInterface;
class RimPlotAxisProperties;
class RiuSummaryQwtPlot;
class RimSummaryPlotNameHelper;
@@ -132,6 +133,10 @@ public:
size_t singleColorCurveCount() const;
bool hasCustomFontSizes(RiaDefines::FontSettingType fontSettingType, int defaultFontSize) const override;
bool applyFontSize(RiaDefines::FontSettingType fontSettingType, int oldFontSize, int fontSize, bool forceChange = false) override;
public:
// Rim2dPlotInterface overrides
void updateAxisScaling() override;
@@ -171,7 +176,7 @@ private:
std::vector<RimAsciiDataCurve*> visibleAsciiDataCurvesForAxis(RiaDefines::PlotAxis plotAxis) const;
bool hasVisibleCurvesForAxis(RiaDefines::PlotAxis plotAxis) const;
RimPlotAxisProperties* yAxisPropertiesLeftOrRight(RiaDefines::PlotAxis leftOrRightPlotAxis) const;
RimPlotAxisProperties* yAxisPropertiesLeftOrRight(RiaDefines::PlotAxis leftOrRightPlotAxis) const;
void updateAxis(RiaDefines::PlotAxis plotAxis);
void updateZoomForAxis(RiaDefines::PlotAxis plotAxis);
@@ -181,6 +186,8 @@ private:
void updateAxisRangesFromQwt();
std::set<RimPlotAxisPropertiesInterface*> allPlotAxes() const;
private:
caf::PdmField<bool> m_showPlotTitle;
caf::PdmField<bool> m_showLegend;

View File

@@ -18,6 +18,10 @@
#include "RimSummaryTimeAxisProperties.h"
#include "RiaApplication.h"
#include "RiaFontCache.h"
#include "RiaPreferences.h"
#include "RimSummaryPlot.h"
#include "cafPdmUiLineEditor.h"
@@ -28,15 +32,6 @@
namespace caf
{
template<>
void caf::AppEnum< RimSummaryTimeAxisProperties::AxisTitlePositionType >::setUp()
{
addItem(RimSummaryTimeAxisProperties::AXIS_TITLE_CENTER, "AXIS_TITLE_CENTER", "Center");
addItem(RimSummaryTimeAxisProperties::AXIS_TITLE_END, "AXIS_TITLE_END", "At End");
setDefault(RimSummaryTimeAxisProperties::AXIS_TITLE_CENTER);
}
template<>
void caf::AppEnum< RimSummaryTimeAxisProperties::TimeModeType >::setUp()
{
@@ -77,10 +72,6 @@ RimSummaryTimeAxisProperties::RimSummaryTimeAxisProperties()
CAF_PDM_InitField(&showTitle, "ShowTitle", false, "Show Title", "", "", "");
CAF_PDM_InitField(&title, "Title", QString("Time"), "Title", "", "", "");
CAF_PDM_InitFieldNoDefault(&titlePositionEnum, "TitlePosition", "Title Position", "", "", "");
CAF_PDM_InitField(&titleFontSize, "FontSize", 11, "Font Size", "", "", "");
CAF_PDM_InitField(&valuesFontSize, "ValuesFontSize", 11, "Font Size", "", "", "");
CAF_PDM_InitField(&m_isAutoZoom, "AutoZoom", true, "Set Range Automatically", "", "", "");
CAF_PDM_InitFieldNoDefault(&m_timeMode, "TimeMode", "Time Mode", "", "", "");
@@ -98,6 +89,52 @@ RimSummaryTimeAxisProperties::RimSummaryTimeAxisProperties()
CAF_PDM_InitFieldNoDefault(&m_visibleTimeRangeMin, "VisibleTimeModeRangeMin", "Min", "", "", "");
m_visibleDateRangeMin.uiCapability()->setUiEditorTypeName(caf::PdmUiLineEditor::uiEditorTypeName());
CAF_PDM_InitFieldNoDefault(&m_titlePositionEnum, "TitlePosition", "Title Position", "", "", "");
CAF_PDM_InitField(&m_titleFontSize, "FontSize", 10, "Font Size", "", "", "");
m_titleFontSize = RiaFontCache::pointSizeFromFontSizeEnum(RiaApplication::instance()->preferences()->defaultPlotFontSize());
CAF_PDM_InitField(&m_valuesFontSize, "ValuesFontSize", 10, "Font Size", "", "", "");
m_valuesFontSize = RiaFontCache::pointSizeFromFontSizeEnum(RiaApplication::instance()->preferences()->defaultPlotFontSize());
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimPlotAxisPropertiesInterface::AxisTitlePositionType RimSummaryTimeAxisProperties::titlePosition() const
{
return m_titlePositionEnum();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
int RimSummaryTimeAxisProperties::titleFontSize() const
{
return m_titleFontSize;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryTimeAxisProperties::setTitleFontSize(int fontSize)
{
m_titleFontSize = fontSize;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
int RimSummaryTimeAxisProperties::valuesFontSize() const
{
return m_valuesFontSize;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryTimeAxisProperties::setValuesFontSize(int fontSize)
{
m_valuesFontSize = fontSize;
}
//--------------------------------------------------------------------------------------------------
@@ -240,8 +277,8 @@ QList<caf::PdmOptionItemInfo> RimSummaryTimeAxisProperties::calculateValueOption
QList<caf::PdmOptionItemInfo> options;
*useOptionsOnly = true;
if (&titleFontSize == fieldNeedingOptions ||
&valuesFontSize == fieldNeedingOptions)
if (&m_titleFontSize == fieldNeedingOptions ||
&m_valuesFontSize == fieldNeedingOptions)
{
std::vector<int> fontSizes;
fontSizes.push_back(8);
@@ -272,6 +309,22 @@ caf::PdmFieldHandle* RimSummaryTimeAxisProperties::objectToggleField()
return &m_isActive;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimSummaryTimeAxisProperties::TimeModeType RimSummaryTimeAxisProperties::timeMode() const
{
return m_timeMode();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryTimeAxisProperties::setTimeMode(TimeModeType val)
{
m_timeMode = val;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -340,8 +393,8 @@ void RimSummaryTimeAxisProperties::defineUiOrdering(QString uiConfigName, caf::P
caf::PdmUiGroup& titleGroup = *(uiOrdering.addNewGroup("Axis Title"));
titleGroup.add(&showTitle);
titleGroup.add(&title);
titleGroup.add(&titlePositionEnum);
titleGroup.add(&titleFontSize);
titleGroup.add(&m_titlePositionEnum);
titleGroup.add(&m_titleFontSize);
caf::PdmUiGroup* timeGroup = uiOrdering.addNewGroup("Time Values");
timeGroup->add(&m_timeMode);
@@ -356,7 +409,7 @@ void RimSummaryTimeAxisProperties::defineUiOrdering(QString uiConfigName, caf::P
timeGroup->add(&m_visibleTimeRangeMax);
timeGroup->add(&m_visibleTimeRangeMin);
}
timeGroup->add(&valuesFontSize);
timeGroup->add(&m_valuesFontSize);
uiOrdering.skipRemainingFields(true);
}

View File

@@ -19,6 +19,8 @@
#pragma once
#include "RimPlotAxisPropertiesInterface.h"
#include "cafPdmObject.h"
#include "cafPdmField.h"
#include "cafPdmChildArrayField.h"
@@ -31,18 +33,11 @@
///
///
//==================================================================================================
class RimSummaryTimeAxisProperties : public caf::PdmObject
class RimSummaryTimeAxisProperties : public caf::PdmObject, public RimPlotAxisPropertiesInterface
{
CAF_PDM_HEADER_INIT;
public:
enum AxisTitlePositionType
{
AXIS_TITLE_CENTER,
AXIS_TITLE_END
};
enum TimeModeType
{
DATE,
@@ -61,16 +56,19 @@ public:
public:
RimSummaryTimeAxisProperties();
caf::PdmField<int> titleFontSize;
caf::PdmField<QString> title;
caf::PdmField<bool> showTitle;
caf::PdmField< caf::AppEnum< AxisTitlePositionType > > titlePositionEnum;
caf::PdmField<int> valuesFontSize;
TimeModeType timeMode() const { return m_timeMode(); }
void setTimeMode(TimeModeType val) { m_timeMode = val; }
double fromTimeTToDisplayUnitScale();
double fromDaysToDisplayUnitScale();
AxisTitlePositionType titlePosition() const override;
int titleFontSize() const override;
void setTitleFontSize(int fontSize) override;
int valuesFontSize() const override;
void setValuesFontSize(int fontSize) override;
TimeModeType timeMode() const;
void setTimeMode(TimeModeType val);
double fromTimeTToDisplayUnitScale();
double fromDaysToDisplayUnitScale();
double visibleRangeMin() const;
double visibleRangeMax() const;
@@ -104,4 +102,9 @@ private:
caf::PdmField<double> m_visibleTimeRangeMin;
caf::PdmField<double> m_visibleTimeRangeMax;
caf::PdmField<bool> m_isAutoZoom;
caf::PdmField<int> m_titleFontSize;
caf::PdmField<caf::AppEnum<AxisTitlePositionType>> m_titlePositionEnum;
caf::PdmField<int> m_valuesFontSize;
};