From a0888a241db860fc9c4d0c8a2155cc6fe597c697 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Wed, 15 Apr 2015 22:50:50 +0200 Subject: Scale default font size by the pixel density. Add global bool highDpiScalingEnabled for toggling high-dpi scaling. --- src/plugins/platforms/android/androidjnimain.cpp | 10 +++++++++- src/plugins/platforms/android/androidjnimain.h | 1 + src/plugins/platforms/android/qandroidplatformtheme.cpp | 9 +++++++-- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/plugins/platforms/android/androidjnimain.cpp b/src/plugins/platforms/android/androidjnimain.cpp index f794140d85..1062a52222 100644 --- a/src/plugins/platforms/android/androidjnimain.cpp +++ b/src/plugins/platforms/android/androidjnimain.cpp @@ -111,6 +111,7 @@ static int m_desktopWidthPixels = 0; static int m_desktopHeightPixels = 0; static double m_scaledDensity = 0; static double m_density = 1.0; +static bool m_highDpiScalingEnabled = true; static volatile bool m_pauseApplication; @@ -164,6 +165,11 @@ namespace QtAndroid return m_density; } + bool highDpiScalingEnabled() + { + return m_highDpiScalingEnabled; + } + JavaVM *javaVM() { return m_javaVM; @@ -562,7 +568,9 @@ static void setDisplayMetrics(JNIEnv */*env*/, jclass /*clazz*/, m_scaledDensity = scaledDensity; m_density = density; - QHighDpiScaling::setFactor(density); + if (m_highDpiScalingEnabled) + QHighDpiScaling::setFactor(density); + if (!m_androidPlatformIntegration) { QAndroidPlatformIntegration::setDefaultDisplayMetrics(desktopWidthPixels, desktopHeightPixels, diff --git a/src/plugins/platforms/android/androidjnimain.h b/src/plugins/platforms/android/androidjnimain.h index 1fb25a44c5..4a60458cfc 100644 --- a/src/plugins/platforms/android/androidjnimain.h +++ b/src/plugins/platforms/android/androidjnimain.h @@ -72,6 +72,7 @@ namespace QtAndroid int desktopHeightPixels(); double scaledDensity(); double density(); + bool highDpiScalingEnabled(); JavaVM *javaVM(); AAssetManager *assetManager(); jclass applicationClass(); diff --git a/src/plugins/platforms/android/qandroidplatformtheme.cpp b/src/plugins/platforms/android/qandroidplatformtheme.cpp index 3e2ae7c939..9dd7e6237a 100644 --- a/src/plugins/platforms/android/qandroidplatformtheme.cpp +++ b/src/plugins/platforms/android/qandroidplatformtheme.cpp @@ -31,6 +31,7 @@ ** ****************************************************************************/ +#include "androidjnimain.h" #include "androidjnimenu.h" #include "qandroidplatformtheme.h" #include "qandroidplatformmenubar.h" @@ -244,8 +245,12 @@ static std::shared_ptr loadAndroidStyle(QPalette *defaultPalette) // Font size (in pixels) attributeIterator = item.find(QLatin1String("TextAppearance_textSize")); - if (attributeIterator != item.constEnd()) - font.setPixelSize(int(attributeIterator.value().toDouble())); + if (attributeIterator != item.constEnd()) { + int pixelSize = int(attributeIterator.value().toDouble()); + if (QtAndroid::highDpiScalingEnabled()) + pixelSize /= QtAndroid::density(); + font.setPixelSize(pixelSize); + } // Font style attributeIterator = item.find(QLatin1String("TextAppearance_textStyle")); -- cgit v1.2.3