fix crash in BT setup

This commit is contained in:
Michael Zanetti 2018-08-03 19:28:06 +02:00
parent e5746f50cb
commit bf7590c343
2 changed files with 15 additions and 17 deletions

View File

@ -157,22 +157,22 @@ void BluetoothDiscovery::deviceDiscovered(const QBluetoothDeviceInfo &deviceInfo
// Check if we already have added this device info
foreach (BluetoothDeviceInfo *di, m_deviceInfos->deviceInfos()) {
if (di->name() == deviceInformation->name() && di->address() == deviceInformation->address()) {
if (di->address() == deviceInformation->address()) {
qWarning() << "BluetoothDiscover: device" << deviceInformation->name() << "(" << deviceInformation->address() << ") already added";
deviceInformation->deleteLater();
deviceInformation = nullptr;
return;
}
}
if (deviceInformation)
m_deviceInfos->addBluetoothDeviceInfo(deviceInformation);
m_deviceInfos->addBluetoothDeviceInfo(deviceInformation);
}
void BluetoothDiscovery::discoveryFinished()
{
qDebug() << "BluetoothDiscovery: Discovery finished";
setDiscovering(false);
if (m_enabled) {
m_discoveryAgent->start();
}
}
void BluetoothDiscovery::onError(const QBluetoothDeviceDiscoveryAgent::Error &error)

View File

@ -10,19 +10,8 @@ Page {
header: GuhHeader {
text: qsTr("Bluetooth discovery")
onBackPressed: pageStack.pop()
HeaderButton {
imageSource: Qt.resolvedUrl("../images/refresh.svg")
onClicked: {
if (Engine.bluetoothDiscovery.bluetoothAvailable) {
Engine.bluetoothDiscovery.start()
}
}
enabled: Engine.bluetoothDiscovery.bluetoothAvailable && Engine.bluetoothDiscovery.bluetoothEnabled && !Engine.bluetoothDiscovery.discovering
}
}
Component.onCompleted: Engine.bluetoothDiscovery.start()
function setupDevice(name, btAddress) {
@ -30,6 +19,15 @@ Page {
pageStack.push(connectingPageComponent, { name: name, address: btAddress } )
}
Connections {
target: pageStack
onCurrentItemChanged: {
if (pageStack.currentItem === root) {
Engine.bluetoothDiscovery.start();
}
}
}
ColumnLayout {
anchors.fill: parent
spacing: app.margins