diff options
author | Alex Blasche <alexander.blasche@qt.io> | 2018-09-10 09:51:46 +0200 |
---|---|---|
committer | Alex Blasche <alexander.blasche@qt.io> | 2018-09-14 12:15:08 +0000 |
commit | c4efc2638a107d54ed5df82d6cc1f5d071611c34 (patch) | |
tree | bec875dc4c99f623c42b43db5a671a87013e8c1c /src/bluetooth/qlowenergycontroller_bluezdbus.cpp | |
parent | ba0988639b7951798002be10d6868718d56141f6 (diff) | |
download | qtconnectivity-c4efc2638a107d54ed5df82d6cc1f5d071611c34.tar.gz |
Remove duplicated closure code and add missing cases of it
Change-Id: I4f33ec95b2af858b8d0c3ff60882b550a91563df
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Diffstat (limited to 'src/bluetooth/qlowenergycontroller_bluezdbus.cpp')
-rw-r--r-- | src/bluetooth/qlowenergycontroller_bluezdbus.cpp | 56 |
1 files changed, 23 insertions, 33 deletions
diff --git a/src/bluetooth/qlowenergycontroller_bluezdbus.cpp b/src/bluetooth/qlowenergycontroller_bluezdbus.cpp index e881a1b9..68d63f73 100644 --- a/src/bluetooth/qlowenergycontroller_bluezdbus.cpp +++ b/src/bluetooth/qlowenergycontroller_bluezdbus.cpp @@ -98,19 +98,11 @@ void QLowEnergyControllerPrivateBluezDBus::devicePropertiesChanged( case QLowEnergyController::DiscoveredState: case QLowEnergyController::ClosingState: { - bool emitDisconnect = disconnectSignalRequired; - bool emitError = pendingConnect; + QLowEnergyController::Error newError = QLowEnergyController::NoError; + if (pendingConnect) + newError = QLowEnergyController::ConnectionError; - resetController(); - - if (emitError) - setError(QLowEnergyController::ConnectionError); - setState(QLowEnergyController::UnconnectedState); - - if (emitDisconnect) { - Q_Q(QLowEnergyController); - emit q->disconnected(); - } + executeClose(newError); } break; case QLowEnergyController::AdvertisingState: @@ -203,15 +195,11 @@ void QLowEnergyControllerPrivateBluezDBus::interfacesRemoved( const QDBusObjectPath &objectPath, const QStringList &/*interfaces*/) { if (objectPath.path() == device->path()) { - resetController(); - setError(QLowEnergyController::UnknownRemoteDeviceError); qCWarning(QT_BT_BLUEZ) << "DBus Device1 was removed"; - setState(QLowEnergyController::UnconnectedState); + executeClose(QLowEnergyController::UnknownRemoteDeviceError); } else if (objectPath.path() == adapter->path()) { - resetController(); - setError(QLowEnergyController::InvalidBluetoothAdapterError); qCWarning(QT_BT_BLUEZ) << "DBus Adapter was removed"; - setState(QLowEnergyController::UnconnectedState); + executeClose(QLowEnergyController::InvalidBluetoothAdapterError); } } @@ -354,14 +342,7 @@ void QLowEnergyControllerPrivateBluezDBus::connectToDevice() qCDebug(QT_BT_BLUEZ) << "BTLE_DBUS::connect() failed" << reply.reply().errorName() << reply.reply().errorMessage(); - bool emitDisconnect = disconnectSignalRequired; - resetController(); - setError(QLowEnergyController::UnknownError); - setState(QLowEnergyController::UnconnectedState); - if (emitDisconnect) { - Q_Q(QLowEnergyController); - emit q->disconnected(); - } + executeClose(QLowEnergyController::UnknownError); } // else -> connected when Connected property is set to true (see devicePropertiesChanged()) call->deleteLater(); }); @@ -380,13 +361,7 @@ void QLowEnergyControllerPrivateBluezDBus::disconnectFromDevice() qCDebug(QT_BT_BLUEZ) << "BTLE_DBUS::disconnect() failed" << reply.reply().errorName() << reply.reply().errorMessage(); - bool emitDisconnect = disconnectSignalRequired; - resetController(); - setState(QLowEnergyController::UnconnectedState); - if (emitDisconnect) { - Q_Q(QLowEnergyController); - emit q->disconnected(); - } + executeClose(QLowEnergyController::NoError); } call->deleteLater(); }); @@ -522,6 +497,21 @@ void QLowEnergyControllerPrivateBluezDBus::discoverBatteryServiceDetails( serviceData->setState(QLowEnergyService::ServiceDiscovered); } +void QLowEnergyControllerPrivateBluezDBus::executeClose(QLowEnergyController::Error newError) +{ + const bool emitDisconnect = disconnectSignalRequired; + + resetController(); + if (newError != QLowEnergyController::NoError) + setError(newError); + + setState(QLowEnergyController::UnconnectedState); + if (emitDisconnect) { + Q_Q(QLowEnergyController); + emit q->disconnected(); + } +} + void QLowEnergyControllerPrivateBluezDBus::discoverServiceDetails(const QBluetoothUuid &service) { if (!serviceList.contains(service) || !dbusServices.contains(service)) { |