mobile/UI: don't double apply the font scale factor

The mobile scale code had a fundamental flaw: we applied the scale
factor once to gridUnit, but twice to the font size. So effectively we
had font sizes of 72% and 132% (all of course then rounded to integers
for no good reason) instead of the intended 85% and 115%.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2021-01-14 04:05:38 -08:00
parent 4843ae4ede
commit 2c3d927a42

View file

@ -1,5 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
#include "themeinterface.h"
#include "core/subsurface-string.h"
#include "qmlmanager.h"
#include "core/metrics.h"
#include "core/settings/qPrefDisplay.h"
@ -79,16 +80,17 @@ double ThemeInterface::currentScale()
void ThemeInterface::set_currentScale(double newScale)
{
if (newScale != qPrefDisplay::mobile_scale()) {
if (!IS_FP_SAME(newScale, qPrefDisplay::mobile_scale())) {
double factor = newScale / qPrefDisplay::mobile_scale();
qPrefDisplay::set_mobile_scale(newScale);
emit currentScaleChanged();
// Set current font size
m_basePointSize *= factor;
defaultModelFont().setPointSizeF(m_basePointSize);
}
// Set current font size
defaultModelFont().setPointSizeF(m_basePointSize * qPrefDisplay::mobile_scale());
// adjust all used font sizes
m_regularPointSize = m_basePointSize * qPrefDisplay::mobile_scale();
m_regularPointSize = m_basePointSize;
emit regularPointSizeChanged();
m_headingPointSize = m_regularPointSize * 1.2;