4#ifndef QPLATFORMFONTDATABASE_H
5#define QPLATFORMFONTDATABASE_H
16#include <QtGui/qtguiglobal.h>
17#include <QtCore/qloggingcategory.h>
18#include <QtCore/QString>
19#include <QtCore/QStringList>
20#include <QtCore/QList>
21#include <QtGui/QFontDatabase>
22#include <QtGui/private/qfontengine_p.h>
23#include <QtGui/private/qfontdatabase_p.h>
35 QSupportedWritingSystems();
36 QSupportedWritingSystems(
const QSupportedWritingSystems &other);
37 QSupportedWritingSystems &operator=(
const QSupportedWritingSystems &other);
38 ~QSupportedWritingSystems();
40 void setSupported(QFontDatabase::WritingSystem,
bool supported =
true);
41 bool supported(QFontDatabase::WritingSystem)
const;
46 QWritingSystemsPrivate *d;
48 friend Q_GUI_EXPORT
bool operator==(
const QSupportedWritingSystems &,
const QSupportedWritingSystems &);
49 friend Q_GUI_EXPORT
bool operator!=(
const QSupportedWritingSystems &,
const QSupportedWritingSystems &);
50#ifndef QT_NO_DEBUG_STREAM
51 friend Q_GUI_EXPORT QDebug operator<<(QDebug,
const QSupportedWritingSystems &);
55Q_GUI_EXPORT
bool operator==(
const QSupportedWritingSystems &,
const QSupportedWritingSystems &);
56Q_GUI_EXPORT
bool operator!=(
const QSupportedWritingSystems &,
const QSupportedWritingSystems &);
58#ifndef QT_NO_DEBUG_STREAM
59Q_GUI_EXPORT
QDebug operator<<(QDebug,
const QSupportedWritingSystems &);
62class QFontRequestPrivate;
63class QFontEngineMulti;
68 virtual ~QPlatformFontDatabase();
69 virtual void populateFontDatabase();
70 virtual bool populateFamilyAliases(
const QString &missingFamily) { Q_UNUSED(missingFamily);
return false; }
71 virtual void populateFamily(
const QString &familyName);
72 virtual void invalidate();
74 virtual QStringList fallbacksForFamily(
const QString &family, QFont::Style style, QFont::StyleHint styleHint, QFontDatabasePrivate::ExtendedScript script)
const;
75 virtual QStringList addApplicationFont(
const QByteArray &fontData,
const QString &fileName, QFontDatabasePrivate::ApplicationFont *font =
nullptr);
77 virtual QFontEngine *fontEngine(
const QFontDef &fontDef,
void *handle);
78 virtual QFontEngine *fontEngine(
const QByteArray &fontData, qreal pixelSize, QFont::HintingPreference hintingPreference);
79 virtual QFontEngineMulti *fontEngineMulti(QFontEngine *fontEngine, QFontDatabasePrivate::ExtendedScript script);
80 virtual void releaseHandle(
void *handle);
82 virtual QString fontDir()
const;
84 virtual QFont defaultFont()
const;
85 virtual bool isPrivateFontFamily(
const QString &family)
const;
87 virtual QString resolveFontFamilyAlias(
const QString &family)
const;
88 virtual bool fontsAlwaysScalable()
const;
89 virtual QList<
int> standardSizes()
const;
91 virtual bool supportsVariableApplicationFonts()
const;
92 virtual bool supportsColrv0Fonts()
const;
95 static QSupportedWritingSystems writingSystemsFromTrueTypeBits(quint32 unicodeRange[4], quint32 codePageRange[2]);
96 static QSupportedWritingSystems writingSystemsFromOS2Table(
const char *os2Table, size_t length);
99 static void registerFont(
const QString &familyname,
const QString &stylename,
100 const QString &foundryname, QFont::Weight weight,
101 QFont::Style style, QFont::Stretch stretch,
bool antialiased,
102 bool scalable,
int pixelSize,
bool fixedPitch,
bool colorFont,
103 const QSupportedWritingSystems &writingSystems,
void *handle);
105 static void registerFontFamily(
const QString &familyName);
106 static void registerAliasToFontFamily(
const QString &familyName,
const QString &alias);
108 static void repopulateFontDatabase();
110 static bool isFamilyPopulated(
const QString &familyName);
friend bool operator==(const QByteArray::FromBase64Result &lhs, const QByteArray::FromBase64Result &rhs) noexcept
Returns true if lhs and rhs are equal, otherwise returns false.
friend bool operator!=(const QByteArray::FromBase64Result &lhs, const QByteArray::FromBase64Result &rhs) noexcept
Returns true if lhs and rhs are different, otherwise returns false.
The QSupportedWritingSystems class is used when registering fonts with the internal Qt fontdatabase.
QWritingSystemsPrivate(const QWritingSystemsPrivate *other)
Q_CORE_EXPORT QDebug operator<<(QDebug debug, QDir::Filters filters)
Q_LOGGING_CATEGORY(lcEventDispatcher, "qt.eventdispatcher")
QDebug operator<<(QDebug dbg, const QFileInfo &fi)
void qt_registerFont(const QString &familyName, const QString &stylename, const QString &foundryname, int weight, QFont::Style style, int stretch, bool antialiased, bool scalable, int pixelSize, bool fixedPitch, bool colorFont, const QSupportedWritingSystems &writingSystems, void *handle)
bool qt_isFontFamilyPopulated(const QString &familyName)
void qt_registerFontFamily(const QString &familyName)
void qt_registerAliasToFontFamily(const QString &familyName, const QString &alias)
QString qt_resolveFontFamilyAlias(const QString &alias)
QT_BEGIN_NAMESPACE QT_DECLARE_EXPORTED_QT_LOGGING_CATEGORY(lcAotCompiler, Q_QMLCOMPILER_EXPORT)