summaryrefslogtreecommitdiffstats
path: root/src/bluetooth/qbluetoothdevicediscoveryagent_win.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bluetooth/qbluetoothdevicediscoveryagent_win.cpp')
-rw-r--r--src/bluetooth/qbluetoothdevicediscoveryagent_win.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/bluetooth/qbluetoothdevicediscoveryagent_win.cpp b/src/bluetooth/qbluetoothdevicediscoveryagent_win.cpp
index 159428d4..eec76173 100644
--- a/src/bluetooth/qbluetoothdevicediscoveryagent_win.cpp
+++ b/src/bluetooth/qbluetoothdevicediscoveryagent_win.cpp
@@ -51,6 +51,8 @@
#include <setupapi.h>
#include <bluetoothapis.h>
+#include <algorithm>
+
QT_BEGIN_NAMESPACE
Q_DECLARE_LOGGING_CATEGORY(QT_BT_WINDOWS)
@@ -541,11 +543,12 @@ void QBluetoothDeviceDiscoveryAgentPrivate::processDiscoveredDevice(
} else {
qCDebug(QT_BT_WINDOWS) << "Updating device:" << deviceIt->name() << deviceIt->address();
// merge service uuids
- QList<QBluetoothUuid> uuids = deviceIt->serviceUuids();
- uuids.append(foundDevice.serviceUuids());
- const QSet<QBluetoothUuid> uuidSet = uuids.toSet();
- if (deviceIt->serviceUuids().count() != uuidSet.count())
- deviceIt->setServiceUuids(uuidSet.toList().toVector());
+ auto uuids = deviceIt->serviceUuids().toVector();
+ uuids.append(foundDevice.serviceUuids().toVector());
+ std::sort(uuids.begin(), uuids.end());
+ uuids.erase(std::unique(uuids.begin(), uuids.end()), uuids.end());
+ if (deviceIt->serviceUuids().count() != uuids.count())
+ deviceIt->setServiceUuids(uuids);
if (deviceIt->coreConfigurations() != foundDevice.coreConfigurations())
deviceIt->setCoreConfigurations(
QBluetoothDeviceInfo::BaseRateAndLowEnergyCoreConfiguration);