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());