aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2016-04-18 14:26:15 +0200
committerLiang Qi <liang.qi@theqtcompany.com>2016-04-18 15:28:37 +0000
commit95babf15bda484e7c1764d4db6a6b55c1c47378a (patch)
tree783eeb2d26fdd066ee5b975e0f01b283c5347945 /src
parent26eeea3959455fbde884631c554702ef0a8dff75 (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.cpp12
-rw-r--r--src/quicktemplates2/qquickcontrol_p_p.h9
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;