Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QFontDatabasePrivate Class Reference

#include <qfontdatabase_p.h>

Collaboration diagram for QFontDatabasePrivate:

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 ()
QtFontFamilyfamily (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 QFontDatabasePrivateinstance ()
static void parseFontName (const QString &name, QString &foundry, QString &family)
static QString resolveFontFamilyAlias (const QString &family)
static QFontEnginefindFont (const QFontDef &request, int script, bool preferScriptOverFamily=false)
static void load (const QFontPrivate *d, int script)
static QFontDatabasePrivateensureFontDatabase ()

Public Attributes

int count
QtFontFamily ** families
bool populated = false
QHash< ExtendedScript, QStringListapplicationFallbackFontFamiliesHash
QCache< QtFontFallbacksCacheKey, QStringListfallbacksCache
QList< ApplicationFontapplicationFonts

Detailed Description

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:

  1. 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().

  2. 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.

Member Enumeration Documentation

◆ ExtendedScript

Enumerator
Script_Common 
Script_Latin 
Script_Emoji 
ScriptCount 

Definition at line 218 of file qfontdatabase_p.h.

◆ FamilyRequestFlags

Enumerator
RequestFamily 
EnsureCreated 
EnsurePopulated 

Definition at line 211 of file qfontdatabase_p.h.

Constructor & Destructor Documentation

◆ QFontDatabasePrivate()

QFontDatabasePrivate::QFontDatabasePrivate ( )
inline

Definition at line 199 of file qfontdatabase_p.h.

◆ ~QFontDatabasePrivate()

QFontDatabasePrivate::~QFontDatabasePrivate ( )
inline

Definition at line 205 of file qfontdatabase_p.h.

Member Function Documentation

◆ addAppFont()

int QFontDatabasePrivate::addAppFont ( const QByteArray & fontData,
const QString & fileName )

Definition at line 2190 of file qfontdatabase.cpp.

◆ addApplicationFallbackFontFamily()

void QFontDatabasePrivate::addApplicationFallbackFontFamily ( ExtendedScript script,
const QString & familyName )

Definition at line 2265 of file qfontdatabase.cpp.

◆ applicationFallbackFontFamilies()

QStringList QFontDatabasePrivate::applicationFallbackFontFamilies ( ExtendedScript script)

Definition at line 2244 of file qfontdatabase.cpp.

◆ clearFamilies()

void QFontDatabasePrivate::clearFamilies ( )

Definition at line 280 of file qfontdatabase.cpp.

◆ ensureFontDatabase()

QFontDatabasePrivate * QFontDatabasePrivate::ensureFontDatabase ( )
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.

◆ family()

QtFontFamily * QFontDatabasePrivate::family ( const QString & f,
FamilyRequestFlags flags = EnsurePopulated )

Definition at line 307 of file qfontdatabase.cpp.

◆ findFont()

QFontEngine * QFontDatabasePrivate::findFont ( const QFontDef & req,
int script,
bool preferScriptOverFamily = false )
static

Definition at line 2635 of file qfontdatabase.cpp.

◆ instance()

QFontDatabasePrivate * QFontDatabasePrivate::instance ( )
static

Definition at line 542 of file qfontdatabase.cpp.

◆ invalidate()

void QFontDatabasePrivate::invalidate ( )

Definition at line 295 of file qfontdatabase.cpp.

◆ isApplicationFont()

bool QFontDatabasePrivate::isApplicationFont ( const QString & fileName)

Definition at line 2228 of file qfontdatabase.cpp.

◆ load()

void QFontDatabasePrivate::load ( const QFontPrivate * d,
int script )
static

Definition at line 2835 of file qfontdatabase.cpp.

◆ parseFontName()

void QFontDatabasePrivate::parseFontName ( const QString & name,
QString & foundry,
QString & family )
static

Definition at line 2178 of file qfontdatabase.cpp.

◆ removeApplicationFallbackFontFamily()

bool QFontDatabasePrivate::removeApplicationFallbackFontFamily ( ExtendedScript script,
const QString & familyName )

Definition at line 2249 of file qfontdatabase.cpp.

◆ resolveFontFamilyAlias()

QString QFontDatabasePrivate::resolveFontFamilyAlias ( const QString & family)
static

Definition at line 2933 of file qfontdatabase.cpp.

◆ setApplicationFallbackFontFamilies()

void QFontDatabasePrivate::setApplicationFallbackFontFamilies ( ExtendedScript script,
const QStringList & familyNames )

Definition at line 2236 of file qfontdatabase.cpp.

Member Data Documentation

◆ applicationFallbackFontFamiliesHash

QHash<ExtendedScript, QStringList> QFontDatabasePrivate::applicationFallbackFontFamiliesHash

Definition at line 231 of file qfontdatabase_p.h.

◆ applicationFonts

QList<ApplicationFont> QFontDatabasePrivate::applicationFonts

Definition at line 255 of file qfontdatabase_p.h.

◆ count

int QFontDatabasePrivate::count

Definition at line 227 of file qfontdatabase_p.h.

◆ fallbacksCache

QCache<QtFontFallbacksCacheKey, QStringList> QFontDatabasePrivate::fallbacksCache

Definition at line 233 of file qfontdatabase_p.h.

◆ families

QtFontFamily** QFontDatabasePrivate::families

Definition at line 228 of file qfontdatabase_p.h.

◆ populated

bool QFontDatabasePrivate::populated = false

Definition at line 229 of file qfontdatabase_p.h.


The documentation for this class was generated from the following files: