diff --git a/libnymea-app/zigbee/zigbeenodesproxy.cpp b/libnymea-app/zigbee/zigbeenodesproxy.cpp index b299f69e..06612ec0 100644 --- a/libnymea-app/zigbee/zigbeenodesproxy.cpp +++ b/libnymea-app/zigbee/zigbeenodesproxy.cpp @@ -65,6 +65,12 @@ void ZigbeeNodesProxy::setZigbeeNodes(ZigbeeNodes *zigbeeNodes) m_newNodes.insert(m_zigbeeNodes->get(i), QDateTime::currentDateTime()); } }); + connect(m_zigbeeNodes, &ZigbeeNodes::dataChanged, this, [this](const QModelIndex &/*topLeft*/, const QModelIndex &/*bottomRight*/, const QVector &roles = QVector()){ + if (roles.contains(ZigbeeNodes::RoleReachable) && (!m_showOffline || !m_showOnline)) { + invalidateFilter(); + emit countChanged(); + } + }); setSourceModel(m_zigbeeNodes); diff --git a/nymea-app/ui/system/ZigbeeSettingsPage.qml b/nymea-app/ui/system/ZigbeeSettingsPage.qml index 518e422c..43d7931f 100644 --- a/nymea-app/ui/system/ZigbeeSettingsPage.qml +++ b/nymea-app/ui/system/ZigbeeSettingsPage.qml @@ -173,8 +173,8 @@ SettingsPageBase { Label { Layout.fillWidth: true text: offlineNodes.count == 0 - ? qsTr("%n device(s)", "", networkDelegate.network.nodes.count) - : qsTr("%n device(s) (%1 disconnected)", "", networkDelegate.network.nodes.count).arg(offlineNodes.count) + ? qsTr("%n device(s)", "", Math.max(0, networkDelegate.network.nodes.count - 1)) // -1 for coordinator node + : qsTr("%n device(s) (%1 disconnected)", "", Math.max(networkDelegate.network.nodes.count - 1)).arg(offlineNodes.count) ZigbeeNodesProxy { id: offlineNodes @@ -183,7 +183,6 @@ SettingsPageBase { showOnline: false } } - } } }