diff options
Diffstat (limited to 'src/gui/text')
-rw-r--r-- | src/gui/text/qfont.cpp | 12 | ||||
-rw-r--r-- | src/gui/text/qfontdatabase.cpp | 9 | ||||
-rw-r--r-- | src/gui/text/qfontengine_p.h | 4 |
3 files changed, 17 insertions, 8 deletions
diff --git a/src/gui/text/qfont.cpp b/src/gui/text/qfont.cpp index 54fcbac308..a0cbd052e4 100644 --- a/src/gui/text/qfont.cpp +++ b/src/gui/text/qfont.cpp @@ -1014,8 +1014,8 @@ void QFont::setStyle(Style style) } /*! - Returns the weight of the font which is one of the enumerated - values from \l{QFont::Weight}. + Returns the weight of the font, using the same scale as the + \l{QFont::Weight} enumeration. \sa setWeight(), Weight, QFontInfo */ @@ -1028,8 +1028,8 @@ int QFont::weight() const \enum QFont::Weight Qt uses a weighting scale from 0 to 99 similar to, but not the - same as, the scales used in Windows or CSS. A weight of 0 is - ultralight, whilst 99 will be extremely black. + same as, the scales used in Windows or CSS. A weight of 0 will be + thin, whilst 99 will be extremely black. This enum contains the predefined font weights: @@ -1041,8 +1041,8 @@ int QFont::weight() const */ /*! - Sets the weight the font to \a weight, which should be a value - from the \l QFont::Weight enumeration. + Sets the weight of the font to \a weight, using the scale defined by + \l QFont::Weight enumeration. \sa weight(), QFontInfo */ diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp index 06d6ec125e..1322a088e0 100644 --- a/src/gui/text/qfontdatabase.cpp +++ b/src/gui/text/qfontdatabase.cpp @@ -85,10 +85,11 @@ static int getFontWeight(const QString &weightString) QString s = weightString.toLower(); // Test in decreasing order of commonness - if (s == QLatin1String("medium") || - s == QLatin1String("normal") + if (s == QLatin1String("normal") || s.compare(QCoreApplication::translate("QFontDatabase", "Normal"), Qt::CaseInsensitive) == 0) return QFont::Normal; + if (s == QLatin1String("medium")) + return qt_mediumFontWeight; if (s == QLatin1String("bold") || s.compare(QCoreApplication::translate("QFontDatabase", "Bold"), Qt::CaseInsensitive) == 0) return QFont::Bold; @@ -100,6 +101,10 @@ static int getFontWeight(const QString &weightString) return QFont::Black; if (s == QLatin1String("light")) return QFont::Light; + if (s == QLatin1String("thin")) + return qt_thinFontWeight; + if (s == QLatin1String("extralight")) + return qt_extralightFontWeight; if (s.contains(QLatin1String("bold")) || s.contains(QCoreApplication::translate("QFontDatabase", "Bold"), Qt::CaseInsensitive)) { diff --git a/src/gui/text/qfontengine_p.h b/src/gui/text/qfontengine_p.h index 8c40189ed2..50b1bb9e9d 100644 --- a/src/gui/text/qfontengine_p.h +++ b/src/gui/text/qfontengine_p.h @@ -78,6 +78,10 @@ enum HB_Compat_Error { typedef void (*qt_destroy_func_t) (void *user_data); typedef bool (*qt_get_font_table_func_t) (void *user_data, uint tag, uchar *buffer, uint *length); +const QFont::Weight qt_mediumFontWeight = static_cast<QFont::Weight>(57); +const QFont::Weight qt_extralightFontWeight = static_cast<QFont::Weight>(12); +const QFont::Weight qt_thinFontWeight = static_cast<QFont::Weight>(0); + class Q_GUI_EXPORT QFontEngine { public: |