use callback instead of wallet.was_updated
This commit is contained in:
parent
2307323bb7
commit
6de8a946eb
12
lib/gui.py
12
lib/gui.py
|
@ -669,6 +669,10 @@ class ElectrumWindow:
|
||||||
self.context_id = self.status_bar.get_context_id("statusbar")
|
self.context_id = self.status_bar.get_context_id("statusbar")
|
||||||
self.update_status_bar()
|
self.update_status_bar()
|
||||||
|
|
||||||
|
self.wallet_updated = False
|
||||||
|
self.wallet.interface.register_callback('updated', self.update_callback)
|
||||||
|
|
||||||
|
|
||||||
def update_status_bar_thread():
|
def update_status_bar_thread():
|
||||||
while True:
|
while True:
|
||||||
gobject.idle_add( self.update_status_bar )
|
gobject.idle_add( self.update_status_bar )
|
||||||
|
@ -700,6 +704,9 @@ class ElectrumWindow:
|
||||||
thread.start_new_thread(check_recipient_thread, ())
|
thread.start_new_thread(check_recipient_thread, ())
|
||||||
self.notebook.set_current_page(0)
|
self.notebook.set_current_page(0)
|
||||||
|
|
||||||
|
def update_callback(self):
|
||||||
|
self.wallet_updated = True
|
||||||
|
|
||||||
|
|
||||||
def add_tab(self, page, name):
|
def add_tab(self, page, name):
|
||||||
tab_label = gtk.Label(name)
|
tab_label = gtk.Label(name)
|
||||||
|
@ -1182,13 +1189,12 @@ class ElectrumWindow:
|
||||||
self.status_bar.pop(self.context_id)
|
self.status_bar.pop(self.context_id)
|
||||||
self.status_bar.push(self.context_id, text)
|
self.status_bar.push(self.context_id, text)
|
||||||
|
|
||||||
if self.wallet.was_updated and self.wallet.up_to_date:
|
if self.wallet.up_to_date and self.wallet_updated:
|
||||||
self.update_history_tab()
|
self.update_history_tab()
|
||||||
self.update_receiving_tab()
|
self.update_receiving_tab()
|
||||||
# addressbook too...
|
# addressbook too...
|
||||||
self.info.set_text( self.wallet.banner )
|
self.info.set_text( self.wallet.banner )
|
||||||
self.wallet.was_updated = False
|
self.wallet_updated = False
|
||||||
|
|
||||||
|
|
||||||
def update_receiving_tab(self):
|
def update_receiving_tab(self):
|
||||||
self.recv_list.clear()
|
self.recv_list.clear()
|
||||||
|
|
|
@ -219,7 +219,7 @@ class WalletVerifier(threading.Thread):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
self.save_header(header)
|
self.save_header(header)
|
||||||
print_error("verify header: ok %d"%height)
|
print_error("verify header:", _hash, height)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -77,7 +77,6 @@ class Wallet:
|
||||||
# not saved
|
# not saved
|
||||||
self.receipt = None # next receipt
|
self.receipt = None # next receipt
|
||||||
self.tx_history = {}
|
self.tx_history = {}
|
||||||
self.was_updated = True
|
|
||||||
self.banner = ''
|
self.banner = ''
|
||||||
|
|
||||||
# spv
|
# spv
|
||||||
|
@ -838,6 +837,7 @@ class WalletSynchronizer(threading.Thread):
|
||||||
self.interface.register_channel('synchronizer')
|
self.interface.register_channel('synchronizer')
|
||||||
self.wallet.interface.register_callback('connected', self.wallet.init_up_to_date)
|
self.wallet.interface.register_callback('connected', self.wallet.init_up_to_date)
|
||||||
self.wallet.interface.register_callback('connected', lambda: self.interface.send([('server.banner',[])],'synchronizer') )
|
self.wallet.interface.register_callback('connected', lambda: self.interface.send([('server.banner',[])],'synchronizer') )
|
||||||
|
self.was_updated = True
|
||||||
|
|
||||||
def synchronize_wallet(self):
|
def synchronize_wallet(self):
|
||||||
new_addresses = self.wallet.synchronize()
|
new_addresses = self.wallet.synchronize()
|
||||||
|
@ -847,12 +847,12 @@ class WalletSynchronizer(threading.Thread):
|
||||||
if self.interface.is_up_to_date('synchronizer'):
|
if self.interface.is_up_to_date('synchronizer'):
|
||||||
if not self.wallet.up_to_date:
|
if not self.wallet.up_to_date:
|
||||||
self.wallet.up_to_date = True
|
self.wallet.up_to_date = True
|
||||||
self.wallet.was_updated = True
|
self.was_updated = True
|
||||||
self.wallet.up_to_date_event.set()
|
self.wallet.up_to_date_event.set()
|
||||||
else:
|
else:
|
||||||
if self.wallet.up_to_date:
|
if self.wallet.up_to_date:
|
||||||
self.wallet.up_to_date = False
|
self.wallet.up_to_date = False
|
||||||
self.wallet.was_updated = True
|
self.was_updated = True
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -879,9 +879,9 @@ class WalletSynchronizer(threading.Thread):
|
||||||
# 1. send new requests
|
# 1. send new requests
|
||||||
self.synchronize_wallet()
|
self.synchronize_wallet()
|
||||||
|
|
||||||
if self.wallet.was_updated:
|
if self.was_updated:
|
||||||
self.interface.trigger_callback('updated')
|
self.interface.trigger_callback('updated')
|
||||||
self.wallet.was_updated = False
|
self.was_updated = False
|
||||||
|
|
||||||
# 2. get a response
|
# 2. get a response
|
||||||
r = self.interface.get_response('synchronizer')
|
r = self.interface.get_response('synchronizer')
|
||||||
|
@ -900,7 +900,7 @@ class WalletSynchronizer(threading.Thread):
|
||||||
elif method == 'blockchain.address.get_history':
|
elif method == 'blockchain.address.get_history':
|
||||||
addr = params[0]
|
addr = params[0]
|
||||||
self.wallet.receive_history_callback(addr, result)
|
self.wallet.receive_history_callback(addr, result)
|
||||||
self.wallet.was_updated = True
|
self.was_updated = True
|
||||||
|
|
||||||
elif method == 'blockchain.transaction.broadcast':
|
elif method == 'blockchain.transaction.broadcast':
|
||||||
self.wallet.tx_result = result
|
self.wallet.tx_result = result
|
||||||
|
@ -908,13 +908,13 @@ class WalletSynchronizer(threading.Thread):
|
||||||
|
|
||||||
elif method == 'server.banner':
|
elif method == 'server.banner':
|
||||||
self.wallet.banner = result
|
self.wallet.banner = result
|
||||||
self.wallet.was_updated = True
|
self.was_updated = True
|
||||||
|
|
||||||
else:
|
else:
|
||||||
print_error("Error: Unknown message:" + method + ", " + repr(params) + ", " + repr(result) )
|
print_error("Error: Unknown message:" + method + ", " + repr(params) + ", " + repr(result) )
|
||||||
|
|
||||||
if self.wallet.was_updated:
|
if self.was_updated:
|
||||||
self.interface.trigger_callback('updated')
|
self.interface.trigger_callback('updated')
|
||||||
self.wallet.was_updated = False
|
self.was_updated = False
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue