URI: 
       tfix labels plugin - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit ec141ebb67dd3c36e5675799c89ded7794e50f0e
   DIR parent 2b0d92e767396d12d7b69d2fe85477d8c38fb945
  HTML Author: ThomasV <thomasv@gitorious>
       Date:   Sun, 29 Sep 2013 10:52:47 +0200
       
       fix labels plugin
       
       Diffstat:
         M gui/qt/main_window.py               |       2 +-
         M plugins/labels.py                   |      12 ++++++------
         M plugins/pointofsale.py              |      20 ++++++++++++--------
       
       3 files changed, 19 insertions(+), 15 deletions(-)
       ---
   DIR diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py
       t@@ -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):
   DIR diff --git a/plugins/labels.py b/plugins/labels.py
       t@@ -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')
       t@@ -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)
        
       t@@ -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)
   DIR diff --git a/plugins/pointofsale.py b/plugins/pointofsale.py
       t@@ -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')
       t@@ -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')])
       t@@ -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 )
        
       t@@ -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:
       t@@ -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"
       t@@ -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 )