23void QAndroidPlatformFontDatabase::populateFontDatabase()
25 QString fontpath = fontDir();
28 if (Q_UNLIKELY(!dir.exists())) {
29 qFatal(
"QFontDatabase: Cannot find font directory %s - is Qt installed correctly?",
30 qPrintable(fontpath));
33 QStringList nameFilters;
34 nameFilters <<
"*.ttf"_L1
38 const auto entries = dir.entryInfoList(nameFilters, QDir::Files);
39 for (
const QFileInfo &fi : entries) {
40 const QByteArray file = QFile::encodeName(fi.absoluteFilePath());
41 QFreeTypeFontDatabase::addTTFile(QByteArray(), file);
45QStringList QAndroidPlatformFontDatabase::fallbacksForFamily(
const QString &family,
47 QFont::StyleHint styleHint,
48 QFontDatabasePrivate::ExtendedScript script)
const
52 if (script == QFontDatabasePrivate::Script_Emoji) {
53 result.append(QStringLiteral(
"Noto Color Emoji"));
54 result.append(QStringLiteral(
"Noto Color Emoji Flags"));
58 QLocale locale = QLocale::system();
59 switch (locale.language()) {
60 case QLocale::Chinese: {
61 switch (locale.territory()) {
63 case QLocale::Singapore:
64 result.append(QStringLiteral(
"Noto Sans Mono CJK SC"));
67 case QLocale::HongKong:
69 result.append(QStringLiteral(
"Noto Sans Mono CJK TC"));
77 case QLocale::Japanese:
78 result.append(QStringLiteral(
"Noto Sans Mono CJK JP"));
81 result.append(QStringLiteral(
"Noto Sans Mono CJK KR"));
88 if (styleHint == QFont::Monospace || styleHint == QFont::Courier)
89 result.append(QString(qgetenv(
"QT_ANDROID_FONTS_MONOSPACE")).split(u';'));
90 else if (styleHint == QFont::Serif)
91 result.append(QString(qgetenv(
"QT_ANDROID_FONTS_SERIF")).split(u';'));
93 result.append(QString(qgetenv(
"QT_ANDROID_FONTS")).split(u';'));
94 result.append(QFreeTypeFontDatabase::fallbacksForFamily(family, style, styleHint, script));