Update ZigbeeNodesProxy filter when a device changes reachable state
This commit is contained in:
parent
e8f9e83abd
commit
3882f367ff
@ -65,6 +65,12 @@ void ZigbeeNodesProxy::setZigbeeNodes(ZigbeeNodes *zigbeeNodes)
|
|||||||
m_newNodes.insert(m_zigbeeNodes->get(i), QDateTime::currentDateTime());
|
m_newNodes.insert(m_zigbeeNodes->get(i), QDateTime::currentDateTime());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
connect(m_zigbeeNodes, &ZigbeeNodes::dataChanged, this, [this](const QModelIndex &/*topLeft*/, const QModelIndex &/*bottomRight*/, const QVector<int> &roles = QVector<int>()){
|
||||||
|
if (roles.contains(ZigbeeNodes::RoleReachable) && (!m_showOffline || !m_showOnline)) {
|
||||||
|
invalidateFilter();
|
||||||
|
emit countChanged();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
setSourceModel(m_zigbeeNodes);
|
setSourceModel(m_zigbeeNodes);
|
||||||
|
|
||||||
|
|||||||
@ -173,8 +173,8 @@ SettingsPageBase {
|
|||||||
Label {
|
Label {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
text: offlineNodes.count == 0
|
text: offlineNodes.count == 0
|
||||||
? qsTr("%n device(s)", "", networkDelegate.network.nodes.count)
|
? qsTr("%n device(s)", "", Math.max(0, networkDelegate.network.nodes.count - 1)) // -1 for coordinator node
|
||||||
: qsTr("%n device(s) (%1 disconnected)", "", networkDelegate.network.nodes.count).arg(offlineNodes.count)
|
: qsTr("%n device(s) (%1 disconnected)", "", Math.max(networkDelegate.network.nodes.count - 1)).arg(offlineNodes.count)
|
||||||
|
|
||||||
ZigbeeNodesProxy {
|
ZigbeeNodesProxy {
|
||||||
id: offlineNodes
|
id: offlineNodes
|
||||||
@ -183,7 +183,6 @@ SettingsPageBase {
|
|||||||
showOnline: false
|
showOnline: false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user