summaryrefslogtreecommitdiffstats
path: root/src/bluetooth/qlowenergycontroller_winrt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bluetooth/qlowenergycontroller_winrt.cpp')
-rw-r--r--src/bluetooth/qlowenergycontroller_winrt.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/bluetooth/qlowenergycontroller_winrt.cpp b/src/bluetooth/qlowenergycontroller_winrt.cpp
index 5347902f..989c5443 100644
--- a/src/bluetooth/qlowenergycontroller_winrt.cpp
+++ b/src/bluetooth/qlowenergycontroller_winrt.cpp
@@ -340,6 +340,8 @@ void QLowEnergyControllerPrivateWinRT::connectToDevice()
emit q->connected();
} else if (state != QLowEnergyController::UnconnectedState
&& status == BluetoothConnectionStatus::BluetoothConnectionStatus_Disconnected) {
+ invalidateServices();
+ unregisterFromValueChanges();
setError(QLowEnergyController::RemoteHostClosedError);
setState(QLowEnergyController::UnconnectedState);
emit q->disconnected();
@@ -434,8 +436,7 @@ void QLowEnergyControllerPrivateWinRT::disconnectFromDevice()
{
qCDebug(QT_BT_WINRT) << __FUNCTION__;
Q_Q(QLowEnergyController);
- setState(QLowEnergyController::UnconnectedState);
- emit q->disconnected();
+ setState(QLowEnergyController::ClosingState);
unregisterFromValueChanges();
if (mDevice) {
if (mStatusChangedToken.value) {
@@ -444,6 +445,8 @@ void QLowEnergyControllerPrivateWinRT::disconnectFromDevice()
}
mDevice = nullptr;
}
+ setState(QLowEnergyController::UnconnectedState);
+ emit q->disconnected();
}
ComPtr<IGattDeviceService> QLowEnergyControllerPrivateWinRT::getNativeService(const QBluetoothUuid &serviceUuid)