diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2018-01-16 09:37:42 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2018-01-16 09:38:19 +0100 |
commit | 08e6333450bc28c61fa804101df3ae8bef4e9568 (patch) | |
tree | acb8973cbbd2319ab75e460e35a3278459d717df /src/quicktemplates2/qquickabstractbutton.cpp | |
parent | ef5e426bed3b1362394c7cc0c97522bb20cacff0 (diff) | |
parent | 744d14b468eb4bdd4dabf72ef7acdca1bc07ea5d (diff) |
Merge remote-tracking branch 'origin/5.10' into dev
Change-Id: Ibd1490e8d958361e55ac272dff75c9361239958b
Diffstat (limited to 'src/quicktemplates2/qquickabstractbutton.cpp')
-rw-r--r-- | src/quicktemplates2/qquickabstractbutton.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/quicktemplates2/qquickabstractbutton.cpp b/src/quicktemplates2/qquickabstractbutton.cpp index b8c6eb84..238669c6 100644 --- a/src/quicktemplates2/qquickabstractbutton.cpp +++ b/src/quicktemplates2/qquickabstractbutton.cpp @@ -355,13 +355,19 @@ void QQuickAbstractButtonPrivate::toggle(bool value) static inline QString indicatorName() { return QStringLiteral("indicator"); } +void QQuickAbstractButtonPrivate::cancelIndicator() +{ + Q_Q(QQuickAbstractButton); + quickCancelDeferred(q, indicatorName()); +} + void QQuickAbstractButtonPrivate::executeIndicator(bool complete) { - Q_Q(QQuickControl); + Q_Q(QQuickAbstractButton); if (indicator.wasExecuted()) return; - if (!indicator) + if (!indicator || complete) quickBeginDeferred(q, indicatorName(), indicator); if (complete) quickCompleteDeferred(q, indicatorName(), indicator); @@ -682,6 +688,9 @@ void QQuickAbstractButton::setIndicator(QQuickItem *indicator) if (d->indicator == indicator) return; + if (!d->indicator.isExecuting()) + d->cancelIndicator(); + delete d->indicator; d->indicator = indicator; if (indicator) { |