Extract toQtModifiers to place where it belongs

`QEvdevKeyboardHandler` contains static method `toQtModifiers` which is
not operating on any of its internal fields or types. This indicates
that this method doesn't belong to this class, and in fact it should be
moved to `QEvdevKeyboardMap` where types used in it are declared.

Move this static method to `QEvdevKeyboardMap` namespace. This is a
preparatory change to extract `QEvdevKeyboardMap` to separate header.

Task-number: QTBUG-115777
Change-Id: Ibe88b40a56fb96772d903498611777b3ec19dded
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
This commit is contained in:
Michał Łoś 2024-10-03 10:40:27 +02:00
parent bd475ddf47
commit 1d0ec32f71
2 changed files with 17 additions and 16 deletions

View File

@ -202,7 +202,7 @@ void QEvdevKeyboardHandler::processKeyEvent(int nativecode, int unicode, int qtc
Qt::KeyboardModifiers modifiers, bool isPress, bool autoRepeat) Qt::KeyboardModifiers modifiers, bool isPress, bool autoRepeat)
{ {
if (!autoRepeat) if (!autoRepeat)
QGuiApplicationPrivate::inputDeviceManager()->setKeyboardModifiers(QEvdevKeyboardHandler::toQtModifiers(m_modifiers)); QGuiApplicationPrivate::inputDeviceManager()->setKeyboardModifiers(QEvdevKeyboardMap::toQtModifiers(m_modifiers));
QWindow *window = nullptr; QWindow *window = nullptr;
#ifdef Q_OS_WEBOS #ifdef Q_OS_WEBOS
@ -336,7 +336,7 @@ QEvdevKeyboardHandler::KeycodeAction QEvdevKeyboardHandler::processKeycode(quint
// so just report the plain mapping with additional modifiers. // so just report the plain mapping with additional modifiers.
if ((it == map_plain && it != map_withmod) || if ((it == map_plain && it != map_withmod) ||
(map_withmod && !(map_withmod->qtcode & modmask))) { (map_withmod && !(map_withmod->qtcode & modmask))) {
qtcode |= QEvdevKeyboardHandler::toQtModifiers(modifiers); qtcode |= QEvdevKeyboardMap::toQtModifiers(modifiers);
} }
if (m_composing == 2 && first_press && !(it->flags & QEvdevKeyboardMap::IsModifier)) { if (m_composing == 2 && first_press && !(it->flags & QEvdevKeyboardMap::IsModifier)) {

View File

@ -78,6 +78,21 @@ namespace QEvdevKeyboardMap {
ModCtrlR = 0x80 ModCtrlR = 0x80
// ModCapsShift = 0x100, // not supported! // ModCapsShift = 0x100, // not supported!
}; };
inline Qt::KeyboardModifiers toQtModifiers(quint8 mod)
{
Qt::KeyboardModifiers qtmod = Qt::NoModifier;
if (mod & (ModShift | ModShiftL | ModShiftR))
qtmod |= Qt::ShiftModifier;
if (mod & (ModControl | ModCtrlL | ModCtrlR))
qtmod |= Qt::ControlModifier;
if (mod & ModAlt)
qtmod |= Qt::AltModifier;
return qtmod;
}
} }
inline QDataStream &operator>>(QDataStream &ds, QEvdevKeyboardMap::Mapping &m) inline QDataStream &operator>>(QDataStream &ds, QEvdevKeyboardMap::Mapping &m)
@ -129,20 +144,6 @@ public:
const QString &specification, const QString &specification,
const QString &defaultKeymapFile = QString()); const QString &defaultKeymapFile = QString());
static Qt::KeyboardModifiers toQtModifiers(quint8 mod)
{
Qt::KeyboardModifiers qtmod = Qt::NoModifier;
if (mod & (QEvdevKeyboardMap::ModShift | QEvdevKeyboardMap::ModShiftL | QEvdevKeyboardMap::ModShiftR))
qtmod |= Qt::ShiftModifier;
if (mod & (QEvdevKeyboardMap::ModControl | QEvdevKeyboardMap::ModCtrlL | QEvdevKeyboardMap::ModCtrlR))
qtmod |= Qt::ControlModifier;
if (mod & QEvdevKeyboardMap::ModAlt)
qtmod |= Qt::AltModifier;
return qtmod;
}
bool loadKeymap(const QString &file); bool loadKeymap(const QString &file);
void unloadKeymap(); void unloadKeymap();