From 03c84aab0eb1766ea1190607aca9051a3a2b3641 Mon Sep 17 00:00:00 2001 From: ThomasV Date: Thu, 12 Jun 2014 17:31:18 +0200 Subject: [PATCH] let the send tab parse and return its own fields --- gui/qt/main_window.py | 15 +++++++++++---- plugins/qrscanner.py | 25 ++++--------------------- 2 files changed, 15 insertions(+), 25 deletions(-) diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py index fdd9e72f7..48034b203 100644 --- a/gui/qt/main_window.py +++ b/gui/qt/main_window.py @@ -799,7 +799,7 @@ class ElectrumWindow(QMainWindow): return lambda s, *args: s.do_protect(func, args) - def do_send(self): + def read_send_tab(self): label = unicode( self.message_e.text() ) if self.gui_object.payment_request: @@ -837,16 +837,23 @@ class ElectrumWindow(QMainWindow): if not self.question(_("The fee for this transaction seems unusually high.\nAre you really sure you want to pay %(fee)s in fees?")%{ 'fee' : self.format_amount(fee) + ' '+ self.base_unit()}): return - self.send_tx(outputs, fee, label) + coins = self.get_coins() + return outputs, fee, label, coins + + def do_send(self): + r = self.read_send_tab() + if not r: + return + outputs, fee, label, coins = r + self.send_tx(outputs, fee, label, coins) @protected - def send_tx(self, outputs, fee, label, password): + def send_tx(self, outputs, fee, label, coins, password): self.send_button.setDisabled(True) # first, create an unsigned tx - coins = self.get_coins() try: tx = self.wallet.make_unsigned_transaction(outputs, fee, None, coins = coins) tx.error = None diff --git a/plugins/qrscanner.py b/plugins/qrscanner.py index d0e5d141e..d290072ee 100644 --- a/plugins/qrscanner.py +++ b/plugins/qrscanner.py @@ -86,30 +86,13 @@ class Plugin(BasePlugin): return r.data def show_raw_qr(self): - r = unicode( self.gui.main_window.payto_e.text() ) - r = r.strip() - - # label or alias, with address in brackets - m = re.match('(.*?)\s*\<([1-9A-HJ-NP-Za-km-z]{26,})\>', r) - to_address = m.group(2) if m else r - - if not is_valid(to_address): - QMessageBox.warning(self.gui.main_window, _('Error'), _('Invalid Bitcoin Address') + ':\n' + to_address, _('OK')) - return - - try: - amount = self.gui.main_window.read_amount(unicode( self.gui.main_window.amount_e.text())) - except Exception: - QMessageBox.warning(self.gui.main_window, _('Error'), _('Invalid Amount'), _('OK')) - return - try: - fee = self.gui.main_window.read_amount(unicode( self.gui.main_window.fee_e.text())) - except Exception: - QMessageBox.warning(self.gui.main_window, _('Error'), _('Invalid Fee'), _('OK')) + r = self.gui.main_window.read_send_tab() + if not r: return + outputs, fee, label, coins = r try: - tx = self.gui.main_window.wallet.mktx( [(to_address, amount)], None, fee) + tx = self.gui.main_window.wallet.make_unsigned_transaction(outputs, fee, None, None, coins) except Exception as e: self.gui.main_window.show_message(str(e)) return