diff options
author | Alex Blasche <alexander.blasche@digia.com> | 2014-03-13 12:07:06 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-14 08:39:50 +0100 |
commit | 2802eac9bc9ce2c26d09f9598263337287e2765e (patch) | |
tree | 92158ef512f68203f53230326218f113806a8f72 | |
parent | 925eaae08427a6d17cf965c6214e19cfa6446d92 (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.cpp | 11 | ||||
-rw-r--r-- | examples/bluetooth/picturetransfer/DeviceDiscovery.qml | 8 | ||||
-rw-r--r-- | src/bluetooth/qbluetoothservicediscoveryagent_p.cpp | 4 |
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); } |