![]() |
Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
|
#include <qfontdatabase_p.h>
Classes | |
struct | ApplicationFont |
Public Types | |
enum | FamilyRequestFlags { RequestFamily = 0 , EnsureCreated , EnsurePopulated } |
enum | ExtendedScript { Script_Common = QChar::Script_Common , Script_Latin = QChar::Script_Latin , Script_Emoji = QChar::ScriptCount , ScriptCount } |
Public Member Functions | |
QFontDatabasePrivate () | |
~QFontDatabasePrivate () | |
void | clearFamilies () |
QtFontFamily * | family (const QString &f, FamilyRequestFlags flags=EnsurePopulated) |
int | addAppFont (const QByteArray &fontData, const QString &fileName) |
bool | isApplicationFont (const QString &fileName) |
void | setApplicationFallbackFontFamilies (ExtendedScript script, const QStringList &familyNames) |
QStringList | applicationFallbackFontFamilies (ExtendedScript script) |
bool | removeApplicationFallbackFontFamily (ExtendedScript script, const QString &familyName) |
void | addApplicationFallbackFontFamily (ExtendedScript script, const QString &familyName) |
void | invalidate () |
Static Public Member Functions | |
static QFontDatabasePrivate * | instance () |
static void | parseFontName (const QString &name, QString &foundry, QString &family) |
static QString | resolveFontFamilyAlias (const QString &family) |
static QFontEngine * | findFont (const QFontDef &request, int script, bool preferScriptOverFamily=false) |
static void | load (const QFontPrivate *d, int script) |
static QFontDatabasePrivate * | ensureFontDatabase () |
Public Attributes | |
int | count |
QtFontFamily ** | families |
bool | populated = false |
QHash< ExtendedScript, QStringList > | applicationFallbackFontFamiliesHash |
QCache< QtFontFallbacksCacheKey, QStringList > | fallbacksCache |
QList< ApplicationFont > | applicationFonts |
Singleton implementation of the public QFontDatabase APIs, accessed through QFontDatabasePrivate::instance().
The database is organized in multiple levels:
The font database is the single source of truth when doing font matching, so the database must be sufficiently filled before attempting a match.
The database is populated (filled) from two sources:
The system (platform's) view of the available fonts
Initiated via QFontDatabasePrivate::populateFontDatabase().
a. Can be registered lazily by family only, by calling QPlatformFontDatabase::registerFontFamily(), and later populated via QPlatformFontDatabase::populateFamily().
b. Or fully registered with all styles, by calling QPlatformFontDatabase::registerFont().
The fonts registered by the application via Qt APIs
Initiated via QFontDatabase::addApplicationFont() and QFontDatabase::addApplicationFontFromData().
Application fonts are always fully registered when added.
Fonts can be added at any time, so the database may grow even after QFontDatabasePrivate::populateFontDatabase() has been completed.
The database does not support granular removal of fonts, so if the system fonts change, or an application font is removed, the font database will be cleared and then filled from scratch, via QFontDatabasePrivate:invalidate() and QFontDatabasePrivate::ensureFontDatabase().
Definition at line 196 of file qfontdatabase_p.h.
Enumerator | |
---|---|
Script_Common | |
Script_Latin | |
Script_Emoji | |
ScriptCount |
Definition at line 218 of file qfontdatabase_p.h.
Enumerator | |
---|---|
RequestFamily | |
EnsureCreated | |
EnsurePopulated |
Definition at line 211 of file qfontdatabase_p.h.
|
inline |
Definition at line 199 of file qfontdatabase_p.h.
|
inline |
Definition at line 205 of file qfontdatabase_p.h.
int QFontDatabasePrivate::addAppFont | ( | const QByteArray & | fontData, |
const QString & | fileName ) |
Definition at line 2190 of file qfontdatabase.cpp.
void QFontDatabasePrivate::addApplicationFallbackFontFamily | ( | ExtendedScript | script, |
const QString & | familyName ) |
Definition at line 2265 of file qfontdatabase.cpp.
QStringList QFontDatabasePrivate::applicationFallbackFontFamilies | ( | ExtendedScript | script | ) |
Definition at line 2244 of file qfontdatabase.cpp.
void QFontDatabasePrivate::clearFamilies | ( | ) |
Definition at line 280 of file qfontdatabase.cpp.
|
static |
Initializes the font database if necessary and returns its pointer. Mutex lock must be held when calling this function.
Definition at line 1354 of file qfontdatabase.cpp.
QtFontFamily * QFontDatabasePrivate::family | ( | const QString & | f, |
FamilyRequestFlags | flags = EnsurePopulated ) |
Definition at line 307 of file qfontdatabase.cpp.
|
static |
Definition at line 2635 of file qfontdatabase.cpp.
|
static |
Definition at line 542 of file qfontdatabase.cpp.
void QFontDatabasePrivate::invalidate | ( | ) |
Definition at line 295 of file qfontdatabase.cpp.
bool QFontDatabasePrivate::isApplicationFont | ( | const QString & | fileName | ) |
Definition at line 2228 of file qfontdatabase.cpp.
|
static |
Definition at line 2835 of file qfontdatabase.cpp.
|
static |
Definition at line 2178 of file qfontdatabase.cpp.
bool QFontDatabasePrivate::removeApplicationFallbackFontFamily | ( | ExtendedScript | script, |
const QString & | familyName ) |
Definition at line 2249 of file qfontdatabase.cpp.
Definition at line 2933 of file qfontdatabase.cpp.
void QFontDatabasePrivate::setApplicationFallbackFontFamilies | ( | ExtendedScript | script, |
const QStringList & | familyNames ) |
Definition at line 2236 of file qfontdatabase.cpp.
QHash<ExtendedScript, QStringList> QFontDatabasePrivate::applicationFallbackFontFamiliesHash |
Definition at line 231 of file qfontdatabase_p.h.
QList<ApplicationFont> QFontDatabasePrivate::applicationFonts |
Definition at line 255 of file qfontdatabase_p.h.
int QFontDatabasePrivate::count |
Definition at line 227 of file qfontdatabase_p.h.
QCache<QtFontFallbacksCacheKey, QStringList> QFontDatabasePrivate::fallbacksCache |
Definition at line 233 of file qfontdatabase_p.h.
QtFontFamily** QFontDatabasePrivate::families |
Definition at line 228 of file qfontdatabase_p.h.
bool QFontDatabasePrivate::populated = false |
Definition at line 229 of file qfontdatabase_p.h.