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. 17
      electrum/gui/qml/qenetwork.py

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

@ -66,6 +66,15 @@ Pane {
Label {
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 {
Layout.columnSpan: 2
text: qsTr('Mempool fees')

17
electrum/gui/qml/qenetwork.py

@ -20,7 +20,8 @@ class QENetwork(QObject, QtEventListener):
networkUpdated = pyqtSignal()
blockchainUpdated = pyqtSignal()
heightChanged = pyqtSignal([int], arguments=['height'])
heightChanged = pyqtSignal([int], arguments=['height']) # local blockchain height
serverHeightChanged = pyqtSignal([int], arguments=['height'])
proxySet = pyqtSignal()
proxyChanged = pyqtSignal()
statusChanged = pyqtSignal()
@ -51,7 +52,8 @@ class QENetwork(QObject, QtEventListener):
self.network = network
self._qeconfig = qeconfig
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._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._server_status = server_status
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())
if chains != self._chaintips:
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())
@pyqtProperty(int, notify=heightChanged)
def height(self):
def height(self): # local blockchain height
return self._height
@pyqtProperty(int, notify=serverHeightChanged)
def server_height(self):
return self._server_height
@pyqtProperty(str, notify=statusChanged)
def server(self):
return self._server

Loading…
Cancel
Save