summaryrefslogtreecommitdiffstats
path: root/src
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
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')
-rw-r--r--src/gui/kernel/qkeymapper_p.h19
-rw-r--r--src/gui/platform/unix/qunixplatforminterface.cpp12
-rw-r--r--src/platformheaders/.prev_CMakeLists.txt1
-rw-r--r--src/platformheaders/CMakeLists.txt1
-rw-r--r--src/platformheaders/eglfsfunctions/qeglfsfunctions.qdoc43
-rw-r--r--src/platformheaders/eglfsfunctions/qeglfsfunctions_p.h19
-rw-r--r--src/platformheaders/linuxfbfunctions/linuxfbfunctions.pri1
-rw-r--r--src/platformheaders/linuxfbfunctions/qlinuxfbfunctions.qdoc82
-rw-r--r--src/platformheaders/linuxfbfunctions/qlinuxfbfunctions_p.h85
-rw-r--r--src/platformheaders/platformheaders.pro1
-rw-r--r--src/plugins/platforms/eglfs/api/qeglfsintegration.cpp29
-rw-r--r--src/plugins/platforms/eglfs/api/qeglfsintegration_p.h13
-rw-r--r--src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp32
-rw-r--r--src/plugins/platforms/linuxfb/qlinuxfbintegration.h11
14 files changed, 66 insertions, 283 deletions
diff --git a/src/gui/kernel/qkeymapper_p.h b/src/gui/kernel/qkeymapper_p.h
index cb77deb6ba..9abdbbb732 100644
--- a/src/gui/kernel/qkeymapper_p.h
+++ b/src/gui/kernel/qkeymapper_p.h
@@ -72,6 +72,9 @@ public:
static void changeKeyboard();
static QList<int> possibleKeys(QKeyEvent *e);
+ template <typename T>
+ T *platformInterface() const;
+
private:
friend QKeyMapperPrivate *qt_keymapper_private();
Q_DECLARE_PRIVATE(QKeyMapper)
@@ -96,6 +99,22 @@ public:
QKeyMapperPrivate *qt_keymapper_private(); // from qkeymapper.cpp
+// ----------------- QPlatformInterface -----------------
+
+namespace QPlatformInterface::Private {
+
+#if QT_CONFIG(evdev)
+struct Q_GUI_EXPORT QEvdevKeyMapper
+{
+ QT_DECLARE_PLATFORM_INTERFACE(QEvdevKeyMapper)
+ virtual void loadKeymap(const QString &filename) = 0;
+ virtual void switchLang() = 0;
+};
+#endif
+
+} // QPlatformInterface::Private
+
+
QT_END_NAMESPACE
#endif // QKEYMAPPER_P_H
diff --git a/src/gui/platform/unix/qunixplatforminterface.cpp b/src/gui/platform/unix/qunixplatforminterface.cpp
index 5806fe57e9..527c5210d7 100644
--- a/src/gui/platform/unix/qunixplatforminterface.cpp
+++ b/src/gui/platform/unix/qunixplatforminterface.cpp
@@ -47,6 +47,8 @@
#include <qpa/qplatformscreen_p.h>
#include <qpa/qplatformwindow_p.h>
+#include <QtGui/private/qkeymapper_p.h>
+
QT_BEGIN_NAMESPACE
using namespace QPlatformInterface::Private;
@@ -86,6 +88,16 @@ QT_DEFINE_PRIVATE_PLATFORM_INTERFACE(QXcbScreen);
QT_DEFINE_PRIVATE_PLATFORM_INTERFACE(QXcbWindow);
#endif
+#if QT_CONFIG(evdev)
+QT_DEFINE_PRIVATE_PLATFORM_INTERFACE(QEvdevKeyMapper);
+
+template <>
+QEvdevKeyMapper *QKeyMapper::platformInterface<QEvdevKeyMapper>() const
+{
+ return dynamic_cast<QEvdevKeyMapper*>(QGuiApplicationPrivate::platformIntegration());
+}
+#endif
+
#endif // QT_NO_OPENGL
QT_END_NAMESPACE
diff --git a/src/platformheaders/.prev_CMakeLists.txt b/src/platformheaders/.prev_CMakeLists.txt
index c4477d6a8e..c7cfe0ca69 100644
--- a/src/platformheaders/.prev_CMakeLists.txt
+++ b/src/platformheaders/.prev_CMakeLists.txt
@@ -9,7 +9,6 @@ qt_add_module(PlatformHeaders
SOURCES
eglfsfunctions/qeglfsfunctions_p.h
helper/qplatformheaderhelper_p.h
- linuxfbfunctions/qlinuxfbfunctions_p.h
waylandfunctions/qwaylandwindowfunctions_p.h
windowsfunctions/qwindowswindowfunctions_p.h
PUBLIC_LIBRARIES
diff --git a/src/platformheaders/CMakeLists.txt b/src/platformheaders/CMakeLists.txt
index ba91c11642..eaa0db8f10 100644
--- a/src/platformheaders/CMakeLists.txt
+++ b/src/platformheaders/CMakeLists.txt
@@ -10,7 +10,6 @@ qt_add_module(PlatformHeaders
# SOURCES
# eglfsfunctions/qeglfsfunctions_p.h
# helper/qplatformheaderhelper_p.h
- # linuxfbfunctions/qlinuxfbfunctions_p.h
# waylandfunctions/qwaylandwindowfunctions_p.h
# windowsfunctions/qwindowswindowfunctions_p.h
# special case end
diff --git a/src/platformheaders/eglfsfunctions/qeglfsfunctions.qdoc b/src/platformheaders/eglfsfunctions/qeglfsfunctions.qdoc
index a5f37f8377..573d820233 100644
--- a/src/platformheaders/eglfsfunctions/qeglfsfunctions.qdoc
+++ b/src/platformheaders/eglfsfunctions/qeglfsfunctions.qdoc
@@ -39,49 +39,6 @@
*/
/*!
- \typedef QEglFSFunctions::LoadKeymapType
-
- Function type for loadKeymap.
-*/
-
-/*!
- \fn QByteArray QEglFSFunctions::loadKeymapTypeIdentifier()
-
- \return the identifier that can be passed to
- QGuiApplication::platformFunction() to query the entry point for the
- loadKeymap function implementation.
-*/
-
-/*!
- \fn void QEglFSFunctions::loadKeymap(const QString &filename)
-
- Loads and switches to the keymap from \a filename. When \a filename is
- empty, the default keymap, which is either the built-on one or the keymap
- given in the plugin specification, is restored.
-
- \note This is functional only when the evdev keyboard support code is
- compiled in to the platform plugin. When using external generic plugins via
- the \c{-plugin} argument, or when the environment variable
- \c{QT_QPA_EGLFS_DISABLE_INPUT} is set or when building Qt without evdev
- support, this function will have no effect.
-*/
-
-/*!
- \fn void QEglFSFunctions::switchLang()
-
- Switches between English and other language when the keymap is loaded.
- Usually the keymap contains two languages: English and national. When
- you load the keymap, English is selected by default. This function allows
- to switch between these languages.
-
- \note This is functional only when the evdev keyboard support code is
- compiled in to the platform plugin. When using external generic plugins via
- the \c{-plugin} argument, or when the environment variable
- \c{QT_QPA_EGLFS_DISABLE_INPUT} is set or when building Qt without evdev
- support, this function will have no effect.
-*/
-
-/*!
\fn int QEglFSFunctions::vsp2AddLayer(const QScreen *screen, int dmabufFd, const QSize &size, const QPoint &position, uint drmPixelFormat, uint bytesPerLine)
\internal
\preliminary
diff --git a/src/platformheaders/eglfsfunctions/qeglfsfunctions_p.h b/src/platformheaders/eglfsfunctions/qeglfsfunctions_p.h
index 1eb177f694..2b0ff872ac 100644
--- a/src/platformheaders/eglfsfunctions/qeglfsfunctions_p.h
+++ b/src/platformheaders/eglfsfunctions/qeglfsfunctions_p.h
@@ -59,25 +59,6 @@ QT_BEGIN_NAMESPACE
class QEglFSFunctions
{
public:
- typedef void (*LoadKeymapType)(const QString &filename);
- typedef void (*SwitchLangType)();
- static QByteArray loadKeymapTypeIdentifier() { return QByteArrayLiteral("EglFSLoadKeymap"); }
- static QByteArray switchLangTypeIdentifier() { return QByteArrayLiteral("EglFSSwitchLang"); }
-
- static void loadKeymap(const QString &filename)
- {
- LoadKeymapType func = reinterpret_cast<LoadKeymapType>(QGuiApplication::platformFunction(loadKeymapTypeIdentifier()));
- if (func)
- func(filename);
- }
-
- static void switchLang()
- {
- SwitchLangType func = reinterpret_cast<SwitchLangType>(QGuiApplication::platformFunction(switchLangTypeIdentifier()));
- if (func)
- func();
- }
-
typedef int (*Vsp2AddLayerType)(const QScreen *screen, int dmabufFd, const QSize &size, const QPoint &position, uint drmPixelFormat, uint bytesPerLine);
static QByteArray vsp2AddLayerTypeIdentifier() { return QByteArrayLiteral("EglFSVsp2AddLayer"); }
diff --git a/src/platformheaders/linuxfbfunctions/linuxfbfunctions.pri b/src/platformheaders/linuxfbfunctions/linuxfbfunctions.pri
deleted file mode 100644
index dd18d6c0bb..0000000000
--- a/src/platformheaders/linuxfbfunctions/linuxfbfunctions.pri
+++ /dev/null
@@ -1 +0,0 @@
-HEADERS += $$PWD/qlinuxfbfunctions_p.h
diff --git a/src/platformheaders/linuxfbfunctions/qlinuxfbfunctions.qdoc b/src/platformheaders/linuxfbfunctions/qlinuxfbfunctions.qdoc
deleted file mode 100644
index 939aa76946..0000000000
--- a/src/platformheaders/linuxfbfunctions/qlinuxfbfunctions.qdoc
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \class QLinuxFbFunctions
- \inmodule QtPlatformHeaders
-
- \brief The QLinuxFbFunctions class is an inline class containing
- platform-specific functionality for the linuxfb platform plugin that is
- typically used on systems running Embedded Linux or Android.
-
- \note There is no binary compatibility guarantee for this class,
- meaning that an application using it is only guaranteed to work with the Qt
- version it was developed against.
-*/
-
-/*!
- \typedef QLinuxFbFunctions::LoadKeymapType
-
- Function type for loadKeymap.
-*/
-
-/*!
- \fn QByteArray QLinuxFbFunctions::loadKeymapTypeIdentifier()
-
- \return the identifier that can be passed to
- QGuiApplication::platformFunction() to query the entry point for the
- loadKeymap function implementation.
-*/
-
-/*!
- \fn void QLinuxFbFunctions::loadKeymap(const QString &filename)
-
- Loads and switches to the keymap from \a filename. When \a filename is
- empty, the default keymap, which is either the built-on one or the keymap
- given in the plugin specification, is restored.
-
- \note This is functional only when the evdev keyboard support code is
- compiled in to the platform plugin. When using external generic plugins via
- the \c{-plugin} argument, or when the environment variable
- \c{QT_QPA_FB_DISABLE_INPUT} is set or when building Qt without evdev
- support, this function will have no effect.
-*/
-
-/*!
- \fn void QLinuxFbFunctions::switchLang()
-
- Switches between English and other language when the keymap is loaded.
- Usually the keymap contains two languages: English and national. When
- you load the keymap, English is selected by default. This function allows
- to switch between these languages.
-
- \note This is functional only when the evdev keyboard support code is
- compiled in to the platform plugin. When using external generic plugins via
- the \c{-plugin} argument, or when the environment variable
- \c{QT_QPA_FB_DISABLE_INPUT} is set or when building Qt without evdev
- support, this function will have no effect.
-*/
diff --git a/src/platformheaders/linuxfbfunctions/qlinuxfbfunctions_p.h b/src/platformheaders/linuxfbfunctions/qlinuxfbfunctions_p.h
deleted file mode 100644
index 74e5187282..0000000000
--- a/src/platformheaders/linuxfbfunctions/qlinuxfbfunctions_p.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the plugins of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QLINUXFBFUNCTIONS_H
-#define QLINUXFBFUNCTIONS_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/QByteArray>
-#include <QtGui/QGuiApplication>
-
-QT_BEGIN_NAMESPACE
-
-class QLinuxFbFunctions
-{
-public:
- typedef void (*LoadKeymapType)(const QString &filename);
- typedef void (*SwitchLangType)();
- static QByteArray loadKeymapTypeIdentifier() { return QByteArrayLiteral("LinuxFbLoadKeymap"); }
- static QByteArray switchLangTypeIdentifier() { return QByteArrayLiteral("LinuxFbSwitchLang"); }
-
- static void loadKeymap(const QString &filename)
- {
- LoadKeymapType func = reinterpret_cast<LoadKeymapType>(QGuiApplication::platformFunction(loadKeymapTypeIdentifier()));
- if (func)
- func(filename);
- }
-
- static void switchLang()
- {
- SwitchLangType func = reinterpret_cast<SwitchLangType>(QGuiApplication::platformFunction(switchLangTypeIdentifier()));
- if (func)
- func();
- }
-};
-
-
-QT_END_NAMESPACE
-
-#endif // QLINUXFBFUNCTIONS_H
diff --git a/src/platformheaders/platformheaders.pro b/src/platformheaders/platformheaders.pro
index e988e2e87c..e7edbc60b1 100644
--- a/src/platformheaders/platformheaders.pro
+++ b/src/platformheaders/platformheaders.pro
@@ -5,7 +5,6 @@ include(eglfsfunctions/eglfsfunctions.pri)
include(windowsfunctions/windowsfunctions.pri)
include(helper/helper.pri)
include(waylandfunctions/waylandfunctions.pri)
-include(linuxfbfunctions/linuxfbfunctions.pri)
QMAKE_DOCS = $$PWD/doc/qtplatformheaders.qdocconf
diff --git a/src/plugins/platforms/eglfs/api/qeglfsintegration.cpp b/src/plugins/platforms/eglfs/api/qeglfsintegration.cpp
index 3ce78623fa..befab97baa 100644
--- a/src/plugins/platforms/eglfs/api/qeglfsintegration.cpp
+++ b/src/plugins/platforms/eglfs/api/qeglfsintegration.cpp
@@ -432,39 +432,26 @@ QPlatformNativeInterface::NativeResourceForContextFunction QEglFSIntegration::na
QFunctionPointer QEglFSIntegration::platformFunction(const QByteArray &function) const
{
-#if QT_CONFIG(evdev)
- if (function == QEglFSFunctions::loadKeymapTypeIdentifier())
- return QFunctionPointer(loadKeymapStatic);
- else if (function == QEglFSFunctions::switchLangTypeIdentifier())
- return QFunctionPointer(switchLangStatic);
-#endif
-
return qt_egl_device_integration()->platformFunction(function);
}
-void QEglFSIntegration::loadKeymapStatic(const QString &filename)
-{
#if QT_CONFIG(evdev)
- QEglFSIntegration *self = static_cast<QEglFSIntegration *>(QGuiApplicationPrivate::platformIntegration());
- if (self->m_kbdMgr)
- self->m_kbdMgr->loadKeymap(filename);
+void QEglFSIntegration::loadKeymap(const QString &filename)
+{
+ if (m_kbdMgr)
+ m_kbdMgr->loadKeymap(filename);
else
qWarning("QEglFSIntegration: Cannot load keymap, no keyboard handler found");
-#else
- Q_UNUSED(filename);
-#endif
}
-void QEglFSIntegration::switchLangStatic()
+void QEglFSIntegration::switchLang()
{
-#if QT_CONFIG(evdev)
- QEglFSIntegration *self = static_cast<QEglFSIntegration *>(QGuiApplicationPrivate::platformIntegration());
- if (self->m_kbdMgr)
- self->m_kbdMgr->switchLang();
+ if (m_kbdMgr)
+ m_kbdMgr->switchLang();
else
qWarning("QEglFSIntegration: Cannot switch language, no keyboard handler found");
-#endif
}
+#endif
void QEglFSIntegration::createInputHandlers()
{
diff --git a/src/plugins/platforms/eglfs/api/qeglfsintegration_p.h b/src/plugins/platforms/eglfs/api/qeglfsintegration_p.h
index babcbfaaa4..9bc24f36f9 100644
--- a/src/plugins/platforms/eglfs/api/qeglfsintegration_p.h
+++ b/src/plugins/platforms/eglfs/api/qeglfsintegration_p.h
@@ -59,6 +59,7 @@
#include <qpa/qplatformnativeinterface.h>
#include <qpa/qplatformopenglcontext.h>
#include <qpa/qplatformscreen.h>
+#include <QtGui/private/qkeymapper_p.h>
QT_BEGIN_NAMESPACE
@@ -68,8 +69,11 @@ class QFbVtHandler;
class QEvdevKeyboardManager;
class Q_EGLFS_EXPORT QEglFSIntegration : public QPlatformIntegration, public QPlatformNativeInterface
+#if QT_CONFIG(evdev)
+ , public QPlatformInterface::Private::QEvdevKeyMapper
+#endif
#ifndef QT_NO_OPENGL
- , public QPlatformInterface::Private::QEGLIntegration
+ , public QPlatformInterface::Private::QEGLIntegration
#endif
{
public:
@@ -116,11 +120,14 @@ public:
QPointer<QWindow> pointerWindow() { return m_pointerWindow; }
void setPointerWindow(QWindow *pointerWindow) { m_pointerWindow = pointerWindow; }
+#if QT_CONFIG(evdev)
+ void loadKeymap(const QString &filename) override;
+ void switchLang() override;
+#endif
+
private:
EGLNativeDisplayType nativeDisplay() const;
void createInputHandlers();
- static void loadKeymapStatic(const QString &filename);
- static void switchLangStatic();
EGLDisplay m_display;
QPlatformInputContext *m_inputContext;
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;