summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/qnx/qqnxinputcontext_noimf.cpp
diff options
context:
space:
mode:
authorKevin Krammer <kevin.krammer.qnx@kdab.com>2012-03-23 12:50:22 +0100
committerQt by Nokia <qt-info@nokia.com>2012-03-28 19:34:42 +0200
commit5d117fd427e3e727df5d3f417a2b91366f2a31c1 (patch)
tree7ab2f4bffabd8af212e481c3563c2b8ecb48d12a /src/plugins/platforms/qnx/qqnxinputcontext_noimf.cpp
parenta80a2c6da241dac77f533bc702a1c7d94349a812 (diff)
Refactoring virtual keyboard class into non-singleton
Getting rid of the singleton gives us better control over when the virtual keyboard handling class is instantiated and configured. Also notify screens about keyboard height changes and let them notify through QWindowSystemInterface instead of "guessing" the screen in QQnxVirtualKeyboard. Change-Id: I71a7f6b5e9d5455563404f6abe7a0daec567a12d Reviewed-by: Sean Harmer <sh@theharmers.co.uk> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Diffstat (limited to 'src/plugins/platforms/qnx/qqnxinputcontext_noimf.cpp')
-rw-r--r--src/plugins/platforms/qnx/qqnxinputcontext_noimf.cpp28
1 files changed, 16 insertions, 12 deletions
diff --git a/src/plugins/platforms/qnx/qqnxinputcontext_noimf.cpp b/src/plugins/platforms/qnx/qqnxinputcontext_noimf.cpp
index 33b6c0e6f3..6c8a0abe17 100644
--- a/src/plugins/platforms/qnx/qqnxinputcontext_noimf.cpp
+++ b/src/plugins/platforms/qnx/qqnxinputcontext_noimf.cpp
@@ -46,12 +46,14 @@
#include <QtGui/QGuiApplication>
#include <QtWidgets/QAbstractSpinBox>
-QQnxInputContext::QQnxInputContext() :
+QT_BEGIN_NAMESPACE
+
+QQnxInputContext::QQnxInputContext(QQnxVirtualKeyboard &keyboard) :
QPlatformInputContext(),
m_inputPanelVisible(false),
- m_inputPanelLocale(QLocale::c())
+ m_inputPanelLocale(QLocale::c()),
+ m_virtualKeyboard(keyboard)
{
- QQnxVirtualKeyboard &keyboard = QQnxVirtualKeyboard::instance();
connect(&keyboard, SIGNAL(visibilityChanged(bool)), this, SLOT(keyboardVisibilityChanged(bool)));
connect(&keyboard, SIGNAL(localeChanged(QLocale)), this, SLOT(keyboardLocaleChanged(QLocale)));
keyboardVisibilityChanged(keyboard.isVisible());
@@ -86,7 +88,7 @@ bool QQnxInputContext::filterEvent( const QEvent *event )
return false;
if (event->type() == QEvent::CloseSoftwareInputPanel) {
- QQnxVirtualKeyboard::instance().hideKeyboard();
+ m_virtualKeyboard.hideKeyboard();
#if defined(QQNXINPUTCONTEXT_DEBUG)
qDebug() << "QQNX: hiding virtual keyboard";
#endif
@@ -94,7 +96,7 @@ bool QQnxInputContext::filterEvent( const QEvent *event )
}
if (event->type() == QEvent::RequestSoftwareInputPanel) {
- QQnxVirtualKeyboard::instance().showKeyboard();
+ m_virtualKeyboard.showKeyboard();
#if defined(QQNXINPUTCONTEXT_DEBUG)
qDebug() << "QQNX: requesting virtual keyboard";
#endif
@@ -120,7 +122,7 @@ void QQnxInputContext::showInputPanel()
#if defined(QQNXINPUTCONTEXT_DEBUG)
qDebug() << Q_FUNC_INFO;
#endif
- QQnxVirtualKeyboard::instance().showKeyboard();
+ m_virtualKeyboard.showKeyboard();
}
void QQnxInputContext::hideInputPanel()
@@ -128,7 +130,7 @@ void QQnxInputContext::hideInputPanel()
#if defined(QQNXINPUTCONTEXT_DEBUG)
qDebug() << Q_FUNC_INFO;
#endif
- QQnxVirtualKeyboard::instance().hideKeyboard();
+ m_virtualKeyboard.hideKeyboard();
}
bool QQnxInputContext::isInputPanelVisible() const
@@ -176,12 +178,14 @@ void QQnxInputContext::inputItemChanged()
if (m_inputPanelVisible)
hideInputPanel();
} else {
- if (qobject_cast<QAbstractSpinBox*>(inputItem)) {
- QQnxVirtualKeyboard::instance().setKeyboardMode(QQnxVirtualKeyboard::NumPunc);
- } else {
- QQnxVirtualKeyboard::instance().setKeyboardMode(QQnxVirtualKeyboard::Default);
- }
+ if (qobject_cast<QAbstractSpinBox*>(inputItem))
+ m_virtualKeyboard.setKeyboardMode(QQnxVirtualKeyboard::Phone);
+ else
+ m_virtualKeyboard.setKeyboardMode(QQnxVirtualKeyboard::Default);
+
if (!m_inputPanelVisible)
showInputPanel();
}
}
+
+QT_END_NAMESPACE