From 1e346404dde636ea682d3d9590bcf6a80ed12bd1 Mon Sep 17 00:00:00 2001 From: ThomasV Date: Thu, 4 Sep 2014 16:37:51 +0200 Subject: [PATCH] fixes for label plugin --- gui/qt/main_window.py | 1 + lib/plugins.py | 6 +++++- plugins/labels.py | 33 +++++++++++++-------------------- 3 files changed, 19 insertions(+), 21 deletions(-) diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py index 73e8838b1..5fd473afc 100644 --- a/gui/qt/main_window.py +++ b/gui/qt/main_window.py @@ -2727,6 +2727,7 @@ class ElectrumWindow(QMainWindow): p.close() else: if p.enable(): + p.load_wallet(self.wallet) p.init_qt(self.gui_object) r = p.is_enabled() cb.setChecked(r) diff --git a/lib/plugins.py b/lib/plugins.py index 6c5ae9d4b..ded8867a1 100644 --- a/lib/plugins.py +++ b/lib/plugins.py @@ -88,7 +88,11 @@ class BasePlugin: self.set_enabled(False) return True - def init(self): pass + def init_qt(self, gui): pass + + def load_wallet(self, wallet): pass + + #def init(self): pass def close(self): pass diff --git a/plugins/labels.py b/plugins/labels.py index 7ebb8dc1e..40e910a5e 100644 --- a/plugins/labels.py +++ b/plugins/labels.py @@ -23,6 +23,8 @@ from electrum_gui.qt import HelpButton, EnterButton class Plugin(BasePlugin): + target_host = 'labelectrum.herokuapp.com' + def fullname(self): return _('Label Sync') @@ -40,21 +42,26 @@ class Plugin(BasePlugin): def decode(self, message): decoded_message = aes.decryptData(self.encode_password, base64.b64decode(unicode(message)) ) - return decoded_message + + @hook def init_qt(self, gui): - self.target_host = 'labelectrum.herokuapp.com' self.window = gui.main_window + if not self.auth_token(): # First run, throw plugin settings in your face + self.load_wallet(self.window.wallet) + if self.settings_dialog(): + self.set_enabled(True) + return True + else: + self.set_enabled(False) + return False @hook def load_wallet(self, wallet): self.wallet = wallet - if self.wallet.get_master_public_key(): - mpk = self.wallet.get_master_public_key() - else: - mpk = self.wallet.master_public_keys["m/0'/"][1] + mpk = self.wallet.get_master_public_key() self.encode_password = hashlib.sha1(mpk).digest().encode('hex')[:32] self.wallet_id = hashlib.sha256(mpk).digest().encode('hex') @@ -151,20 +158,6 @@ class Plugin(BasePlugin): else: return False - def enable(self): - if not self.auth_token(): # First run, throw plugin settings in your face - self.init() - self.load_wallet(self.window.wallet) - if self.settings_dialog(): - self.set_enabled(True) - return True - else: - self.set_enabled(False) - return False - - self.set_enabled(True) - return True - def full_push(self): if self.do_full_push():