electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

commit 93b964f11dfd095300b668d1b201338791663c93
parent f9047c6df0f7463e793d5980df31e08743302f52
Author: Neil Booth <kyuupichan@gmail.com>
Date:   Sun,  6 Sep 2015 19:38:44 +0900

Two fixes for main_window.py

- initialize r when getting status text
- fix so settings widgets appear and are enabled
  appropriately

Diffstat:
Mgui/qt/main_window.py | 32+++++++++++++++++---------------
1 file changed, 17 insertions(+), 15 deletions(-)

diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py @@ -24,6 +24,7 @@ import webbrowser import csv from decimal import Decimal import base64 +from functools import partial import PyQt4 from PyQt4.QtGui import * @@ -518,7 +519,7 @@ class ElectrumWindow(QMainWindow): if x: text += " [%s unmatured]"%(self.format_amount(x, True).strip()) # append fiat balance and price from exchange rate plugin - r = {} + r = {'text': ''} run_hook('get_fiat_status_text', c + u + x, r) text += r['text'] icon = QIcon(":icons/status_connected.png") @@ -2822,14 +2823,20 @@ class ElectrumWindow(QMainWindow): grid.setColumnStretch(0,1) w.setLayout(grid) - def do_toggle(cb, name, w): - p = plugins.toggle_enabled(self.config, name) - enabled = p is not None - cb.setChecked(enabled) - if w: w.setEnabled(enabled) + settings_widgets = {} + + def enable_settings_widget(p, name, i): + widget = settings_widgets.get(name) + if not widget and p and p.requires_settings(): + widget = settings_widgets[name] = p.settings_widget(self) + grid.addWidget(widget, i, 1) + if widget: + widget.setEnabled(bool(p and p.is_enabled())) - def mk_toggle(cb, name, w): - return lambda: do_toggle(cb, name, w) + def do_toggle(cb, name, i): + p = plugins.toggle_enabled(self.config, name) + cb.setChecked(bool(p)) + enable_settings_widget(p, name, i) for i, descr in enumerate(plugins.descriptions): name = descr['name'] @@ -2841,13 +2848,8 @@ class ElectrumWindow(QMainWindow): cb.setEnabled(plugins.is_available(name, self.wallet)) cb.setChecked(p is not None and p.is_enabled()) grid.addWidget(cb, i, 0) - if p and p.requires_settings(): - w = p.settings_widget(self) - w.setEnabled(p.is_enabled()) - grid.addWidget(w, i, 1) - else: - w = None - cb.clicked.connect(mk_toggle(cb, name, w)) + enable_settings_widget(p, name, i) + cb.clicked.connect(partial(do_toggle, cb, name, i)) msg = descr['description'] if descr.get('requires'): msg += '\n\n' + _('Requires') + ':\n' + '\n'.join(map(lambda x: x[1], descr.get('requires')))