32class Q_GUI_EXPORT QCoreTextFontDatabase :
public QPlatformFontDatabase
35 QCoreTextFontDatabase();
36 ~QCoreTextFontDatabase();
37 void populateFontDatabase() override;
38 bool populateFamilyAliases(
const QString &missingFamily) override;
39 void populateFamily(
const QString &familyName) override;
40 void invalidate() override;
42 QStringList fallbacksForFamily(
const QString &family, QFont::Style style, QFont::StyleHint styleHint, QFontDatabasePrivate::ExtendedScript script)
const override;
43 QStringList addApplicationFont(
const QByteArray &fontData,
const QString &fileName, QFontDatabasePrivate::ApplicationFont *applicationFont =
nullptr) override;
44 void releaseHandle(
void *handle) override;
45 bool isPrivateFontFamily(
const QString &family)
const override;
46 QFont defaultFont()
const override;
47 bool fontsAlwaysScalable()
const override;
48 QList<
int> standardSizes()
const override;
49 bool supportsVariableApplicationFonts()
const override;
50 bool supportsColrv0Fonts()
const override;
53 QFont *themeFont(QPlatformTheme::Font)
const;
56 void populateThemeFonts();
57 void populateFromDescriptor(CTFontDescriptorRef font,
const QString &familyName = QString(), QFontDatabasePrivate::ApplicationFont *applicationFont =
nullptr);
58 static CFArrayRef fallbacksForFamily(
const QString &family);
59 QStringList fallbacksForScript(QFontDatabasePrivate::ExtendedScript script)
const;
61 QHash<QPlatformTheme::Font, QFont *> m_themeFonts;
62 QHash<QString, QList<QCFType<CTFontDescriptorRef>>> m_systemFontDescriptors;
63 QHash<QChar::Script, QString> m_hardcodedFallbackFonts;
64 mutable QSet<QString> m_privateFamilies;
66 bool m_hasPopulatedAliases;
68#if defined(Q_OS_MACOS)
69 QMacNotificationObserver m_fontSetObserver;
CFArrayRef fallbacksForDescriptor(CTFontDescriptorRef descriptor)
CGAffineTransform qt_transform_from_fontdef(const QFontDef &fontDef)
static NSString *const kQtFontDataAttribute
static Q_DECL_UNUSED QDebug operator<<(QDebug debug, const FontDescription &fd)
CTFontDescriptorRef descriptorForFamily(const QString &familyName)
static void getFontDescription(CTFontDescriptorRef font, FontDescription *fd)
static CTFontUIFontType fontTypeFromTheme(QPlatformTheme::Font f)
static CTFontDescriptorRef fontDescriptorFromTheme(QPlatformTheme::Font f)
CTFontDescriptorRef descriptorForFamily(const char *familyName)
CTFontDescriptorRef descriptorForFontType(CTFontUIFontType uiType)
T * descriptorAttribute(CTFontDescriptorRef descriptor, CFStringRef name)
CTFontDescriptorRef descriptorForStyle(QFont::StyleHint styleHint)
Q_FORWARD_DECLARE_CF_TYPE(CTFont)
Q_FORWARD_DECLARE_CF_TYPE(CTFontDescriptor)