summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@qt.io>2018-09-10 09:51:46 +0200
committerAlex Blasche <alexander.blasche@qt.io>2018-09-14 12:15:08 +0000
commitc4efc2638a107d54ed5df82d6cc1f5d071611c34 (patch)
treebec875dc4c99f623c42b43db5a671a87013e8c1c
parentba0988639b7951798002be10d6868718d56141f6 (diff)
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>
-rw-r--r--src/bluetooth/qlowenergycontroller_bluezdbus.cpp56
-rw-r--r--src/bluetooth/qlowenergycontroller_bluezdbus_p.h1
2 files changed, 24 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)) {
diff --git a/src/bluetooth/qlowenergycontroller_bluezdbus_p.h b/src/bluetooth/qlowenergycontroller_bluezdbus_p.h
index 4c169d0b..3215b08d 100644
--- a/src/bluetooth/qlowenergycontroller_bluezdbus_p.h
+++ b/src/bluetooth/qlowenergycontroller_bluezdbus_p.h
@@ -189,6 +189,7 @@ private:
void prepareNextJob();
void discoverBatteryServiceDetails(GattService &dbusData,
QSharedPointer<QLowEnergyServicePrivate> serviceData);
+ void executeClose(QLowEnergyController::Error newError);
};
QT_END_NAMESPACE