diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2020-02-22 03:05:56 +0100 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2020-02-22 03:05:57 +0100 |
commit | 35afc8d21b2f705463ec56d3e11679efb798b757 (patch) | |
tree | 1ed9824247f3a689ed24d91da54c01ec99c662bb /src | |
parent | c9260cd940fe9ca0e440b715cbfc13dd046e07b0 (diff) | |
parent | 09476c590ab13623130d5ac79045fa68e504be96 (diff) |
Merge remote-tracking branch 'origin/5.14' into 5.15v5.15.0-beta1
Change-Id: Iff02839c8ace49582750e06fa1ea9c559f6c93fe
Diffstat (limited to 'src')
-rw-r--r-- | src/imports/controls/fusion/qquickfusiondial.cpp | 2 | ||||
-rw-r--r-- | src/imports/controls/qquickdefaultbusyindicator.cpp | 2 | ||||
-rw-r--r-- | src/imports/controls/qquickdefaultprogressbar.cpp | 2 | ||||
-rw-r--r-- | src/quicktemplates2/qquickabstractbutton.cpp | 7 | ||||
-rw-r--r-- | src/quicktemplates2/qquickabstractbutton_p_p.h | 1 | ||||
-rw-r--r-- | src/quicktemplates2/qquicktooltip.cpp | 15 |
6 files changed, 22 insertions, 7 deletions
diff --git a/src/imports/controls/fusion/qquickfusiondial.cpp b/src/imports/controls/fusion/qquickfusiondial.cpp index 182f5c0f..50436634 100644 --- a/src/imports/controls/fusion/qquickfusiondial.cpp +++ b/src/imports/controls/fusion/qquickfusiondial.cpp @@ -84,7 +84,7 @@ void QQuickFusionDial::paint(QPainter *painter) QColor buttonColor = m_palette.button().color(); const bool enabled = isEnabled(); - qreal r = qMin(width, height) / 2; + qreal r = qMin(width, height) / 2.0; r -= r/50; const qreal penSize = r/20.0; diff --git a/src/imports/controls/qquickdefaultbusyindicator.cpp b/src/imports/controls/qquickdefaultbusyindicator.cpp index 98a3cae3..aca795d9 100644 --- a/src/imports/controls/qquickdefaultbusyindicator.cpp +++ b/src/imports/controls/qquickdefaultbusyindicator.cpp @@ -124,7 +124,7 @@ void QQuickDefaultBusyIndicatorNode::sync(QQuickItem *item) Q_ASSERT(rectNode->type() == QSGNode::GeometryNodeType); QPointF pos = QPointF(sz / 2 - circleRadius, sz / 2 - circleRadius); - pos = moveCircle(pos, 360 / CircleCount * i, sz / 2 - circleRadius); + pos = moveCircle(pos, 360.0 / CircleCount * i, sz / 2 - circleRadius); QMatrix4x4 m; m.translate(dx + pos.x(), dy + pos.y()); diff --git a/src/imports/controls/qquickdefaultprogressbar.cpp b/src/imports/controls/qquickdefaultprogressbar.cpp index e8657255..f44065e4 100644 --- a/src/imports/controls/qquickdefaultprogressbar.cpp +++ b/src/imports/controls/qquickdefaultprogressbar.cpp @@ -59,7 +59,7 @@ static inline qreal blockStartX(int blockIndex) static inline qreal blockRestX(int blockIndex, qreal availableWidth) { - const qreal spanRightEdgePos = availableWidth / 2 + BlockSpan / 2; + const qreal spanRightEdgePos = availableWidth / 2 + BlockSpan / 2.0; return spanRightEdgePos - (blockIndex + 1) * BlockWidth - (blockIndex * BlockRestingSpacing); } diff --git a/src/quicktemplates2/qquickabstractbutton.cpp b/src/quicktemplates2/qquickabstractbutton.cpp index 8ce4d0e5..8632e14c 100644 --- a/src/quicktemplates2/qquickabstractbutton.cpp +++ b/src/quicktemplates2/qquickabstractbutton.cpp @@ -178,7 +178,7 @@ void QQuickAbstractButtonPrivate::handleRelease(const QPointF &point) if (wasPressed) { emit q->released(); - if (!wasHeld) + if (!wasHeld && !wasDoubleClick) trigger(); } else { emit q->canceled(); @@ -188,6 +188,8 @@ void QQuickAbstractButtonPrivate::handleRelease(const QPointF &point) stopPressRepeat(); else stopPressAndHold(); + + wasDoubleClick = false; } void QQuickAbstractButtonPrivate::handleUngrab() @@ -201,6 +203,7 @@ void QQuickAbstractButtonPrivate::handleUngrab() q->setPressed(false); stopPressRepeat(); stopPressAndHold(); + wasDoubleClick = false; emit q->canceled(); } @@ -1080,8 +1083,10 @@ void QQuickAbstractButton::mousePressEvent(QMouseEvent *event) void QQuickAbstractButton::mouseDoubleClickEvent(QMouseEvent *event) { + Q_D(QQuickAbstractButton); QQuickControl::mouseDoubleClickEvent(event); emit doubleClicked(); + d->wasDoubleClick = true; } void QQuickAbstractButton::timerEvent(QTimerEvent *event) diff --git a/src/quicktemplates2/qquickabstractbutton_p_p.h b/src/quicktemplates2/qquickabstractbutton_p_p.h index 8ad479e2..9291c1a8 100644 --- a/src/quicktemplates2/qquickabstractbutton_p_p.h +++ b/src/quicktemplates2/qquickabstractbutton_p_p.h @@ -124,6 +124,7 @@ public: bool autoExclusive = false; bool autoRepeat = false; bool wasHeld = false; + bool wasDoubleClick = false; int holdTimer = 0; int delayTimer = 0; int repeatTimer = 0; diff --git a/src/quicktemplates2/qquicktooltip.cpp b/src/quicktemplates2/qquicktooltip.cpp index 9d733c94..8b61375e 100644 --- a/src/quicktemplates2/qquicktooltip.cpp +++ b/src/quicktemplates2/qquicktooltip.cpp @@ -252,9 +252,18 @@ void QQuickToolTip::setVisible(bool visible) { Q_D(QQuickToolTip); if (visible) { - if (!d->visible && d->delay > 0) { - d->startDelay(); - return; + if (!d->visible) { + // We are being made visible, and we weren't before. + if (d->delay > 0) { + d->startDelay(); + return; + } + } else { + // We are being made visible, even though we already were. + // We've probably been re-opened before our exit transition could finish. + // In that case, we need to manually start the timeout, as that is usually + // done in itemChange(), which won't be called in this situation. + d->startTimeout(); } } else { d->stopDelay(); |