aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mobile-widgets/qml/Settings.qml6
-rw-r--r--mobile-widgets/qml/ThemeTest.qml2
-rw-r--r--mobile-widgets/qml/main.qml17
-rw-r--r--mobile-widgets/themeinterface.cpp8
-rw-r--r--mobile-widgets/themeinterface.h5
5 files changed, 17 insertions, 21 deletions
diff --git a/mobile-widgets/qml/Settings.qml b/mobile-widgets/qml/Settings.qml
index 1310cdf6d..f4bc95db3 100644
--- a/mobile-widgets/qml/Settings.qml
+++ b/mobile-widgets/qml/Settings.qml
@@ -318,7 +318,7 @@ Kirigami.ScrollablePage {
enabled: subsurfaceTheme.currentScale !== 0.85
onClicked: {
PrefDisplay.mobile_scale = 0.85
- fontMetrics.font.pointSize = subsurfaceTheme.basePointSize * PrefDisplay.mobile_scale;
+ fontMetrics.font.pointSize = themeNew.basePointSize * PrefDisplay.mobile_scale;
}
}
SsrfButton {
@@ -326,7 +326,7 @@ Kirigami.ScrollablePage {
enabled: subsurfaceTheme.currentScale !== 1.0
onClicked: {
PrefDisplay.mobile_scale = 1.0
- fontMetrics.font.pointSize = subsurfaceTheme.basePointSize * PrefDisplay.mobile_scale;
+ fontMetrics.font.pointSize = themeNew.basePointSize * PrefDisplay.mobile_scale;
}
}
SsrfButton {
@@ -334,7 +334,7 @@ Kirigami.ScrollablePage {
enabled: subsurfaceTheme.currentScale !== 1.15
onClicked: {
PrefDisplay.mobile_scale = 1.15
- fontMetrics.font.pointSize = subsurfaceTheme.basePointSize * PrefDisplay.mobile_scale;
+ fontMetrics.font.pointSize = themeNew.basePointSize * PrefDisplay.mobile_scale;
}
}
}
diff --git a/mobile-widgets/qml/ThemeTest.qml b/mobile-widgets/qml/ThemeTest.qml
index 41b7e6345..583a7fbc5 100644
--- a/mobile-widgets/qml/ThemeTest.qml
+++ b/mobile-widgets/qml/ThemeTest.qml
@@ -65,7 +65,7 @@ Kirigami.Page {
text: "basePointSize:"
}
Controls.Label {
- text: subsurfaceTheme.basePointSize
+ text: ThemeNew.basePointSize
}
Controls.Label {
diff --git a/mobile-widgets/qml/main.qml b/mobile-widgets/qml/main.qml
index f4b26e38b..ab9248ddf 100644
--- a/mobile-widgets/qml/main.qml
+++ b/mobile-widgets/qml/main.qml
@@ -48,11 +48,6 @@ Kirigami.ApplicationWindow {
}
FontMetrics {
id: fontMetrics
- Component.onCompleted: {
- manager.appendTextToLog("Using the following font: " + fontMetrics.font.family +
- " at " + subsurfaceTheme.basePointSize + "pt" +
- " with mobile_scale: " + PrefDisplay.mobile_scale)
- }
}
visible: false
@@ -595,24 +590,12 @@ if you have network connectivity and want to sync your data to cloud storage."),
// change our glabal grid unit
Kirigami.Units.gridUnit = kirigamiGridUnit
}
- // break binding explicitly. Now we have a basePointSize that we can
- // use to easily scale against
- subsurfaceTheme.basePointSize = subsurfaceTheme.basePointSize * factor;
-
- // set the initial UI scaling as in the the preferences
- fontMetrics.font.pointSize = subsurfaceTheme.basePointSize * PrefDisplay.mobile_scale;
manager.appendTextToLog("Done setting up sizes")
}
QtObject {
id: subsurfaceTheme
- // basePointSize is determinded based on the width of the screen (typically at start of the app)
- // and must not be changed if we change font size. This is tricky in QML. In order to break the
- // binding between basePointSize and fontMetrics.font.pointSize we explicitly multipy it by 1.0
- // in the onComplete handler of this object.
- property double basePointSize: fontMetrics.font.pointSize;
-
property double regularPointSize: fontMetrics.font.pointSize
property double titlePointSize: regularPointSize * 1.5
property double headingPointSize: regularPointSize * 1.2
diff --git a/mobile-widgets/themeinterface.cpp b/mobile-widgets/themeinterface.cpp
index 2d87a9d29..ba72bb7f7 100644
--- a/mobile-widgets/themeinterface.cpp
+++ b/mobile-widgets/themeinterface.cpp
@@ -1,5 +1,7 @@
// SPDX-License-Identifier: GPL-2.0
#include "themeinterface.h"
+#include "qmlmanager.h"
+#include "core/metrics.h"
#include "core/settings/qPrefDisplay.h"
themeInterface *themeInterface::instance()
@@ -16,6 +18,12 @@ void themeInterface::setup(QQmlContext *ct)
// get current theme
instance()->m_currentTheme = qPrefDisplay::theme();
instance()->update_theme();
+
+ // check system font
+ instance()->m_basePointSize = defaultModelFont().pointSize();
+
+ // set initial font size
+ defaultModelFont().setPointSize(m_basePointSize * qPrefDisplay::mobile_scale());
}
void themeInterface::set_currentTheme(const QString &theme)
diff --git a/mobile-widgets/themeinterface.h b/mobile-widgets/themeinterface.h
index cb89c40fd..ee6a8879c 100644
--- a/mobile-widgets/themeinterface.h
+++ b/mobile-widgets/themeinterface.h
@@ -23,6 +23,9 @@ class themeInterface : public QObject {
Q_PROPERTY(QColor secondaryTextColor MEMBER m_secondaryTextColor NOTIFY secondaryTextColorChanged)
Q_PROPERTY(QColor textColor MEMBER m_textColor NOTIFY textColorChanged)
+ // Font
+ Q_PROPERTY(double basePointSize MEMBER m_basePointSize CONSTANT)
+
// Support
Q_PROPERTY(QString currentTheme MEMBER m_currentTheme WRITE set_currentTheme NOTIFY currentThemeChanged)
Q_PROPERTY(QString iconStyle MEMBER m_iconStyle CONSTANT)
@@ -108,6 +111,8 @@ private:
QColor m_secondaryTextColor;
QColor m_textColor;
+ double m_basePointSize;
+
QString m_currentTheme;
QString m_iconStyle;