URI: 
       tPartially restore e20369bf94a2c2c8c22dd9472be3767e90c5774e, but keep init_qt hook - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit c0ef60aa50e5729828e5152d3504aec069a6881a
   DIR parent ed401761f118fa8171b47ac68d330224f02953af
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Sat, 30 Jan 2016 11:28:39 +0100
       
       Partially restore e20369bf94a2c2c8c22dd9472be3767e90c5774e, but keep init_qt hook
       
       Diffstat:
         M plugins/exchange_rate/qt.py         |      46 +++++++++++++++++--------------
       
       1 file changed, 26 insertions(+), 20 deletions(-)
       ---
   DIR diff --git a/plugins/exchange_rate/qt.py b/plugins/exchange_rate/qt.py
       t@@ -12,7 +12,11 @@ from electrum.plugins import hook
        from exchange_rate import FxPlugin
        from electrum.util import timestamp_to_datetime
        
       -class Plugin(FxPlugin):
       +class Plugin(FxPlugin, QObject):
       +
       +    def __init__(self, parent, config, name):
       +        FxPlugin.__init__(self, parent, config, name)
       +        QObject.__init__(self)
        
            def connect_fields(self, window, btc_e, fiat_e, fee_e):
        
       t@@ -44,14 +48,15 @@ class Plugin(FxPlugin):
        
            @hook
            def init_qt(self, gui):
       -        self.app = gui.app
       +        for window in gui.windows:
       +            self.on_new_window(window)
        
            @hook
            def do_clear(self, window):
                window.fiat_send_e.setText('')
        
            def on_close(self):
       -        self.app.emit(SIGNAL('close_fx_plugin'))
       +        self.emit(SIGNAL('close_fx_plugin'))
        
            def restore_window(self, window):
                window.update_status()
       t@@ -60,10 +65,10 @@ class Plugin(FxPlugin):
                window.fiat_receive_e.hide()
        
            def on_quotes(self):
       -        self.app.emit(SIGNAL('new_fx_quotes'))
       +        self.emit(SIGNAL('new_fx_quotes'))
        
            def on_history(self):
       -        self.app.emit(SIGNAL('new_fx_history'))
       +        self.emit(SIGNAL('new_fx_history'))
        
            def on_fx_history(self, window):
                '''Called when historical fx quotes are updated'''
       t@@ -108,22 +113,23 @@ class Plugin(FxPlugin):
            @hook
            def on_new_window(self, window):
                # Additional send and receive edit boxes
       -        send_e = AmountEdit(self.get_currency)
       -        window.send_grid.addWidget(send_e, 4, 2, Qt.AlignLeft)
       -        window.amount_e.frozen.connect(
       -            lambda: send_e.setFrozen(window.amount_e.isReadOnly()))
       -        receive_e = AmountEdit(self.get_currency)
       -        window.receive_grid.addWidget(receive_e, 2, 2, Qt.AlignLeft)
       -        window.fiat_send_e = send_e
       -        window.fiat_receive_e = receive_e
       -        self.connect_fields(window, window.amount_e, send_e, window.fee_e)
       -        self.connect_fields(window, window.receive_amount_e, receive_e, None)
       +        if not hasattr(window, 'send_e'):
       +            send_e = AmountEdit(self.get_currency)
       +            window.send_grid.addWidget(send_e, 4, 2, Qt.AlignLeft)
       +            window.amount_e.frozen.connect(
       +                lambda: send_e.setFrozen(window.amount_e.isReadOnly()))
       +            receive_e = AmountEdit(self.get_currency)
       +            window.receive_grid.addWidget(receive_e, 2, 2, Qt.AlignLeft)
       +            window.fiat_send_e = send_e
       +            window.fiat_receive_e = receive_e
       +            self.connect_fields(window, window.amount_e, send_e, window.fee_e)
       +            self.connect_fields(window, window.receive_amount_e, receive_e, None)
                window.history_list.refresh_headers()
                window.update_status()
       -        window.connect(window.app, SIGNAL('new_fx_quotes'), lambda: self.on_fx_quotes(window))
       -        window.connect(window.app, SIGNAL('new_fx_history'), lambda: self.on_fx_history(window))
       -        window.connect(window.app, SIGNAL('close_fx_plugin'), lambda: self.restore_window(window))
       -        window.connect(window.app, SIGNAL('refresh_headers'), window.history_list.refresh_headers)
       +        window.connect(self, SIGNAL('new_fx_quotes'), lambda: self.on_fx_quotes(window))
       +        window.connect(self, SIGNAL('new_fx_history'), lambda: self.on_fx_history(window))
       +        window.connect(self, SIGNAL('close_fx_plugin'), lambda: self.restore_window(window))
       +        window.connect(self, SIGNAL('refresh_headers'), window.history_list.refresh_headers)
        
            def settings_widget(self, window):
                return EnterButton(_('Settings'), partial(self.settings_dialog, window))
       t@@ -152,7 +158,7 @@ class Plugin(FxPlugin):
                        self.get_historical_rates()
                    else:
                        self.config.set_key('history_rates', 'unchecked')
       -            self.app.emit(SIGNAL('refresh_headers'))
       +            self.emit(SIGNAL('refresh_headers'))
        
                def ok_clicked():
                    self.timeout = 0