From 0b42f1e6f6be36a23584dfe41acaf414023f747a Mon Sep 17 00:00:00 2001
From: Alex Blasche <alexander.blasche@digia.com>
Date: Tue, 28 Oct 2014 11:42:34 +0100
Subject: [PATCH] Fix lowenergyscanner when dealing with device scan errors

Previously the error was indicated but other UI elements were still
giving the impression that the scan was ongoing.

Change-Id: Iafab8f43bff3303eb6ad5e3385db2f81288d2e66
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
---
 examples/bluetooth/lowenergyscanner/assets/Menu.qml |  1 +
 examples/bluetooth/lowenergyscanner/assets/main.qml |  8 ++++++--
 examples/bluetooth/lowenergyscanner/device.cpp      | 11 +++++++++--
 3 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/examples/bluetooth/lowenergyscanner/assets/Menu.qml b/examples/bluetooth/lowenergyscanner/assets/Menu.qml
index d1eaebb2..3669223a 100644
--- a/examples/bluetooth/lowenergyscanner/assets/Menu.qml
+++ b/examples/bluetooth/lowenergyscanner/assets/Menu.qml
@@ -68,6 +68,7 @@ Rectangle {
             text: menuText
             elide: Text.ElideMiddle
             color: "#E3E3E3"
+            wrapMode: Text.WordWrap
         }
 
         MouseArea {
diff --git a/examples/bluetooth/lowenergyscanner/assets/main.qml b/examples/bluetooth/lowenergyscanner/assets/main.qml
index e135d699..7f03d4fa 100644
--- a/examples/bluetooth/lowenergyscanner/assets/main.qml
+++ b/examples/bluetooth/lowenergyscanner/assets/main.qml
@@ -137,8 +137,12 @@ Rectangle {
         menuText: device.update
         onButtonClick: {
             device.startDeviceDiscovery();
-            info.dialogText = "Searching...";
-            info.visible = true;}
+            // if startDeviceDiscovery() failed device.state is not set
+            if (device.state) {
+                info.dialogText = "Searching...";
+                info.visible = true;
+            }
+        }
     }
 
     Loader {
diff --git a/examples/bluetooth/lowenergyscanner/device.cpp b/examples/bluetooth/lowenergyscanner/device.cpp
index 215a7588..acab48c2 100644
--- a/examples/bluetooth/lowenergyscanner/device.cpp
+++ b/examples/bluetooth/lowenergyscanner/device.cpp
@@ -86,8 +86,11 @@ void Device::startDeviceDiscovery()
     //! [les-devicediscovery-2]
     discoveryAgent->start();
     //! [les-devicediscovery-2]
-    m_deviceScanState = true;
-    Q_EMIT stateChanged();
+
+    if (discoveryAgent->isActive()) {
+        m_deviceScanState = true;
+        Q_EMIT stateChanged();
+    }
 }
 
 //! [les-devicediscovery-3]
@@ -302,6 +305,10 @@ void Device::deviceScanError(QBluetoothDeviceDiscoveryAgent::Error error)
         setUpdate("Writing or reading from the device resulted in an error.");
     else
         setUpdate("An unknown error has occurred.");
+
+    m_deviceScanState = false;
+    emit devicesUpdated();
+    emit stateChanged();
 }
 
 bool Device::state()
-- 
GitLab