24void QAndroidPlatformFontDatabase::populateFontDatabase()
26 QString fontpath = fontDir();
29 if (Q_UNLIKELY(!dir.exists())) {
30 qFatal(
"QFontDatabase: Cannot find font directory %s - is Qt installed correctly?",
31 qPrintable(fontpath));
34 QStringList nameFilters;
35 nameFilters <<
"*.ttf"_L1
39 const auto entries = dir.entryInfoList(nameFilters, QDir::Files);
40 for (
const QFileInfo &fi : entries) {
41 const QByteArray file = QFile::encodeName(fi.absoluteFilePath());
42 QFreeTypeFontDatabase::addTTFile(QByteArray(), file);
46QStringList QAndroidPlatformFontDatabase::fallbacksForFamily(
const QString &family,
48 QFont::StyleHint styleHint,
49 QFontDatabasePrivate::ExtendedScript script)
const
53 if (script == QFontDatabasePrivate::Script_Emoji) {
54 result.append(QStringLiteral(
"Noto Color Emoji"));
55 result.append(QStringLiteral(
"Noto Color Emoji Flags"));
59 QLocale locale = QLocale::system();
60 switch (locale.language()) {
61 case QLocale::Chinese: {
62 switch (locale.territory()) {
64 case QLocale::Singapore:
65 result.append(QStringLiteral(
"Noto Sans Mono CJK SC"));
68 case QLocale::HongKong:
70 result.append(QStringLiteral(
"Noto Sans Mono CJK TC"));
78 case QLocale::Japanese:
79 result.append(QStringLiteral(
"Noto Sans Mono CJK JP"));
82 result.append(QStringLiteral(
"Noto Sans Mono CJK KR"));
89 if (styleHint == QFont::Monospace || styleHint == QFont::Courier)
90 result.append(QString(qgetenv(
"QT_ANDROID_FONTS_MONOSPACE")).split(u';'));
91 else if (styleHint == QFont::Serif)
92 result.append(QString(qgetenv(
"QT_ANDROID_FONTS_SERIF")).split(u';'));
94 result.append(QString(qgetenv(
"QT_ANDROID_FONTS")).split(u';'));
95 result.append(QFreeTypeFontDatabase::fallbacksForFamily(family, style, styleHint, script));