@ -21,7 +21,6 @@ class QENetwork(QObject, QtEventListener):
networkUpdated = pyqtSignal ( )
networkUpdated = pyqtSignal ( )
blockchainUpdated = pyqtSignal ( )
blockchainUpdated = pyqtSignal ( )
heightChanged = pyqtSignal ( [ int ] , arguments = [ ' height ' ] )
heightChanged = pyqtSignal ( [ int ] , arguments = [ ' height ' ] )
defaultServerChanged = pyqtSignal ( )
proxySet = pyqtSignal ( )
proxySet = pyqtSignal ( )
proxyChanged = pyqtSignal ( )
proxyChanged = pyqtSignal ( )
statusChanged = pyqtSignal ( )
statusChanged = pyqtSignal ( )
@ -34,6 +33,7 @@ class QENetwork(QObject, QtEventListener):
dataChanged = pyqtSignal ( )
dataChanged = pyqtSignal ( )
_height = 0
_height = 0
_server = " "
_server_status = " "
_server_status = " "
_network_status = " "
_network_status = " "
_chaintips = 1
_chaintips = 1
@ -59,7 +59,7 @@ class QENetwork(QObject, QtEventListener):
@event_listener
@event_listener
def on_event_network_updated ( self , * args ) :
def on_event_network_updated ( self , * args ) :
self . networkUpdated . emit ( )
self . networkUpdated . emit ( )
self . _update_network_ status ( )
self . _update_status ( )
@event_listener
@event_listener
def on_event_blockchain_updated ( self ) :
def on_event_blockchain_updated ( self ) :
@ -71,7 +71,7 @@ class QENetwork(QObject, QtEventListener):
@event_listener
@event_listener
def on_event_default_server_changed ( self , * args ) :
def on_event_default_server_changed ( self , * args ) :
self . defaultServerChanged . emit ( )
self . _update_status ( )
@event_listener
@event_listener
def on_event_proxy_set ( self , * args ) :
def on_event_proxy_set ( self , * args ) :
@ -79,15 +79,15 @@ class QENetwork(QObject, QtEventListener):
self . proxySet . emit ( )
self . proxySet . emit ( )
self . proxyTorChanged . emit ( )
self . proxyTorChanged . emit ( )
def _update_network_status ( self ) :
def _update_status ( self ) :
server = str ( self . network . get_parameters ( ) . server )
if self . _server != server :
self . _server = server
self . statusChanged . emit ( )
network_status = self . network . get_status ( )
network_status = self . network . get_status ( )
if self . _network_status != network_status :
if self . _network_status != network_status :
self . _network_status = network_status
self . _network_status = network_status
self . statusChanged . emit ( )
self . statusChanged . emit ( )
@event_listener
def on_event_status ( self , * args ) :
self . _update_network_status ( )
server_status = self . network . connection_status
server_status = self . network . connection_status
self . _logger . debug ( ' server_status updated: %s ' % server_status )
self . _logger . debug ( ' server_status updated: %s ' % server_status )
if self . _server_status != server_status :
if self . _server_status != server_status :
@ -104,6 +104,10 @@ class QENetwork(QObject, QtEventListener):
self . _islagging = server_lag > 1
self . _islagging = server_lag > 1
self . isLaggingChanged . emit ( )
self . isLaggingChanged . emit ( )
@event_listener
def on_event_status ( self , * args ) :
self . _update_status ( )
@event_listener
@event_listener
def on_event_fee_histogram ( self , histogram ) :
def on_event_fee_histogram ( self , histogram ) :
self . _logger . debug ( f ' fee histogram updated: { repr ( histogram ) } ' )
self . _logger . debug ( f ' fee histogram updated: { repr ( histogram ) } ' )
@ -167,12 +171,12 @@ class QENetwork(QObject, QtEventListener):
def height ( self ) :
def height ( self ) :
return self . _height
return self . _height
@pyqtProperty ( str , notify = defaultServer Changed)
@pyqtProperty ( str , notify = status Changed)
def server ( self ) :
def server ( self ) :
return str ( self . network . get _parameters ( ) . server )
return self . _server
@server . setter
@server . setter
def server ( self , server ) :
def server ( self , server : str ) :
net_params = self . network . get_parameters ( )
net_params = self . network . get_parameters ( )
try :
try :
server = ServerAddr . from_str_with_inference ( server )
server = ServerAddr . from_str_with_inference ( server )
@ -182,6 +186,13 @@ class QENetwork(QObject, QtEventListener):
net_params = net_params . _replace ( server = server , auto_connect = self . _qeconfig . autoConnect )
net_params = net_params . _replace ( server = server , auto_connect = self . _qeconfig . autoConnect )
self . network . run_from_another_thread ( self . network . set_parameters ( net_params ) )
self . network . run_from_another_thread ( self . network . set_parameters ( net_params ) )
@pyqtProperty ( str , notify = statusChanged )
def serverWithStatus ( self ) :
server = self . _server
if self . _server_status != " connected " : # connecting or disconnected
return f " { server } (connecting...) "
return server
@pyqtProperty ( str , notify = statusChanged )
@pyqtProperty ( str , notify = statusChanged )
def status ( self ) :
def status ( self ) :
return self . _network_status
return self . _network_status