summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/devicediscovery/qdevicediscovery_p.h
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@digia.com>2014-11-24 10:33:41 +0100
committerLaszlo Agocs <laszlo.agocs@theqtcompany.com>2014-11-26 16:22:43 +0100
commit421f78a65fd2f0d39612a394c7ad579195ac16da (patch)
tree3046ec317b76b310b45f172906ad65c7fd13e841 /src/platformsupport/devicediscovery/qdevicediscovery_p.h
parenta7dcc661d59851ca93f56a57131563e86d531773 (diff)
Reorganize devicediscovery header
As pointed out in 13b939c7f41bceb2061e549923eab242326e9bb5 the approach qdevicediscovery_p.h takes is just wrong. The defines it relies on will often be missing when the header is included from random places in qtbase. This results in different class layouts. It was working only because the interface of the class is very limited and the public part was matching regardless of having the macro defined. This is now corrected by introducing subclasses and a common, non-variated base class. QDEVICEDISCOVERY_UDEV is removed completely. Change-Id: I9c83b5b041440a3a6ea3a604eee4a325d4d74439 Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com> Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
Diffstat (limited to 'src/platformsupport/devicediscovery/qdevicediscovery_p.h')
-rw-r--r--src/platformsupport/devicediscovery/qdevicediscovery_p.h33
1 files changed, 4 insertions, 29 deletions
diff --git a/src/platformsupport/devicediscovery/qdevicediscovery_p.h b/src/platformsupport/devicediscovery/qdevicediscovery_p.h
index 07e7996a60..f3b0d19a7c 100644
--- a/src/platformsupport/devicediscovery/qdevicediscovery_p.h
+++ b/src/platformsupport/devicediscovery/qdevicediscovery_p.h
@@ -49,10 +49,6 @@
#include <QSocketNotifier>
#include <QStringList>
-#ifdef QDEVICEDISCOVERY_UDEV
-#include <libudev.h>
-#endif
-
#define QT_EVDEV_DEVICE_PATH "/dev/input/"
#define QT_EVDEV_DEVICE_PREFIX "event"
#define QT_EVDEV_DEVICE QT_EVDEV_DEVICE_PATH QT_EVDEV_DEVICE_PREFIX
@@ -84,39 +80,18 @@ public:
Q_DECLARE_FLAGS(QDeviceTypes, QDeviceType)
static QDeviceDiscovery *create(QDeviceTypes type, QObject *parent = 0);
- ~QDeviceDiscovery();
- QStringList scanConnectedDevices();
+ virtual QStringList scanConnectedDevices() = 0;
signals:
void deviceDetected(const QString &deviceNode);
void deviceRemoved(const QString &deviceNode);
-#ifdef QDEVICEDISCOVERY_UDEV
-private slots:
- void handleUDevNotification();
-#endif
-
-private:
-#ifdef QDEVICEDISCOVERY_UDEV
- QDeviceDiscovery(QDeviceTypes types, struct udev *udev, QObject *parent = 0);
- bool checkDeviceType(struct udev_device *dev);
-#else
- QDeviceDiscovery(QDeviceTypes types, QObject *parent = 0);
- bool checkDeviceType(const QString &device);
-#endif
+protected:
+ QDeviceDiscovery(QDeviceTypes types, QObject *parent) : QObject(parent), m_types(types) { }
+ Q_DISABLE_COPY(QDeviceDiscovery)
QDeviceTypes m_types;
-
-#ifdef QDEVICEDISCOVERY_UDEV
- void startWatching();
- void stopWatching();
-
- struct udev *m_udev;
- struct udev_monitor *m_udevMonitor;
- int m_udevMonitorFileDescriptor;
- QSocketNotifier *m_udevSocketNotifier;
-#endif
};
Q_DECLARE_OPERATORS_FOR_FLAGS(QDeviceDiscovery::QDeviceTypes)