summaryrefslogtreecommitdiffstats
path: root/src/bluetooth/qbluetoothsocket_bluezdbus.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bluetooth/qbluetoothsocket_bluezdbus.cpp')
-rw-r--r--src/bluetooth/qbluetoothsocket_bluezdbus.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/bluetooth/qbluetoothsocket_bluezdbus.cpp b/src/bluetooth/qbluetoothsocket_bluezdbus.cpp
index 52193a1a..e9c47df8 100644
--- a/src/bluetooth/qbluetoothsocket_bluezdbus.cpp
+++ b/src/bluetooth/qbluetoothsocket_bluezdbus.cpp
@@ -337,10 +337,15 @@ void QBluetoothSocketPrivateBluezDBus::abort()
{
if (localSocket) {
localSocket->close();
- //TODO delayed disconnected() not yet implemented
+ // delayed disconnected signal emission when localSocket closes
} else {
- // delayed disconnected not needed
+ Q_Q(QBluetoothSocket);
+
clearSocket();
+ q->setOpenMode(QIODevice::NotOpen);
+ q->setSocketState(QBluetoothSocket::UnconnectedState);
+ emit q->readChannelFinished();
+ emit q->disconnected();
}
}
@@ -551,7 +556,7 @@ void QBluetoothSocketPrivateBluezDBus::socketStateChanged(QLocalSocket::LocalSoc
case QLocalSocket::UnconnectedState:
clearSocket();
q->setSocketState(QBluetoothSocket::UnconnectedState);
-
+ q->setOpenMode(QIODevice::NotOpen);
emit q->readChannelFinished();
emit q->disconnected();
break;