aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@theqtcompany.com>2015-04-24 18:33:49 +0200
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2015-04-27 11:38:37 +0000
commit183798bf9512171f6b68aa2d9c6642f4d1501331 (patch)
tree554a25ddecde9b471b11ca808c8443aa56b6b224
parentac1d446c1356ec8e11d1bf14b5559c682079b70c (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.cpp21
-rw-r--r--src/controls/qquickcontrol_p.h2
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)