1
0

qml network overview: show server height, if lagging

to see how many blocks it is behind
This commit is contained in:
SomberNight
2023-04-05 11:21:31 +00:00
parent dd1a83e1c0
commit 8ea63f9bde
2 changed files with 23 additions and 3 deletions

View File

@@ -66,6 +66,15 @@ Pane {
Label { Label {
text: Network.height text: Network.height
} }
Label {
text: qsTr('Server Height:');
color: Material.accentColor
visible: Network.server_height != Network.height
}
Label {
text: Network.server_height + " (lagging)"
visible: Network.server_height != Network.height
}
Heading { Heading {
Layout.columnSpan: 2 Layout.columnSpan: 2
text: qsTr('Mempool fees') text: qsTr('Mempool fees')

View File

@@ -20,7 +20,8 @@ class QENetwork(QObject, QtEventListener):
networkUpdated = pyqtSignal() networkUpdated = pyqtSignal()
blockchainUpdated = pyqtSignal() blockchainUpdated = pyqtSignal()
heightChanged = pyqtSignal([int], arguments=['height']) heightChanged = pyqtSignal([int], arguments=['height']) # local blockchain height
serverHeightChanged = pyqtSignal([int], arguments=['height'])
proxySet = pyqtSignal() proxySet = pyqtSignal()
proxyChanged = pyqtSignal() proxyChanged = pyqtSignal()
statusChanged = pyqtSignal() statusChanged = pyqtSignal()
@@ -51,7 +52,8 @@ class QENetwork(QObject, QtEventListener):
self.network = network self.network = network
self._qeconfig = qeconfig self._qeconfig = qeconfig
self._serverListModel = None self._serverListModel = None
self._height = network.get_local_height() # init here, update event can take a while self._height = network.get_local_height() # init here, update event can take a while
self._server_height = network.get_server_height() # init here, update event can take a while
self.register_callbacks() self.register_callbacks()
self._qeconfig.useGossipChanged.connect(self.on_gossip_setting_changed) self._qeconfig.useGossipChanged.connect(self.on_gossip_setting_changed)
@@ -94,6 +96,11 @@ class QENetwork(QObject, QtEventListener):
self._logger.debug('server_status updated: %s' % server_status) self._logger.debug('server_status updated: %s' % server_status)
self._server_status = server_status self._server_status = server_status
self.statusChanged.emit() self.statusChanged.emit()
server_height = self.network.get_server_height()
if self._server_height != server_height:
self._logger.debug(f'server_height updated: {server_height}')
self._server_height = server_height
self.serverHeightChanged.emit(server_height)
chains = len(self.network.get_blockchains()) chains = len(self.network.get_blockchains())
if chains != self._chaintips: if chains != self._chaintips:
self._logger.debug('chain tips # changed: %d', chains) self._logger.debug('chain tips # changed: %d', chains)
@@ -173,9 +180,13 @@ class QENetwork(QObject, QtEventListener):
self.network.run_from_another_thread(self.network.stop_gossip()) self.network.run_from_another_thread(self.network.stop_gossip())
@pyqtProperty(int, notify=heightChanged) @pyqtProperty(int, notify=heightChanged)
def height(self): def height(self): # local blockchain height
return self._height return self._height
@pyqtProperty(int, notify=serverHeightChanged)
def server_height(self):
return self._server_height
@pyqtProperty(str, notify=statusChanged) @pyqtProperty(str, notify=statusChanged)
def server(self): def server(self):
return self._server return self._server