diff options
author | Martin Jones <martin.jones@nokia.com> | 2011-01-18 00:59:34 (GMT) |
---|---|---|
committer | Martin Jones <martin.jones@nokia.com> | 2011-01-18 00:59:34 (GMT) |
commit | f111e97adf93a933351eb5658b33a5820097757a (patch) | |
tree | e0c32453efddcbd7054cb6d52cc365b4ee78b10d /src/declarative/graphicsitems/qdeclarativetextedit.cpp | |
parent | 2479c1b17ca2399c9df94dd7e1b66d3a3a896a5c (diff) | |
download | Qt-f111e97adf93a933351eb5658b33a5820097757a.zip Qt-f111e97adf93a933351eb5658b33a5820097757a.tar.gz Qt-f111e97adf93a933351eb5658b33a5820097757a.tar.bz2 |
Request font sizes with only 0.5pt resolution.
When animating pointSize avoid generating a huge number of fonts with
slightly different point sizes.
Task-number: QTBUG-13960
Reviewed-by: Aaron Kennedy
Diffstat (limited to 'src/declarative/graphicsitems/qdeclarativetextedit.cpp')
-rw-r--r-- | src/declarative/graphicsitems/qdeclarativetextedit.cpp | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/src/declarative/graphicsitems/qdeclarativetextedit.cpp b/src/declarative/graphicsitems/qdeclarativetextedit.cpp index 675f8d9..42f66c3 100644 --- a/src/declarative/graphicsitems/qdeclarativetextedit.cpp +++ b/src/declarative/graphicsitems/qdeclarativetextedit.cpp @@ -326,22 +326,35 @@ void QDeclarativeTextEdit::setTextFormat(TextFormat format) QFont QDeclarativeTextEdit::font() const { Q_D(const QDeclarativeTextEdit); - return d->font; + return d->sourceFont; } void QDeclarativeTextEdit::setFont(const QFont &font) { Q_D(QDeclarativeTextEdit); + if (d->sourceFont == font) + return; + + d->sourceFont = font; + QFont oldFont = d->font; d->font = font; + if (d->font.pointSizeF() != -1) { + // 0.5pt resolution + qreal size = qRound(d->font.pointSizeF()*2.0); + d->font.setPointSizeF(size/2.0); + } - clearCache(); - d->document->setDefaultFont(d->font); - if(d->cursor){ - d->cursor->setHeight(QFontMetrics(d->font).height()); - moveCursorDelegate(); + if (oldFont != d->font) { + clearCache(); + d->document->setDefaultFont(d->font); + if(d->cursor){ + d->cursor->setHeight(QFontMetrics(d->font).height()); + moveCursorDelegate(); + } + updateSize(); + update(); } - updateSize(); - update(); + emit fontChanged(d->sourceFont); } /*! |