Browse Source

qml network overview: show server height, if lagging

to see how many blocks it is behind
master
SomberNight 3 years ago
parent
commit
8ea63f9bde
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
  1. 9
      electrum/gui/qml/components/NetworkOverview.qml
  2. 15
      electrum/gui/qml/qenetwork.py

9
electrum/gui/qml/components/NetworkOverview.qml

@ -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')

15
electrum/gui/qml/qenetwork.py

@ -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()
@ -52,6 +53,7 @@ class QENetwork(QObject, QtEventListener):
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

Loading…
Cancel
Save