Platform style hints: Introduce keyboard repeat rate.
Change-Id: I556c2ecec7d5368122875a659af3ae7db88aa481 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
This commit is contained in:
parent
1f6f1de163
commit
7024ddba4b
@ -227,6 +227,8 @@ QVariant QPlatformIntegration::styleHint(StyleHint hint) const
|
|||||||
return 1000;
|
return 1000;
|
||||||
case KeyboardInputInterval:
|
case KeyboardInputInterval:
|
||||||
return 400;
|
return 400;
|
||||||
|
case KeyboardAutoRepeatRate:
|
||||||
|
return 30;
|
||||||
case MouseDoubleClickInterval:
|
case MouseDoubleClickInterval:
|
||||||
return 400;
|
return 400;
|
||||||
case StartDragDistance:
|
case StartDragDistance:
|
||||||
|
@ -106,7 +106,8 @@ public:
|
|||||||
KeyboardInputInterval,
|
KeyboardInputInterval,
|
||||||
MouseDoubleClickInterval,
|
MouseDoubleClickInterval,
|
||||||
StartDragDistance,
|
StartDragDistance,
|
||||||
StartDragTime
|
StartDragTime,
|
||||||
|
KeyboardAutoRepeatRate
|
||||||
};
|
};
|
||||||
|
|
||||||
virtual QVariant styleHint(StyleHint hint) const;
|
virtual QVariant styleHint(StyleHint hint) const;
|
||||||
|
@ -76,6 +76,11 @@ int QStyleHints::keyboardInputInterval() const
|
|||||||
return hint(QPlatformIntegration::KeyboardInputInterval).toInt();
|
return hint(QPlatformIntegration::KeyboardInputInterval).toInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int QStyleHints::keyboardAutoRepeatRate() const
|
||||||
|
{
|
||||||
|
return hint(QPlatformIntegration::KeyboardAutoRepeatRate).toInt();
|
||||||
|
}
|
||||||
|
|
||||||
int QStyleHints::cursorFlashTime() const
|
int QStyleHints::cursorFlashTime() const
|
||||||
{
|
{
|
||||||
return hint(QPlatformIntegration::CursorFlashTime).toInt();
|
return hint(QPlatformIntegration::CursorFlashTime).toInt();
|
||||||
|
@ -60,6 +60,7 @@ public:
|
|||||||
int startDragDistance() const;
|
int startDragDistance() const;
|
||||||
int startDragTime() const;
|
int startDragTime() const;
|
||||||
int keyboardInputInterval() const;
|
int keyboardInputInterval() const;
|
||||||
|
int keyboardAutoRepeatRate() const;
|
||||||
int cursorFlashTime() const;
|
int cursorFlashTime() const;
|
||||||
private:
|
private:
|
||||||
friend class QGuiApplication;
|
friend class QGuiApplication;
|
||||||
|
@ -271,6 +271,14 @@ QPlatformFontDatabase *QWindowsIntegration::fontDatabase() const
|
|||||||
return d->m_fontDatabase;
|
return d->m_fontDatabase;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int keyBoardAutoRepeatRateMS()
|
||||||
|
{
|
||||||
|
DWORD time = 0;
|
||||||
|
if (SystemParametersInfo(SPI_GETKEYBOARDSPEED, 0, &time, 0))
|
||||||
|
return time ? 1000 / static_cast<int>(time) : 500;
|
||||||
|
return 30;
|
||||||
|
}
|
||||||
|
|
||||||
QVariant QWindowsIntegration::styleHint(QPlatformIntegration::StyleHint hint) const
|
QVariant QWindowsIntegration::styleHint(QPlatformIntegration::StyleHint hint) const
|
||||||
{
|
{
|
||||||
switch (hint) {
|
switch (hint) {
|
||||||
@ -278,7 +286,8 @@ QVariant QWindowsIntegration::styleHint(QPlatformIntegration::StyleHint hint) co
|
|||||||
if (const unsigned timeMS = GetCaretBlinkTime())
|
if (const unsigned timeMS = GetCaretBlinkTime())
|
||||||
return QVariant(int(timeMS));
|
return QVariant(int(timeMS));
|
||||||
break;
|
break;
|
||||||
|
case KeyboardAutoRepeatRate:
|
||||||
|
return QVariant(keyBoardAutoRepeatRateMS());
|
||||||
case QPlatformIntegration::StartDragTime:
|
case QPlatformIntegration::StartDragTime:
|
||||||
case QPlatformIntegration::StartDragDistance:
|
case QPlatformIntegration::StartDragDistance:
|
||||||
case QPlatformIntegration::MouseDoubleClickInterval:
|
case QPlatformIntegration::MouseDoubleClickInterval:
|
||||||
|
@ -48,6 +48,7 @@
|
|||||||
#ifndef QT_NO_SPINBOX
|
#ifndef QT_NO_SPINBOX
|
||||||
|
|
||||||
#include <qapplication.h>
|
#include <qapplication.h>
|
||||||
|
#include <qstylehints.h>
|
||||||
#include <qclipboard.h>
|
#include <qclipboard.h>
|
||||||
#include <qdatetime.h>
|
#include <qdatetime.h>
|
||||||
#include <qdatetimeedit.h>
|
#include <qdatetimeedit.h>
|
||||||
@ -1169,15 +1170,6 @@ void QAbstractSpinBox::hideEvent(QHideEvent *event)
|
|||||||
|
|
||||||
Remember that time value should be given in msecs.
|
Remember that time value should be given in msecs.
|
||||||
*/
|
*/
|
||||||
static int getKeyboardAutoRepeatRate() {
|
|
||||||
int ret = 30;
|
|
||||||
#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
|
|
||||||
DWORD time;
|
|
||||||
if (SystemParametersInfo(SPI_GETKEYBOARDSPEED, 0, &time, 0) != FALSE)
|
|
||||||
ret = static_cast<int>(1000 / static_cast<int>(time)); // msecs
|
|
||||||
#endif
|
|
||||||
return ret; // msecs
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\reimp
|
\reimp
|
||||||
@ -1192,7 +1184,7 @@ void QAbstractSpinBox::timerEvent(QTimerEvent *event)
|
|||||||
killTimer(d->spinClickThresholdTimerId);
|
killTimer(d->spinClickThresholdTimerId);
|
||||||
d->spinClickThresholdTimerId = -1;
|
d->spinClickThresholdTimerId = -1;
|
||||||
d->effectiveSpinRepeatRate = d->buttonState & Keyboard
|
d->effectiveSpinRepeatRate = d->buttonState & Keyboard
|
||||||
? getKeyboardAutoRepeatRate()
|
? qApp->styleHints()->keyboardAutoRepeatRate()
|
||||||
: d->spinClickTimerInterval;
|
: d->spinClickTimerInterval;
|
||||||
d->spinClickTimerId = startTimer(d->effectiveSpinRepeatRate);
|
d->spinClickTimerId = startTimer(d->effectiveSpinRepeatRate);
|
||||||
doStep = true;
|
doStep = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user