input: Use UDev or specific device paths
authorJohannes Zellner <johannes.zellner@nokia.com>
Tue, 15 May 2012 00:04:44 +0000 (17:04 -0700)
committerQt by Nokia <qt-info@nokia.com>
Tue, 15 May 2012 18:44:36 +0000 (20:44 +0200)
Keyboard,mouse and touch plugins using evdev now either
use udev for device discovery or the plugin arguments
for fixed device paths.

Change-Id: I72606ad48c15c55a49724a82f7bc285dd3984c43
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
src/plugins/generic/evdevkeyboard/qevdevkeyboardmanager.cpp
src/plugins/generic/evdevmouse/qevdevmousemanager.cpp
src/plugins/generic/evdevtouch/qevdevtouch.cpp

index 04ce2a7..6a891a4 100644 (file)
@@ -65,12 +65,11 @@ QEvdevKeyboardManager::QEvdevKeyboardManager(const QString &key, const QString &
     QStringList devices;
 
     foreach (const QString &arg, args) {
-        if (arg.startsWith(QLatin1String("udev")) && arg.contains(QLatin1String("no"))) {
-            useUDev = false;
-        } else if (arg.startsWith(QLatin1String("/dev/"))) {
+        if (arg.startsWith(QLatin1String("/dev/"))) {
             // if device is specified try to use it
             devices.append(arg);
             args.removeAll(arg);
+            useUDev = false;
         }
     }
 
index 2120b15..506a202 100644 (file)
@@ -65,12 +65,11 @@ QEvdevMouseManager::QEvdevMouseManager(const QString &key, const QString &specif
     QStringList devices;
 
     foreach (const QString &arg, args) {
-        if (arg.startsWith("udev") && arg.contains("no")) {
-            useUDev = false;
-        } else if (arg.startsWith("/dev/")) {
+        if (arg.startsWith("/dev/")) {
             // if device is specified try to use it
             devices.append(arg);
             args.removeAll(arg);
+            useUDev = false;
         }
     }
 
index 8d50991..37db20a 100644 (file)
@@ -150,26 +150,32 @@ QTouchScreenHandler::QTouchScreenHandler(const QString &spec)
 
     QString dev;
 
+    // only the first device argument is used for now
+    QStringList args = spec.split(QLatin1Char(':'));
+    for (int i = 0; i < args.count(); ++i) {
+        if (args.at(i).startsWith(QLatin1String("/dev/"))) {
+            dev = args.at(i);
+            break;
+        }
+    }
+
 #ifndef QT_NO_LIBUDEV
-    // try to let udev scan for already connected devices
-    QScopedPointer<QUDeviceHelper> udeviceHelper(QUDeviceHelper::createUDeviceHelper(QUDeviceHelper::UDev_Touchpad | QUDeviceHelper::UDev_Touchscreen, this));
-    if (udeviceHelper) {
-        QStringList devices = udeviceHelper->scanConnectedDevices();
-
-        // only the first device found is used for now
-        if (devices.size() > 0)
-            dev = devices[0];
+    if (dev.isEmpty()) {
+        // try to let udev scan for already connected devices
+        QScopedPointer<QUDeviceHelper> udeviceHelper(QUDeviceHelper::createUDeviceHelper(QUDeviceHelper::UDev_Touchpad | QUDeviceHelper::UDev_Touchscreen, this));
+        if (udeviceHelper) {
+            QStringList devices = udeviceHelper->scanConnectedDevices();
+
+            // only the first device found is used for now
+            if (devices.size() > 0)
+                dev = devices[0];
+        }
     }
 #endif // QT_NO_LIBUDEV
 
     if (dev.isEmpty())
         dev = QLatin1String("/dev/input/event0");
 
-    QStringList args = spec.split(QLatin1Char(':'));
-    for (int i = 0; i < args.count(); ++i)
-        if (args.at(i).startsWith(QLatin1String("/dev/")))
-            dev = args.at(i);
-
     qDebug("evdevtouch: Using device %s", qPrintable(dev));
     m_fd = QT_OPEN(dev.toLocal8Bit().constData(), O_RDONLY | O_NDELAY, 0);