diff options
author | Liang Qi <liang.qi@theqtcompany.com> | 2015-09-18 12:23:45 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2015-09-18 18:29:23 +0000 |
commit | e2043f4933b6d60b245ee19f97e5751f517e5a2c (patch) | |
tree | a049bfa9f126b43e96568c1202766ded6f8ccb54 | |
parent | 0797e0cb2072a0b5cac4d8db2205d932cc64d25c (diff) |
Templates: fix font rendering in Label, TextArea and TextField
Change-Id: I264e0b86dcf54623b545d695f1a23f7d4a08972b
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
-rw-r--r-- | src/templates/qquicklabel.cpp | 15 | ||||
-rw-r--r-- | src/templates/qquicklabel_p_p.h | 7 | ||||
-rw-r--r-- | src/templates/qquicktextarea.cpp | 15 | ||||
-rw-r--r-- | src/templates/qquicktextarea_p_p.h | 7 | ||||
-rw-r--r-- | src/templates/qquicktextfield.cpp | 13 | ||||
-rw-r--r-- | src/templates/qquicktextfield_p_p.h | 7 |
6 files changed, 29 insertions, 35 deletions
diff --git a/src/templates/qquicklabel.cpp b/src/templates/qquicklabel.cpp index 2175fc33..dae9c7f1 100644 --- a/src/templates/qquicklabel.cpp +++ b/src/templates/qquicklabel.cpp @@ -71,10 +71,15 @@ QQuickLabel::~QQuickLabel() */ void QQuickLabelPrivate::resolveFont() { - Q_Q(const QQuickLabel); + Q_Q(QQuickLabel); QFont naturalFont = QQuickControlPrivate::naturalControlFont(q); QFont resolvedFont = sourceFont.resolve(naturalFont); - setFont_helper(resolvedFont); + if (sourceFont.resolve() == resolvedFont.resolve() && sourceFont == resolvedFont) + return; + + q->QQuickText::setFont(resolvedFont); + + emit q->fontChanged(); } void QQuickLabelPrivate::_q_textChanged(const QString &text) @@ -89,8 +94,7 @@ void QQuickLabelPrivate::_q_textChanged(const QString &text) QFont QQuickLabel::font() const { - Q_D(const QQuickLabel); - return d->sourceFont; + return QQuickText::font(); } void QQuickLabel::setFont(const QFont &font) @@ -105,7 +109,8 @@ void QQuickLabel::setFont(const QFont &font) // control's children. QFont naturalFont = QQuickControlPrivate::naturalControlFont(this); QFont resolvedFont = font.resolve(naturalFont); - d->setFont_helper(resolvedFont); + if (d->sourceFont.resolve() == resolvedFont.resolve() && d->sourceFont == resolvedFont) + return; QQuickText::setFont(font); diff --git a/src/templates/qquicklabel_p_p.h b/src/templates/qquicklabel_p_p.h index 43f03382..5d0a4752 100644 --- a/src/templates/qquicklabel_p_p.h +++ b/src/templates/qquicklabel_p_p.h @@ -65,13 +65,6 @@ public: return static_cast<QQuickLabelPrivate *>(QObjectPrivate::get(item)); } void resizeBackground(); - - inline void setFont_helper(const QFont &f) { - // In QQuickTextPrivate, sourceFont was used, instead of font... - if (sourceFont.resolve() == f.resolve() && sourceFont == f) - return; - sourceFont = f; - } void resolveFont(); void _q_textChanged(const QString &text); diff --git a/src/templates/qquicktextarea.cpp b/src/templates/qquicktextarea.cpp index d46702e2..58c40226 100644 --- a/src/templates/qquicktextarea.cpp +++ b/src/templates/qquicktextarea.cpp @@ -110,10 +110,15 @@ QQuickTextArea::~QQuickTextArea() */ void QQuickTextAreaPrivate::resolveFont() { - Q_Q(const QQuickTextArea); + Q_Q(QQuickTextArea); QFont naturalFont = QQuickControlPrivate::naturalControlFont(q); QFont resolvedFont = sourceFont.resolve(naturalFont); - setFont_helper(resolvedFont); + if (sourceFont.resolve() == resolvedFont.resolve() && sourceFont == resolvedFont) + return; + + q->QQuickTextEdit::setFont(resolvedFont); + + emit q->fontChanged(); } void QQuickTextAreaPrivate::_q_readOnlyChanged(bool isReadOnly) @@ -139,8 +144,7 @@ void QQuickTextAreaPrivate::_q_placeholderTextChanged(const QString &text) QFont QQuickTextArea::font() const { - Q_D(const QQuickTextArea); - return d->sourceFont; + return QQuickTextEdit::font(); } void QQuickTextArea::setFont(const QFont &font) @@ -155,7 +159,8 @@ void QQuickTextArea::setFont(const QFont &font) // control's children. QFont naturalFont = QQuickControlPrivate::naturalControlFont(this); QFont resolvedFont = font.resolve(naturalFont); - d->setFont_helper(resolvedFont); + if (d->sourceFont.resolve() == resolvedFont.resolve() && d->sourceFont == resolvedFont) + return; QQuickTextEdit::setFont(font); diff --git a/src/templates/qquicktextarea_p_p.h b/src/templates/qquicktextarea_p_p.h index 8d7ad690..cd6a4630 100644 --- a/src/templates/qquicktextarea_p_p.h +++ b/src/templates/qquicktextarea_p_p.h @@ -68,13 +68,6 @@ public: return static_cast<QQuickTextAreaPrivate *>(QObjectPrivate::get(item)); } void resizeBackground(); - - inline void setFont_helper(const QFont &f) { - // In QQuickTextEditPrivate, sourceFont was used, instead of font... - if (sourceFont.resolve() == f.resolve() && sourceFont == f) - return; - sourceFont = f; - } void resolveFont(); void _q_readOnlyChanged(bool isReadOnly); diff --git a/src/templates/qquicktextfield.cpp b/src/templates/qquicktextfield.cpp index 7cf5f3c1..cb61a7a5 100644 --- a/src/templates/qquicktextfield.cpp +++ b/src/templates/qquicktextfield.cpp @@ -133,7 +133,12 @@ void QQuickTextFieldPrivate::resolveFont() Q_Q(QQuickTextField); QFont naturalFont = QQuickControlPrivate::naturalControlFont(q); QFont resolvedFont = sourceFont.resolve(naturalFont); - setFont_helper(resolvedFont); + if (sourceFont.resolve() == resolvedFont.resolve() && sourceFont == resolvedFont) + return; + + q->QQuickTextInput::setFont(resolvedFont); + + emit q->fontChanged(); } void QQuickTextFieldPrivate::_q_readOnlyChanged(bool isReadOnly) @@ -171,8 +176,7 @@ void QQuickTextFieldPrivate::_q_echoModeChanged(QQuickTextField::EchoMode echoMo QFont QQuickTextField::font() const { - Q_D(const QQuickTextField); - return d->sourceFont; + return QQuickTextInput::font(); } void QQuickTextField::setFont(const QFont &font) @@ -187,7 +191,8 @@ void QQuickTextField::setFont(const QFont &font) // control's children. QFont naturalFont = QQuickControlPrivate::naturalControlFont(this); QFont resolvedFont = font.resolve(naturalFont); - d->setFont_helper(resolvedFont); + if (d->sourceFont.resolve() == resolvedFont.resolve() && d->sourceFont == resolvedFont) + return; QQuickTextInput::setFont(font); diff --git a/src/templates/qquicktextfield_p_p.h b/src/templates/qquicktextfield_p_p.h index b50fea08..823a0bbd 100644 --- a/src/templates/qquicktextfield_p_p.h +++ b/src/templates/qquicktextfield_p_p.h @@ -71,13 +71,6 @@ public: return static_cast<QQuickTextFieldPrivate *>(QObjectPrivate::get(item)); } void resizeBackground(); - - inline void setFont_helper(const QFont &f) { - // In QQuickTextInputPrivate, sourceFont was used, instead of font... - if (sourceFont.resolve() == f.resolve() && sourceFont == f) - return; - sourceFont = f; - } void resolveFont(); void _q_readOnlyChanged(bool isReadOnly); |