From 95babf15bda484e7c1764d4db6a6b55c1c47378a Mon Sep 17 00:00:00 2001 From: Liang Qi Date: Mon, 18 Apr 2016 14:26:15 +0200 Subject: QQuickControlPrivate: move font to ExtraData Change-Id: Idc01a8a23dcddc271bb01d9ab57238a860dc1c84 Reviewed-by: J-P Nurmi --- src/quicktemplates2/qquickcontrol.cpp | 12 ++++++++---- src/quicktemplates2/qquickcontrol_p_p.h | 9 +++++++-- 2 files changed, 15 insertions(+), 6 deletions(-) (limited to 'src/quicktemplates2') diff --git a/src/quicktemplates2/qquickcontrol.cpp b/src/quicktemplates2/qquickcontrol.cpp index 618fc421..55849aa5 100644 --- a/src/quicktemplates2/qquickcontrol.cpp +++ b/src/quicktemplates2/qquickcontrol.cpp @@ -78,6 +78,10 @@ static bool isKeyFocusReason(Qt::FocusReason reason) return reason == Qt::TabFocusReason || reason == Qt::BacktabFocusReason || reason == Qt::ShortcutFocusReason; } +QQuickControlPrivate::ExtraData::ExtraData() +{ +} + QQuickControlPrivate::QQuickControlPrivate() : hasTopPadding(false), hasLeftPadding(false), hasRightPadding(false), hasBottomPadding(false), hasLocale(false), hovered(false), wheelEnabled(false), padding(0), topPadding(0), leftPadding(0), rightPadding(0), bottomPadding(0), spacing(0), @@ -280,8 +284,8 @@ void QQuickControlPrivate::resolveFont() void QQuickControlPrivate::inheritFont(const QFont &f) { Q_Q(QQuickControl); - QFont parentFont = font.resolve(f); - parentFont.resolve(font.resolve() | f.resolve()); + QFont parentFont = extra.isAllocated() ? extra->font.resolve(f) : f; + parentFont.resolve(extra.isAllocated() ? extra->font.resolve() | f.resolve() : f.resolve()); const QFont defaultFont = q->defaultFont(); const QFont resolvedFont = parentFont.resolve(defaultFont); @@ -430,10 +434,10 @@ QFont QQuickControl::font() const void QQuickControl::setFont(const QFont &font) { Q_D(QQuickControl); - if (d->font.resolve() == font.resolve() && d->font == font) + if (d->extra.value().font.resolve() == font.resolve() && d->extra.value().font == font) return; - d->font = font; + d->extra.value().font = font; d->resolveFont(); } diff --git a/src/quicktemplates2/qquickcontrol_p_p.h b/src/quicktemplates2/qquickcontrol_p_p.h index c00443b7..6e934a17 100644 --- a/src/quicktemplates2/qquickcontrol_p_p.h +++ b/src/quicktemplates2/qquickcontrol_p_p.h @@ -51,6 +51,7 @@ #include "qquickcontrol_p.h" #include +#include #include #ifndef QT_NO_ACCESSIBILITY @@ -108,8 +109,12 @@ public: static void updateLocaleRecur(QQuickItem *item, const QLocale &l); static QLocale calcLocale(const QQuickItem *item); - // TODO: QLazilyAllocated - QFont font; + struct ExtraData { + ExtraData(); + QFont font; + }; + QLazilyAllocated extra; + QFont resolvedFont; bool hasTopPadding; bool hasLeftPadding; -- cgit v1.2.3