10#include <QtCore/QDebug>
11#include <QtGui/QGuiApplication>
12#include <QtGui/QInputMethodEvent>
16Q_LOGGING_CATEGORY(lcQpaInputMethods,
"qt.qpa.input.methods");
19 QPlatformInputContext(),
20 m_inputPanelVisible(
false),
21 m_inputPanelLocale(QLocale::c()),
22 m_integration(integration),
23 m_virtualKeyboard(keyboard)
25 connect(&keyboard, SIGNAL(heightChanged(
int)),
this, SLOT(keyboardHeightChanged()));
26 connect(&keyboard, SIGNAL(visibilityChanged(
bool)),
this, SLOT(keyboardVisibilityChanged(
bool)));
27 connect(&keyboard, SIGNAL(localeChanged(QLocale)),
this, SLOT(keyboardLocaleChanged(QLocale)));
28 keyboardVisibilityChanged(keyboard.isVisible());
29 keyboardLocaleChanged(keyboard.locale());
53 if (hasPhysicalKeyboard())
56 if (event->type() == QEvent::CloseSoftwareInputPanel) {
57 m_virtualKeyboard.hideKeyboard();
58 qCDebug(lcQpaInputMethods) <<
"hiding virtual keyboard";
62 if (event->type() == QEvent::RequestSoftwareInputPanel) {
63 m_virtualKeyboard.showKeyboard();
64 qCDebug(lcQpaInputMethods) <<
"requesting virtual keyboard";
75 return QRectF(screenGeometry.x(), screenGeometry.height() - m_virtualKeyboard.height(),
76 screenGeometry.width(), m_virtualKeyboard.height());
91 qCDebug(lcQpaInputMethods) << Q_FUNC_INFO;
92 m_virtualKeyboard.showKeyboard();
97 qCDebug(lcQpaInputMethods) << Q_FUNC_INFO;
98 m_virtualKeyboard.hideKeyboard();
103 return m_inputPanelVisible;
108 return m_inputPanelLocale;
113 emitKeyboardRectChanged();
118 qCDebug(lcQpaInputMethods) <<
"visible=" << visible;
119 if (m_inputPanelVisible != visible) {
120 m_inputPanelVisible = visible;
121 emitInputPanelVisibleChanged();
127 qCDebug(lcQpaInputMethods) <<
"locale=" << locale;
128 if (m_inputPanelLocale != locale) {
129 m_inputPanelLocale = locale;
136 qCDebug(lcQpaInputMethods) <<
"input item=" << object;;
138 if (!inputMethodAccepted()) {
139 if (m_inputPanelVisible)
142 QInputMethodQueryEvent query(Qt::ImHints | Qt::ImEnterKeyType);
143 QCoreApplication::sendEvent(object, &query);
144 int inputHints = query.value(Qt::ImHints).toInt();
145 Qt::EnterKeyType qtEnterKeyType = Qt::EnterKeyType(query.value(Qt::ImEnterKeyType).toInt());
147 m_virtualKeyboard.setInputHints(inputHints);
148 m_virtualKeyboard.setEnterKeyType(
149 QQnxAbstractVirtualKeyboard::qtEnterKeyTypeToQnx(qtEnterKeyType)
152 if (!m_inputPanelVisible)
bool isInputPanelVisible() const override
Returns input panel visibility status.
void reset() override
Method to be called when input method needs to be reset.
void hideInputPanel() override
Request to hide input panel.
void setFocusObject(QObject *object) override
This virtual method gets called to notify updated focus to object.
QLocale locale() const override
bool isValid() const override
Returns input context validity.
bool filterEvent(const QEvent *event) override
This function can be reimplemented to filter input events.
bool handleKeyboardEvent(int flags, int sym, int mod, int scan, int cap)
QRectF keyboardRect() const override
This function can be reimplemented to return virtual keyboard rectangle in currently active window co...
void showInputPanel() override
Request to show input panel.
QQnxScreen * primaryDisplay() const
Combined button and popup list for selecting options.