From bc6af06b7db10bf797eb523e7cf78ca4c153b687 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Fri, 6 Nov 2015 21:02:25 +0100 Subject: Add QStyleHints::setMousePressAndHoldInterval() Allows speeding up press & hold auto tests in qtquick core & controls. Change-Id: I66717b581996977e894e3c386880ab90379abaef Reviewed-by: Liang Qi --- src/gui/kernel/qstylehints.cpp | 22 +++++++++++++++++++++- src/gui/kernel/qstylehints.h | 4 +++- 2 files changed, 24 insertions(+), 2 deletions(-) (limited to 'src/gui') diff --git a/src/gui/kernel/qstylehints.cpp b/src/gui/kernel/qstylehints.cpp index 7ff0f9f860..0ecd2e12e8 100644 --- a/src/gui/kernel/qstylehints.cpp +++ b/src/gui/kernel/qstylehints.cpp @@ -65,6 +65,7 @@ class QStyleHintsPrivate : public QObjectPrivate public: inline QStyleHintsPrivate() : m_mouseDoubleClickInterval(-1) + , m_mousePressAndHoldInterval(-1) , m_startDragDistance(-1) , m_startDragTime(-1) , m_keyboardInputInterval(-1) @@ -72,6 +73,7 @@ public: {} int m_mouseDoubleClickInterval; + int m_mousePressAndHoldInterval; int m_startDragDistance; int m_startDragTime; int m_keyboardInputInterval; @@ -128,6 +130,21 @@ int QStyleHints::mouseDoubleClickInterval() const themeableHint(QPlatformTheme::MouseDoubleClickInterval, QPlatformIntegration::MouseDoubleClickInterval).toInt(); } +/*! + Sets the \a mousePressAndHoldInterval. + \internal + \sa mousePressAndHoldInterval() + \since 5.7 +*/ +void QStyleHints::setMousePressAndHoldInterval(int mousePressAndHoldInterval) +{ + Q_D(QStyleHints); + if (d->m_mousePressAndHoldInterval == mousePressAndHoldInterval) + return; + d->m_mousePressAndHoldInterval = mousePressAndHoldInterval; + emit mousePressAndHoldIntervalChanged(mousePressAndHoldInterval); +} + /*! \property QStyleHints::mousePressAndHoldInterval \brief the time limit in milliseconds that activates @@ -137,7 +154,10 @@ int QStyleHints::mouseDoubleClickInterval() const */ int QStyleHints::mousePressAndHoldInterval() const { - return themeableHint(QPlatformTheme::MousePressAndHoldInterval, QPlatformIntegration::MousePressAndHoldInterval).toInt(); + Q_D(const QStyleHints); + return d->m_mousePressAndHoldInterval >= 0 ? + d->m_mousePressAndHoldInterval : + themeableHint(QPlatformTheme::MousePressAndHoldInterval, QPlatformIntegration::MousePressAndHoldInterval).toInt(); } /*! diff --git a/src/gui/kernel/qstylehints.h b/src/gui/kernel/qstylehints.h index 82eb8a6f7d..5762482f35 100644 --- a/src/gui/kernel/qstylehints.h +++ b/src/gui/kernel/qstylehints.h @@ -51,7 +51,7 @@ class Q_GUI_EXPORT QStyleHints : public QObject Q_PROPERTY(int keyboardAutoRepeatRate READ keyboardAutoRepeatRate STORED false CONSTANT FINAL) Q_PROPERTY(int keyboardInputInterval READ keyboardInputInterval NOTIFY keyboardInputIntervalChanged FINAL) Q_PROPERTY(int mouseDoubleClickInterval READ mouseDoubleClickInterval NOTIFY mouseDoubleClickIntervalChanged FINAL) - Q_PROPERTY(int mousePressAndHoldInterval READ mousePressAndHoldInterval STORED false CONSTANT FINAL) + Q_PROPERTY(int mousePressAndHoldInterval READ mousePressAndHoldInterval NOTIFY mousePressAndHoldIntervalChanged FINAL) Q_PROPERTY(QChar passwordMaskCharacter READ passwordMaskCharacter STORED false CONSTANT FINAL) Q_PROPERTY(int passwordMaskDelay READ passwordMaskDelay STORED false CONSTANT FINAL) Q_PROPERTY(bool setFocusOnTouchRelease READ setFocusOnTouchRelease STORED false CONSTANT FINAL) @@ -66,6 +66,7 @@ class Q_GUI_EXPORT QStyleHints : public QObject public: void setMouseDoubleClickInterval(int mouseDoubleClickInterval); int mouseDoubleClickInterval() const; + void setMousePressAndHoldInterval(int mousePressAndHoldInterval); int mousePressAndHoldInterval() const; void setStartDragDistance(int startDragDistance); int startDragDistance() const; @@ -90,6 +91,7 @@ Q_SIGNALS: void cursorFlashTimeChanged(int cursorFlashTime); void keyboardInputIntervalChanged(int keyboardInputInterval); void mouseDoubleClickIntervalChanged(int mouseDoubleClickInterval); + void mousePressAndHoldIntervalChanged(int mousePressAndHoldInterval); void startDragDistanceChanged(int startDragDistance); void startDragTimeChanged(int startDragTime); -- cgit v1.2.3