diff options
author | J-P Nurmi <jpnurmi@theqtcompany.com> | 2015-04-24 18:33:49 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@theqtcompany.com> | 2015-04-27 11:38:37 +0000 |
commit | 183798bf9512171f6b68aa2d9c6642f4d1501331 (patch) | |
tree | 554a25ddecde9b471b11ca808c8443aa56b6b224 | |
parent | ac1d446c1356ec8e11d1bf14b5559c682079b70c (diff) |
Add QQuickControl::paddingChange()
Some controls will resize delegates inside the padding. In this
case reacting to geometryChange() is not enough, they must handle
paddingChange() as well.
Change-Id: I424454732a31db6d5a99ee1423f75cf753c80259
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
-rw-r--r-- | src/controls/qquickcontrol.cpp | 21 | ||||
-rw-r--r-- | src/controls/qquickcontrol_p.h | 2 |
2 files changed, 19 insertions, 4 deletions
diff --git a/src/controls/qquickcontrol.cpp b/src/controls/qquickcontrol.cpp index 72050811..427dde0f 100644 --- a/src/controls/qquickcontrol.cpp +++ b/src/controls/qquickcontrol.cpp @@ -68,8 +68,10 @@ void QQuickControlPrivate::setTopPadding(qreal value, bool reset) qreal oldPadding = q->topPadding(); topPadding = value; hasTopPadding = !reset; - if ((!reset && !qFuzzyCompare(oldPadding, value)) || (reset && !qFuzzyCompare(oldPadding, padding))) + if ((!reset && !qFuzzyCompare(oldPadding, value)) || (reset && !qFuzzyCompare(oldPadding, padding))) { emit q->topPaddingChanged(); + q->paddingChange(); + } } void QQuickControlPrivate::setLeftPadding(qreal value, bool reset) @@ -78,8 +80,10 @@ void QQuickControlPrivate::setLeftPadding(qreal value, bool reset) qreal oldPadding = q->leftPadding(); leftPadding = value; hasLeftPadding = !reset; - if ((!reset && !qFuzzyCompare(oldPadding, value)) || (reset && !qFuzzyCompare(oldPadding, padding))) + if ((!reset && !qFuzzyCompare(oldPadding, value)) || (reset && !qFuzzyCompare(oldPadding, padding))) { emit q->leftPaddingChanged(); + q->paddingChange(); + } } void QQuickControlPrivate::setRightPadding(qreal value, bool reset) @@ -88,8 +92,10 @@ void QQuickControlPrivate::setRightPadding(qreal value, bool reset) qreal oldPadding = q->rightPadding(); rightPadding = value; hasRightPadding = !reset; - if ((!reset && !qFuzzyCompare(oldPadding, value)) || (reset && !qFuzzyCompare(oldPadding, padding))) + if ((!reset && !qFuzzyCompare(oldPadding, value)) || (reset && !qFuzzyCompare(oldPadding, padding))) { emit q->rightPaddingChanged(); + q->paddingChange(); + } } void QQuickControlPrivate::setBottomPadding(qreal value, bool reset) @@ -98,8 +104,10 @@ void QQuickControlPrivate::setBottomPadding(qreal value, bool reset) qreal oldPadding = q->bottomPadding(); bottomPadding = value; hasBottomPadding = !reset; - if ((!reset && !qFuzzyCompare(oldPadding, value)) || (reset && !qFuzzyCompare(oldPadding, padding))) + if ((!reset && !qFuzzyCompare(oldPadding, value)) || (reset && !qFuzzyCompare(oldPadding, padding))) { emit q->bottomPaddingChanged(); + q->paddingChange(); + } } QQuickControl::QQuickControl(QQuickItem *parent) : @@ -142,6 +150,7 @@ void QQuickControl::setPadding(qreal padding) emit rightPaddingChanged(); if (!d->hasBottomPadding) emit bottomPaddingChanged(); + paddingChange(); } void QQuickControl::resetPadding() @@ -282,4 +291,8 @@ void QQuickControl::mirrorChange() { } +void QQuickControl::paddingChange() +{ +} + QT_END_NAMESPACE diff --git a/src/controls/qquickcontrol_p.h b/src/controls/qquickcontrol_p.h index d0da80fe..7fadddf7 100644 --- a/src/controls/qquickcontrol_p.h +++ b/src/controls/qquickcontrol_p.h @@ -107,6 +107,8 @@ protected: bool isMirrored() const; virtual void mirrorChange(); + virtual void paddingChange(); + private: Q_DISABLE_COPY(QQuickControl) Q_DECLARE_PRIVATE(QQuickControl) |