diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/kernel/qinputpanel.cpp | 13 | ||||
-rw-r--r-- | src/gui/kernel/qplatforminputcontext_qpa.cpp | 22 | ||||
-rw-r--r-- | src/gui/kernel/qplatforminputcontext_qpa.h | 5 |
3 files changed, 37 insertions, 3 deletions
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 <qinputpanel.h> #include <private/qinputpanel_p.h> -#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 <qplatforminputcontext_qpa.h> #include <qguiapplication.h> #include <QRect> +#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 |