summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/android
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2015-08-06 10:45:40 +0200
committerFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2015-08-06 10:54:01 +0200
commit77da617dc8e378a631ee8c15b1b414f16b87f147 (patch)
tree563f4f8e64e416774ea2b1599b896b589385168c /src/plugins/platforms/android
parentc17134e2db4d364855aa78a0d3c47cb9ef964dd9 (diff)
parent01f3530650f9f6f4c08520263a3c62281d81e3fc (diff)
Merge remote-tracking branch 'origin/5.5' into dev
Conflicts: doc/global/qt-cpp-defines.qdocconf src/3rdparty/forkfd/forkfd.c src/corelib/codecs/qtextcodec.cpp src/corelib/kernel/qmetatype.cpp src/corelib/tools/qset.qdoc src/gui/accessible/qaccessible.cpp src/gui/image/qpixmapcache.cpp src/opengl/qgl.cpp src/tools/qdoc/generator.cpp src/widgets/kernel/qwidget.cpp tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp Change-Id: I4fbe1fa756a54c6843aa75f4ef70a1069ba7b085
Diffstat (limited to 'src/plugins/platforms/android')
-rw-r--r--src/plugins/platforms/android/androidjnimain.cpp5
-rw-r--r--src/plugins/platforms/android/qandroidplatformfontdatabase.cpp35
-rw-r--r--src/plugins/platforms/android/qandroidplatformfontdatabase.h3
3 files changed, 20 insertions, 23 deletions
diff --git a/src/plugins/platforms/android/androidjnimain.cpp b/src/plugins/platforms/android/androidjnimain.cpp
index 19ab051162..cd40b7eec2 100644
--- a/src/plugins/platforms/android/androidjnimain.cpp
+++ b/src/plugins/platforms/android/androidjnimain.cpp
@@ -443,6 +443,11 @@ static void *startMainMethod(void */*data*/)
if (m_applicationClass)
QJNIObjectPrivate::callStaticMethod<void>(m_applicationClass, "quitApp", "()V");
+ // All attached threads should be detached before returning from this function.
+ JavaVM *vm = QtAndroidPrivate::javaVM();
+ if (vm != 0)
+ vm->DetachCurrentThread();
+
return 0;
}
diff --git a/src/plugins/platforms/android/qandroidplatformfontdatabase.cpp b/src/plugins/platforms/android/qandroidplatformfontdatabase.cpp
index 9b60ab291c..be1a3d7bdf 100644
--- a/src/plugins/platforms/android/qandroidplatformfontdatabase.cpp
+++ b/src/plugins/platforms/android/qandroidplatformfontdatabase.cpp
@@ -45,26 +45,20 @@ QString QAndroidPlatformFontDatabase::fontDir() const
void QAndroidPlatformFontDatabase::populateFontDatabase()
{
QString fontpath = fontDir();
+ QDir dir(fontpath);
- if (!QFile::exists(fontpath)) {
+ if (!dir.exists()) {
qFatal("QFontDatabase: Cannot find font directory %s - is Qt installed correctly?",
qPrintable(fontpath));
}
- QDir dir(fontpath);
- QList<QFileInfo> entries = dir.entryInfoList(QStringList() << QStringLiteral("*.ttf") << QStringLiteral("*.otf"), QDir::Files);
- for (int i = 0; i < int(entries.count()); ++i) {
- const QByteArray file = QFile::encodeName(entries.at(i).absoluteFilePath());
- QSupportedWritingSystems supportedWritingSystems;
- QStringList families = addTTFile(QByteArray(), file, &supportedWritingSystems);
+ QStringList nameFilters;
+ nameFilters << QLatin1String("*.ttf")
+ << QLatin1String("*.otf");
- extern int qt_script_for_writing_system(QFontDatabase::WritingSystem writingSystem);
- for (int i = 0; i < QFontDatabase::WritingSystemsCount; ++i) {
- if (i == QFontDatabase::Any || supportedWritingSystems.supported(QFontDatabase::WritingSystem(i))) {
- QChar::Script script = QChar::Script(qt_script_for_writing_system(QFontDatabase::WritingSystem(i)));
- m_fallbacks[script] += families;
- }
- }
+ foreach (const QFileInfo &fi, dir.entryInfoList(nameFilters, QDir::Files)) {
+ const QByteArray file = QFile::encodeName(fi.absoluteFilePath());
+ QBasicFontDatabase::addTTFile(QByteArray(), file);
}
}
@@ -73,15 +67,16 @@ QStringList QAndroidPlatformFontDatabase::fallbacksForFamily(const QString &fami
QFont::StyleHint styleHint,
QChar::Script script) const
{
- Q_UNUSED(family);
- Q_UNUSED(style);
-
+ QStringList result;
if (styleHint == QFont::Monospace || styleHint == QFont::Courier)
- return QString(qgetenv("QT_ANDROID_FONTS_MONOSPACE")).split(";") + m_fallbacks[script];
+ result.append(QString(qgetenv("QT_ANDROID_FONTS_MONOSPACE")).split(";"));
else if (styleHint == QFont::Serif)
- return QString(qgetenv("QT_ANDROID_FONTS_SERIF")).split(";") + m_fallbacks[script];
+ result.append(QString(qgetenv("QT_ANDROID_FONTS_SERIF")).split(";"));
+ else
+ result.append(QString(qgetenv("QT_ANDROID_FONTS")).split(";"));
+ result.append(QPlatformFontDatabase::fallbacksForFamily(family, style, styleHint, script));
- return QString(qgetenv("QT_ANDROID_FONTS")).split(";") + m_fallbacks[script];
+ return result;
}
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/android/qandroidplatformfontdatabase.h b/src/plugins/platforms/android/qandroidplatformfontdatabase.h
index 45de47a58c..89a9ed8bc0 100644
--- a/src/plugins/platforms/android/qandroidplatformfontdatabase.h
+++ b/src/plugins/platforms/android/qandroidplatformfontdatabase.h
@@ -47,9 +47,6 @@ public:
QFont::Style style,
QFont::StyleHint styleHint,
QChar::Script script) const;
-
-private:
- QHash<QChar::Script, QStringList> m_fallbacks;
};
QT_END_NAMESPACE