From 8ae55a3484c0811cb975572dea396b978a54836b Mon Sep 17 00:00:00 2001 From: Pekka Vuorela Date: Thu, 5 Jan 2012 18:03:49 +0200 Subject: Input direction/locale to come from platform input context Change-Id: Ib049693211a08dcffc9dbe49add54e7feab38978 Reviewed-by: Lars Knoll Reviewed-by: Joona Petrell --- src/gui/kernel/qinputpanel.cpp | 13 ++++++++++--- src/gui/kernel/qplatforminputcontext_qpa.cpp | 22 ++++++++++++++++++++++ src/gui/kernel/qplatforminputcontext_qpa.h | 5 +++++ 3 files changed, 37 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/gui/kernel/qinputpanel.cpp b/src/gui/kernel/qinputpanel.cpp index 804bcda4dc..d6dd55b651 100644 --- a/src/gui/kernel/qinputpanel.cpp +++ b/src/gui/kernel/qinputpanel.cpp @@ -41,7 +41,6 @@ #include #include -#include "private/qkeymapper_p.h" QT_BEGIN_NAMESPACE @@ -254,7 +253,11 @@ bool QInputPanel::isAnimating() const */ QLocale QInputPanel::locale() const { - return qt_keymapper_private()->keyboardInputLocale; + Q_D(const QInputPanel); + QPlatformInputContext *ic = d->platformInputContext(); + if (ic) + return ic->locale(); + return QLocale::c(); } /*! @@ -263,7 +266,11 @@ QLocale QInputPanel::locale() const */ Qt::LayoutDirection QInputPanel::inputDirection() const { - return qt_keymapper_private()->keyboardInputDirection; + Q_D(const QInputPanel); + QPlatformInputContext *ic = d->platformInputContext(); + if (ic) + return ic->inputDirection(); + return Qt::LeftToRight; } /*! diff --git a/src/gui/kernel/qplatforminputcontext_qpa.cpp b/src/gui/kernel/qplatforminputcontext_qpa.cpp index 02b51712bc..1e82507653 100644 --- a/src/gui/kernel/qplatforminputcontext_qpa.cpp +++ b/src/gui/kernel/qplatforminputcontext_qpa.cpp @@ -42,6 +42,7 @@ #include #include #include +#include "private/qkeymapper_p.h" QT_BEGIN_NAMESPACE @@ -207,4 +208,25 @@ void QPlatformInputContext::emitInputPanelVisibleChanged() emit qApp->inputPanel()->visibleChanged(); } +QLocale QPlatformInputContext::locale() const +{ + return qt_keymapper_private()->keyboardInputLocale; +} + +void QPlatformInputContext::emitLocaleChanged() +{ + emit qApp->inputPanel()->localeChanged(); +} + +Qt::LayoutDirection QPlatformInputContext::inputDirection() const +{ + return qt_keymapper_private()->keyboardInputDirection; +} + +void QPlatformInputContext::emitInputDirectionChanged(Qt::LayoutDirection newDirection) +{ + emit qApp->inputPanel()->inputDirectionChanged(newDirection); +} + + QT_END_NAMESPACE diff --git a/src/gui/kernel/qplatforminputcontext_qpa.h b/src/gui/kernel/qplatforminputcontext_qpa.h index 289b3316bd..463238f336 100644 --- a/src/gui/kernel/qplatforminputcontext_qpa.h +++ b/src/gui/kernel/qplatforminputcontext_qpa.h @@ -77,6 +77,11 @@ public: virtual void hideInputPanel(); virtual bool isInputPanelVisible() const; void emitInputPanelVisibleChanged(); + + virtual QLocale locale() const; + void emitLocaleChanged(); + virtual Qt::LayoutDirection inputDirection() const; + void emitInputDirectionChanged(Qt::LayoutDirection newDirection); }; QT_END_NAMESPACE -- cgit v1.2.3