From 79bb27fbc0c4e14ef1b5e70d4ec35964cfb2fce9 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Tue, 30 Jul 2019 11:01:18 +0000 Subject: [PATCH] use proper type for unicode script Signed-off-by: Ivailo Monev --- src/gui/text/qfont.cpp | 2 +- src/gui/text/qfont_p.h | 2 +- src/gui/text/qfontdatabase_x11.h | 6 ++++-- src/gui/text/qfontmetrics.cpp | 26 +++++++++++++------------- src/gui/text/qtextengine.cpp | 6 +++--- src/gui/text/qtextengine_p.h | 2 +- 6 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/gui/text/qfont.cpp b/src/gui/text/qfont.cpp index 76ba40e85..5c617b93d 100644 --- a/src/gui/text/qfont.cpp +++ b/src/gui/text/qfont.cpp @@ -201,7 +201,7 @@ QFontPrivate::~QFontPrivate() extern QMutex *qt_fontdatabase_mutex(); -QFontEngine *QFontPrivate::engineForScript(int script) const +QFontEngine *QFontPrivate::engineForScript(QUnicodeTables::Script script) const { QMutexLocker locker(qt_fontdatabase_mutex()); if (script > QUnicodeTables::ScriptCount) diff --git a/src/gui/text/qfont_p.h b/src/gui/text/qfont_p.h index d5da989b1..0a0ea6c7c 100644 --- a/src/gui/text/qfont_p.h +++ b/src/gui/text/qfont_p.h @@ -154,7 +154,7 @@ public: QFontPrivate(const QFontPrivate &other); ~QFontPrivate(); - QFontEngine *engineForScript(int script) const; + QFontEngine *engineForScript(QUnicodeTables::Script script) const; void alterCharForCapitalization(QChar &c) const; QAtomicInt ref; diff --git a/src/gui/text/qfontdatabase_x11.h b/src/gui/text/qfontdatabase_x11.h index 7a7b7b14c..2ff647b47 100644 --- a/src/gui/text/qfontdatabase_x11.h +++ b/src/gui/text/qfontdatabase_x11.h @@ -1037,6 +1037,8 @@ static void FcFontSetRemove(FcFontSet *fs, int at) } static QFontEngine *tryPatternLoad(FcPattern *match, int screen, + const QFontDef &request, + QUnicodeTables::Script script) { #ifdef FONT_MATCH_DEBUG FcChar8 *fam; @@ -1117,7 +1119,7 @@ FcFontSet *qt_fontSetForPattern(FcPattern *pattern, const QFontDef &request) return fs; } -static QFontEngine *loadFc(const QFontPrivate *fp, int script, const QFontDef &request) +static QFontEngine *loadFc(const QFontPrivate *fp, QUnicodeTables::Script script, const QFontDef &request) { FM_DEBUG("===================== loadFc: script=%d family='%s'\n", script, request.family.toLatin1().constData()); FcPattern *pattern = getFcPattern(fp, script, request); @@ -1236,7 +1238,7 @@ void QFontDatabase::load(const QFontPrivate *d, int script) #endif #ifndef QT_NO_FONTCONFIG if (qt_x11Data->has_fontconfig) { - fe = loadFc(d, script, req); + fe = loadFc(d, static_cast(script), req); #endif } if (!fe) { diff --git a/src/gui/text/qfontmetrics.cpp b/src/gui/text/qfontmetrics.cpp index 72983fb98..92bafb89e 100644 --- a/src/gui/text/qfontmetrics.cpp +++ b/src/gui/text/qfontmetrics.cpp @@ -405,7 +405,7 @@ int QFontMetrics::averageCharWidth() const */ bool QFontMetrics::inFont(QChar ch) const { - const int script = QUnicodeTables::script(ch.unicode()); + const QUnicodeTables::Script script = QUnicodeTables::script(ch.unicode()); QFontEngine *engine = d->engineForScript(script); Q_ASSERT(engine != 0); if (engine->type() == QFontEngine::Box) @@ -422,7 +422,7 @@ bool QFontMetrics::inFont(QChar ch) const */ bool QFontMetrics::inFontUcs4(uint ucs4) const { - const int script = QUnicodeTables::script(ucs4); + const QUnicodeTables::Script script = QUnicodeTables::script(ucs4); QFontEngine *engine = d->engineForScript(script); Q_ASSERT(engine != 0); if (engine->type() == QFontEngine::Box) @@ -445,7 +445,7 @@ bool QFontMetrics::inFontUcs4(uint ucs4) const */ int QFontMetrics::leftBearing(QChar ch) const { - const int script = QUnicodeTables::script(ch.unicode()); + const QUnicodeTables::Script script = QUnicodeTables::script(ch.unicode()); QFontEngine *engine; if (d->capital == QFont::SmallCaps && ch.isLower()) engine = d->smallCapsFontPrivate()->engineForScript(script); @@ -480,7 +480,7 @@ int QFontMetrics::leftBearing(QChar ch) const */ int QFontMetrics::rightBearing(QChar ch) const { - const int script = QUnicodeTables::script(ch.unicode()); + const QUnicodeTables::Script script = QUnicodeTables::script(ch.unicode()); QFontEngine *engine; if (d->capital == QFont::SmallCaps && ch.isLower()) engine = d->smallCapsFontPrivate()->engineForScript(script); @@ -583,7 +583,7 @@ int QFontMetrics::width(QChar ch) const if (QChar::category(ch.unicode()) == QChar::Mark_NonSpacing) return 0; - const int script = QUnicodeTables::script(ch.unicode()); + const QUnicodeTables::Script script = QUnicodeTables::script(ch.unicode()); QFontEngine *engine; if (d->capital == QFont::SmallCaps && ch.isLower()) engine = d->smallCapsFontPrivate()->engineForScript(script); @@ -617,7 +617,7 @@ int QFontMetrics::charWidth(const QString &text, int pos) const return 0; QChar ch = text.unicode()[pos]; - const int script = QUnicodeTables::script(ch.unicode()); + const QUnicodeTables::Script script = QUnicodeTables::script(ch.unicode()); int width; if (script != QUnicodeTables::Common) { @@ -700,7 +700,7 @@ QRect QFontMetrics::boundingRect(const QString &text) const */ QRect QFontMetrics::boundingRect(QChar ch) const { - const int script = QUnicodeTables::script(ch.unicode()); + const QUnicodeTables::Script script = QUnicodeTables::script(ch.unicode()); QFontEngine *engine; if (d->capital == QFont::SmallCaps && ch.isLower()) engine = d->smallCapsFontPrivate()->engineForScript(script); @@ -1272,7 +1272,7 @@ qreal QFontMetricsF::averageCharWidth() const */ bool QFontMetricsF::inFont(QChar ch) const { - const int script = QUnicodeTables::script(ch.unicode()); + const QUnicodeTables::Script script = QUnicodeTables::script(ch.unicode()); QFontEngine *engine = d->engineForScript(script); Q_ASSERT(engine != 0); if (engine->type() == QFontEngine::Box) @@ -1289,7 +1289,7 @@ bool QFontMetricsF::inFont(QChar ch) const */ bool QFontMetricsF::inFontUcs4(uint ucs4) const { - const int script = QUnicodeTables::script(ucs4); + const QUnicodeTables::Script script = QUnicodeTables::script(ucs4); QFontEngine *engine = d->engineForScript(script); Q_ASSERT(engine != 0); if (engine->type() == QFontEngine::Box) @@ -1312,7 +1312,7 @@ bool QFontMetricsF::inFontUcs4(uint ucs4) const */ qreal QFontMetricsF::leftBearing(QChar ch) const { - const int script = QUnicodeTables::script(ch.unicode()); + const QUnicodeTables::Script script = QUnicodeTables::script(ch.unicode()); QFontEngine *engine; if (d->capital == QFont::SmallCaps && ch.isLower()) engine = d->smallCapsFontPrivate()->engineForScript(script); @@ -1347,7 +1347,7 @@ qreal QFontMetricsF::leftBearing(QChar ch) const */ qreal QFontMetricsF::rightBearing(QChar ch) const { - const int script = QUnicodeTables::script(ch.unicode()); + const QUnicodeTables::Script script = QUnicodeTables::script(ch.unicode()); QFontEngine *engine; if (d->capital == QFont::SmallCaps && ch.isLower()) engine = d->smallCapsFontPrivate()->engineForScript(script); @@ -1419,7 +1419,7 @@ qreal QFontMetricsF::width(QChar ch) const if (QChar::category(ch.unicode()) == QChar::Mark_NonSpacing) return 0.; - const int script = QUnicodeTables::script(ch.unicode()); + const QUnicodeTables::Script script = QUnicodeTables::script(ch.unicode()); QFontEngine *engine; if (d->capital == QFont::SmallCaps && ch.isLower()) engine = d->smallCapsFontPrivate()->engineForScript(script); @@ -1484,7 +1484,7 @@ QRectF QFontMetricsF::boundingRect(const QString &text) const */ QRectF QFontMetricsF::boundingRect(QChar ch) const { - const int script = QUnicodeTables::script(ch.unicode()); + const QUnicodeTables::Script script = QUnicodeTables::script(ch.unicode()); QFontEngine *engine; if (d->capital == QFont::SmallCaps && ch.isLower()) engine = d->smallCapsFontPrivate()->engineForScript(script); diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp index 278a02cb5..b2cc6af2a 100644 --- a/src/gui/text/qtextengine.cpp +++ b/src/gui/text/qtextengine.cpp @@ -1308,7 +1308,7 @@ void QTextEngine::itemize() const const ushort *uc = reinterpret_cast(layoutData->string.unicode()); const ushort *e = uc + length; - int lastScript = QUnicodeTables::Common; + QUnicodeTables::Script lastScript = QUnicodeTables::Common; while (uc < e) { switch (*uc) { case QChar::ObjectReplacementCharacter: @@ -1338,7 +1338,7 @@ void QTextEngine::itemize() const } // fall through default: - int script = QUnicodeTables::script(*uc); + QUnicodeTables::Script script = QUnicodeTables::script(*uc); analysis->script = script == QUnicodeTables::Inherited ? lastScript : script; analysis->flags = QScriptAnalysis::None; break; @@ -1646,7 +1646,7 @@ QFontEngine *QTextEngine::fontEngine(const QScriptItem &si, QFixed *ascent, QFix { QFontEngine *engine = 0; QFontEngine *scaledEngine = 0; - int script = si.analysis.script; + QUnicodeTables::Script script = si.analysis.script; QFont font = fnt; if (hasFormats()) { diff --git a/src/gui/text/qtextengine_p.h b/src/gui/text/qtextengine_p.h index 63f744306..26c0a9cb6 100644 --- a/src/gui/text/qtextengine_p.h +++ b/src/gui/text/qtextengine_p.h @@ -105,7 +105,7 @@ struct Q_AUTOTEST_EXPORT QScriptAnalysis TabOrObject = Tab, Object = 7 }; - unsigned short script; + QUnicodeTables::Script script; unsigned short bidiLevel; // Unicode Bidi algorithm embedding level (0-61) Flags flags; inline bool operator == (const QScriptAnalysis &other) const {