URI: 
       tnetwork: new trigger 'blockchain_updated' - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 855a70bc6612669138a7f927d7cde9c894a3aab6
   DIR parent cbd91ba5b1f9260b40b865180be39be3e63d3112
  HTML Author: SomberNight <somber.night@protonmail.com>
       Date:   Wed, 19 Sep 2018 21:56:09 +0200
       
       network: new trigger 'blockchain_updated'
       
       follow-up af6391318927f7ff686ff70111f9c1e96c38cb2b
       needed to update history tab when new blocks come,
       tto refresh the number of confirmations (icons/tooltips)
       
       Diffstat:
         M electrum/gui/kivy/main_window.py    |       6 +++++-
         M electrum/gui/qt/main_window.py      |       6 +++++-
         M electrum/interface.py               |       1 +
         M electrum/network.py                 |       3 +++
       
       4 files changed, 14 insertions(+), 2 deletions(-)
       ---
   DIR diff --git a/electrum/gui/kivy/main_window.py b/electrum/gui/kivy/main_window.py
       t@@ -490,7 +490,8 @@ class ElectrumWindow(App):
                    activity.bind(on_new_intent=self.on_new_intent)
                # connect callbacks
                if self.network:
       -            interests = ['wallet_updated', 'network_updated', 'status', 'new_transaction', 'verified']
       +            interests = ['wallet_updated', 'network_updated', 'blockchain_updated',
       +                         'status', 'new_transaction', 'verified']
                    self.network.register_callback(self.on_network_event, interests)
                    self.network.register_callback(self.on_fee, ['fee'])
                    self.network.register_callback(self.on_fee_histogram, ['fee_histogram'])
       t@@ -675,6 +676,9 @@ class ElectrumWindow(App):
                elif event == 'wallet_updated':
                    self._trigger_update_wallet()
                    self._trigger_update_status()
       +        elif event == 'blockchain_updated':
       +            # to update number of confirmations in history
       +            self._trigger_update_wallet()
                elif event == 'status':
                    self._trigger_update_status()
                elif event == 'new_transaction':
   DIR diff --git a/electrum/gui/qt/main_window.py b/electrum/gui/qt/main_window.py
       t@@ -189,7 +189,8 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
                # network callbacks
                if self.network:
                    self.network_signal.connect(self.on_network_qt)
       -            interests = ['wallet_updated', 'network_updated', 'new_transaction', 'status',
       +            interests = ['wallet_updated', 'network_updated', 'blockchain_updated',
       +                         'new_transaction', 'status',
                                 'banner', 'verified', 'fee', 'fee_histogram']
                    # To avoid leaking references to "self" that prevent the
                    # window from being GC-ed when closed, callbacks should be
       t@@ -304,6 +305,9 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
                    self.gui_object.network_updated_signal_obj.network_updated_signal \
                        .emit(event, args)
                    self.network_signal.emit('status', None)
       +        elif event == 'blockchain_updated':
       +            # to update number of confirmations in history
       +            self.need_update.set()
                elif event == 'new_transaction':
                    wallet, tx = args
                    if wallet == self.wallet:
   DIR diff --git a/electrum/interface.py b/electrum/interface.py
       t@@ -400,6 +400,7 @@ class Interface(PrintError):
                    # in the simple case, height == self.tip+1
                    if height <= self.tip:
                        await self.sync_until(height)
       +        self.network.trigger_callback('blockchain_updated')
        
            async def sync_until(self, height, next_height=None):
                if next_height is None:
   DIR diff --git a/electrum/network.py b/electrum/network.py
       t@@ -589,7 +589,9 @@ class Network(PrintError):
                i = self.interfaces[server]
                if self.interface != i:
                    self.print_error("switching to", server)
       +            blockchain_updated = False
                    if self.interface is not None:
       +                blockchain_updated = i.blockchain != self.interface.blockchain
                        # Stop any current interface in order to terminate subscriptions,
                        # and to cancel tasks in interface.group.
                        # However, for headers sub, give preference to this interface
       t@@ -605,6 +607,7 @@ class Network(PrintError):
                    self.trigger_callback('default_server_changed')
                    self.set_status('connected')
                    self.trigger_callback('network_updated')
       +            if blockchain_updated: self.trigger_callback('blockchain_updated')
        
            @with_interface_lock
            def close_interface(self, interface):