let the send tab parse and return its own fields
authorThomasV <thomasv@gitorious>
Thu, 12 Jun 2014 15:31:18 +0000 (17:31 +0200)
committerThomasV <thomasv@gitorious>
Thu, 12 Jun 2014 15:31:18 +0000 (17:31 +0200)
gui/qt/main_window.py
plugins/qrscanner.py

index fdd9e72..48034b2 100644 (file)
@@ -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
index d0e5d14..d290072 100644 (file)
@@ -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