summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@digia.com>2014-03-13 12:07:06 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-14 08:39:50 +0100
commit2802eac9bc9ce2c26d09f9598263337287e2765e (patch)
tree92158ef512f68203f53230326218f113806a8f72
parent925eaae08427a6d17cf965c6214e19cfa6446d92 (diff)
Ensure examples behave on default backend and/or with no local Bt device
This patch fixes crashes and ensures that examples give some form of indication why they are not working. Change-Id: Id99951e8729c0715505e5fff7448a475979a6406 Reviewed-by: Nedim Hadzic <nhadzic@blackberry.com> Reviewed-by: Aaron McCarthy <mccarthy.aaron@gmail.com> Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
-rw-r--r--examples/bluetooth/btfiletransfer/remoteselector.cpp11
-rw-r--r--examples/bluetooth/picturetransfer/DeviceDiscovery.qml8
-rw-r--r--src/bluetooth/qbluetoothservicediscoveryagent_p.cpp4
3 files changed, 19 insertions, 4 deletions
diff --git a/examples/bluetooth/btfiletransfer/remoteselector.cpp b/examples/bluetooth/btfiletransfer/remoteselector.cpp
index 53bf47f3..84619a4e 100644
--- a/examples/bluetooth/btfiletransfer/remoteselector.cpp
+++ b/examples/bluetooth/btfiletransfer/remoteselector.cpp
@@ -117,9 +117,14 @@ void RemoteSelector::startDiscovery(const QBluetoothUuid &uuid)
m_discoveryAgent->setUuidFilter(uuid);
m_discoveryAgent->start();
- ui->status->setText(tr("Scanning..."));
- ui->busyWidget->show();
- ui->busyWidget->movie()->start();
+ if (!m_discoveryAgent->isActive() ||
+ m_discoveryAgent->error() != QBluetoothServiceDiscoveryAgent::NoError) {
+ ui->status->setText(tr("Cannot find remote services."));
+ } else {
+ ui->status->setText(tr("Scanning..."));
+ ui->busyWidget->show();
+ ui->busyWidget->movie()->start();
+ }
}
QBluetoothServiceInfo RemoteSelector::service() const
diff --git a/examples/bluetooth/picturetransfer/DeviceDiscovery.qml b/examples/bluetooth/picturetransfer/DeviceDiscovery.qml
index 1da77975..77391ec2 100644
--- a/examples/bluetooth/picturetransfer/DeviceDiscovery.qml
+++ b/examples/bluetooth/picturetransfer/DeviceDiscovery.qml
@@ -79,6 +79,14 @@ Item {
//! [Discovery-2]
model: BluetoothDiscoveryModel {
discoveryMode: BluetoothDiscoveryModel.DeviceDiscovery
+ onErrorChanged: {
+ if (error == BluetoothDiscoveryModel.NoError)
+ return;
+ if (error == BluetoothDiscoveryModel.PoweredOffError)
+ titleLabel.text = "Bluetooth turned off";
+ else
+ titleLabel.text = "Cannot find devices";
+ }
}
delegate: Button {
diff --git a/src/bluetooth/qbluetoothservicediscoveryagent_p.cpp b/src/bluetooth/qbluetoothservicediscoveryagent_p.cpp
index 513d7ea7..86874a6c 100644
--- a/src/bluetooth/qbluetoothservicediscoveryagent_p.cpp
+++ b/src/bluetooth/qbluetoothservicediscoveryagent_p.cpp
@@ -45,7 +45,9 @@
QT_BEGIN_NAMESPACE
QBluetoothServiceDiscoveryAgentPrivate::QBluetoothServiceDiscoveryAgentPrivate(const QBluetoothAddress &deviceAdapter)
- : error(QBluetoothServiceDiscoveryAgent::NoError), state(Inactive)
+ : error(QBluetoothServiceDiscoveryAgent::NoError), state(Inactive),
+ deviceDiscoveryAgent(0), mode(QBluetoothServiceDiscoveryAgent::MinimalDiscovery),
+ singleDevice(false)
{
Q_UNUSED(deviceAdapter);
}