From 143f20692eefd972271df18d85023fca0378c226 Mon Sep 17 00:00:00 2001 From: Liang Qi Date: Mon, 25 Oct 2021 15:21:27 +0200 Subject: gui: add QInputDevice::seatNames() Change-Id: Ie6cedd62dcd684a8fd9adbc2409e5aa1f3490ede Reviewed-by: Volker Hilsheimer --- src/gui/kernel/qinputdevice.cpp | 19 +++++++++++++++++++ src/gui/kernel/qinputdevice.h | 1 + 2 files changed, 20 insertions(+) diff --git a/src/gui/kernel/qinputdevice.cpp b/src/gui/kernel/qinputdevice.cpp index 4505a6b568..26975f478e 100644 --- a/src/gui/kernel/qinputdevice.cpp +++ b/src/gui/kernel/qinputdevice.cpp @@ -280,6 +280,25 @@ QList QInputDevice::devices() return *deviceList(); } +/*! + \since 6.3 + + Returns a list of seat names for all registered input devices (keyboards and pointing devices). +*/ +QStringList QInputDevice::seatNames() +{ + QMutexLocker locker(&devicesMutex); + const InputDevicesList devices = *deviceList(); + locker.unlock(); + QStringList result; + for (const QInputDevice *d : devices) { + if (!result.contains(d->seatName())) + result.append(d->seatName()); + } + + return result; +} + /*! Returns the core or master keyboard on the given seat \a seatName. */ diff --git a/src/gui/kernel/qinputdevice.h b/src/gui/kernel/qinputdevice.h index 206f783b4b..589bf344af 100644 --- a/src/gui/kernel/qinputdevice.h +++ b/src/gui/kernel/qinputdevice.h @@ -110,6 +110,7 @@ public: QString seatName() const; QRect availableVirtualGeometry() const; + static QStringList seatNames(); static QList devices(); static const QInputDevice *primaryKeyboard(const QString& seatName = QString()); -- cgit v1.2.3