diff options
Diffstat (limited to 'src/platformsupport/fontdatabases/windows')
7 files changed, 31 insertions, 38 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; } diff --git a/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase_ft.cpp b/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase_ft.cpp index 299dfd40cd..f68ea54dcf 100644 --- a/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase_ft.cpp +++ b/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase_ft.cpp @@ -210,7 +210,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()) { diff --git a/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase_p.h b/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase_p.h index 30f5beefdf..ab6d6307c7 100644 --- a/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase_p.h +++ b/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase_p.h @@ -85,6 +85,7 @@ public: class QWindowsFontDatabase : public QPlatformFontDatabase { + Q_DISABLE_COPY(QWindowsFontDatabase) public: enum FontOptions { // Relevant bits from QWindowsIntegration::Options @@ -93,7 +94,7 @@ public: }; QWindowsFontDatabase(); - ~QWindowsFontDatabase(); + ~QWindowsFontDatabase() override; void populateFontDatabase() override; void populateFamily(const QString &familyName) override; @@ -168,7 +169,8 @@ inline quint16 qt_getUShort(const unsigned char *p) return val; } -struct FontNames { +struct QFontNames +{ QString name; // e.g. "DejaVu Sans Condensed" QString style; // e.g. "Italic" QString preferredName; // e.g. "DejaVu Sans" @@ -177,7 +179,7 @@ struct FontNames { bool qt_localizedName(const QString &name); QString qt_getEnglishName(const QString &familyName, bool includeStyle = false); -FontNames qt_getCanonicalFontNames(const LOGFONT &lf); +QFontNames qt_getCanonicalFontNames(const LOGFONT &lf); QT_END_NAMESPACE diff --git a/src/platformsupport/fontdatabases/windows/qwindowsfontengine.cpp b/src/platformsupport/fontdatabases/windows/qwindowsfontengine.cpp index 584e4db05d..2a41209225 100644 --- a/src/platformsupport/fontdatabases/windows/qwindowsfontengine.cpp +++ b/src/platformsupport/fontdatabases/windows/qwindowsfontengine.cpp @@ -111,9 +111,8 @@ QFixed QWindowsFontEngine::lineThickness() const static OUTLINETEXTMETRIC *getOutlineTextMetric(HDC hdc) { - int size; - size = GetOutlineTextMetrics(hdc, 0, 0); - OUTLINETEXTMETRIC *otm = (OUTLINETEXTMETRIC *)malloc(size); + const auto size = GetOutlineTextMetrics(hdc, 0, nullptr); + auto otm = reinterpret_cast<OUTLINETEXTMETRIC *>(malloc(size)); GetOutlineTextMetrics(hdc, size, otm); return otm; } @@ -1140,7 +1139,7 @@ QImage QWindowsFontEngine::alphaRGBMapForGlyph(glyph_t glyph, QFixed, const QTra QImage rgbMask(mask->width(), mask->height(), QImage::Format_RGB32); for (int y=0; y<mask->height(); ++y) { - uint *dest = (uint *) rgbMask.scanLine(y); + auto dest = reinterpret_cast<uint *>(rgbMask.scanLine(y)); const uint *src = reinterpret_cast<const uint *>(source.constScanLine(y)); for (int x=0; x<mask->width(); ++x) { dest[x] = 0xffffffff - (0x00ffffff & src[x]); diff --git a/src/platformsupport/fontdatabases/windows/qwindowsfontengine_p.h b/src/platformsupport/fontdatabases/windows/qwindowsfontengine_p.h index 2ec391c4da..a151cf7343 100644 --- a/src/platformsupport/fontdatabases/windows/qwindowsfontengine_p.h +++ b/src/platformsupport/fontdatabases/windows/qwindowsfontengine_p.h @@ -66,13 +66,14 @@ class QWindowsFontEngineData; class QWindowsFontEngine : public QFontEngine { + Q_DISABLE_COPY(QWindowsFontEngine) friend class QWindowsMultiFontEngine; public: QWindowsFontEngine(const QString &name, LOGFONT lf, const QSharedPointer<QWindowsFontEngineData> &fontEngineData); - ~QWindowsFontEngine(); + ~QWindowsFontEngine() override; void initFontInfo(const QFontDef &request, int dpi); @@ -89,7 +90,7 @@ public: void recalcAdvances(QGlyphLayout *glyphs, ShaperFlags) const override; void addOutlineToPath(qreal x, qreal y, const QGlyphLayout &glyphs, QPainterPath *path, QTextItem::RenderFlags flags) override; - virtual void addGlyphsToPath(glyph_t *glyphs, QFixedPoint *positions, int nglyphs, + void addGlyphsToPath(glyph_t *glyphs, QFixedPoint *positions, int nglyphs, QPainterPath *path, QTextItem::RenderFlags flags) override; HGDIOBJ selectDesignFont() const; diff --git a/src/platformsupport/fontdatabases/windows/qwindowsfontenginedirectwrite.cpp b/src/platformsupport/fontdatabases/windows/qwindowsfontenginedirectwrite.cpp index 0e017c3b77..57c41938bc 100644 --- a/src/platformsupport/fontdatabases/windows/qwindowsfontenginedirectwrite.cpp +++ b/src/platformsupport/fontdatabases/windows/qwindowsfontenginedirectwrite.cpp @@ -69,15 +69,14 @@ namespace { class GeometrySink: public IDWriteGeometrySink { + Q_DISABLE_COPY(GeometrySink) public: GeometrySink(QPainterPath *path) : m_refCount(0), m_path(path) { Q_ASSERT(m_path != 0); } - virtual ~GeometrySink() - { - } + virtual ~GeometrySink() = default; IFACEMETHOD_(void, AddBeziers)(const D2D1_BEZIER_SEGMENT *beziers, UINT bezierCount); IFACEMETHOD_(void, AddLines)(const D2D1_POINT_2F *points, UINT pointCount); diff --git a/src/platformsupport/fontdatabases/windows/qwindowsfontenginedirectwrite_p.h b/src/platformsupport/fontdatabases/windows/qwindowsfontenginedirectwrite_p.h index 83fdddfa26..9326f5aece 100644 --- a/src/platformsupport/fontdatabases/windows/qwindowsfontenginedirectwrite_p.h +++ b/src/platformsupport/fontdatabases/windows/qwindowsfontenginedirectwrite_p.h @@ -72,11 +72,12 @@ class QWindowsFontEngineData; class QWindowsFontEngineDirectWrite : public QFontEngine { + Q_DISABLE_COPY(QWindowsFontEngineDirectWrite) public: explicit QWindowsFontEngineDirectWrite(IDWriteFontFace *directWriteFontFace, qreal pixelSize, const QSharedPointer<QWindowsFontEngineData> &d); - ~QWindowsFontEngineDirectWrite(); + ~QWindowsFontEngineDirectWrite() override; void initFontInfo(const QFontDef &request, int dpi); |