summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/fontdatabases
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2014-08-04 09:47:52 +0200
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2014-08-04 09:51:36 +0200
commit0936bc54f907066644503c7d4c390968711c73a7 (patch)
tree6eb8c614e7083eae6ca619435f901dcb1380108f /src/platformsupport/fontdatabases
parent83080e8a7cb7aaa794a9659eeaf34690afe71ddb (diff)
parentffd44acd0de4fc7079e76f1fe4689b655f9dc763 (diff)
Merge remote-tracking branch 'origin/5.3' into dev
Conflicts: config.tests/arch/arch.cpp src/opengl/qgl_qpa.cpp src/widgets/kernel/qapplication.cpp Change-Id: I80b442a4c2c9632743a5b5c7319ff201ec5bc4fd
Diffstat (limited to 'src/platformsupport/fontdatabases')
-rw-r--r--src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm b/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm
index c0643444e2..7ae72cc446 100644
--- a/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm
+++ b/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm
@@ -245,9 +245,19 @@ void QCoreTextFontDatabase::populateFromDescriptor(CTFontDescriptorRef font)
if (styles) {
if (CFNumberRef weightValue = (CFNumberRef) CFDictionaryGetValue(styles, kCTFontWeightTrait)) {
Q_ASSERT(CFNumberIsFloatType(weightValue));
- double d;
- if (CFNumberGetValue(weightValue, kCFNumberDoubleType, &d))
- weight = (d > 0.0) ? QFont::Bold : QFont::Normal;
+ double normalizedWeight;
+ if (CFNumberGetValue(weightValue, kCFNumberDoubleType, &normalizedWeight)) {
+ if (normalizedWeight >= 0.62)
+ weight = QFont::Black;
+ else if (normalizedWeight >= 0.4)
+ weight = QFont::Bold;
+ else if (normalizedWeight >= 0.3)
+ weight = QFont::DemiBold;
+ else if (normalizedWeight == 0.0)
+ weight = QFont::Normal;
+ else if (normalizedWeight <= -0.4)
+ weight = QFont::Light;
+ }
}
if (CFNumberRef italic = (CFNumberRef) CFDictionaryGetValue(styles, kCTFontSlantTrait)) {
Q_ASSERT(CFNumberIsFloatType(italic));