diff options
author | David Faure <faure@kde.org> | 2012-03-07 22:52:42 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-09 18:50:52 +0100 |
commit | 816893d91d550c08297ebcdfc3306bb3d9c0c2f6 (patch) | |
tree | 32e1ceecec6e8d3666efa4622ca53d270a871915 /src/gui/kernel | |
parent | 657f634c0e8a1bf4f544b4c42b35640b4dfcc486 (diff) |
Fix some duplication between QGuiApplication and QApplication,
for the mouseButtons and keyboardModifiers vars and methods.
Implement queryKeyboardModifiers with a new virtual in
QPlatformIntegration.
Task-number: QTBUG-11243
Change-Id: I9e95841542ac61c73ff72d7682ad962ea8aada42
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Diffstat (limited to 'src/gui/kernel')
-rw-r--r-- | src/gui/kernel/qguiapplication.cpp | 46 | ||||
-rw-r--r-- | src/gui/kernel/qguiapplication.h | 1 | ||||
-rw-r--r-- | src/gui/kernel/qplatformintegration_qpa.cpp | 5 | ||||
-rw-r--r-- | src/gui/kernel/qplatformintegration_qpa.h | 2 |
4 files changed, 52 insertions, 2 deletions
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index 42ce3745de..bfc52a816c 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -753,7 +753,17 @@ static QClipboard *clipboard(); #endif /*! - Returns the currently held keyboard modifiers. + Returns the current state of the modifier keys on the keyboard. The current + state is updated sychronously as the event queue is emptied of events that + will spontaneously change the keyboard state (QEvent::KeyPress and + QEvent::KeyRelease events). + + It should be noted this may not reflect the actual keys held on the input + device at the time of calling but rather the modifiers as last reported in + one of the above events. If no keys are being held Qt::NoModifier is + returned. + + \sa mouseButtons(), queryKeyboardModifiers() */ Qt::KeyboardModifiers QGuiApplication::keyboardModifiers() { @@ -761,7 +771,39 @@ Qt::KeyboardModifiers QGuiApplication::keyboardModifiers() } /*! - Returns the currently held mouse buttons. + \fn Qt::KeyboardModifiers QApplication::queryKeyboardModifiers() + + Queries and returns the state of the modifier keys on the keyboard. + Unlike keyboardModifiers, this method returns the actual keys held + on the input device at the time of calling the method. + + It does not rely on the keypress events having been received by this + process, which makes it possible to check the modifiers while moving + a window, for instance. Note that in most cases, you should use + keyboardModifiers(), which is faster and more accurate since it contains + the state of the modifiers as they were when the currently processed + event was received. + + \sa keyboardModifiers() +*/ +Qt::KeyboardModifiers QGuiApplication::queryKeyboardModifiers() +{ + QPlatformIntegration *pi = QGuiApplicationPrivate::platformIntegration(); + return pi->queryKeyboardModifiers(); +} + +/*! + Returns the current state of the buttons on the mouse. The current state is + updated syncronously as the event queue is emptied of events that will + spontaneously change the mouse state (QEvent::MouseButtonPress and + QEvent::MouseButtonRelease events). + + It should be noted this may not reflect the actual buttons held on the + input device at the time of calling but rather the mouse buttons as last + reported in one of the above events. If no mouse buttons are being held + Qt::NoButton is returned. + + \sa keyboardModifiers() */ Qt::MouseButtons QGuiApplication::mouseButtons() { diff --git a/src/gui/kernel/qguiapplication.h b/src/gui/kernel/qguiapplication.h index c374a05986..6fdbb000fe 100644 --- a/src/gui/kernel/qguiapplication.h +++ b/src/gui/kernel/qguiapplication.h @@ -113,6 +113,7 @@ public: static void setPalette(const QPalette &pal); static Qt::KeyboardModifiers keyboardModifiers(); + static Qt::KeyboardModifiers queryKeyboardModifiers(); static Qt::MouseButtons mouseButtons(); static void setLayoutDirection(Qt::LayoutDirection direction); diff --git a/src/gui/kernel/qplatformintegration_qpa.cpp b/src/gui/kernel/qplatformintegration_qpa.cpp index fd3714d303..e8721edce7 100644 --- a/src/gui/kernel/qplatformintegration_qpa.cpp +++ b/src/gui/kernel/qplatformintegration_qpa.cpp @@ -291,6 +291,11 @@ QVariant QPlatformIntegration::styleHint(StyleHint hint) const return 0; } +Qt::KeyboardModifiers QPlatformIntegration::queryKeyboardModifiers() const +{ + return QGuiApplication::keyboardModifiers(); +} + /*! Should be called by the implementation whenever a new screen is added. diff --git a/src/gui/kernel/qplatformintegration_qpa.h b/src/gui/kernel/qplatformintegration_qpa.h index a05c0f61b7..3f9de9df5e 100644 --- a/src/gui/kernel/qplatformintegration_qpa.h +++ b/src/gui/kernel/qplatformintegration_qpa.h @@ -124,6 +124,8 @@ public: virtual QVariant styleHint(StyleHint hint) const; + virtual Qt::KeyboardModifiers queryKeyboardModifiers() const; + virtual QPlatformTheme *platformTheme() const; protected: |