summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-05-08 03:00:45 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-05-08 03:00:45 +0200
commit2258a6442711573bdd5887625d0119d7f4259306 (patch)
tree4da4541357ae8411ca76141cd83944edd4628aa7
parent43ad63af503bfb6297a31603112b5d510c3faae0 (diff)
parent8bf0702792f2d41764e62b63432870fee6a9e9c7 (diff)
Merge remote-tracking branch 'origin/5.11' into dev
-rw-r--r--src/bluetooth/qbluetoothlocaldevice_bluez.cpp18
-rw-r--r--src/bluetooth/qbluetoothsocket.cpp2
-rw-r--r--src/bluetooth/qbluetoothsocket_android.cpp1
-rw-r--r--src/bluetooth/qbluetoothsocket_osx.mm3
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();
}