#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

@ -1990,12 +1990,11 @@ void RiaApplication::applyPreferences(const RiaPreferences* oldPreferences)
// The creation of a font is time consuming, so make sure you really need your own font // The creation of a font is time consuming, so make sure you really need your own font
// instead of using the application font // instead of using the application font
RiaFontCache::FontSize sceneFontSize = m_preferences->defaultFontSizeInScene(); std::map<RiaDefines::FontSettingType, RiaFontCache::FontSize> fontSizes = m_preferences->defaultFontSizes();
m_defaultSceneFont = RiaFontCache::getFont(sceneFontSize);
RiaFontCache::FontSize annotationFontSize = m_preferences->defaultAnnotationFontSize(); m_defaultSceneFont = RiaFontCache::getFont(fontSizes[RiaDefines::SCENE_FONT]);
m_defaultAnnotationFont = RiaFontCache::getFont(annotationFontSize); m_defaultAnnotationFont = RiaFontCache::getFont(fontSizes[RiaDefines::ANNOTATION_FONT]);
RiaFontCache::FontSize wellLabelFontSize = m_preferences->defaultWellLabelFontSize(); m_defaultWellLabelFont = RiaFontCache::getFont(fontSizes[RiaDefines::WELL_LABEL_FONT]);
m_defaultWellLabelFont = RiaFontCache::getFont(wellLabelFontSize);
if (this->project()) if (this->project())
{ {
@ -2004,8 +2003,8 @@ void RiaApplication::applyPreferences(const RiaPreferences* oldPreferences)
RimWellPathCollection* wellPathCollection = this->project()->activeOilField()->wellPathCollection(); RimWellPathCollection* wellPathCollection = this->project()->activeOilField()->wellPathCollection();
std::vector<Rim3dView*> visibleViews; std::vector<RimViewWindow*> allViewWindows;
this->project()->allVisibleViews(visibleViews); project()->descendantsIncludingThisOfType(allViewWindows);
bool existingViewsWithDifferentMeshLines = false; bool existingViewsWithDifferentMeshLines = false;
bool existingViewsWithCustomColors = false; bool existingViewsWithCustomColors = false;
@ -2013,41 +2012,59 @@ void RiaApplication::applyPreferences(const RiaPreferences* oldPreferences)
bool existingObjectsWithCustomFonts = false; bool existingObjectsWithCustomFonts = false;
if (oldPreferences) if (oldPreferences)
{ {
for (auto view : visibleViews) for (auto viewWindow : allViewWindows)
{ {
if (view->meshMode() != oldPreferences->defaultMeshModeType()) auto rim3dView = dynamic_cast<Rim3dView*>(viewWindow);
if (rim3dView)
{ {
existingViewsWithDifferentMeshLines = true; if (rim3dView->meshMode() != oldPreferences->defaultMeshModeType())
} {
if (view->backgroundColor() != oldPreferences->defaultViewerBackgroundColor()) existingViewsWithDifferentMeshLines = true;
{ }
existingViewsWithCustomColors = true; if (rim3dView->backgroundColor() != oldPreferences->defaultViewerBackgroundColor())
}
if (view->scaleZ() != static_cast<double>(oldPreferences->defaultScaleFactorZ))
{
existingViewsWithCustomZScale = true;
}
RimGridView* gridView = dynamic_cast<RimGridView*>(view);
if (gridView)
{
RiaFontCache::FontSize oldFontSize = oldPreferences->defaultAnnotationFontSize();
existingObjectsWithCustomFonts = gridView->annotationCollection()->hasTextAnnotationsWithCustomFontSize(oldFontSize);
}
RimEclipseView* eclipseView = dynamic_cast<RimEclipseView*>(view);
if (eclipseView)
{
if (eclipseView->wellCollection()->wellLabelColor() != oldPreferences->defaultWellLabelColor())
{ {
existingViewsWithCustomColors = true; existingViewsWithCustomColors = true;
} }
if (rim3dView->scaleZ() != static_cast<double>(oldPreferences->defaultScaleFactorZ))
{
existingViewsWithCustomZScale = true;
}
RimGridView* gridView = dynamic_cast<RimGridView*>(rim3dView);
if (gridView)
{
RiaFontCache::FontSize oldFontSize = oldPreferences->defaultAnnotationFontSize();
existingObjectsWithCustomFonts = gridView->annotationCollection()->hasTextAnnotationsWithCustomFontSize(oldFontSize);
}
RimEclipseView* eclipseView = dynamic_cast<RimEclipseView*>(rim3dView);
if (eclipseView)
{
if (eclipseView->wellCollection()->wellLabelColor() != oldPreferences->defaultWellLabelColor())
{
existingViewsWithCustomColors = true;
}
}
} }
if (wellPathCollection->wellPathLabelColor() != oldPreferences->defaultWellLabelColor())
for (auto fontTypeSizePair : fontSizes)
{ {
existingViewsWithCustomColors = true; RiaFontCache::FontSize oldFontSizeEnum = oldPreferences->defaultFontSizes()[fontTypeSizePair.first];
if (oldFontSizeEnum != fontTypeSizePair.second)
{
int oldFontSize = RiaFontCache::pointSizeFromFontSizeEnum(oldFontSizeEnum);
if (viewWindow->hasCustomFontSizes(fontTypeSizePair.first, oldFontSize))
{
existingObjectsWithCustomFonts = true;
}
}
} }
} }
}
if (oldPreferences->defaultWellLabelColor() != wellPathCollection->wellPathLabelColor())
{
existingViewsWithCustomColors = true;
}
}
bool applySettingsToAllViews = false; bool applySettingsToAllViews = false;
if (existingViewsWithCustomColors || existingViewsWithCustomZScale || if (existingViewsWithCustomColors || existingViewsWithCustomZScale ||
@ -2076,76 +2093,60 @@ void RiaApplication::applyPreferences(const RiaPreferences* oldPreferences)
std::set<caf::PdmUiItem*> uiEditorsToUpdate; std::set<caf::PdmUiItem*> uiEditorsToUpdate;
for (auto view : visibleViews) for (auto viewWindow : allViewWindows)
{ {
bool applyBackgroundOrFonts = false; for (auto fontTypeSizePair : fontSizes)
if (oldPreferences && (applySettingsToAllViews || view->meshMode() == oldPreferences->defaultMeshModeType()))
{ {
view->meshMode = m_preferences->defaultMeshModeType(); RiaFontCache::FontSize oldFontSizeEnum = oldPreferences->defaultFontSizes()[fontTypeSizePair.first];
} if (oldFontSizeEnum != fontTypeSizePair.second)
if (oldPreferences && (applySettingsToAllViews || view->backgroundColor() == oldPreferences->defaultViewerBackgroundColor()))
{
view->setBackgroundColor(m_preferences->defaultViewerBackgroundColor());
applyBackgroundOrFonts = true;
uiEditorsToUpdate.insert(view);
}
if (oldPreferences && (applySettingsToAllViews || view->scaleZ == static_cast<double>(oldPreferences->defaultScaleFactorZ())))
{
view->scaleZ = static_cast<double>(m_preferences->defaultScaleFactorZ());
view->updateScaling();
uiEditorsToUpdate.insert(view);
if (view == activeViewWindow())
{ {
RiuMainWindow::instance()->updateScaleValue(); int oldFontSize = RiaFontCache::pointSizeFromFontSizeEnum(oldFontSizeEnum);
} int newFontSize = RiaFontCache::pointSizeFromFontSizeEnum(fontTypeSizePair.second);
} if (viewWindow->applyFontSize(fontTypeSizePair.first, oldFontSize, newFontSize, applySettingsToAllViews))
if (oldPreferences && oldPreferences->defaultFontSizeInScene() != sceneFontSize)
{
applyBackgroundOrFonts = true;
}
if (oldPreferences && oldPreferences->defaultAnnotationFontSize() != annotationFontSize)
{
RimGridView* gridView = dynamic_cast<RimGridView*>(view);
if (gridView)
{
auto annotations = gridView->annotationCollection();
RiaFontCache::FontSize oldFontSize = oldPreferences->defaultAnnotationFontSize();
bool applyFontSizes = applySettingsToAllViews ||
!annotations->hasTextAnnotationsWithCustomFontSize(oldFontSize);
if (applyFontSizes)
{ {
annotations->applyFontSizeToAllTextAnnotations(annotationFontSize); uiEditorsToUpdate.insert(viewWindow);
for (auto annotation : annotations->globalTextAnnotations())
{
uiEditorsToUpdate.insert(annotation);
}
for (auto annotation : annotations->textAnnotations())
{
uiEditorsToUpdate.insert(annotation);
}
} }
} }
} }
RimEclipseView* eclipseView = dynamic_cast<RimEclipseView*>(view);
if (eclipseView) auto rim3dView = dynamic_cast<Rim3dView*>(viewWindow);
if (rim3dView)
{ {
if (oldPreferences && (applySettingsToAllViews || eclipseView->wellCollection()->wellLabelColor() == oldPreferences->defaultWellLabelColor())) if (oldPreferences && (applySettingsToAllViews || rim3dView->meshMode() == oldPreferences->defaultMeshModeType()))
{ {
eclipseView->wellCollection()->wellLabelColor = m_preferences->defaultWellLabelColor(); rim3dView->meshMode = m_preferences->defaultMeshModeType();
uiEditorsToUpdate.insert(eclipseView->wellCollection());
} }
eclipseView->scheduleReservoirGridGeometryRegen();
} if (oldPreferences && (applySettingsToAllViews || rim3dView->backgroundColor() == oldPreferences->defaultViewerBackgroundColor()))
view->scheduleCreateDisplayModelAndRedraw(); {
if (applyBackgroundOrFonts) rim3dView->setBackgroundColor(m_preferences->defaultViewerBackgroundColor());
{ rim3dView->applyBackgroundColorAndFontChanges();
view->applyBackgroundColorAndFontChanges(); uiEditorsToUpdate.insert(rim3dView);
}
if (oldPreferences && (applySettingsToAllViews || rim3dView->scaleZ == static_cast<double>(oldPreferences->defaultScaleFactorZ())))
{
rim3dView->scaleZ = static_cast<double>(m_preferences->defaultScaleFactorZ());
rim3dView->updateScaling();
uiEditorsToUpdate.insert(rim3dView);
if (rim3dView == activeViewWindow())
{
RiuMainWindow::instance()->updateScaleValue();
}
}
RimEclipseView* eclipseView = dynamic_cast<RimEclipseView*>(rim3dView);
if (eclipseView)
{
if (oldPreferences && (applySettingsToAllViews || eclipseView->wellCollection()->wellLabelColor() == oldPreferences->defaultWellLabelColor()))
{
eclipseView->wellCollection()->wellLabelColor = m_preferences->defaultWellLabelColor();
uiEditorsToUpdate.insert(eclipseView->wellCollection());
}
eclipseView->scheduleReservoirGridGeometryRegen();
}
rim3dView->scheduleCreateDisplayModelAndRedraw();
} }
} }
@ -2159,8 +2160,6 @@ void RiaApplication::applyPreferences(const RiaPreferences* oldPreferences)
} }
} }
for (caf::PdmUiItem* uiItem : uiEditorsToUpdate) for (caf::PdmUiItem* uiItem : uiEditorsToUpdate)
{ {
uiItem->updateConnectedEditors(); uiItem->updateConnectedEditors();

View File

@ -170,5 +170,13 @@ namespace RiaDefines
ImportFileType obtainFileTypeFromFileName(const QString& fileName); ImportFileType obtainFileTypeFromFileName(const QString& fileName);
QString defaultDirectoryLabel(ImportFileType fileTypes); QString defaultDirectoryLabel(ImportFileType fileTypes);
enum FontSettingType
{
SCENE_FONT,
ANNOTATION_FONT,
WELL_LABEL_FONT,
PLOT_FONT
};
}; };

