Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qandroidplatformfontdatabase.cpp
Go to the documentation of this file.
1// Copyright (C) 2012 BogDan Vatra <bogdan@kde.org>
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#include <QDir>
5
7
9
10using namespace Qt::StringLiterals;
11
13{
14 return "/system/fonts"_L1;
15}
16
18{
19 return QFont("Roboto"_L1);
20}
21
23{
24 QString fontpath = fontDir();
25 QDir dir(fontpath);
26
27 if (Q_UNLIKELY(!dir.exists())) {
28 qFatal("QFontDatabase: Cannot find font directory %s - is Qt installed correctly?",
29 qPrintable(fontpath));
30 }
31
32 QStringList nameFilters;
33 nameFilters << "*.ttf"_L1
34 << "*.otf"_L1
35 << "*.ttc"_L1;
36
37 const auto entries = dir.entryInfoList(nameFilters, QDir::Files);
38 for (const QFileInfo &fi : entries) {
41 }
42}
43
45 QFont::Style style,
46 QFont::StyleHint styleHint,
47 QChar::Script script) const
48{
50 if (styleHint == QFont::Monospace || styleHint == QFont::Courier)
51 result.append(QString(qgetenv("QT_ANDROID_FONTS_MONOSPACE")).split(u';'));
52 else if (styleHint == QFont::Serif)
53 result.append(QString(qgetenv("QT_ANDROID_FONTS_SERIF")).split(u';'));
54 else
55 result.append(QString(qgetenv("QT_ANDROID_FONTS")).split(u';'));
56 result.append(QFreeTypeFontDatabase::fallbacksForFamily(family, style, styleHint, script));
57
58 return result;
59}
60
QString fontDir() const override
Returns the directory containing the fonts used by the database.
void populateFontDatabase() override
This function is called once at startup by Qt's internal font database.
QStringList fallbacksForFamily(const QString &family, QFont::Style style, QFont::StyleHint styleHint, QChar::Script script) const override
Returns a list of alternative fonts for the specified family and style and script using the styleHint...
QFont defaultFont() const override
Returns the default system font.
\inmodule QtCore
Definition qbytearray.h:57
Script
Definition qchar.h:144
\inmodule QtCore
Definition qdir.h:19
@ Files
Definition qdir.h:22
\inmodule QtCore \reentrant
Definition qfileinfo.h:22
QString absoluteFilePath() const
Returns an absolute path including the file name.
static QByteArray encodeName(const QString &fileName)
Converts fileName to an 8-bit encoding that you can use in native APIs.
Definition qfile.h:158
\reentrant
Definition qfont.h:20
StyleHint
Style hints are used by the \l{QFont}{font matching} algorithm to find an appropriate default family ...
Definition qfont.h:23
@ Monospace
Definition qfont.h:31
@ Serif
Definition qfont.h:25
@ Courier
Definition qfont.h:26
Style
This enum describes the different styles of glyphs that are used to display text.
Definition qfont.h:73
static QStringList addTTFile(const QByteArray &fontData, const QByteArray &file, QFontDatabasePrivate::ApplicationFont *applicationFont=nullptr)
virtual QStringList fallbacksForFamily(const QString &family, QFont::Style style, QFont::StyleHint styleHint, QChar::Script script) const
Returns a list of alternative fonts for the specified family and style and script using the styleHint...
\inmodule QtCore
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:127
Combined button and popup list for selecting options.
#define Q_UNLIKELY(x)
#define qFatal
Definition qlogging.h:164
GLuint64EXT * result
[6]
static void split(QT_FT_Vector *b)
#define qPrintable(string)
Definition qstring.h:1391
Q_CORE_EXPORT QByteArray qgetenv(const char *varName)
QFile file
[0]
QFileInfo fi("c:/temp/foo")
[newstuff]
QString dir
[11]