aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickpositioners_p_p.h
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2015-06-09 11:02:12 +0200
committerSimon Hausmann <simon.hausmann@theqtcompany.com>2015-06-15 09:31:06 +0000
commitd845227aca013f9d3c0d63a394a5c27733f6d019 (patch)
tree7de60a41546af764d950891ee67ffb918b3aa476 /src/quick/items/qquickpositioners_p_p.h
parent5b73877777b697c56d8a5f196aa256f67212e4f2 (diff)
QQuickPositioner: move paddings into extraData
Includes Column, Row, Grid and Flow. Task-number: QTBUG-46529 Change-Id: Ib49e4fa08d95a94b3eca9fc20865acb9281aaad1 Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Diffstat (limited to 'src/quick/items/qquickpositioners_p_p.h')
-rw-r--r--src/quick/items/qquickpositioners_p_p.h36
1 files changed, 17 insertions, 19 deletions
diff --git a/src/quick/items/qquickpositioners_p_p.h b/src/quick/items/qquickpositioners_p_p.h
index a58f79ac0a..6e1e15d4ef 100644
--- a/src/quick/items/qquickpositioners_p_p.h
+++ b/src/quick/items/qquickpositioners_p_p.h
@@ -51,6 +51,7 @@
#include <QtQuick/private/qquickstate_p.h>
#include <private/qquicktransitionmanager_p_p.h>
#include <private/qquickstatechangescript_p.h>
+#include <private/qlazilyallocated_p.h>
#include <QtCore/qobject.h>
#include <QtCore/qstring.h>
@@ -65,19 +66,25 @@ class QQuickBasePositionerPrivate : public QQuickImplicitSizeItemPrivate, public
Q_DECLARE_PUBLIC(QQuickBasePositioner)
public:
+ struct ExtraData {
+ ExtraData();
+
+ qreal padding;
+ qreal topPadding;
+ qreal leftPadding;
+ qreal rightPadding;
+ qreal bottomPadding;
+ bool explicitTopPadding : 1;
+ bool explicitLeftPadding : 1;
+ bool explicitRightPadding : 1;
+ bool explicitBottomPadding : 1;
+ };
+ QLazilyAllocated<ExtraData> extra;
+
QQuickBasePositionerPrivate()
: spacing(0), type(QQuickBasePositioner::None)
, transitioner(0), positioningDirty(false)
, doingPositioning(false), anchorConflict(false), layoutDirection(Qt::LeftToRight)
- , padding(0)
- , topPadding(0)
- , leftPadding(0)
- , rightPadding(0)
- , bottomPadding(0)
- , explicitTopPadding(false)
- , explicitLeftPadding(false)
- , explicitRightPadding(false)
- , explicitBottomPadding(false)
{
}
@@ -108,16 +115,6 @@ public:
Qt::LayoutDirection layoutDirection;
- qreal padding;
- qreal topPadding;
- qreal leftPadding;
- qreal rightPadding;
- qreal bottomPadding;
- bool explicitTopPadding;
- bool explicitLeftPadding;
- bool explicitRightPadding;
- bool explicitBottomPadding;
-
void mirrorChange() Q_DECL_OVERRIDE {
effectiveLayoutDirectionChange();
}
@@ -170,6 +167,7 @@ public:
{
}
+ inline qreal padding() const { return extra.isAllocated() ? extra->padding : 0.0; }
void setTopPadding(qreal value, bool reset = false);
void setLeftPadding(qreal value, bool reset = false);
void setRightPadding(qreal value, bool reset = false);