From 183798bf9512171f6b68aa2d9c6642f4d1501331 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Fri, 24 Apr 2015 18:33:49 +0200 Subject: 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 --- src/controls/qquickcontrol.cpp | 21 +++++++++++++++++---- src/controls/qquickcontrol_p.h | 2 ++ 2 files changed, 19 insertions(+), 4 deletions(-) (limited to 'src/controls') 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) -- cgit v1.2.3