diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-05-08 03:00:45 +0200 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-05-08 03:00:45 +0200 |
commit | 2258a6442711573bdd5887625d0119d7f4259306 (patch) | |
tree | 4da4541357ae8411ca76141cd83944edd4628aa7 | |
parent | 43ad63af503bfb6297a31603112b5d510c3faae0 (diff) | |
parent | 8bf0702792f2d41764e62b63432870fee6a9e9c7 (diff) |
Merge remote-tracking branch 'origin/5.11' into dev
Change-Id: I3615f4bb7013edb362a93538af3847663259d21f
-rw-r--r-- | src/bluetooth/qbluetoothlocaldevice_bluez.cpp | 18 | ||||
-rw-r--r-- | src/bluetooth/qbluetoothsocket.cpp | 2 | ||||
-rw-r--r-- | src/bluetooth/qbluetoothsocket_android.cpp | 1 | ||||
-rw-r--r-- | src/bluetooth/qbluetoothsocket_osx.mm | 3 |
4 files changed, 17 insertions, 7 deletions
diff --git a/src/bluetooth/qbluetoothlocaldevice_bluez.cpp b/src/bluetooth/qbluetoothlocaldevice_bluez.cpp index 4eb3ca58..c247f679 100644 --- a/src/bluetooth/qbluetoothlocaldevice_bluez.cpp +++ b/src/bluetooth/qbluetoothlocaldevice_bluez.cpp @@ -529,16 +529,20 @@ void QBluetoothLocalDevicePrivate::processPairingBluez5(const QString &objectPat switch (target) { case QBluetoothLocalDevice::Unpaired: { delete pairingTarget; - pairingTarget = 0; + pairingTarget = nullptr; QDBusPendingReply<> removeReply = adapterBluez5->RemoveDevice(QDBusObjectPath(objectPath)); - removeReply.waitForFinished(); - - if (removeReply.isError()) - emit q->error(QBluetoothLocalDevice::PairingError); - else - emit q->pairingFinished(targetAddress, QBluetoothLocalDevice::Unpaired); + auto watcher = new QDBusPendingCallWatcher(removeReply, this); + connect(watcher, &QDBusPendingCallWatcher::finished, + this, [q, targetAddress](QDBusPendingCallWatcher* watcher){ + QDBusPendingReply<> reply = *watcher; + if (reply.isError()) + emit q->error(QBluetoothLocalDevice::PairingError); + else + emit q->pairingFinished(targetAddress, QBluetoothLocalDevice::Unpaired); + watcher->deleteLater(); + }); break; } case QBluetoothLocalDevice::Paired: diff --git a/src/bluetooth/qbluetoothsocket.cpp b/src/bluetooth/qbluetoothsocket.cpp index c5b0f7d3..1ad3ffc2 100644 --- a/src/bluetooth/qbluetoothsocket.cpp +++ b/src/bluetooth/qbluetoothsocket.cpp @@ -742,6 +742,7 @@ void QBluetoothSocket::abort() #ifndef QT_ANDROID_BLUETOOTH //Android closes when the Java event loop comes around setSocketState(QBluetoothSocket::UnconnectedState); + emit readChannelFinished(); emit disconnected(); #endif } @@ -827,6 +828,7 @@ void QBluetoothSocket::close() #ifndef QT_ANDROID_BLUETOOTH //Android closes when the Java event loop comes around setSocketState(UnconnectedState); + emit readChannelFinished(); emit disconnected(); #endif } diff --git a/src/bluetooth/qbluetoothsocket_android.cpp b/src/bluetooth/qbluetoothsocket_android.cpp index d0b901ae..a70b95a2 100644 --- a/src/bluetooth/qbluetoothsocket_android.cpp +++ b/src/bluetooth/qbluetoothsocket_android.cpp @@ -779,6 +779,7 @@ void QBluetoothSocketPrivate::inputThreadError(int errorCode) q->setSocketState(QBluetoothSocket::UnconnectedState); q->setOpenMode(QIODevice::NotOpen); + emit q->readChannelFinished(); emit q->disconnected(); } diff --git a/src/bluetooth/qbluetoothsocket_osx.mm b/src/bluetooth/qbluetoothsocket_osx.mm index de7e2120..dec542dd 100644 --- a/src/bluetooth/qbluetoothsocket_osx.mm +++ b/src/bluetooth/qbluetoothsocket_osx.mm @@ -351,6 +351,7 @@ void QBluetoothSocketPrivate::channelClosed() if (!isConnecting) { q_ptr->setSocketState(QBluetoothSocket::UnconnectedState); q_ptr->setOpenMode(QIODevice::NotOpen); + emit q_ptr->readChannelFinished(); emit q_ptr->disconnected(); } else { state = QBluetoothSocket::UnconnectedState; @@ -638,6 +639,7 @@ void QBluetoothSocket::abort() d_ptr->abort(); setSocketState(QBluetoothSocket::UnconnectedState); + emit readChannelFinished(); emit disconnected(); } @@ -726,6 +728,7 @@ void QBluetoothSocket::close() d_ptr->close(); setSocketState(UnconnectedState); + emit readChannelFinished(); emit disconnected(); } |