summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMorten Johan Sørvig <morten.sorvig@theqtcompany.com>2015-04-15 22:50:50 +0200
committerMorten Johan Sørvig <morten.sorvig@theqtcompany.com>2015-04-15 22:50:50 +0200
commita0888a241db860fc9c4d0c8a2155cc6fe597c697 (patch)
tree6681091f01583f6ffb9c2099a21339bceed0b461
parent20e49de81e3889babfe734ec76dd1f295c1f03b4 (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.cpp10
-rw-r--r--src/plugins/platforms/android/androidjnimain.h1
-rw-r--r--src/plugins/platforms/android/qandroidplatformtheme.cpp9
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"));