fix labels plugin

This commit is contained in:
ThomasV 2013-09-29 10:52:47 +02:00
parent 2b0d92e767
commit ec141ebb67
3 changed files with 19 additions and 15 deletions

View File

@ -288,7 +288,7 @@ class ElectrumWindow(QMainWindow):
self.update_buttons_on_seed()
self.update_console()
run_hook('load_wallet')
run_hook('load_wallet', wallet)
def select_wallet_file(self):

View File

@ -48,9 +48,9 @@ class Plugin(BasePlugin):
def init(self):
self.target_host = 'labelectrum.herokuapp.com'
self.window = self.gui.main_window
self.wallet = self.window.wallet
self.labels = self.wallet.labels
self.transactions = self.wallet.transactions
def load_wallet(self, wallet):
self.wallet = wallet
mpk = self.wallet.master_public_keys["m/0'/"][1]
self.encode_password = hashlib.sha1(mpk).digest().encode('hex')[:32]
self.wallet_id = hashlib.sha256(mpk).digest().encode('hex')
@ -170,7 +170,7 @@ class Plugin(BasePlugin):
def do_full_push(self):
try:
bundle = {"labels": {}}
for key, value in self.labels.iteritems():
for key, value in self.wallet.labels.iteritems():
encoded = self.encode(key)
bundle["labels"][encoded] = self.encode(value)
@ -214,8 +214,8 @@ class Plugin(BasePlugin):
for label in response:
decoded_key = self.decode(label["external_id"])
decoded_label = self.decode(label["text"])
if force or not self.labels.get(decoded_key):
self.labels[decoded_key] = decoded_label
if force or not self.wallet.labels.get(decoded_key):
self.wallet.labels[decoded_key] = decoded_label
return True
except socket.gaierror as e:
print_error('Error connecting to service: %s ' % e)

View File

@ -102,6 +102,7 @@ class Plugin(BasePlugin):
def init(self):
self.window = self.gui.main_window
self.wallet = self.window.wallet
self.qr_window = None
self.merchant_name = self.config.get('merchant_name', 'Invoice')
@ -111,8 +112,9 @@ class Plugin(BasePlugin):
self.requested_amounts = {}
self.toggle_QR_window(True)
def load_wallet(self):
self.requested_amounts = self.window.wallet.storage.get('requested_amounts',{})
def load_wallet(self, wallet):
self.wallet = wallet
self.requested_amounts = self.wallet.storage.get('requested_amounts',{})
def close(self):
self.window.receive_list.setHeaderLabels([ _('Address'), _('Label'), _('Balance'), _('Tx')])
@ -138,7 +140,7 @@ class Plugin(BasePlugin):
item = self.window.receive_list.currentItem()
if item:
address = str(item.text(1))
label = self.window.wallet.labels.get(address)
label = self.wallet.labels.get(address)
amount, currency = self.requested_amounts.get(address, (None, None))
self.qr_window.set_content( address, label, amount, currency )
@ -166,9 +168,11 @@ class Plugin(BasePlugin):
def current_item_changed(self, a):
if not self.wallet:
return
if a is not None and self.qr_window and self.qr_window.isVisible():
address = str(a.text(0))
label = self.window.wallet.labels.get(address)
label = self.wallet.labels.get(address)
try:
amount, currency = self.requested_amounts.get(address, (None, None))
except:
@ -183,7 +187,7 @@ class Plugin(BasePlugin):
address = str( item.text(0) )
text = str( item.text(column) )
try:
seq = self.window.wallet.get_address_index(address)
seq = self.wallet.get_address_index(address)
index = seq[1][1]
except:
print "cannot get index"
@ -201,12 +205,12 @@ class Plugin(BasePlugin):
currency = currency.upper()
self.requested_amounts[address] = (amount, currency)
self.window.wallet.storage.put('requested_amounts', self.requested_amounts, True)
self.wallet.storage.put('requested_amounts', self.requested_amounts, True)
label = self.window.wallet.labels.get(address)
label = self.wallet.labels.get(address)
if label is None:
label = self.merchant_name + ' - %04d'%(index+1)
self.window.wallet.labels[address] = label
self.wallet.labels[address] = label
if self.qr_window:
self.qr_window.set_content( address, label, amount, currency )