View File

@ -85,7 +85,7 @@ cvf::ref<caf::FixedAtlasFont> RiaFontCache::getFont(FontSize size)
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
int RiaFontCache::getPointSize(FontSize fontSize) int RiaFontCache::pointSizeFromFontSizeEnum(FontSize fontSize)
{ {
switch (fontSize) switch (fontSize)
{ {
@ -107,3 +107,25 @@ int RiaFontCache::getPointSize(FontSize fontSize)
return 16; return 16;
} }
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaFontCache::FontSize RiaFontCache::fontSizeEnumFromPointSize(int pointSize)
{
std::vector<FontSize> allValues =
{ FONT_SIZE_8, FONT_SIZE_10, FONT_SIZE_12, FONT_SIZE_14, FONT_SIZE_16, FONT_SIZE_24, FONT_SIZE_32 };
FontSize closestEnumValue = FONT_SIZE_8;
int closestDiff = std::numeric_limits<int>::max();
for (FontSize enumValue : allValues)
{
int diff = std::abs(pointSizeFromFontSizeEnum(enumValue) - pointSize);
if (diff < closestDiff)
{
closestEnumValue = enumValue;
closestDiff = diff;
}
}
return closestEnumValue;
}

View File

@ -51,7 +51,8 @@ public:
typedef caf::AppEnum<FontSize> FontSizeType; typedef caf::AppEnum<FontSize> FontSizeType;
static cvf::ref<caf::FixedAtlasFont> getFont(FontSize fontSize); static cvf::ref<caf::FixedAtlasFont> getFont(FontSize fontSize);
static int getPointSize(FontSize fontSize); static int pointSizeFromFontSizeEnum(FontSize fontSize);
static FontSize fontSizeEnumFromPointSize(int pointSize);
private: private:
static std::map<FontSize, cvf::ref<caf::FixedAtlasFont>> ms_fonts; static std::map<FontSize, cvf::ref<caf::FixedAtlasFont>> ms_fonts;

View File

@ -75,10 +75,11 @@ RiaPreferences::RiaPreferences(void)
CAF_PDM_InitField(&defaultScaleFactorZ, "defaultScaleFactorZ", 5, "Default Z Scale Factor", "", "", ""); CAF_PDM_InitField(&defaultScaleFactorZ, "defaultScaleFactorZ", 5, "Default Z Scale Factor", "", "", "");
CAF_PDM_InitFieldNoDefault(&defaultFontSizeInScene, "fontSizeInScene", "Viewer Font", "", "", ""); CAF_PDM_InitFieldNoDefault(&defaultSceneFontSize, "fontSizeInScene", "Viewer Font", "", "", "");
CAF_PDM_InitFieldNoDefault(&defaultAnnotationFontSize, "defaultAnnotationFontSize", "Annotation Font Size", "", "", ""); CAF_PDM_InitFieldNoDefault(&defaultAnnotationFontSize, "defaultAnnotationFontSize", "Annotation Font Size", "", "", "");
CAF_PDM_InitFieldNoDefault(&defaultWellLabelFontSize, "wellLabelFontSize", "Well Label Font Size", "", "", ""); CAF_PDM_InitFieldNoDefault(&defaultWellLabelFontSize, "wellLabelFontSize", "Well Label Font Size", "", "", "");
CAF_PDM_InitFieldNoDefault(&defaultPlotFontSize, "defaultPlotFontSize", "Plot Font Size", "", "", ""); CAF_PDM_InitFieldNoDefault(&defaultPlotFontSize, "defaultPlotFontSize", "Plot Font Size", "", "", "");
defaultPlotFontSize = RiaFontCache::FONT_SIZE_10;
CAF_PDM_InitField(&showLasCurveWithoutTvdWarning, "showLasCurveWithoutTvdWarning", true, "Show LAS Curve Without TVD Warning", "", "", ""); CAF_PDM_InitField(&showLasCurveWithoutTvdWarning, "showLasCurveWithoutTvdWarning", true, "Show LAS Curve Without TVD Warning", "", "", "");
showLasCurveWithoutTvdWarning.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN); showLasCurveWithoutTvdWarning.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
@ -206,7 +207,7 @@ void RiaPreferences::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering&
colorGroup->add(&defaultWellLabelColor); colorGroup->add(&defaultWellLabelColor);
caf::PdmUiGroup* fontGroup = uiOrdering.addNewGroup("Default Font Sizes"); caf::PdmUiGroup* fontGroup = uiOrdering.addNewGroup("Default Font Sizes");
fontGroup->add(&defaultFontSizeInScene); fontGroup->add(&defaultSceneFontSize);
fontGroup->add(&defaultAnnotationFontSize, false); fontGroup->add(&defaultAnnotationFontSize, false);
fontGroup->add(&defaultWellLabelFontSize); fontGroup->add(&defaultWellLabelFontSize);
fontGroup->add(&defaultPlotFontSize, false); fontGroup->add(&defaultPlotFontSize, false);
@ -368,3 +369,15 @@ QString RiaPreferences::holoLensExportFolder() const
return m_holoLensExportFolder(); return m_holoLensExportFolder();
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::map<RiaDefines::FontSettingType, RiaFontCache::FontSize> RiaPreferences::defaultFontSizes() const
{
std::map<RiaDefines::FontSettingType, RiaFontCache::FontSize> fontSizes;
fontSizes[RiaDefines::SCENE_FONT] = defaultSceneFontSize();
fontSizes[RiaDefines::ANNOTATION_FONT] = defaultAnnotationFontSize();
fontSizes[RiaDefines::WELL_LABEL_FONT] = defaultWellLabelFontSize();
fontSizes[RiaDefines::PLOT_FONT] = defaultPlotFontSize();
return fontSizes;
}

View File

@ -34,6 +34,8 @@
// Include to make Pdm work for cvf::Color // Include to make Pdm work for cvf::Color
#include "cafPdmFieldCvfColor.h" #include "cafPdmFieldCvfColor.h"
#include <map>
class RifReaderSettings; class RifReaderSettings;
class RiaPreferences : public caf::PdmObject class RiaPreferences : public caf::PdmObject
@ -61,6 +63,8 @@ public:
bool showOctaveCommunicationWarning() const; bool showOctaveCommunicationWarning() const;
QString holoLensExportFolder() const; QString holoLensExportFolder() const;
std::map<RiaDefines::FontSettingType, RiaFontCache::FontSize> defaultFontSizes() const;
public: // Pdm Fields public: // Pdm Fields
caf::PdmField<caf::AppEnum< RiaApplication::RINavigationPolicy > > navigationPolicy; caf::PdmField<caf::AppEnum< RiaApplication::RINavigationPolicy > > navigationPolicy;
@ -81,7 +85,7 @@ public: // Pdm Fields
caf::PdmField<cvf::Color3f> defaultWellLabelColor; caf::PdmField<cvf::Color3f> defaultWellLabelColor;
caf::PdmField<bool> showLasCurveWithoutTvdWarning; caf::PdmField<bool> showLasCurveWithoutTvdWarning;
caf::PdmField<FontSizeType> defaultFontSizeInScene; caf::PdmField<FontSizeType> defaultSceneFontSize;
caf::PdmField<FontSizeType> defaultWellLabelFontSize; caf::PdmField<FontSizeType> defaultWellLabelFontSize;
caf::PdmField<FontSizeType> defaultAnnotationFontSize; caf::PdmField<FontSizeType> defaultAnnotationFontSize;
caf::PdmField<FontSizeType> defaultPlotFontSize; caf::PdmField<FontSizeType> defaultPlotFontSize;

View File

@ -39,10 +39,14 @@ bool RicVec3dPickEventHandler::handle3dPickEvent(const Ric3dPickEvent& eventObje
{ {
const Rim3dView* rimView = eventObject.m_view; const Rim3dView* rimView = eventObject.m_view;
double zPickOffset = 10.0;
cvf::ref<caf::DisplayCoordTransform> transForm = rimView->displayCoordTransform(); cvf::ref<caf::DisplayCoordTransform> transForm = rimView->displayCoordTransform();
cvf::Vec3d pickedPositionInUTM = transForm->transformToDomainCoord(eventObject.m_pickItemInfos.front().globalPickedPoint()); cvf::Vec3d pickedPositionInUTM = transForm->transformToDomainCoord(eventObject.m_pickItemInfos.front().globalPickedPoint());
pickedPositionInUTM.z() *= -1.0; pickedPositionInUTM.z() *= -1.0;
pickedPositionInUTM.z() -= zPickOffset;
m_vectorField->setValueWithFieldChanged(pickedPositionInUTM); m_vectorField->setValueWithFieldChanged(pickedPositionInUTM);
return true; return true;
} }

View File

@ -32,7 +32,6 @@ public:
RicVec3dPickEventHandler(caf::PdmField<cvf::Vec3d>* vectorField); RicVec3dPickEventHandler(caf::PdmField<cvf::Vec3d>* vectorField);
bool handle3dPickEvent(const Ric3dPickEvent& eventObject) override; bool handle3dPickEvent(const Ric3dPickEvent& eventObject) override;
void registerAsPickEventHandler() override; void registerAsPickEventHandler() override;
void notifyUnregistered() override; void notifyUnregistered() override;

View File

@ -18,8 +18,6 @@
#include "RimAnnotationInViewCollection.h" #include "RimAnnotationInViewCollection.h"
#include "RiaApplication.h"
#include "RimAnnotationCollection.h" #include "RimAnnotationCollection.h"
#include "RimAnnotationGroupCollection.h" #include "RimAnnotationGroupCollection.h"
#include "RimAnnotationTextAppearance.h" #include "RimAnnotationTextAppearance.h"
@ -262,17 +260,31 @@ bool RimAnnotationInViewCollection::hasTextAnnotationsWithCustomFontSize(RiaFont
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimAnnotationInViewCollection::applyFontSizeToAllTextAnnotations(RiaFontCache::FontSize fontSize) bool RimAnnotationInViewCollection::applyFontSizeToAllTextAnnotations(RiaFontCache::FontSize oldFontSize,
RiaFontCache::FontSize fontSize,
bool forceChange)
{ {
bool anyChange = false;
for (auto annotation : textAnnotations()) for (auto annotation : textAnnotations())
{ {
annotation->appearance()->setFontSize(fontSize); if (forceChange || annotation->appearance()->fontSize() == oldFontSize)
{
annotation->appearance()->setFontSize(fontSize);
annotation->updateConnectedEditors();
anyChange = true;
}
} }
for (auto annotationInView : globalTextAnnotations()) for (auto annotationInView : globalTextAnnotations())
{ {
annotationInView->sourceAnnotation()->appearance()->setFontSize(fontSize); if (forceChange || annotationInView->sourceAnnotation()->appearance()->fontSize() == oldFontSize)
{
annotationInView->sourceAnnotation()->appearance()->setFontSize(fontSize);
annotationInView->updateConnectedEditors();
anyChange = true;
}
} }
return anyChange;
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -61,7 +61,7 @@ public:
size_t annotationsCount() const; size_t annotationsCount() const;
bool hasTextAnnotationsWithCustomFontSize(RiaFontCache::FontSize defaultFontSize) const; bool hasTextAnnotationsWithCustomFontSize(RiaFontCache::FontSize defaultFontSize) const;
void applyFontSizeToAllTextAnnotations(RiaFontCache::FontSize fontSize); bool applyFontSizeToAllTextAnnotations(RiaFontCache::FontSize oldFontSize, RiaFontCache::FontSize fontSize, bool forceSizeChange = false);
protected: protected:
void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override; void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;

View File

@ -128,6 +128,7 @@ ${CMAKE_CURRENT_LIST_DIR}/RimViewNameConfig.h
${CMAKE_CURRENT_LIST_DIR}/RimScaleLegendConfig.h ${CMAKE_CURRENT_LIST_DIR}/RimScaleLegendConfig.h
${CMAKE_CURRENT_LIST_DIR}/RimReloadCaseTools.h ${CMAKE_CURRENT_LIST_DIR}/RimReloadCaseTools.h
${CMAKE_CURRENT_LIST_DIR}/RimRiuQwtPlotOwnerInterface.h ${CMAKE_CURRENT_LIST_DIR}/RimRiuQwtPlotOwnerInterface.h
${CMAKE_CURRENT_LIST_DIR}/RimPlotAxisPropertiesInterface.h
${CMAKE_CURRENT_LIST_DIR}/RimPlotAxisProperties.h ${CMAKE_CURRENT_LIST_DIR}/RimPlotAxisProperties.h
${CMAKE_CURRENT_LIST_DIR}/RimPlotAxisAnnotation.h ${CMAKE_CURRENT_LIST_DIR}/RimPlotAxisAnnotation.h
) )
@ -261,6 +262,7 @@ ${CMAKE_CURRENT_LIST_DIR}/RimGeoMechContourMapViewCollection.cpp
${CMAKE_CURRENT_LIST_DIR}/RimViewNameConfig.cpp ${CMAKE_CURRENT_LIST_DIR}/RimViewNameConfig.cpp
${CMAKE_CURRENT_LIST_DIR}/RimScaleLegendConfig.cpp ${CMAKE_CURRENT_LIST_DIR}/RimScaleLegendConfig.cpp
${CMAKE_CURRENT_LIST_DIR}/RimReloadCaseTools.cpp ${CMAKE_CURRENT_LIST_DIR}/RimReloadCaseTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RimPlotAxisPropertiesInterface.cpp
${CMAKE_CURRENT_LIST_DIR}/RimPlotAxisProperties.cpp ${CMAKE_CURRENT_LIST_DIR}/RimPlotAxisProperties.cpp
${CMAKE_CURRENT_LIST_DIR}/RimPlotAxisAnnotation.cpp ${CMAKE_CURRENT_LIST_DIR}/RimPlotAxisAnnotation.cpp
) )

View File

@ -17,6 +17,10 @@
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
#include "RimGridCrossPlot.h" #include "RimGridCrossPlot.h"
#include "RiaApplication.h"
#include "RiaFontCache.h"
#include "RiaPreferences.h"
#include "RifEclipseDataTableFormatter.h" #include "RifEclipseDataTableFormatter.h"
#include "RiuGridCrossQwtPlot.h" #include "RiuGridCrossQwtPlot.h"
#include "RiuPlotMainWindowTools.h" #include "RiuPlotMainWindowTools.h"
@ -50,7 +54,9 @@ RimGridCrossPlot::RimGridCrossPlot()
CAF_PDM_InitField(&m_showInfoBox, "ShowInfoBox", true, "Show Info Box", "", "", ""); CAF_PDM_InitField(&m_showInfoBox, "ShowInfoBox", true, "Show Info Box", "", "", "");
CAF_PDM_InitField(&m_showLegend, "ShowLegend", true, "Show Legend", "", "", ""); CAF_PDM_InitField(&m_showLegend, "ShowLegend", true, "Show Legend", "", "", "");
CAF_PDM_InitField(&m_legendFontSize, "LegendFontSize", 10, "Legend Font Size", "", "", ""); CAF_PDM_InitField(&m_legendFontSize, "LegendFontSize", 10, "Legend and Info Font Size", "", "", "");
m_legendFontSize = RiaFontCache::pointSizeFromFontSizeEnum(RiaApplication::instance()->preferences()->defaultPlotFontSize());
CAF_PDM_InitFieldNoDefault(&m_nameConfig, "NameConfig", "Name Config", "", "", ""); CAF_PDM_InitFieldNoDefault(&m_nameConfig, "NameConfig", "Name Config", "", "", "");
m_nameConfig.uiCapability()->setUiTreeHidden(true); m_nameConfig.uiCapability()->setUiTreeHidden(true);
m_nameConfig.uiCapability()->setUiTreeChildrenHidden(true); m_nameConfig.uiCapability()->setUiTreeChildrenHidden(true);
@ -515,7 +521,7 @@ void RimGridCrossPlot::updatePlot()
QwtLegend* legend = new QwtLegend(m_qwtPlot); QwtLegend* legend = new QwtLegend(m_qwtPlot);
auto font = legend->font(); auto font = legend->font();
font.setPixelSize(m_legendFontSize()); font.setPointSize(m_legendFontSize());
legend->setFont(font); legend->setFont(font);
m_qwtPlot->insertLegend(legend, QwtPlot::BottomLegend); m_qwtPlot->insertLegend(legend, QwtPlot::BottomLegend);
} }
@ -651,6 +657,61 @@ int RimGridCrossPlot::legendFontSize() const
return m_legendFontSize; return m_legendFontSize;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimGridCrossPlot::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 (legendFontSize() != defaultFontSize)
{
return true;
}
return false;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimGridCrossPlot::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 || legendFontSize() == oldFontSize)
{
m_legendFontSize = fontSize;
anyChange = true;
}
if (anyChange) loadDataAndUpdate();
return anyChange;
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -722,12 +783,16 @@ void RimGridCrossPlot::updateAxisInQwt(RiaDefines::PlotAxis axisType)
m_qwtPlot->enableAxis(qwtAxisId, true); m_qwtPlot->enableAxis(qwtAxisId, true);
QwtText axisTitle(axisParameterString); QwtText axisTitle(axisParameterString);
QFont font = m_qwtPlot->axisFont(qwtAxisId); QFont titleFont = m_qwtPlot->axisTitle(qwtAxisId).font();
font.setBold(true); titleFont.setBold(true);
font.setPixelSize(axisProperties->titleFontSize); titleFont.setPointSize(axisProperties->titleFontSize());
axisTitle.setFont(font); axisTitle.setFont(titleFont);
switch (axisProperties->titlePositionEnum()) QFont valuesFont = m_qwtPlot->axisFont(qwtAxisId);
valuesFont.setPointSize(axisProperties->valuesFontSize());
m_qwtPlot->setAxisFont(qwtAxisId, valuesFont);
switch (axisProperties->titlePosition())
{ {
case RimPlotAxisProperties::AXIS_TITLE_CENTER: case RimPlotAxisProperties::AXIS_TITLE_CENTER:
axisTitle.setRenderFlags(Qt::AlignCenter); axisTitle.setRenderFlags(Qt::AlignCenter);
@ -875,6 +940,14 @@ void RimGridCrossPlot::setShowInfoBox(bool enable)
m_showInfoBox = enable; m_showInfoBox = enable;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::set<RimPlotAxisPropertiesInterface*> RimGridCrossPlot::allPlotAxes() const
{
return { m_xAxisProperties, m_yAxisProperties };
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// Name Configuration /// Name Configuration
/// ///

View File

@ -28,6 +28,9 @@
#include <QPointer> #include <QPointer>
#include <set>
class RimPlotAxisPropertiesInterface;
class RimPlotAxisProperties; class RimPlotAxisProperties;
class RimGridCrossPlotDataSet; class RimGridCrossPlotDataSet;
class RiuGridCrossQwtPlot; class RiuGridCrossQwtPlot;
@ -79,6 +82,10 @@ public:
bool isYAxisLogarithmic() const; bool isYAxisLogarithmic() const;
void setYAxisInverted(bool inverted); void setYAxisInverted(bool inverted);
int legendFontSize() const; int legendFontSize() const;
bool hasCustomFontSizes(RiaDefines::FontSettingType fontSettingType, int defaultFontSize) const override;
bool applyFontSize(RiaDefines::FontSettingType fontSettingType, int oldFontSize, int fontSize, bool forceChange = false) override;
public: public:
// Rim2dPlotInterface overrides // Rim2dPlotInterface overrides
void updateAxisScaling() override; void updateAxisScaling() override;
@ -114,6 +121,7 @@ protected:
RimGridCrossPlotNameConfig* nameConfig(); RimGridCrossPlotNameConfig* nameConfig();
void setShowInfoBox(bool enable); void setShowInfoBox(bool enable);
std::set<RimPlotAxisPropertiesInterface*> allPlotAxes() const;
private: private:
caf::PdmField<bool> m_showInfoBox; caf::PdmField<bool> m_showInfoBox;
caf::PdmField<bool> m_showLegend; caf::PdmField<bool> m_showLegend;

View File

@ -1011,6 +1011,27 @@ cvf::ref<caf::DisplayCoordTransform> Rim3dView::displayCoordTransform() const
return coordTrans; return coordTrans;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool Rim3dView::hasCustomFontSizes(RiaDefines::FontSettingType fontSettingType, int defaultFontSize) const
{
return false;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool Rim3dView::applyFontSize(RiaDefines::FontSettingType fontSettingType, int oldFontSize, int fontSize, bool forceChange /*= false*/)
{
if (fontSettingType == RiaDefines::SCENE_FONT)
{
applyBackgroundColorAndFontChanges();
return true;
}
return false;
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -156,6 +156,10 @@ public:
virtual RimCase* ownerCase() const = 0; virtual RimCase* ownerCase() const = 0;
virtual std::vector<RimLegendConfig*> legendConfigs() const = 0; virtual std::vector<RimLegendConfig*> legendConfigs() const = 0;
bool hasCustomFontSizes(RiaDefines::FontSettingType fontSettingType, int defaultFontSize) const override;
bool applyFontSize(RiaDefines::FontSettingType fontSettingType, int oldFontSize, int fontSize, bool forceChange = false) override;
protected: protected:
static void removeModelByName(cvf::Scene* scene, const cvf::String& modelName); static void removeModelByName(cvf::Scene* scene, const cvf::String& modelName);

View File

@ -27,16 +27,19 @@
#include "RimIntersectionCollection.h" #include "RimIntersectionCollection.h"
#include "RimProject.h" #include "RimProject.h"
#include "RimPropertyFilterCollection.h" #include "RimPropertyFilterCollection.h"
#include "RimTextAnnotation.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 "Riu3DMainWindowTools.h" #include "Riu3DMainWindowTools.h"
#include "RiuMainWindow.h"
#include "cvfModel.h" #include "cvfModel.h"
#include "cvfScene.h" #include "cvfScene.h"
#include "RiuMainWindow.h"
#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
@ -284,6 +287,45 @@ bool RimGridView::isGridVisualizationMode() const
return this->m_gridCollection->isActive(); return this->m_gridCollection->isActive();
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimGridView::hasCustomFontSizes(RiaDefines::FontSettingType fontSettingType, int defaultFontSize) const
{
bool hasCustomFonts = Rim3dView::hasCustomFontSizes(fontSettingType, defaultFontSize);
if (fontSettingType == RiaDefines::ANNOTATION_FONT)
{
auto annotations = annotationCollection();
RiaFontCache::FontSize oldFontSize = RiaFontCache::fontSizeEnumFromPointSize(oldFontSize);
hasCustomFonts = annotations->hasTextAnnotationsWithCustomFontSize(oldFontSize) || hasCustomFonts;
}
return hasCustomFonts;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimGridView::applyFontSize(RiaDefines::FontSettingType fontSettingType,
int oldFontSize,
int fontSize,
bool forceChange /*= false*/)
{
bool anyChange = Rim3dView::applyFontSize(fontSettingType, oldFontSize, fontSize, forceChange);
if (fontSettingType == RiaDefines::ANNOTATION_FONT)
{
auto annotations = annotationCollection();
RiaFontCache::FontSize oldFontSize = RiaFontCache::fontSizeEnumFromPointSize(oldFontSize);
RiaFontCache::FontSize newFontSize = RiaFontCache::fontSizeEnumFromPointSize(fontSize);
bool applyFontSizes = forceChange || !annotations->hasTextAnnotationsWithCustomFontSize(oldFontSize);
if (applyFontSizes)
{
anyChange = annotations->applyFontSizeToAllTextAnnotations(oldFontSize, newFontSize, forceChange) || anyChange;
}
}
return anyChange;
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -64,6 +64,10 @@ public:
bool isGridVisualizationMode() const override; bool isGridVisualizationMode() const override;
bool hasCustomFontSizes(RiaDefines::FontSettingType fontSettingType, int defaultFontSize) const override;
bool applyFontSize(RiaDefines::FontSettingType fontSettingType, int oldFontSize, int fontSize, bool forceChange = false) override;
protected: protected:
virtual void updateViewFollowingRangeFilterUpdates(); virtual void updateViewFollowingRangeFilterUpdates();
void initAfterRead() override; void initAfterRead() override;

View File

@ -19,7 +19,10 @@
#include "RimPlotAxisProperties.h" #include "RimPlotAxisProperties.h"
#include "RiaApplication.h"
#include "RiaDefines.h" #include "RiaDefines.h"
#include "RiaPreferences.h"
#include "RiaFontCache.h"
#include "RigStatisticsCalculator.h" #include "RigStatisticsCalculator.h"
#include "RimRiuQwtPlotOwnerInterface.h" #include "RimRiuQwtPlotOwnerInterface.h"
@ -45,15 +48,6 @@ void caf::AppEnum<RimPlotAxisProperties::NumberFormatType>::setUp()
setDefault(RimPlotAxisProperties::NUMBER_FORMAT_AUTO); setDefault(RimPlotAxisProperties::NUMBER_FORMAT_AUTO);
} }
template<>
void caf::AppEnum<RimPlotAxisProperties::AxisTitlePositionType>::setUp()
{
addItem(RimPlotAxisProperties::AXIS_TITLE_CENTER, "AXIS_TITLE_CENTER", "Center");
addItem(RimPlotAxisProperties::AXIS_TITLE_END, "AXIS_TITLE_END", "At End");
setDefault(RimPlotAxisProperties::AXIS_TITLE_CENTER);
}
} // namespace caf } // namespace caf
CAF_PDM_SOURCE_INIT(RimPlotAxisProperties, "SummaryYAxisProperties"); CAF_PDM_SOURCE_INIT(RimPlotAxisProperties, "SummaryYAxisProperties");
@ -79,8 +73,6 @@ RimPlotAxisProperties::RimPlotAxisProperties()
CAF_PDM_InitField(&m_displayUnitText, "DisplayUnitText", true, " Units", "", "", ""); CAF_PDM_InitField(&m_displayUnitText, "DisplayUnitText", true, " Units", "", "", "");
CAF_PDM_InitFieldNoDefault(&customTitle, "CustomTitle", "Title", "", "", ""); CAF_PDM_InitFieldNoDefault(&customTitle, "CustomTitle", "Title", "", "", "");
CAF_PDM_InitFieldNoDefault(&titlePositionEnum, "TitlePosition", "Title Position", "", "", "");
CAF_PDM_InitField(&titleFontSize, "FontSize", 11, "Font Size", "", "", "");
CAF_PDM_InitField(&visibleRangeMax, "VisibleRangeMax", RiaDefines::maximumDefaultValuePlot(), "Max", "", "", ""); CAF_PDM_InitField(&visibleRangeMax, "VisibleRangeMax", RiaDefines::maximumDefaultValuePlot(), "Max", "", "", "");
CAF_PDM_InitField(&visibleRangeMin, "VisibleRangeMin", RiaDefines::minimumDefaultValuePlot(), "Min", "", "", ""); CAF_PDM_InitField(&visibleRangeMin, "VisibleRangeMin", RiaDefines::minimumDefaultValuePlot(), "Min", "", "", "");
@ -88,7 +80,6 @@ RimPlotAxisProperties::RimPlotAxisProperties()
CAF_PDM_InitFieldNoDefault(&numberFormat, "NumberFormat", "Number Format", "", "", ""); CAF_PDM_InitFieldNoDefault(&numberFormat, "NumberFormat", "Number Format", "", "", "");
CAF_PDM_InitField(&numberOfDecimals, "Decimals", 2, "Number of Decimals", "", "", ""); CAF_PDM_InitField(&numberOfDecimals, "Decimals", 2, "Number of Decimals", "", "", "");
CAF_PDM_InitField(&scaleFactor, "ScaleFactor", 1.0, "Scale Factor", "", "", ""); CAF_PDM_InitField(&scaleFactor, "ScaleFactor", 1.0, "Scale Factor", "", "", "");
CAF_PDM_InitField(&valuesFontSize, "ValuesFontSize", 11, "Font Size", "", "", "");
numberOfDecimals.uiCapability()->setUiEditorTypeName(caf::PdmUiSliderEditor::uiEditorTypeName()); numberOfDecimals.uiCapability()->setUiEditorTypeName(caf::PdmUiSliderEditor::uiEditorTypeName());
@ -96,6 +87,12 @@ RimPlotAxisProperties::RimPlotAxisProperties()
CAF_PDM_InitField(&isLogarithmicScaleEnabled, "LogarithmicScale", false, "Logarithmic Scale", "", "", ""); CAF_PDM_InitField(&isLogarithmicScaleEnabled, "LogarithmicScale", false, "Logarithmic Scale", "", "", "");
CAF_PDM_InitField(&m_isAxisInverted, "AxisInverted", false, "Invert Axis", "", "", ""); CAF_PDM_InitField(&m_isAxisInverted, "AxisInverted", false, "Invert Axis", "", "", "");
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());
CAF_PDM_InitFieldNoDefault(&m_annotations, "Annotations", "", "", "", ""); CAF_PDM_InitFieldNoDefault(&m_annotations, "Annotations", "", "", "", "");
m_annotations.uiCapability()->setUiHidden(true); m_annotations.uiCapability()->setUiHidden(true);
@ -130,7 +127,7 @@ QList<caf::PdmOptionItemInfo> RimPlotAxisProperties::calculateValueOptions(const
QList<caf::PdmOptionItemInfo> options; QList<caf::PdmOptionItemInfo> options;
*useOptionsOnly = true; *useOptionsOnly = true;
if (&titleFontSize == fieldNeedingOptions || &valuesFontSize == fieldNeedingOptions) if (&m_titleFontSize == fieldNeedingOptions || &m_valuesFontSize == fieldNeedingOptions)
{ {
std::vector<int> fontSizes; std::vector<int> fontSizes;
fontSizes.push_back(8); fontSizes.push_back(8);
@ -191,8 +188,8 @@ void RimPlotAxisProperties::defineUiOrdering(QString uiConfigName, caf::PdmUiOrd
{ {
caf::PdmUiGroup* titleGroup = uiOrdering.addNewGroup("Title Layout"); caf::PdmUiGroup* titleGroup = uiOrdering.addNewGroup("Title Layout");
titleGroup->add(&titlePositionEnum); titleGroup->add(&m_titlePositionEnum);
titleGroup->add(&titleFontSize); titleGroup->add(&m_titleFontSize);
} }
caf::PdmUiGroup& scaleGroup = *(uiOrdering.addNewGroup("Axis Values")); caf::PdmUiGroup& scaleGroup = *(uiOrdering.addNewGroup("Axis Values"));
@ -208,7 +205,7 @@ void RimPlotAxisProperties::defineUiOrdering(QString uiConfigName, caf::PdmUiOrd
scaleGroup.add(&visibleRangeMin); scaleGroup.add(&visibleRangeMin);
scaleGroup.add(&visibleRangeMax); scaleGroup.add(&visibleRangeMax);
scaleGroup.add(&valuesFontSize); scaleGroup.add(&m_valuesFontSize);
uiOrdering.skipRemainingFields(true); uiOrdering.skipRemainingFields(true);
} }
@ -225,6 +222,46 @@ void RimPlotAxisProperties::setNameAndAxis(const QString& name, QwtPlot::Axis ax
if (axis == QwtPlot::xBottom) this->setUiIcon(QIcon(":/BottomAxis16x16.png")); if (axis == QwtPlot::xBottom) this->setUiIcon(QIcon(":/BottomAxis16x16.png"));
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimPlotAxisPropertiesInterface::AxisTitlePositionType RimPlotAxisProperties::titlePosition() const
{
return m_titlePositionEnum();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
int RimPlotAxisProperties::titleFontSize() const
{
return m_titleFontSize;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimPlotAxisProperties::setTitleFontSize(int fontSize)
{
m_titleFontSize = fontSize;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
int RimPlotAxisProperties::valuesFontSize() const
{
return m_valuesFontSize;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimPlotAxisProperties::setValuesFontSize(int fontSize)
{
m_valuesFontSize = fontSize;
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -20,6 +20,7 @@
#pragma once #pragma once
#include "RiaDefines.h" #include "RiaDefines.h"
#include "RimPlotAxisPropertiesInterface.h"
#include "cafAppEnum.h" #include "cafAppEnum.h"
#include "cafPdmChildArrayField.h" #include "cafPdmChildArrayField.h"
@ -36,7 +37,7 @@ class RimPlotAxisAnnotation;
/// ///
/// ///
//================================================================================================== //==================================================================================================
class RimPlotAxisProperties : public caf::PdmObject class RimPlotAxisProperties : public caf::PdmObject, public RimPlotAxisPropertiesInterface
{ {
CAF_PDM_HEADER_INIT; CAF_PDM_HEADER_INIT;
@ -48,18 +49,17 @@ public:
NUMBER_FORMAT_SCIENTIFIC NUMBER_FORMAT_SCIENTIFIC
}; };
enum AxisTitlePositionType
{
AXIS_TITLE_CENTER,
AXIS_TITLE_END
};
public: public:
RimPlotAxisProperties(); RimPlotAxisProperties();
void setEnableTitleTextSettings(bool enable); void setEnableTitleTextSettings(bool enable);
void setNameAndAxis(const QString& name, QwtPlot::Axis axis); void setNameAndAxis(const QString& name, QwtPlot::Axis axis);
AxisTitlePositionType titlePosition() const override;
int titleFontSize() const override;
void setTitleFontSize(int fontSize) override;
int valuesFontSize() const override;
void setValuesFontSize(int fontSize) override;
QwtPlot::Axis qwtPlotAxisType() const; QwtPlot::Axis qwtPlotAxisType() const;
QString name() const; QString name() const;
RiaDefines::PlotAxis plotAxisType() const; RiaDefines::PlotAxis plotAxisType() const;
@ -76,8 +76,6 @@ public:
void appendAnnotation(RimPlotAxisAnnotation* annotation); void appendAnnotation(RimPlotAxisAnnotation* annotation);
caf::PdmField<QString> customTitle; caf::PdmField<QString> customTitle;
caf::PdmField<int> titleFontSize;
caf::PdmField<caf::AppEnum<AxisTitlePositionType>> titlePositionEnum;
caf::PdmField<double> visibleRangeMin; caf::PdmField<double> visibleRangeMin;
caf::PdmField<double> visibleRangeMax; caf::PdmField<double> visibleRangeMax;
@ -86,7 +84,6 @@ public:
caf::PdmField<int> numberOfDecimals; caf::PdmField<int> numberOfDecimals;
caf::PdmField<double> scaleFactor; caf::PdmField<double> scaleFactor;
caf::PdmField<bool> isLogarithmicScaleEnabled; caf::PdmField<bool> isLogarithmicScaleEnabled;
caf::PdmField<int> valuesFontSize;
bool isActive() const; bool isActive() const;
@ -122,7 +119,10 @@ private:
bool m_enableTitleTextSettings; bool m_enableTitleTextSettings;
caf::PdmChildArrayField<RimPlotAxisAnnotation*> m_annotations; caf::PdmField<int> m_titleFontSize;
caf::PdmField<caf::AppEnum<AxisTitlePositionType>> m_titlePositionEnum;
caf::PdmField<int> m_valuesFontSize;
caf::PdmChildArrayField<RimPlotAxisAnnotation*> m_annotations;
}; };
class QwtPlotCurve; class QwtPlotCurve;

View File

@ -0,0 +1,35 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2019- 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 "RimPlotAxisPropertiesInterface.h"
#include "cafAppEnum.h"
// clang-format off
namespace caf
{
template<>
void caf::AppEnum<RimPlotAxisPropertiesInterface::AxisTitlePositionType>::setUp()
{
addItem(RimPlotAxisPropertiesInterface::AXIS_TITLE_CENTER, "AXIS_TITLE_CENTER", "Center");
addItem(RimPlotAxisPropertiesInterface::AXIS_TITLE_END, "AXIS_TITLE_END", "At End");
setDefault(RimPlotAxisPropertiesInterface::AXIS_TITLE_CENTER);
}
} // namespace caf

View File

@ -0,0 +1,37 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2019- 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
class RimPlotAxisPropertiesInterface
{
public:
enum AxisTitlePositionType
{
AXIS_TITLE_CENTER,
AXIS_TITLE_END
};
public:
virtual AxisTitlePositionType titlePosition() const = 0;
virtual int titleFontSize() const = 0;
virtual void setTitleFontSize(int fontSize) = 0;
virtual int valuesFontSize() const = 0;
virtual void setValuesFontSize(int fontSize) = 0;
};

View File

@ -17,6 +17,7 @@
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
#pragma once #pragma once
#include "RiaFontCache.h"
#include "RimViewWindow.h" #include "RimViewWindow.h"
namespace caf namespace caf
@ -38,5 +39,4 @@ public:
virtual caf::PdmObject* findRimPlotObjectFromQwtCurve(const QwtPlotCurve* curve) const = 0; virtual caf::PdmObject* findRimPlotObjectFromQwtCurve(const QwtPlotCurve* curve) const = 0;
}; };

View File

@ -18,6 +18,8 @@
#pragma once #pragma once
#include "RiaDefines.h"
#include "cafPdmObject.h" #include "cafPdmObject.h"
#include "cafPdmField.h" #include "cafPdmField.h"
#include "cafPdmChildField.h" #include "cafPdmChildField.h"
@ -65,6 +67,10 @@ public:
void viewNavigationChanged(); void viewNavigationChanged();
virtual bool hasCustomFontSizes(RiaDefines::FontSettingType fontSettingType, int defaultFontSize) const { return false;}
virtual bool applyFontSize(RiaDefines::FontSettingType fontSettingType, int oldFontSize, int fontSize, bool forceChange = false) { return false;}
protected: protected:
void removeMdiWindowFromMdiArea(); void removeMdiWindowFromMdiArea();

View File

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

View File

@ -539,6 +539,61 @@ size_t RimSummaryPlot::singleColorCurveCount() const
return colorIndex; 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(); QFont font = timeAxisTitle.font();
font.setBold(true); font.setBold(true);
font.setPixelSize(m_timeAxisProperties->titleFontSize); font.setPointSize(m_timeAxisProperties->titleFontSize());
timeAxisTitle.setFont(font); timeAxisTitle.setFont(font);
timeAxisTitle.setText(axisTitle); timeAxisTitle.setText(axisTitle);
switch ( m_timeAxisProperties->titlePositionEnum() ) switch ( m_timeAxisProperties->titlePosition() )
{ {
case RimSummaryTimeAxisProperties::AXIS_TITLE_CENTER: case RimSummaryTimeAxisProperties::AXIS_TITLE_CENTER:
timeAxisTitle.setRenderFlags(Qt::AlignCenter); timeAxisTitle.setRenderFlags(Qt::AlignCenter);
@ -868,7 +923,7 @@ void RimSummaryPlot::updateTimeAxis()
{ {
QFont timeAxisFont = m_qwtPlot->axisFont(QwtPlot::xBottom); QFont timeAxisFont = m_qwtPlot->axisFont(QwtPlot::xBottom);
timeAxisFont.setBold(false); timeAxisFont.setBold(false);
timeAxisFont.setPixelSize(m_timeAxisProperties->valuesFontSize); timeAxisFont.setPointSize(m_timeAxisProperties->valuesFontSize());
m_qwtPlot->setAxisFont(QwtPlot::xBottom, timeAxisFont); 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); QwtLegend* legend = new QwtLegend(m_qwtPlot);
auto font = legend->font(); auto font = legend->font();
font.setPixelSize(m_legendFontSize()); font.setPointSize(m_legendFontSize());
legend->setFont(font); legend->setFont(font);
m_qwtPlot->insertLegend(legend, QwtPlot::BottomLegend); m_qwtPlot->insertLegend(legend, QwtPlot::BottomLegend);
} }

View File

@ -45,6 +45,7 @@ class RimEnsembleCurveSet;
class RimEnsembleCurveSetCollection; class RimEnsembleCurveSetCollection;
class RimSummaryCurveFilter_OBSOLETE; class RimSummaryCurveFilter_OBSOLETE;
class RimSummaryTimeAxisProperties; class RimSummaryTimeAxisProperties;
class RimPlotAxisPropertiesInterface;
class RimPlotAxisProperties; class RimPlotAxisProperties;
class RiuSummaryQwtPlot; class RiuSummaryQwtPlot;
class RimSummaryPlotNameHelper; class RimSummaryPlotNameHelper;
@ -132,6 +133,10 @@ public:
size_t singleColorCurveCount() const; 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: public:
// Rim2dPlotInterface overrides // Rim2dPlotInterface overrides
void updateAxisScaling() override; void updateAxisScaling() override;
@ -171,7 +176,7 @@ private:
std::vector<RimAsciiDataCurve*> visibleAsciiDataCurvesForAxis(RiaDefines::PlotAxis plotAxis) const; std::vector<RimAsciiDataCurve*> visibleAsciiDataCurvesForAxis(RiaDefines::PlotAxis plotAxis) const;
bool hasVisibleCurvesForAxis(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 updateAxis(RiaDefines::PlotAxis plotAxis);
void updateZoomForAxis(RiaDefines::PlotAxis plotAxis); void updateZoomForAxis(RiaDefines::PlotAxis plotAxis);
@ -181,6 +186,8 @@ private:
void updateAxisRangesFromQwt(); void updateAxisRangesFromQwt();
std::set<RimPlotAxisPropertiesInterface*> allPlotAxes() const;
private: private:
caf::PdmField<bool> m_showPlotTitle; caf::PdmField<bool> m_showPlotTitle;
caf::PdmField<bool> m_showLegend; caf::PdmField<bool> m_showLegend;

View File

@ -18,6 +18,10 @@
#include "RimSummaryTimeAxisProperties.h" #include "RimSummaryTimeAxisProperties.h"
#include "RiaApplication.h"
#include "RiaFontCache.h"
#include "RiaPreferences.h"
#include "RimSummaryPlot.h" #include "RimSummaryPlot.h"
#include "cafPdmUiLineEditor.h" #include "cafPdmUiLineEditor.h"
@ -28,15 +32,6 @@
namespace caf 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<> template<>
void caf::AppEnum< RimSummaryTimeAxisProperties::TimeModeType >::setUp() void caf::AppEnum< RimSummaryTimeAxisProperties::TimeModeType >::setUp()
{ {
@ -77,10 +72,6 @@ RimSummaryTimeAxisProperties::RimSummaryTimeAxisProperties()
CAF_PDM_InitField(&showTitle, "ShowTitle", false, "Show Title", "", "", ""); CAF_PDM_InitField(&showTitle, "ShowTitle", false, "Show Title", "", "", "");
CAF_PDM_InitField(&title, "Title", QString("Time"), "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_InitField(&m_isAutoZoom, "AutoZoom", true, "Set Range Automatically", "", "", "");
CAF_PDM_InitFieldNoDefault(&m_timeMode, "TimeMode", "Time Mode", "", "", ""); CAF_PDM_InitFieldNoDefault(&m_timeMode, "TimeMode", "Time Mode", "", "", "");
@ -98,6 +89,52 @@ RimSummaryTimeAxisProperties::RimSummaryTimeAxisProperties()
CAF_PDM_InitFieldNoDefault(&m_visibleTimeRangeMin, "VisibleTimeModeRangeMin", "Min", "", "", ""); CAF_PDM_InitFieldNoDefault(&m_visibleTimeRangeMin, "VisibleTimeModeRangeMin", "Min", "", "", "");
m_visibleDateRangeMin.uiCapability()->setUiEditorTypeName(caf::PdmUiLineEditor::uiEditorTypeName()); 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; QList<caf::PdmOptionItemInfo> options;
*useOptionsOnly = true; *useOptionsOnly = true;
if (&titleFontSize == fieldNeedingOptions || if (&m_titleFontSize == fieldNeedingOptions ||
&valuesFontSize == fieldNeedingOptions) &m_valuesFontSize == fieldNeedingOptions)
{ {
std::vector<int> fontSizes; std::vector<int> fontSizes;
fontSizes.push_back(8); fontSizes.push_back(8);
@ -272,6 +309,22 @@ caf::PdmFieldHandle* RimSummaryTimeAxisProperties::objectToggleField()
return &m_isActive; 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")); caf::PdmUiGroup& titleGroup = *(uiOrdering.addNewGroup("Axis Title"));
titleGroup.add(&showTitle); titleGroup.add(&showTitle);
titleGroup.add(&title); titleGroup.add(&title);
titleGroup.add(&titlePositionEnum); titleGroup.add(&m_titlePositionEnum);
titleGroup.add(&titleFontSize); titleGroup.add(&m_titleFontSize);
caf::PdmUiGroup* timeGroup = uiOrdering.addNewGroup("Time Values"); caf::PdmUiGroup* timeGroup = uiOrdering.addNewGroup("Time Values");
timeGroup->add(&m_timeMode); timeGroup->add(&m_timeMode);
@ -356,7 +409,7 @@ void RimSummaryTimeAxisProperties::defineUiOrdering(QString uiConfigName, caf::P
timeGroup->add(&m_visibleTimeRangeMax); timeGroup->add(&m_visibleTimeRangeMax);
timeGroup->add(&m_visibleTimeRangeMin); timeGroup->add(&m_visibleTimeRangeMin);
} }
timeGroup->add(&valuesFontSize); timeGroup->add(&m_valuesFontSize);
uiOrdering.skipRemainingFields(true); uiOrdering.skipRemainingFields(true);
} }

View File

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

View File

@ -17,6 +17,8 @@
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
#include "RiuGridCrossQwtPlot.h" #include "RiuGridCrossQwtPlot.h"
#include "RiaFontCache.h"
#include "RiuCvfOverlayItemWidget.h" #include "RiuCvfOverlayItemWidget.h"
#include "RiuRimQwtPlotCurve.h" #include "RiuRimQwtPlotCurve.h"
#include "RiuQwtCurvePointTracker.h" #include "RiuQwtCurvePointTracker.h"
@ -28,6 +30,7 @@
#include "RimRegularLegendConfig.h" #include "RimRegularLegendConfig.h"
#include "cafCmdFeatureMenuBuilder.h" #include "cafCmdFeatureMenuBuilder.h"
#include "cafFixedAtlasFont.h"
#include "cafSelectionManager.h" #include "cafSelectionManager.h"
#include "cafTitledOverlayFrame.h" #include "cafTitledOverlayFrame.h"
@ -94,6 +97,7 @@ void RiuGridCrossQwtPlot::addOrUpdateDataSetLegend(RimGridCrossPlotDataSet* data
if (overlayWidget) if (overlayWidget)
{ {
caf::TitledOverlayFrame* overlayItem = dataSet->legendConfig()->titledOverlayFrame(); caf::TitledOverlayFrame* overlayItem = dataSet->legendConfig()->titledOverlayFrame();
applyFontSizeToOverlayItem(overlayItem);
resizeOverlayItemToFitPlot(overlayItem); resizeOverlayItemToFitPlot(overlayItem);
overlayWidget->updateFromOverlayItem(overlayItem); overlayWidget->updateFromOverlayItem(overlayItem);
} }
@ -135,6 +139,7 @@ void RiuGridCrossQwtPlot::updateLegendSizesToMatchPlot()
{ {
RiuCvfOverlayItemWidget* overlayWidget = pairIt->second; RiuCvfOverlayItemWidget* overlayWidget = pairIt->second;
caf::TitledOverlayFrame* overlayItem = dataSet->legendConfig()->titledOverlayFrame(); caf::TitledOverlayFrame* overlayItem = dataSet->legendConfig()->titledOverlayFrame();
applyFontSizeToOverlayItem(overlayItem);
if (resizeOverlayItemToFitPlot(overlayItem)) if (resizeOverlayItemToFitPlot(overlayItem))
{ {
anyLegendResized = true; anyLegendResized = true;
@ -208,6 +213,9 @@ void RiuGridCrossQwtPlot::updateInfoBoxLayout()
if (!infoText.empty()) if (!infoText.empty())
{ {
m_infoBox->label()->setText(infoText.join("\n")); m_infoBox->label()->setText(infoText.join("\n"));
QFont font = m_infoBox->font();
font.setPointSize(crossPlot->legendFontSize());
m_infoBox->setFont(font);
m_infoBox->adjustSize(); m_infoBox->adjustSize();
QRect infoRect = m_infoBox->frameGeometry(); QRect infoRect = m_infoBox->frameGeometry();
QRect canvasRect = canvas()->frameGeometry(); QRect canvasRect = canvas()->frameGeometry();
@ -401,3 +409,14 @@ bool RiuGridCrossQwtPlot::curveText(const QwtPlotCurve* curve,
} }
return false; return false;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiuGridCrossQwtPlot::applyFontSizeToOverlayItem(caf::TitledOverlayFrame* overlayItem)
{
RimGridCrossPlot* crossPlot = static_cast<RimGridCrossPlot*>(ownerViewWindow());
int fontSize = crossPlot->legendFontSize();
cvf::ref<cvf::Font> cafFont = RiaFontCache::getFont(RiaFontCache::fontSizeEnumFromPointSize(fontSize));
overlayItem->setFont(cafFont.p());
}

View File

@ -66,13 +66,14 @@ protected:
void selectSample(QwtPlotCurve* curve, int sampleNumber) override; void selectSample(QwtPlotCurve* curve, int sampleNumber) override;
void clearSampleSelection() override; void clearSampleSelection() override;
bool curveText(const QwtPlotCurve* curve, QString* curveTitle, QString* xParamName, QString* yParamName) const; bool curveText(const QwtPlotCurve* curve, QString* curveTitle, QString* xParamName, QString* yParamName) const;
void applyFontSizeToOverlayItem(caf::TitledOverlayFrame* overlayItem);
private: private:
typedef caf::PdmPointer<RimGridCrossPlotDataSet> DataSetPtr; typedef caf::PdmPointer<RimGridCrossPlotDataSet> DataSetPtr;
typedef QPointer<RiuCvfOverlayItemWidget> LegendPtr; typedef QPointer<RiuCvfOverlayItemWidget> LegendPtr;
typedef QPointer<RiuDraggableOverlayFrame> InfoBoxPtr; typedef QPointer<RiuDraggableOverlayFrame> InfoBoxPtr;
InfoBoxPtr m_infoBox; InfoBoxPtr m_infoBox;
std::map<DataSetPtr, LegendPtr> m_legendWidgets; std::map<DataSetPtr, LegendPtr> m_legendWidgets;
std::unique_ptr<RiuPlotAnnotationTool> m_annotationTool; std::unique_ptr<RiuPlotAnnotationTool> m_annotationTool;
QwtPlotMarker* m_selectedPointMarker; QwtPlotMarker* m_selectedPointMarker;

View File

@ -147,7 +147,7 @@ void RiuPvtPlotWidget::setPlotDefaults(QwtPlot* plot)
// Axis number font // Axis number font
{ {
QFont axisFont = plot->axisFont(QwtPlot::xBottom); QFont axisFont = plot->axisFont(QwtPlot::xBottom);
axisFont.setPixelSize(11); axisFont.setPointSize(10);
plot->setAxisFont(QwtPlot::xBottom, axisFont); plot->setAxisFont(QwtPlot::xBottom, axisFont);
plot->setAxisFont(QwtPlot::yLeft, axisFont); plot->setAxisFont(QwtPlot::yLeft, axisFont);
} }
@ -156,7 +156,7 @@ void RiuPvtPlotWidget::setPlotDefaults(QwtPlot* plot)
{ {
QwtText axisTitle = plot->axisTitle(QwtPlot::xBottom); QwtText axisTitle = plot->axisTitle(QwtPlot::xBottom);
QFont axisTitleFont = axisTitle.font(); QFont axisTitleFont = axisTitle.font();
axisTitleFont.setPixelSize(11); axisTitleFont.setPointSize(10);
axisTitleFont.setBold(false); axisTitleFont.setBold(false);
axisTitle.setFont(axisTitleFont); axisTitle.setFont(axisTitleFont);
axisTitle.setRenderFlags(Qt::AlignRight); axisTitle.setRenderFlags(Qt::AlignRight);
@ -168,7 +168,7 @@ void RiuPvtPlotWidget::setPlotDefaults(QwtPlot* plot)
{ {
QwtText plotTitle = plot->title(); QwtText plotTitle = plot->title();
QFont titleFont = plotTitle.font(); QFont titleFont = plotTitle.font();
titleFont.setPixelSize(14); titleFont.setPointSize(14);
plotTitle.setFont(titleFont); plotTitle.setFont(titleFont);
plot->setTitle(plotTitle); plot->setTitle(plotTitle);
} }
@ -506,7 +506,7 @@ RiuPvtPlotPanel::RiuPvtPlotPanel(QDockWidget* parent)
m_titleLabel = new QLabel("", this); m_titleLabel = new QLabel("", this);
m_titleLabel->setAlignment(Qt::AlignHCenter); m_titleLabel->setAlignment(Qt::AlignHCenter);
QFont font = m_titleLabel->font(); QFont font = m_titleLabel->font();
font.setPixelSize(14); font.setPointSize(14);
font.setBold(true); font.setBold(true);
m_titleLabel->setFont(font); m_titleLabel->setFont(font);

View File

@ -55,7 +55,7 @@ void RiuQwtPlotTools::setCommonPlotBehaviour(QwtPlot* plot)
// Axis number font // Axis number font
QFont axisFont = plot->axisFont(QwtPlot::xBottom); QFont axisFont = plot->axisFont(QwtPlot::xBottom);
axisFont.setPixelSize(11); axisFont.setPointSize(10);
plot->setAxisFont(QwtPlot::xBottom, axisFont); plot->setAxisFont(QwtPlot::xBottom, axisFont);
plot->setAxisFont(QwtPlot::xTop, axisFont); plot->setAxisFont(QwtPlot::xTop, axisFont);
@ -69,7 +69,7 @@ void RiuQwtPlotTools::setCommonPlotBehaviour(QwtPlot* plot)
{ {
QwtText axisTitle = plot->axisTitle(axis); QwtText axisTitle = plot->axisTitle(axis);
QFont axisTitleFont = axisTitle.font(); QFont axisTitleFont = axisTitle.font();
axisTitleFont.setPixelSize(11); axisTitleFont.setPointSize(10);
axisTitleFont.setBold(false); axisTitleFont.setBold(false);
axisTitle.setFont(axisTitleFont); axisTitle.setFont(axisTitleFont);
axisTitle.setRenderFlags(Qt::AlignRight); axisTitle.setRenderFlags(Qt::AlignRight);

View File

@ -159,7 +159,7 @@ void RiuRelativePermeabilityPlotPanel::setPlotDefaults(QwtPlot* plot)
{ {
QwtText plotTitle = plot->title(); QwtText plotTitle = plot->title();
QFont titleFont = plotTitle.font(); QFont titleFont = plotTitle.font();
titleFont.setPixelSize(14); titleFont.setPointSize(14);
plotTitle.setFont(titleFont); plotTitle.setFont(titleFont);
plot->setTitle(plotTitle); plot->setTitle(plotTitle);
} }

View File

@ -57,7 +57,7 @@ RiuTofAccumulatedPhaseFractionsPlot::RiuTofAccumulatedPhaseFractionsPlot(RimTofA
setDefaults(); setDefaults();
QwtText title("Cumulative Saturation by Time of Flight"); QwtText title("Cumulative Saturation by Time of Flight");
QFont titleFont = title.font(); QFont titleFont = title.font();
titleFont.setPixelSize(12); titleFont.setPointSize(12);
title.setFont(titleFont); title.setFont(titleFont);
setTitle(title); setTitle(title);
@ -249,7 +249,7 @@ void RiuTofAccumulatedPhaseFractionsPlot::setCommonPlotBehaviour(QwtPlot* plot)
// Axis number font // Axis number font
QFont axisFont = plot->axisFont(QwtPlot::xBottom); QFont axisFont = plot->axisFont(QwtPlot::xBottom);
axisFont.setPixelSize(11); axisFont.setPointSize(10);
plot->setAxisFont(QwtPlot::xBottom, axisFont); plot->setAxisFont(QwtPlot::xBottom, axisFont);
plot->setAxisFont(QwtPlot::xTop, axisFont); plot->setAxisFont(QwtPlot::xTop, axisFont);
@ -259,7 +259,7 @@ void RiuTofAccumulatedPhaseFractionsPlot::setCommonPlotBehaviour(QwtPlot* plot)
// Axis title font // Axis title font
QwtText axisTitle = plot->axisTitle(QwtPlot::xBottom); QwtText axisTitle = plot->axisTitle(QwtPlot::xBottom);
QFont axisTitleFont = axisTitle.font(); QFont axisTitleFont = axisTitle.font();
axisTitleFont.setPixelSize(11); axisTitleFont.setPointSize(10);
axisTitleFont.setBold(false); axisTitleFont.setBold(false);
axisTitle.setFont(axisTitleFont); axisTitle.setFont(axisTitleFont);
axisTitle.setRenderFlags(Qt::AlignRight); axisTitle.setRenderFlags(Qt::AlignRight);

View File

@ -95,7 +95,7 @@ RiuViewer::RiuViewer(const QGLFormat& format, QWidget* parent)
{ {
cvf::Font* standardFont = RiaApplication::instance()->defaultSceneFont(); cvf::Font* standardFont = RiaApplication::instance()->defaultSceneFont();
QFont font = QApplication::font(); QFont font = QApplication::font();
font.setPointSize(RiaFontCache::getPointSize(RiaApplication::instance()->preferences()->defaultFontSizeInScene())); font.setPointSize(RiaFontCache::pointSizeFromFontSizeEnum(RiaApplication::instance()->preferences()->defaultSceneFontSize()));
m_axisCross = new cvf::OverlayAxisCross(m_mainCamera.p(), standardFont); m_axisCross = new cvf::OverlayAxisCross(m_mainCamera.p(), standardFont);
m_axisCross->setAxisLabels("X", "Y", "Z"); m_axisCross->setAxisLabels("X", "Y", "Z");
@ -1074,7 +1074,7 @@ void RiuViewer::updateFonts()
m_showAxisCross = true; m_showAxisCross = true;
QFont font = QApplication::font(); QFont font = QApplication::font();
font.setPointSize(RiaFontCache::getPointSize(RiaApplication::instance()->preferences()->defaultFontSizeInScene())); font.setPointSize(RiaFontCache::pointSizeFromFontSizeEnum(RiaApplication::instance()->preferences()->defaultSceneFontSize()));
m_zScaleLabel->setFont(font); m_zScaleLabel->setFont(font);
m_infoLabel->setFont(font); m_infoLabel->setFont(font);