From 0ff70246d228ef4f49403dbdf8fe30681ae134a7 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Sat, 31 Aug 2019 02:27:08 +0200 Subject: [PATCH] Fix ThingDelegate not updating connection status --- nymea-app/ui/delegates/ThingDelegate.qml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/nymea-app/ui/delegates/ThingDelegate.qml b/nymea-app/ui/delegates/ThingDelegate.qml index 6e5dd7ae..8d8414e7 100644 --- a/nymea-app/ui/delegates/ThingDelegate.qml +++ b/nymea-app/ui/delegates/ThingDelegate.qml @@ -7,16 +7,22 @@ import Nymea 1.0 NymeaListItemDelegate { id: root width: parent.width - iconName: deviceClass ? app.interfacesToIcon(deviceClass.interfaces) : "" + iconName: device.deviceClass ? app.interfacesToIcon(device.deviceClass.interfaces) : "" text: device ? device.name : "" progressive: true secondaryIconName: batteryCritical ? "../images/battery/battery-010.svg" : "" tertiaryIconName: disconnected ? "../images/dialog-warning-symbolic.svg" : "" tertiaryIconColor: "red" - property var device: null + property Device device: null - readonly property var deviceClass: device ? engine.deviceManager.deviceClasses.getDeviceClass(device.deviceClassId) : null - readonly property bool batteryCritical: deviceClass && deviceClass.interfaces.indexOf("battery") >= 0 ? device.stateValue(deviceClass.stateTypes.findByName("batteryCritical").id) === true : false - readonly property bool disconnected: deviceClass && deviceClass.interfaces.indexOf("connectable") >= 0 ? device.stateValue(deviceClass.stateTypes.findByName("connected").id) === false : false + readonly property bool hasBatteryInterface: device && device.deviceClass.interfaces.indexOf("battery") > 0 + readonly property StateType batteryCriticalStateType: hasBatteryInterface ? device.deviceClass.stateTypes.findByName("batteryCritical") : null + readonly property State batteryCriticalState: batteryCriticalStateType ? device.states.getState(batteryCriticalStateType.id) : null + readonly property bool batteryCritical: batteryCriticalState && batteryCriticalState.value === true + + readonly property bool hasConnectableInterface: device && device.deviceClass.interfaces.indexOf("connectable") > 0 + readonly property StateType connectedStateType: hasConnectableInterface ? device.deviceClass.stateTypes.findByName("connected") : null + readonly property State connectedState: connectedStateType ? device.states.getState(connectedStateType.id) : null + readonly property bool disconnected: connectedState && connectedState.value === false ? true : false }