summaryrefslogtreecommitdiff
path: root/src/declarative/graphicsitems/qdeclarativetextinput.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/declarative/graphicsitems/qdeclarativetextinput.cpp')
-rw-r--r--src/declarative/graphicsitems/qdeclarativetextinput.cpp27
1 files changed, 18 insertions, 9 deletions
diff --git a/src/declarative/graphicsitems/qdeclarativetextinput.cpp b/src/declarative/graphicsitems/qdeclarativetextinput.cpp
index e35032b062..bd961f64f7 100644
--- a/src/declarative/graphicsitems/qdeclarativetextinput.cpp
+++ b/src/declarative/graphicsitems/qdeclarativetextinput.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -214,24 +214,33 @@ void QDeclarativeTextInput::setText(const QString &s)
QFont QDeclarativeTextInput::font() const
{
Q_D(const QDeclarativeTextInput);
- return d->font;
+ return d->sourceFont;
}
void QDeclarativeTextInput::setFont(const QFont &font)
{
Q_D(QDeclarativeTextInput);
- if (d->font == font)
+ 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);
+ }
- d->control->setFont(d->font);
- if(d->cursorItem){
- d->cursorItem->setHeight(QFontMetrics(d->font).height());
- moveCursor();
+ if (oldFont != d->font) {
+ d->control->setFont(d->font);
+ if(d->cursorItem){
+ d->cursorItem->setHeight(QFontMetrics(d->font).height());
+ moveCursor();
+ }
+ updateSize();
}
- updateSize();
- emit fontChanged(d->font);
+ emit fontChanged(d->sourceFont);
}
/*!