[Development] QFontMetrics and QScriptLine height calculation
Rafael Roquetto
rafael.roquetto at kdab.com
Thu Oct 4 22:22:46 CEST 2012
Hello,
I am trying to fix tst_QAccessibility for QNX, and I have a problem on line
2750:
QCOMPARE(iface->textInterface()->characterRect(0,
QAccessible2::RelativeToParent).size(), QSize(fm.width("h"), fm.height()));
This comparison is failing, because the caracter rect height is bigger than
the height returned by QFontMetrics. And...?
Well, ultimately the height of the character rect comes from
QScriptLine::height(). Here is how it is calculated (simplified):
height = ascent + descent + 1 (leadingIncluded ? leading : QFixed())
While QFontMetrics does not use 'leading' to compute 'height' (simplified):
height = ascent + descent + 1
Which leads to a few questions:
1. Is this meant to be like that or is either class implementation incorrect?
2. If this is correct, then is the test erroneusly assuming that
QFontMetrics::height() == QScriptLine::height() for every use case? Or...
3. Should the 'leading' be '0' in the context of the test (what happens in Qt
built for Linux, but not for QNX)?
Well, I will continue to investigate it, but since I do not know much about
this corner of Qt, I thought it wouldn't hurt to ask :)
Thanks a lot in advance,
Rafael
--
** Qt Developer Conference: http://qtconference.kdab.com/ **
Rafael Roquetto | rafael.roquetto at kdab.com | Software Engineer
Klarälvdalens Datakonsult AB, a KDAB Group company
Tel. Sweden (HQ) +46-563-540090, USA +1-866-777-KDAB(5322)
KDAB - Qt Experts - Platform-independent software solutions
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3721 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/development/attachments/20121004/eda9aac9/attachment.bin>
More information about the Development
mailing list