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)