From 10126f30e5f5dec0c13ed11ae302a76bc5fa6da0 Mon Sep 17 00:00:00 2001 From: Nedim Hadzic Date: Sat, 8 Mar 2014 14:19:55 +0100 Subject: BLE scanner search bar fix During device scan, search bar was gone after device is added and device scan was not yet done. Change-Id: I39bd7fc1c3f8c22a93921313d818ba1cd00363a0 Reviewed-by: Alex Blasche --- examples/bluetooth/lowenergyscanner/assets/main.qml | 6 +++--- examples/bluetooth/lowenergyscanner/device.cpp | 11 ++++++++++- examples/bluetooth/lowenergyscanner/device.h | 4 ++++ 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/examples/bluetooth/lowenergyscanner/assets/main.qml b/examples/bluetooth/lowenergyscanner/assets/main.qml index cdef49a5..c7c201e8 100644 --- a/examples/bluetooth/lowenergyscanner/assets/main.qml +++ b/examples/bluetooth/lowenergyscanner/assets/main.qml @@ -44,9 +44,9 @@ Rectangle { id: back width: 300 height: 600 - property string message: device.update - onMessageChanged: { - if (device.update != "Scanning for devices..." && device.update != "Search") + property bool deviceState: device.state + onDeviceStateChanged: { + if (!device.state) info.visible = false; } diff --git a/examples/bluetooth/lowenergyscanner/device.cpp b/examples/bluetooth/lowenergyscanner/device.cpp index df125d60..44cd3512 100644 --- a/examples/bluetooth/lowenergyscanner/device.cpp +++ b/examples/bluetooth/lowenergyscanner/device.cpp @@ -51,7 +51,7 @@ #include Device::Device(): - connected(false), info(0) + connected(false), info(0), m_deviceScanState(false) { discoveryAgent = new QBluetoothDeviceDiscoveryAgent(); connect(discoveryAgent, SIGNAL(deviceDiscovered(const QBluetoothDeviceInfo&)), @@ -89,6 +89,8 @@ void Device::startDeviceDiscovery() devices.clear(); setUpdate("Scanning for devices ..."); discoveryAgent->start(); + m_deviceScanState = true; + Q_EMIT stateChanged(); } void Device::addDevice(const QBluetoothDeviceInfo &info) @@ -103,6 +105,8 @@ void Device::addDevice(const QBluetoothDeviceInfo &info) void Device::scanFinished() { Q_EMIT devicesDone(); + m_deviceScanState = false; + Q_EMIT stateChanged(); if (devices.isEmpty()) setUpdate("No Low Energy devices found..."); else @@ -233,3 +237,8 @@ void Device::serviceScanError(QBluetoothServiceDiscoveryAgent::Error error) else setUpdate("An unknown error has occurred."); } + +bool Device::state() +{ + return m_deviceScanState; +} diff --git a/examples/bluetooth/lowenergyscanner/device.h b/examples/bluetooth/lowenergyscanner/device.h index 2e471f50..307b0fb9 100644 --- a/examples/bluetooth/lowenergyscanner/device.h +++ b/examples/bluetooth/lowenergyscanner/device.h @@ -66,6 +66,7 @@ class Device: public QObject Q_PROPERTY(QVariant servicesList READ getServices NOTIFY servicesDone) Q_PROPERTY(QVariant characteristicList READ getCharacteristics NOTIFY characteristicsDone) Q_PROPERTY(QString update READ getUpdate NOTIFY updateChanged) + Q_PROPERTY(bool state READ state NOTIFY stateChanged) public: Device(); ~Device(); @@ -73,6 +74,7 @@ public: QVariant getServices(); QVariant getCharacteristics(); QString getUpdate(); + bool state(); public slots: void addDevice(const QBluetoothDeviceInfo&); @@ -94,6 +96,7 @@ Q_SIGNALS: void servicesDone(); void characteristicsDone(); void updateChanged(); + void stateChanged(); private: void setUpdate(QString message); @@ -106,6 +109,7 @@ private: QString m_message; bool connected; QLowEnergyController *info; + bool m_deviceScanState; }; #endif // DEVICE_H -- cgit v1.2.3