Fix computation of string width when using a QTextLayout
It was not a good idea to rely on QTextLine::naturalTextWidth() to
compute a string width. The correct method is horizontalAdvance().
Also round the value to the nearest pixel, since this is what
QFontMetrics::width() does.
By contrast with the code in 2.3.x/master, this code had to be adapted
for Qt < 4.7, where horizontalAdvance() is not defined and
naturalTextWidth() has to be used instead. The fix is thus only
effective starting from Qt 4.7.
Fixes bug #10700 (and maybe others).
(cherry picked from commit
c874641e95b763a6d4691fb12fba893580f3018a)