diff options
author | Kevin Krammer <kevin.krammer.qnx@kdab.com> | 2012-03-23 12:50:22 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-28 19:34:42 +0200 |
commit | 5d117fd427e3e727df5d3f417a2b91366f2a31c1 (patch) | |
tree | 7ab2f4bffabd8af212e481c3563c2b8ecb48d12a /src/plugins/platforms/qnx/qqnxinputcontext_noimf.cpp | |
parent | a80a2c6da241dac77f533bc702a1c7d94349a812 (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.cpp | 28 |
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 |