Added notifications when receiving a new transaction
This commit is contained in:
parent
887557865e
commit
468c76b66e
|
@ -244,6 +244,11 @@ class ElectrumWindow(QMainWindow):
|
||||||
self.config = config
|
self.config = config
|
||||||
self.current_account = self.config.get("current_account", None)
|
self.current_account = self.config.get("current_account", None)
|
||||||
|
|
||||||
|
self.icon = QIcon(os.getcwd() + '/icons/electrum.png')
|
||||||
|
self.notifier = QSystemTrayIcon(self.icon, self)
|
||||||
|
self.notifier.setToolTip('Electrum')
|
||||||
|
self.notifier.show()
|
||||||
|
|
||||||
self.init_plugins()
|
self.init_plugins()
|
||||||
self.create_status_bar()
|
self.create_status_bar()
|
||||||
|
|
||||||
|
@ -252,6 +257,7 @@ class ElectrumWindow(QMainWindow):
|
||||||
self.wallet.interface.register_callback('banner', lambda: self.emit(QtCore.SIGNAL('banner_signal')))
|
self.wallet.interface.register_callback('banner', lambda: self.emit(QtCore.SIGNAL('banner_signal')))
|
||||||
self.wallet.interface.register_callback('disconnected', lambda: self.emit(QtCore.SIGNAL('update_status')))
|
self.wallet.interface.register_callback('disconnected', lambda: self.emit(QtCore.SIGNAL('update_status')))
|
||||||
self.wallet.interface.register_callback('disconnecting', lambda: self.emit(QtCore.SIGNAL('update_status')))
|
self.wallet.interface.register_callback('disconnecting', lambda: self.emit(QtCore.SIGNAL('update_status')))
|
||||||
|
self.wallet.interface.register_callback('new_transaction', self.notify_transactions)
|
||||||
|
|
||||||
self.expert_mode = config.get('classic_expert_mode', False)
|
self.expert_mode = config.get('classic_expert_mode', False)
|
||||||
self.decimal_point = config.get('decimal_point', 8)
|
self.decimal_point = config.get('decimal_point', 8)
|
||||||
|
@ -288,6 +294,7 @@ class ElectrumWindow(QMainWindow):
|
||||||
|
|
||||||
self.connect(self, QtCore.SIGNAL('update_status'), self.update_status)
|
self.connect(self, QtCore.SIGNAL('update_status'), self.update_status)
|
||||||
self.connect(self, QtCore.SIGNAL('banner_signal'), lambda: self.console.showMessage(self.wallet.interface.banner) )
|
self.connect(self, QtCore.SIGNAL('banner_signal'), lambda: self.console.showMessage(self.wallet.interface.banner) )
|
||||||
|
|
||||||
self.history_list.setFocus(True)
|
self.history_list.setFocus(True)
|
||||||
|
|
||||||
self.exchanger = exchange_rate.Exchanger(self)
|
self.exchanger = exchange_rate.Exchanger(self)
|
||||||
|
@ -390,8 +397,6 @@ class ElectrumWindow(QMainWindow):
|
||||||
|
|
||||||
self.setMenuBar(menubar)
|
self.setMenuBar(menubar)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def load_wallet(self, filename):
|
def load_wallet(self, filename):
|
||||||
import electrum
|
import electrum
|
||||||
|
|
||||||
|
@ -415,7 +420,15 @@ class ElectrumWindow(QMainWindow):
|
||||||
|
|
||||||
self.update_wallet()
|
self.update_wallet()
|
||||||
|
|
||||||
|
def notify_transactions(self):
|
||||||
|
for tx in self.wallet.interface.pending_transactions:
|
||||||
|
if tx:
|
||||||
|
self.wallet.interface.pending_transactions.remove(tx)
|
||||||
|
is_relevant, is_mine, v, fee = self.wallet.get_tx_value(tx)
|
||||||
|
self.notify("New transaction received. %s BTC" % (self.format_amount(v)))
|
||||||
|
|
||||||
|
def notify(self, message):
|
||||||
|
self.notifier.showMessage("Electrum", message, QSystemTrayIcon.Information, 20000)
|
||||||
|
|
||||||
# plugins
|
# plugins
|
||||||
def init_plugins(self):
|
def init_plugins(self):
|
||||||
|
|
|
@ -90,6 +90,7 @@ class Interface(threading.Thread):
|
||||||
self.unanswered_requests = {}
|
self.unanswered_requests = {}
|
||||||
#banner
|
#banner
|
||||||
self.banner = ''
|
self.banner = ''
|
||||||
|
self.pending_transactions = []
|
||||||
|
|
||||||
|
|
||||||
def queue_json_response(self, c):
|
def queue_json_response(self, c):
|
||||||
|
|
|
@ -674,7 +674,6 @@ class Wallet:
|
||||||
|
|
||||||
|
|
||||||
def receive_tx_callback(self, tx_hash, tx, tx_height):
|
def receive_tx_callback(self, tx_hash, tx, tx_height):
|
||||||
|
|
||||||
if not self.check_new_tx(tx_hash, tx):
|
if not self.check_new_tx(tx_hash, tx):
|
||||||
# may happen due to pruning
|
# may happen due to pruning
|
||||||
print_error("received transaction that is no longer referenced in history", tx_hash)
|
print_error("received transaction that is no longer referenced in history", tx_hash)
|
||||||
|
@ -682,6 +681,10 @@ class Wallet:
|
||||||
|
|
||||||
with self.transaction_lock:
|
with self.transaction_lock:
|
||||||
self.transactions[tx_hash] = tx
|
self.transactions[tx_hash] = tx
|
||||||
|
|
||||||
|
self.interface.pending_transactions.append(tx)
|
||||||
|
self.interface.trigger_callback("new_transaction")
|
||||||
|
|
||||||
self.save_transactions()
|
self.save_transactions()
|
||||||
if self.verifier and tx_height>0:
|
if self.verifier and tx_height>0:
|
||||||
self.verifier.add(tx_hash, tx_height)
|
self.verifier.add(tx_hash, tx_height)
|
||||||
|
@ -694,7 +697,6 @@ class Wallet:
|
||||||
tx[k] = str(v)
|
tx[k] = str(v)
|
||||||
self.config.set_key('transactions', tx, True)
|
self.config.set_key('transactions', tx, True)
|
||||||
|
|
||||||
|
|
||||||
def receive_history_callback(self, addr, hist):
|
def receive_history_callback(self, addr, hist):
|
||||||
|
|
||||||
if not self.check_new_history(addr, hist):
|
if not self.check_new_history(addr, hist):
|
||||||
|
|
Loading…
Reference in New Issue