URI: 
       tfix callbacks - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit fb0574c5a05426a6885ec91579c0138b606aff1b
   DIR parent 1ee4af86869fcbe306aa949956c62f1594cb8d6f
  HTML Author: ThomasV <thomasv@gitorious>
       Date:   Mon, 28 Jul 2014 07:53:02 +0200
       
       fix callbacks
       
       Diffstat:
         M gui/qt/__init__.py                  |      19 ++++++++++++-------
         M gui/qt/main_window.py               |       7 ++++---
         M lib/network.py                      |       2 ++
         M lib/synchronizer.py                 |       2 +-
         M lib/verifier.py                     |       4 ++--
       
       5 files changed, 21 insertions(+), 13 deletions(-)
       ---
   DIR diff --git a/gui/qt/__init__.py b/gui/qt/__init__.py
       t@@ -164,13 +164,16 @@ class ElectrumGui:
                    wallet.start_threads(self.network)
        
                # init tray
       -        self.dark_icon = self.config.get("dark_icon", False)
       -        icon = QIcon(":icons/electrum_dark_icon.png") if self.dark_icon else QIcon(':icons/electrum_light_icon.png')
       -        self.tray = QSystemTrayIcon(icon, None)
       -        self.tray.setToolTip('Electrum')
       -        self.tray.activated.connect(self.tray_activated)
       -        self.build_tray_menu()
       -        self.tray.show()
       +        if 1:
       +            self.dark_icon = self.config.get("dark_icon", False)
       +            icon = QIcon(":icons/electrum_dark_icon.png") if self.dark_icon else QIcon(':icons/electrum_light_icon.png')
       +            self.tray = QSystemTrayIcon(icon, None)
       +            self.tray.setToolTip('Electrum')
       +            self.tray.activated.connect(self.tray_activated)
       +            self.build_tray_menu()
       +            self.tray.show()
       +        else:
       +            self.tray = None
        
                # main window
                self.main_window = w = ElectrumWindow(self.config, self.network, self)
       t@@ -206,6 +209,8 @@ class ElectrumGui:
                w.update_wallet()
        
                self.app.exec_()
       +        if self.tray:
       +            self.tray.hide()
        
                # clipboard persistence
                # see http://www.mail-archive.com/pyqt@riverbankcomputing.com/msg17328.html
   DIR diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py
       t@@ -408,7 +408,8 @@ class ElectrumWindow(QMainWindow):
                                  self.notify(_("New transaction received. %(amount)s %(unit)s") % { 'amount' : self.format_amount(v), 'unit' : self.base_unit()})
        
            def notify(self, message):
       -        self.tray.showMessage("Electrum", message, QSystemTrayIcon.Information, 20000)
       +        if self.tray:
       +            self.tray.showMessage("Electrum", message, QSystemTrayIcon.Information, 20000)
        
        
        
       t@@ -486,7 +487,8 @@ class ElectrumWindow(QMainWindow):
                        if quote:
                            text += "%s"%quote
        
       -                self.tray.setToolTip(text)
       +                if self.tray:
       +                    self.tray.setToolTip(text)
                        icon = QIcon(":icons/status_connected.png")
                else:
                    text = _("Not connected")
       t@@ -2623,7 +2625,6 @@ class ElectrumWindow(QMainWindow):
                NetworkDialog(self.wallet.network, self.config, self).do_exec()
        
            def closeEvent(self, event):
       -        self.tray.hide()
                self.config.set_key("is_maximized", self.isMaximized())
                if not self.isMaximized():
                    g = self.geometry()
   DIR diff --git a/lib/network.py b/lib/network.py
       t@@ -323,6 +323,8 @@ class Network(threading.Thread):
                    self.on_peers(i, response)
                elif method == 'server.banner':
                    self.on_banner(i, response)
       +        else:
       +            self.response_queue.put(response)
        
            def process_requests_thread(self):
                while self.is_running():
   DIR diff --git a/lib/synchronizer.py b/lib/synchronizer.py
       t@@ -103,7 +103,7 @@ class WalletSynchronizer(threading.Thread):
                    # request missing transactions
                    for tx_hash, tx_height in missing_tx:
                        if (tx_hash, tx_height) not in requested_tx:
       -                    self.network.send([ ('blockchain.transaction.get',[tx_hash, tx_height]) ], lambda i,r: self.queue.put(r))
       +                    self.network.send([ ('blockchain.transaction.get',[tx_hash, tx_height]) ], self.queue.put)
                            requested_tx.append( (tx_hash, tx_height) )
                    missing_tx = []
        
   DIR diff --git a/lib/verifier.py b/lib/verifier.py
       t@@ -103,10 +103,10 @@ class TxVerifier(threading.Thread):
                    for tx_hash, tx_height in self.transactions.items():
                        if tx_hash not in self.verified_tx:
                            # do not request merkle branch before headers are available
       -                    if tx_height > self.network.blockchain.height():
       +                    if tx_height > self.network.get_local_height():
                                continue
                            if self.merkle_roots.get(tx_hash) is None and tx_hash not in requested_merkle:
       -                        if self.network.send([ ('blockchain.transaction.get_merkle',[tx_hash, tx_height]) ], lambda i,r: self.queue.put(r)):
       +                        if self.network.send([ ('blockchain.transaction.get_merkle',[tx_hash, tx_height]) ], self.queue.put):
                                    print_error('requesting merkle', tx_hash)
                                    requested_merkle.append(tx_hash)