diff options
author | Morten Johan Sørvig <morten.sorvig@theqtcompany.com> | 2015-04-15 22:50:50 +0200 |
---|---|---|
committer | Morten Johan Sørvig <morten.sorvig@theqtcompany.com> | 2015-04-15 22:50:50 +0200 |
commit | a0888a241db860fc9c4d0c8a2155cc6fe597c697 (patch) | |
tree | 6681091f01583f6ffb9c2099a21339bceed0b461 | |
parent | 20e49de81e3889babfe734ec76dd1f295c1f03b4 (diff) |
Scale default font size by the pixel density.
Add global bool highDpiScalingEnabled for toggling
high-dpi scaling.
-rw-r--r-- | src/plugins/platforms/android/androidjnimain.cpp | 10 | ||||
-rw-r--r-- | src/plugins/platforms/android/androidjnimain.h | 1 | ||||
-rw-r--r-- | 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<AndroidStyle> 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")); |