From efaa9711183b1a7d518baa89fa74cbe5606a073a Mon Sep 17 00:00:00 2001 From: Oliver Wolff Date: Mon, 8 Aug 2016 10:46:04 +0200 Subject: 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 --- src/bluetooth/qbluetoothdevicediscoveryagent_winrt.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/bluetooth') 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(); } -- cgit v1.2.3