aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2015-09-18 12:23:45 +0200
committerLiang Qi <liang.qi@theqtcompany.com>2015-09-18 18:29:23 +0000
commite2043f4933b6d60b245ee19f97e5751f517e5a2c (patch)
treea049bfa9f126b43e96568c1202766ded6f8ccb54
parent0797e0cb2072a0b5cac4d8db2205d932cc64d25c (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.cpp15
-rw-r--r--src/templates/qquicklabel_p_p.h7
-rw-r--r--src/templates/qquicktextarea.cpp15
-rw-r--r--src/templates/qquicktextarea_p_p.h7
-rw-r--r--src/templates/qquicktextfield.cpp13
-rw-r--r--src/templates/qquicktextfield_p_p.h7
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);