diff options
author | Oliver Wolff <oliver.wolff@qt.io> | 2016-08-08 10:46:04 +0200 |
---|---|---|
committer | Oliver Wolff <oliver.wolff@qt.io> | 2016-08-09 06:57:51 +0000 |
commit | efaa9711183b1a7d518baa89fa74cbe5606a073a (patch) | |
tree | a0379e117cadddeedcaabe5b789d150be656f2ce /src/bluetooth/qbluetoothdevicediscoveryagent_winrt.cpp | |
parent | 649cfde5a99ab673fc56cd766b9362ff172c1705 (diff) |
winrt: Connect LE timeout to correct discovery worker
The timer has to be connected to the newly created workers,
otherwise the timeout will only be triggered for the first worker
that is created.
Change-Id: Ifee8bc16f1308e126a47b3c2a88b5a4475f28620
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
Diffstat (limited to 'src/bluetooth/qbluetoothdevicediscoveryagent_winrt.cpp')
-rw-r--r-- | src/bluetooth/qbluetoothdevicediscoveryagent_winrt.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/bluetooth/qbluetoothdevicediscoveryagent_winrt.cpp b/src/bluetooth/qbluetoothdevicediscoveryagent_winrt.cpp index 1ba743ca..674302bf 100644 --- a/src/bluetooth/qbluetoothdevicediscoveryagent_winrt.cpp +++ b/src/bluetooth/qbluetoothdevicediscoveryagent_winrt.cpp @@ -390,9 +390,9 @@ void QBluetoothDeviceDiscoveryAgentPrivate::start(QBluetoothDeviceDiscoveryAgent if (!leScanTimer) { leScanTimer = new QTimer(this); leScanTimer->setSingleShot(true); - connect(leScanTimer, &QTimer::timeout, - worker, &QWinRTBluetoothDeviceDiscoveryWorker::onLeTimeout); } + connect(leScanTimer, &QTimer::timeout, + worker, &QWinRTBluetoothDeviceDiscoveryWorker::onLeTimeout); leScanTimer->setInterval(lowEnergySearchTimeout); leScanTimer->start(); } @@ -445,6 +445,10 @@ void QBluetoothDeviceDiscoveryAgentPrivate::disconnectAndClearWorker() this, &QBluetoothDeviceDiscoveryAgentPrivate::onScanFinished); disconnect(worker, &QWinRTBluetoothDeviceDiscoveryWorker::leDeviceFound, q, &QBluetoothDeviceDiscoveryAgent::deviceDiscovered); + if (leScanTimer) { + disconnect(leScanTimer, &QTimer::timeout, + worker, &QWinRTBluetoothDeviceDiscoveryWorker::onLeTimeout); + } worker->deleteLater(); worker.clear(); } |