summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/linuxfb
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@qt.io>2020-07-17 23:31:41 +0200
committerTor Arne Vestbø <tor.arne.vestbo@qt.io>2020-07-20 17:47:42 +0200
commit5b1befa31a9851397d56363f058568094d11f5f3 (patch)
treef1be4f68da64a59d6502e9e45488436417c68e5d /src/plugins/platforms/linuxfb
parent9166abcd997f57625c17db8e8734988ff303217e (diff)
Add QEvdevKeyMapper platform interface
Task-number: QTBUG-84220 Change-Id: I4f3a54415c5509b4bde486b54c56b0e05976bac6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'src/plugins/platforms/linuxfb')
-rw-r--r--src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp32
-rw-r--r--src/plugins/platforms/linuxfb/qlinuxfbintegration.h11
2 files changed, 17 insertions, 26 deletions
diff --git a/src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp b/src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp
index cea486db21..61c4fdf768 100644
--- a/src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp
+++ b/src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp
@@ -70,8 +70,6 @@
#include <QtInputSupport/private/qtslib_p.h>
#endif
-#include <QtPlatformHeaders/private/qlinuxfbfunctions_p.h>
-
QT_BEGIN_NAMESPACE
QLinuxFbIntegration::QLinuxFbIntegration(const QStringList &paramList)
@@ -181,40 +179,26 @@ QPlatformNativeInterface *QLinuxFbIntegration::nativeInterface() const
QFunctionPointer QLinuxFbIntegration::platformFunction(const QByteArray &function) const
{
-#if QT_CONFIG(evdev)
- if (function == QLinuxFbFunctions::loadKeymapTypeIdentifier())
- return QFunctionPointer(loadKeymapStatic);
- else if (function == QLinuxFbFunctions::switchLangTypeIdentifier())
- return QFunctionPointer(switchLangStatic);
-#else
Q_UNUSED(function);
-#endif
-
return 0;
}
-void QLinuxFbIntegration::loadKeymapStatic(const QString &filename)
-{
#if QT_CONFIG(evdev)
- QLinuxFbIntegration *self = static_cast<QLinuxFbIntegration *>(QGuiApplicationPrivate::platformIntegration());
- if (self->m_kbdMgr)
- self->m_kbdMgr->loadKeymap(filename);
+void QLinuxFbIntegration::loadKeymap(const QString &filename)
+{
+ if (m_kbdMgr)
+ m_kbdMgr->loadKeymap(filename);
else
qWarning("QLinuxFbIntegration: Cannot load keymap, no keyboard handler found");
-#else
- Q_UNUSED(filename);
-#endif
}
-void QLinuxFbIntegration::switchLangStatic()
+void QLinuxFbIntegration::switchLang()
{
-#if QT_CONFIG(evdev)
- QLinuxFbIntegration *self = static_cast<QLinuxFbIntegration *>(QGuiApplicationPrivate::platformIntegration());
- if (self->m_kbdMgr)
- self->m_kbdMgr->switchLang();
+ if (m_kbdMgr)
+ m_kbdMgr->switchLang();
else
qWarning("QLinuxFbIntegration: Cannot switch language, no keyboard handler found");
-#endif
}
+#endif
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/linuxfb/qlinuxfbintegration.h b/src/plugins/platforms/linuxfb/qlinuxfbintegration.h
index af6bd1d630..1e671ee7fc 100644
--- a/src/plugins/platforms/linuxfb/qlinuxfbintegration.h
+++ b/src/plugins/platforms/linuxfb/qlinuxfbintegration.h
@@ -42,6 +42,7 @@
#include <qpa/qplatformintegration.h>
#include <qpa/qplatformnativeinterface.h>
+#include <QtGui/private/qkeymapper_p.h>
QT_BEGIN_NAMESPACE
@@ -51,6 +52,9 @@ class QFbVtHandler;
class QEvdevKeyboardManager;
class QLinuxFbIntegration : public QPlatformIntegration, public QPlatformNativeInterface
+#if QT_CONFIG(evdev)
+ , public QPlatformInterface::Private::QEvdevKeyMapper
+#endif
{
public:
QLinuxFbIntegration(const QStringList &paramList);
@@ -74,10 +78,13 @@ public:
QFunctionPointer platformFunction(const QByteArray &function) const override;
+#if QT_CONFIG(evdev)
+ void loadKeymap(const QString &filename) override;
+ void switchLang() override;
+#endif
+
private:
void createInputHandlers();
- static void loadKeymapStatic(const QString &filename);
- static void switchLangStatic();
QFbScreen *m_primaryScreen;
QPlatformInputContext *m_inputContext;