treplace fiat dialog with direct edit line - electrum - Electrum Bitcoin wallet (HTM) git clone https://git.parazyd.org/electrum (DIR) Log (DIR) Files (DIR) Refs (DIR) Submodules --- (DIR) commit d9d76436dbe2379eacab39463c64465402e6e88a (DIR) parent a530de312286700e2008ba31850e34f7912cf0b6 (HTM) Author: ThomasV <thomasv@gitorious> Date: Wed, 11 Jun 2014 15:32:09 +0200 replace fiat dialog with direct edit line Diffstat: M plugins/exchange_rate.py | 63 ++++++------------------------- 1 file changed, 11 insertions(+), 52 deletions(-) --- (DIR) diff --git a/plugins/exchange_rate.py b/plugins/exchange_rate.py t@@ -634,56 +634,15 @@ class Plugin(BasePlugin): def fiat_unit(self): return self.config.get("currency", "EUR") - def fiat_dialog(self): - if not self.config.get('use_exchange_rate'): - self.gui.main_window.show_message(_("To use this feature, first enable the exchange rate plugin.")) - return - - if not self.gui.main_window.network.is_connected(): - self.gui.main_window.show_message(_("To use this feature, you must have a network connection.")) - return - - quote_currency = self.fiat_unit() - - d = QDialog(self.gui.main_window) - d.setWindowTitle("Fiat") - vbox = QVBoxLayout(d) - text = "Amount to Send in " + quote_currency - vbox.addWidget(QLabel(_(text)+':')) - - grid = QGridLayout() - fiat_e = AmountEdit(self.fiat_unit) - grid.addWidget(fiat_e, 1, 0) - - r = {} - self.get_fiat_price_text(r) - quote = r.get(0) - if quote: - text = "1 BTC~%s"%quote - grid.addWidget(QLabel(_(text)), 4, 0, 3, 0) - else: - self.gui.main_window.show_message(_("Exchange rate not available. Please check your network connection.")) - return - - vbox.addLayout(grid) - vbox.addLayout(ok_cancel_buttons(d)) - - if not d.exec_(): - return - - fiat = str(fiat_e.text()) - - if str(fiat) == "" or str(fiat) == ".": - fiat = "0" - - quote = quote[:-4] - btcamount = Decimal(fiat) / Decimal(quote) - if str(self.gui.main_window.base_unit()) == "mBTC": - btcamount = btcamount * 1000 - quote = "%.8f"%btcamount - self.gui.main_window.amount_e.setText( quote ) - def exchange_rate_button(self, grid): - quote_currency = self.fiat_unit() - self.fiat_button = EnterButton(_(quote_currency), self.fiat_dialog) - grid.addWidget(self.fiat_button, 4, 3, Qt.AlignHCenter) + self.fiat_e = AmountEdit(self.fiat_unit) + def fiat_changed(): + fiat_amount = str(self.fiat_e.text()) + if fiat_amount in ["", "."]: + fiat_amount = "0" + exchange_rate = self.exchanger.exchange(Decimal("1.0"), self.fiat_unit()) + if exchange_rate is not None: + btc_amount = Decimal(fiat_amount) / exchange_rate + self.gui.main_window.amount_e.setAmount(btc_amount*Decimal(100000000)) + self.fiat_e.textChanged.connect(fiat_changed) + grid.addWidget(self.fiat_e, 4, 3, Qt.AlignHCenter)