evdev*,libinput: use functor-based connections
This results in less boilerplate code, among other benefits that come with functor-based connections. Simple expressions have been converted to use lambda. Change-Id: I6887980524027eada24beed95e6f9ba43f0fc8d5 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>bb10
parent
4250993c42
commit
35ed524d92
|
|
@ -87,7 +87,7 @@ QEvdevKeyboardHandler::QEvdevKeyboardHandler(const QString &device, QFdContainer
|
|||
|
||||
// socket notifier for events on the keyboard device
|
||||
m_notify = new QSocketNotifier(m_fd.get(), QSocketNotifier::Read, this);
|
||||
connect(m_notify, SIGNAL(activated(int)), this, SLOT(readKeycode()));
|
||||
connect(m_notify, &QSocketNotifier::activated, this, &QEvdevKeyboardHandler::readKeycode);
|
||||
}
|
||||
|
||||
QEvdevKeyboardHandler::~QEvdevKeyboardHandler()
|
||||
|
|
|
|||
|
|
@ -145,7 +145,6 @@ public:
|
|||
|
||||
class QEvdevKeyboardHandler : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
QEvdevKeyboardHandler(const QString &device, QFdContainer &fd, bool disableZap, bool enableCompose, const QString &keymapFile);
|
||||
~QEvdevKeyboardHandler();
|
||||
|
|
@ -190,7 +189,6 @@ public:
|
|||
bool loadKeymap(const QString &file);
|
||||
void unloadKeymap();
|
||||
|
||||
private slots:
|
||||
void readKeycode();
|
||||
KeycodeAction processKeycode(quint16 keycode, bool pressed, bool autorepeat);
|
||||
|
||||
|
|
|
|||
|
|
@ -88,8 +88,10 @@ QEvdevKeyboardManager::QEvdevKeyboardManager(const QString &key, const QString &
|
|||
for (const QString &device : devices)
|
||||
addKeyboard(device);
|
||||
|
||||
connect(m_deviceDiscovery, SIGNAL(deviceDetected(QString)), this, SLOT(addKeyboard(QString)));
|
||||
connect(m_deviceDiscovery, SIGNAL(deviceRemoved(QString)), this, SLOT(removeKeyboard(QString)));
|
||||
connect(m_deviceDiscovery, &QDeviceDiscovery::deviceDetected,
|
||||
this, &QEvdevKeyboardManager::addKeyboard);
|
||||
connect(m_deviceDiscovery, &QDeviceDiscovery::deviceRemoved,
|
||||
this, &QEvdevKeyboardManager::removeKeyboard);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -63,14 +63,12 @@ QT_BEGIN_NAMESPACE
|
|||
|
||||
class QEvdevKeyboardManager : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
QEvdevKeyboardManager(const QString &key, const QString &specification, QObject *parent = 0);
|
||||
~QEvdevKeyboardManager();
|
||||
|
||||
void loadKeymap(const QString &file);
|
||||
|
||||
private slots:
|
||||
void addKeyboard(const QString &deviceNode = QString());
|
||||
void removeKeyboard(const QString &deviceNode);
|
||||
|
||||
|
|
|
|||
|
|
@ -116,7 +116,8 @@ QEvdevMouseHandler::QEvdevMouseHandler(const QString &device, int fd, bool abs,
|
|||
|
||||
// socket notifier for events on the mouse device
|
||||
m_notify = new QSocketNotifier(m_fd, QSocketNotifier::Read, this);
|
||||
connect(m_notify, SIGNAL(activated(int)), this, SLOT(readMouseData()));
|
||||
connect(m_notify, &QSocketNotifier::activated,
|
||||
this, &QEvdevMouseHandler::readMouseData);
|
||||
}
|
||||
|
||||
QEvdevMouseHandler::~QEvdevMouseHandler()
|
||||
|
|
|
|||
|
|
@ -66,13 +66,12 @@ public:
|
|||
static QEvdevMouseHandler *create(const QString &device, const QString &specification);
|
||||
~QEvdevMouseHandler();
|
||||
|
||||
void readMouseData();
|
||||
|
||||
signals:
|
||||
void handleMouseEvent(int x, int y, bool abs, Qt::MouseButtons buttons);
|
||||
void handleWheelEvent(QPoint delta);
|
||||
|
||||
private slots:
|
||||
void readMouseData();
|
||||
|
||||
private:
|
||||
QEvdevMouseHandler(const QString &device, int fd, bool abs, bool compression, int jitterLimit);
|
||||
|
||||
|
|
|
|||
|
|
@ -94,13 +94,19 @@ QEvdevMouseManager::QEvdevMouseManager(const QString &key, const QString &specif
|
|||
for (const QString &device : devices)
|
||||
addMouse(device);
|
||||
|
||||
connect(m_deviceDiscovery, SIGNAL(deviceDetected(QString)), this, SLOT(addMouse(QString)));
|
||||
connect(m_deviceDiscovery, SIGNAL(deviceRemoved(QString)), this, SLOT(removeMouse(QString)));
|
||||
connect(m_deviceDiscovery, &QDeviceDiscovery::deviceDetected,
|
||||
this, &QEvdevMouseManager::addMouse);
|
||||
connect(m_deviceDiscovery, &QDeviceDiscovery::deviceRemoved,
|
||||
this, &QEvdevMouseManager::removeMouse);
|
||||
}
|
||||
}
|
||||
|
||||
connect(QGuiApplicationPrivate::inputDeviceManager(), SIGNAL(cursorPositionChangeRequested(QPoint)),
|
||||
this, SLOT(handleCursorPositionChange(QPoint)));
|
||||
QInputDeviceManager *manager = QGuiApplicationPrivate::inputDeviceManager();
|
||||
connect(manager, &QInputDeviceManager::cursorPositionChangeRequested, [=](const QPoint &pos) {
|
||||
m_x = pos.x();
|
||||
m_y = pos.y();
|
||||
clampPosition();
|
||||
});
|
||||
}
|
||||
|
||||
QEvdevMouseManager::~QEvdevMouseManager()
|
||||
|
|
@ -153,11 +159,12 @@ void QEvdevMouseManager::handleWheelEvent(QPoint delta)
|
|||
void QEvdevMouseManager::addMouse(const QString &deviceNode)
|
||||
{
|
||||
qCDebug(qLcEvdevMouse) << "Adding mouse at" << deviceNode;
|
||||
QEvdevMouseHandler *handler;
|
||||
handler = QEvdevMouseHandler::create(deviceNode, m_spec);
|
||||
QEvdevMouseHandler *handler = QEvdevMouseHandler::create(deviceNode, m_spec);
|
||||
if (handler) {
|
||||
connect(handler, SIGNAL(handleMouseEvent(int,int,bool,Qt::MouseButtons)), this, SLOT(handleMouseEvent(int,int,bool,Qt::MouseButtons)));
|
||||
connect(handler, SIGNAL(handleWheelEvent(QPoint)), this, SLOT(handleWheelEvent(QPoint)));
|
||||
connect(handler, &QEvdevMouseHandler::handleMouseEvent,
|
||||
this, &QEvdevMouseManager::handleMouseEvent);
|
||||
connect(handler, &QEvdevMouseHandler::handleWheelEvent,
|
||||
this, &QEvdevMouseManager::handleWheelEvent);
|
||||
m_mice.insert(deviceNode, handler);
|
||||
QInputDeviceManagerPrivate::get(QGuiApplicationPrivate::inputDeviceManager())->setDeviceCount(
|
||||
QInputDeviceManager::DeviceTypePointer, m_mice.count());
|
||||
|
|
@ -178,11 +185,4 @@ void QEvdevMouseManager::removeMouse(const QString &deviceNode)
|
|||
}
|
||||
}
|
||||
|
||||
void QEvdevMouseManager::handleCursorPositionChange(const QPoint &pos)
|
||||
{
|
||||
m_x = pos.x();
|
||||
m_y = pos.y();
|
||||
clampPosition();
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
|
|
|||
|
|
@ -64,19 +64,15 @@ class QDeviceDiscovery;
|
|||
|
||||
class QEvdevMouseManager : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
QEvdevMouseManager(const QString &key, const QString &specification, QObject *parent = 0);
|
||||
~QEvdevMouseManager();
|
||||
|
||||
public slots:
|
||||
void handleMouseEvent(int x, int y, bool abs, Qt::MouseButtons buttons);
|
||||
void handleWheelEvent(QPoint delta);
|
||||
|
||||
private slots:
|
||||
void addMouse(const QString &deviceNode = QString());
|
||||
void removeMouse(const QString &deviceNode);
|
||||
void handleCursorPositionChange(const QPoint &pos);
|
||||
|
||||
private:
|
||||
void clampPosition();
|
||||
|
|
|
|||
|
|
@ -63,15 +63,12 @@ class QEvdevTabletData;
|
|||
|
||||
class QEvdevTabletHandler : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit QEvdevTabletHandler(const QString &device, const QString &spec = QString(), QObject *parent = 0);
|
||||
~QEvdevTabletHandler();
|
||||
|
||||
qint64 deviceId() const;
|
||||
|
||||
private slots:
|
||||
void readData();
|
||||
|
||||
private:
|
||||
|
|
|
|||
|
|
@ -88,8 +88,11 @@ QEvdevTabletManager::QEvdevTabletManager(const QString &key, const QString &spec
|
|||
const QStringList devices = m_deviceDiscovery->scanConnectedDevices();
|
||||
for (const QString &device : devices)
|
||||
addDevice(device);
|
||||
connect(m_deviceDiscovery, SIGNAL(deviceDetected(QString)), this, SLOT(addDevice(QString)));
|
||||
connect(m_deviceDiscovery, SIGNAL(deviceRemoved(QString)), this, SLOT(removeDevice(QString)));
|
||||
|
||||
connect(m_deviceDiscovery, &QDeviceDiscovery::deviceDetected,
|
||||
this, &QEvdevTabletManager::addDevice);
|
||||
connect(m_deviceDiscovery, &QDeviceDiscovery::deviceRemoved,
|
||||
this, &QEvdevTabletManager::removeDevice);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,12 +62,10 @@ class QEvdevTabletHandlerThread;
|
|||
|
||||
class QEvdevTabletManager : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
QEvdevTabletManager(const QString &key, const QString &spec, QObject *parent = 0);
|
||||
~QEvdevTabletManager();
|
||||
|
||||
private slots:
|
||||
void addDevice(const QString &deviceNode);
|
||||
void removeDevice(const QString &deviceNode);
|
||||
|
||||
|
|
|
|||
|
|
@ -229,7 +229,7 @@ QEvdevTouchScreenHandler::QEvdevTouchScreenHandler(const QString &device, const
|
|||
|
||||
if (m_fd >= 0) {
|
||||
m_notify = new QSocketNotifier(m_fd, QSocketNotifier::Read, this);
|
||||
connect(m_notify, SIGNAL(activated(int)), this, SLOT(readData()));
|
||||
connect(m_notify, &QSocketNotifier::activated, this, &QEvdevTouchScreenHandler::readData);
|
||||
} else {
|
||||
qErrnoWarning(errno, "evdevtouch: Cannot open input device %s", qPrintable(device));
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -82,7 +82,6 @@ public:
|
|||
|
||||
bool isFiltered() const;
|
||||
|
||||
private slots:
|
||||
void readData();
|
||||
|
||||
signals:
|
||||
|
|
@ -116,7 +115,6 @@ public:
|
|||
|
||||
bool eventFilter(QObject *object, QEvent *event) Q_DECL_OVERRIDE;
|
||||
|
||||
public slots:
|
||||
void scheduleTouchPointUpdate();
|
||||
|
||||
signals:
|
||||
|
|
|
|||
|
|
@ -88,8 +88,11 @@ QEvdevTouchManager::QEvdevTouchManager(const QString &key, const QString &specif
|
|||
const QStringList devices = m_deviceDiscovery->scanConnectedDevices();
|
||||
for (const QString &device : devices)
|
||||
addDevice(device);
|
||||
connect(m_deviceDiscovery, SIGNAL(deviceDetected(QString)), this, SLOT(addDevice(QString)));
|
||||
connect(m_deviceDiscovery, SIGNAL(deviceRemoved(QString)), this, SLOT(removeDevice(QString)));
|
||||
|
||||
connect(m_deviceDiscovery, &QDeviceDiscovery::deviceDetected,
|
||||
this, &QEvdevTouchManager::addDevice);
|
||||
connect(m_deviceDiscovery, &QDeviceDiscovery::deviceRemoved,
|
||||
this, &QEvdevTouchManager::removeDevice);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,12 +62,10 @@ class QEvdevTouchScreenHandlerThread;
|
|||
|
||||
class QEvdevTouchManager : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
QEvdevTouchManager(const QString &key, const QString &spec, QObject *parent = 0);
|
||||
~QEvdevTouchManager();
|
||||
|
||||
private slots:
|
||||
void addDevice(const QString &deviceNode);
|
||||
void removeDevice(const QString &deviceNode);
|
||||
|
||||
|
|
|
|||
|
|
@ -107,14 +107,17 @@ QLibInputHandler::QLibInputHandler(const QString &key, const QString &spec)
|
|||
|
||||
m_liFd = libinput_get_fd(m_li);
|
||||
m_notifier.reset(new QSocketNotifier(m_liFd, QSocketNotifier::Read));
|
||||
connect(m_notifier.data(), SIGNAL(activated(int)), SLOT(onReadyRead()));
|
||||
|
||||
connect(m_notifier.data(), &QSocketNotifier::activated, this, &QLibInputHandler::onReadyRead);
|
||||
|
||||
m_pointer.reset(new QLibInputPointer);
|
||||
m_keyboard.reset(new QLibInputKeyboard);
|
||||
m_touch.reset(new QLibInputTouch);
|
||||
|
||||
connect(QGuiApplicationPrivate::inputDeviceManager(), SIGNAL(cursorPositionChangeRequested(QPoint)),
|
||||
this, SLOT(onCursorPositionChangeRequested(QPoint)));
|
||||
QInputDeviceManager *manager = QGuiApplicationPrivate::inputDeviceManager();
|
||||
connect(manager, &QInputDeviceManager::cursorPositionChangeRequested, [=](const QPoint &pos) {
|
||||
m_pointer->setPos(pos);
|
||||
});
|
||||
|
||||
// Process the initial burst of DEVICE_ADDED events.
|
||||
onReadyRead();
|
||||
|
|
@ -236,9 +239,4 @@ void QLibInputHandler::processEvent(libinput_event *ev)
|
|||
}
|
||||
}
|
||||
|
||||
void QLibInputHandler::onCursorPositionChangeRequested(const QPoint &pos)
|
||||
{
|
||||
m_pointer->setPos(pos);
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
|
|
|||
|
|
@ -74,14 +74,12 @@ public:
|
|||
QLibInputHandler(const QString &key, const QString &spec);
|
||||
~QLibInputHandler();
|
||||
|
||||
void onReadyRead();
|
||||
|
||||
signals:
|
||||
void deviceAdded(const QString &sysname, const QString &name);
|
||||
void deviceRemoved(const QString &sysname, const QString &name);
|
||||
|
||||
private slots:
|
||||
void onReadyRead();
|
||||
void onCursorPositionChangeRequested(const QPoint &pos);
|
||||
|
||||
private:
|
||||
void processEvent(libinput_event *ev);
|
||||
|
||||
|
|
|
|||
|
|
@ -64,8 +64,6 @@ QT_BEGIN_NAMESPACE
|
|||
|
||||
class QLibInputKeyboard : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QLibInputKeyboard();
|
||||
~QLibInputKeyboard();
|
||||
|
|
@ -73,7 +71,6 @@ public:
|
|||
void processKey(libinput_event_keyboard *e);
|
||||
|
||||
#ifndef QT_NO_XKBCOMMON_EVDEV
|
||||
private slots:
|
||||
void handleRepeat();
|
||||
|
||||
private:
|
||||
|
|
|
|||
Loading…
Reference in New Issue