diff options
Diffstat (limited to 'src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp')
-rw-r--r-- | src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp | 39 |
1 files changed, 15 insertions, 24 deletions
diff --git a/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp b/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp index 8df8da1a38..c70d507b99 100644 --- a/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp +++ b/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp @@ -368,6 +368,7 @@ namespace { class DirectWriteFontFileStream: public IDWriteFontFileStream { + Q_DISABLE_COPY(DirectWriteFontFileStream) public: DirectWriteFontFileStream(const QByteArray &fontData) : m_fontData(fontData) @@ -799,9 +800,9 @@ enum PlatformFieldValue { PlatformId_Microsoft = 3 }; -FontNames qt_getCanonicalFontNames(const uchar *table, quint32 bytes) +QFontNames qt_getCanonicalFontNames(const uchar *table, quint32 bytes) { - FontNames out; + QFontNames out; const int NameRecordSize = 12; const int MS_LangIdEnglish = 0x009; @@ -947,7 +948,7 @@ QString qt_getEnglishName(const QString &familyName, bool includeStyle) goto error; { - const FontNames names = qt_getCanonicalFontNames(table, bytes); + const QFontNames names = qt_getCanonicalFontNames(table, bytes); i18n_name = names.name; if (includeStyle) i18n_name += QLatin1Char(' ') + names.style; @@ -963,9 +964,9 @@ error: } // Note this duplicates parts of qt_getEnglishName, we should try to unify the two functions. -FontNames qt_getCanonicalFontNames(const LOGFONT &lf) +QFontNames qt_getCanonicalFontNames(const LOGFONT &lf) { - FontNames fontNames; + QFontNames fontNames; HDC hdc = GetDC(0); HFONT hfont = CreateFontIndirect(&lf); @@ -1054,7 +1055,7 @@ static bool addFontToDatabase(QString familyName, QString subFamilyStyle; if (ttf) { // Look-up names registered in the font - FontNames canonicalNames = qt_getCanonicalFontNames(logFont); + QFontNames canonicalNames = qt_getCanonicalFontNames(logFont); if (qt_localizedName(familyName) && !canonicalNames.name.isEmpty()) englishName = canonicalNames.name; if (!canonicalNames.preferredName.isEmpty()) { @@ -1231,7 +1232,6 @@ void QWindowsFontDatabase::populateFontDatabase() typedef QSharedPointer<QWindowsFontEngineData> QWindowsFontEngineDataPtr; -#ifndef QT_NO_THREAD typedef QThreadStorage<QWindowsFontEngineDataPtr> FontEngineThreadLocalData; Q_GLOBAL_STATIC(FontEngineThreadLocalData, fontEngineThreadLocalData) @@ -1243,17 +1243,6 @@ QSharedPointer<QWindowsFontEngineData> sharedFontData() data->setLocalData(QSharedPointer<QWindowsFontEngineData>::create()); return data->localData(); } -#else // !QT_NO_THREAD -Q_GLOBAL_STATIC(QWindowsFontEngineDataPtr, fontEngineData) - -QWindowsFontEngineDataPtr sharedFontData() -{ - QWindowsFontEngineDataPtr *data = fontEngineData(); - if (data->isNull()) - *data = QWindowsFontEngineDataPtr::create(); - return *data; -} -#endif // QT_NO_THREAD QWindowsFontDatabase::QWindowsFontDatabase() { @@ -1500,7 +1489,7 @@ static void getFontTable(const uchar *fileBegin, const uchar *data, quint32 tag, } static void getFamiliesAndSignatures(const QByteArray &fontData, - QList<FontNames> *families, + QList<QFontNames> *families, QVector<FONTSIGNATURE> *signatures) { const uchar *data = reinterpret_cast<const uchar *>(fontData.constData()); @@ -1516,7 +1505,7 @@ static void getFamiliesAndSignatures(const QByteArray &fontData, getFontTable(data, font, MAKE_TAG('n', 'a', 'm', 'e'), &table, &length); if (!table) continue; - FontNames names = qt_getCanonicalFontNames(table, length); + QFontNames names = qt_getCanonicalFontNames(table, length); if (names.name.isEmpty()) continue; @@ -1547,7 +1536,7 @@ QStringList QWindowsFontDatabase::addApplicationFont(const QByteArray &fontData, WinApplicationFont font; font.fileName = fileName; QVector<FONTSIGNATURE> signatures; - QList<FontNames> families; + QList<QFontNames> families; QStringList familyNames; if (!fontData.isEmpty()) { @@ -1616,11 +1605,12 @@ QStringList QWindowsFontDatabase::addApplicationFont(const QByteArray &fontData, void QWindowsFontDatabase::removeApplicationFonts() { - foreach (const WinApplicationFont &font, m_applicationFonts) { + for (const WinApplicationFont &font : qAsConst(m_applicationFonts)) { if (font.handle) { RemoveFontMemResourceEx(font.handle); } else { - RemoveFontResourceExW((LPCWSTR)font.fileName.utf16(), FR_PRIVATE, 0); + RemoveFontResourceExW(reinterpret_cast<LPCWSTR>(font.fileName.utf16()), + FR_PRIVATE, nullptr); } } m_applicationFonts.clear(); @@ -1664,7 +1654,8 @@ void QWindowsFontDatabase::refUniqueFont(const QString &uniqueFont) // ### fixme Qt 6 (QTBUG-58610): See comment at QWindowsFontDatabase::systemDefaultFont() HFONT QWindowsFontDatabase::systemFont() { - static const HFONT stock_sysfont = (HFONT)GetStockObject(DEFAULT_GUI_FONT); + static const auto stock_sysfont = + reinterpret_cast<HFONT>(GetStockObject(DEFAULT_GUI_FONT)); return stock_sysfont; } |