diff options
author | Liang Qi <liang.qi@theqtcompany.com> | 2016-04-18 14:26:15 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2016-04-18 15:28:37 +0000 |
commit | 95babf15bda484e7c1764d4db6a6b55c1c47378a (patch) | |
tree | 783eeb2d26fdd066ee5b975e0f01b283c5347945 /src | |
parent | 26eeea3959455fbde884631c554702ef0a8dff75 (diff) |
QQuickControlPrivate: move font to ExtraData
Change-Id: Idc01a8a23dcddc271bb01d9ab57238a860dc1c84
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/quicktemplates2/qquickcontrol.cpp | 12 | ||||
-rw-r--r-- | src/quicktemplates2/qquickcontrol_p_p.h | 9 |
2 files changed, 15 insertions, 6 deletions
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 <QtQuick/private/qquickitem_p.h> +#include <QtQml/private/qlazilyallocated_p.h> #include <qpa/qplatformtheme.h> #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<ExtraData> - QFont font; + struct ExtraData { + ExtraData(); + QFont font; + }; + QLazilyAllocated<ExtraData> extra; + QFont resolvedFont; bool hasTopPadding; bool hasLeftPadding; |