commit 77a029082aac75264c5851ea7bb3928af4d44e6d
parent fcc452d7b02759f6eb90f8e90aff5026b8ef04f2
Author: Neil Booth <kyuupichan@gmail.com>
Date: Fri, 4 Sep 2015 09:53:16 +0900
Improved new_window handling.
Remove new_window hook.
Plugin informed of all windows via events when first loaded.
init_qt no longer needed for exchange_rate plugin.
Diffstat:
4 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py
@@ -182,8 +182,6 @@ class ElectrumWindow(QMainWindow):
self.fetch_alias()
self.require_fee_update = False
self.tx_notifications = []
- # hook
- run_hook('new_window', self)
def is_hidden(self):
return self.isMinimized() or self.isHidden()
diff --git a/lib/plugins.py b/lib/plugins.py
@@ -69,6 +69,9 @@ class Plugins:
else:
p = __import__(full_name, fromlist=['electrum_plugins'])
plugin = p.Plugin(self, config, name)
+ # Inform the plugin of our windows
+ for window in self.windows:
+ plugin.on_new_window(window)
self.plugins[name] = plugin
self.print_error("loaded", name)
return plugin
@@ -115,8 +118,13 @@ class Plugins:
x += (lambda: self.wallet_plugin_loader(config, name),)
wallet.wallet_types.append(x)
+ def trigger(self, event, *args, **kwargs):
+ for plugin in self.plugins.values():
+ getattr(plugin, event)(*args, **kwargs)
+
def on_new_window(self, window):
self.windows.append(window)
+ self.trigger('on_new_window', window)
def on_close_window(self, window):
self.windows.remove(window)
@@ -194,8 +202,6 @@ class BasePlugin:
@hook
def close_wallet(self): pass
- #def init(self): pass
-
def is_enabled(self):
return self.is_available() and self.config.get('use_'+self.name) is True
@@ -204,3 +210,7 @@ class BasePlugin:
def settings_dialog(self):
pass
+
+ # Events
+ def on_new_window(self, window):
+ pass
diff --git a/plugins/audio_modem.py b/plugins/audio_modem.py
@@ -35,10 +35,6 @@ class Plugin(BasePlugin):
'Linux': 'libportaudio.so'
}[platform.system()]
- @hook
- def init_qt(self, gui):
- pass
-
def is_available(self):
return amodem is not None
diff --git a/plugins/exchange_rate.py b/plugins/exchange_rate.py
@@ -171,10 +171,6 @@ class Plugin(BasePlugin):
self.btc_rate = Decimal("0.0")
self.network = None
self.wallet_tx_list = {}
- # For mid-session plugin loads
- for window in parent.windows:
- self.new_window(window)
- self.new_wallets([window.wallet for window in parent.windows])
@hook
def set_network(self, network):
@@ -185,14 +181,14 @@ class Plugin(BasePlugin):
if network:
network.add_job(self.exchanger)
- @hook
- def new_window(self, window):
+ def on_new_window(self, window):
window.connect(window, SIGNAL("refresh_currencies()"),
window.update_status)
window.fx_fields = {}
self.add_send_edit(window)
self.add_receive_edit(window)
window.update_status()
+ self.new_wallets([window.wallet])
def close(self):
BasePlugin.close(self)