From 94355ca15a4d451f4a4b858240e2c1a96e26537b Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Wed, 31 Aug 2011 10:47:09 +0200 Subject: Add a QStyleHints class to QtGui MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This class encapsulates platform specific style hints like doubleClickInterval or cursorFlashTime. Change-Id: I0d88c47a59d564d8d346642184e5b14e1864cf40 Reviewed-on: http://codereview.qt.nokia.com/3927 Reviewed-by: Samuel Rødal --- src/gui/kernel/qguiapplication.cpp | 49 ++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 23 deletions(-) (limited to 'src/gui/kernel/qguiapplication.cpp') diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index e1d40806bc..029a89c472 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -58,6 +58,7 @@ #include #include +#include #include #include "private/qwindowsysteminterface_qpa_p.h" @@ -82,8 +83,6 @@ Q_GUI_EXPORT bool qt_is_gui_used = true; Qt::MouseButtons QGuiApplicationPrivate::mouse_buttons = Qt::NoButton; Qt::KeyboardModifiers QGuiApplicationPrivate::modifier_buttons = Qt::NoModifier; -int QGuiApplicationPrivate::keyboard_input_time = 400; -int QGuiApplicationPrivate::mouse_double_click_time = 400; QPointF QGuiApplicationPrivate::lastCursorPosition(0.0, 0.0); QPlatformIntegration *QGuiApplicationPrivate::platform_integration = 0; @@ -401,6 +400,8 @@ QGuiApplicationPrivate::~QGuiApplicationPrivate() cleanupThreadData(); + delete styleHints; + delete platform_integration; platform_integration = 0; } @@ -434,26 +435,6 @@ Qt::MouseButtons QGuiApplication::mouseButtons() return QGuiApplicationPrivate::mouse_buttons; } -void QGuiApplication::setDoubleClickInterval(int ms) -{ - QGuiApplicationPrivate::mouse_double_click_time = ms; -} - -int QGuiApplication::doubleClickInterval() -{ - return QGuiApplicationPrivate::mouse_double_click_time; -} - -void QGuiApplication::setKeyboardInputInterval(int ms) -{ - QGuiApplicationPrivate::keyboard_input_time = ms; -} - -int QGuiApplication::keyboardInputInterval() -{ - return QGuiApplicationPrivate::keyboard_input_time; -} - QPlatformNativeInterface *QGuiApplication::platformNativeInterface() { QPlatformIntegration *pi = QGuiApplicationPrivate::platformIntegration(); @@ -588,7 +569,8 @@ void QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::Mo } buttons = e->buttons; if (button & e->buttons) { - if ((e->timestamp - mousePressTime) < static_cast(QGuiApplication::doubleClickInterval()) && button == mousePressButton) { + if ((e->timestamp - mousePressTime) < static_cast(qApp->styleHints()->mouseDoubleClickInterval()) && + button == mousePressButton) { type = QEvent::MouseButtonDblClick; mousePressButton = Qt::NoButton; } @@ -1171,6 +1153,27 @@ void QGuiApplication::restoreOverrideCursor() } #endif// QT_NO_CURSOR +/*! + \since 5.0 + + returns the style hints. + + The style hints encapsulate a set of platform dependent properties + such as double click intervals, full width selection and others. + + The hints can be used to integrate tighter with the underlying platform. + + \sa QStyleHints + */ +QStyleHints *QGuiApplication::styleHints() const +{ + Q_D(const QGuiApplication); + if (!d->styleHints) + const_cast(d)->styleHints = new QStyleHints(); + return d->styleHints; +} + + // Returns the current platform used by keyBindings uint QGuiApplicationPrivate::currentKeyPlatform() -- cgit v1.2.3