URI: 
       tsingle dialog for confirmation and password - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 7c4b7493401328f08a36f0f6299223e43b099c82
   DIR parent 12583246ee72c20417cee467e8497103d865fbeb
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Fri, 11 Sep 2015 16:22:16 +0200
       
       single dialog for confirmation and password
       
       Diffstat:
         M gui/qt/main_window.py               |      64 +++++++++++++++++--------------
       
       1 file changed, 35 insertions(+), 29 deletions(-)
       ---
   DIR diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py
       t@@ -1159,13 +1159,6 @@ class ElectrumWindow(QMainWindow, PrintError):
                    QMessageBox.warning(self, _('Error'), _('Invalid Fee'), _('OK'))
                    return
        
       -        amount = sum(map(lambda x:x[2], outputs))
       -        confirm_amount = self.config.get('confirm_amount', COIN)
       -        if amount >= confirm_amount:
       -            o = '\n'.join(map(lambda x:x[1], outputs))
       -            if not self.question(_("send %(amount)s to %(address)s?")%{ 'amount' : self.format_amount(amount) + ' '+ self.base_unit(), 'address' : o}):
       -                return
       -
                coins = self.get_coins()
                return outputs, fee, label, coins
        
       t@@ -1191,33 +1184,37 @@ class ElectrumWindow(QMainWindow, PrintError):
                    QMessageBox.warning(self, _('Error'), _("This transaction requires a higher fee, or it will not be propagated by the network."), _('OK'))
                    return
        
       -        if not self.config.get('can_edit_fees', False):
       -            if not self.question(_("A fee of %(fee)s will be added to this transaction.\nProceed?")%{ 'fee' : self.format_amount(fee) + ' '+ self.base_unit()}):
       -                return
       -        else:
       -            confirm_fee = self.config.get('confirm_fee', 100000)
       -            if fee >= confirm_fee:
       -                msg = '\n'.join([
       -                    _("The fee for this transaction seems unusually high."),
       -                    _("Are you really sure you want to pay %(fee)s in fees?")%{ 'fee' : self.format_amount(fee) + ' '+ self.base_unit()}
       -                ])
       -                if not self.question(msg):
       -                    return
       -
                if self.show_before_broadcast():
                    self.show_transaction(tx, tx_desc)
       +            return
       +        # confirmation dialog
       +        amount = sum(map(lambda x:x[2], outputs))
       +        confirm_amount = self.config.get('confirm_amount', COIN)
       +        msg = [
       +            _("Amount to be sent") + ": %s"%(self.format_amount(amount) + ' '+ self.base_unit()),
       +            _("Transaction fee") + ": %s"%(self.format_amount(fee) + ' '+ self.base_unit()),
       +        ]
       +        if self.wallet.use_encryption:
       +            msg.append(_("Enter your password to proceed"))
       +            password = self.password_dialog('\n'.join(msg))
       +            if not password:
       +                return
                else:
       -            def sign_done(success):
       -                if success:
       -                    if not tx.is_complete():
       -                        self.show_transaction(tx)
       -                        self.do_clear()
       -                    else:
       -                        self.broadcast_transaction(tx, tx_desc)
       -            self.sign_tx(tx, sign_done)
       +            msg.append(_('Proceed?'))
       +            password = None
       +            if not self.question('\n'.join(msg)):
       +                return
       +
       +        def sign_done(success):
       +            if success:
       +                if not tx.is_complete():
       +                    self.show_transaction(tx)
       +                    self.do_clear()
       +                else:
       +                    self.broadcast_transaction(tx, tx_desc)
       +        self.sign_tx(tx, sign_done, password)
        
        
       -    @protected
            def sign_tx(self, tx, callback, password, parent=None):
                '''Sign the transaction in a separate thread.  When done, calls
                the callback with a success code of True or False.
       t@@ -1247,6 +1244,15 @@ class ElectrumWindow(QMainWindow, PrintError):
        
            def broadcast_transaction(self, tx, tx_desc, parent=None):
        
       +        confirm_fee = self.config.get('confirm_fee', 100000)
       +        if tx.get_fee() >= confirm_fee:
       +            msg = '\n'.join([
       +                _("The fee for this transaction seems unusually high."),
       +                _("Are you really sure you want to pay %(fee)s in fees?")%{ 'fee' : self.format_amount(fee) + ' '+ self.base_unit()}
       +            ])
       +            if not self.question(msg):
       +                return
       +
                def broadcast_thread():
                    # non-GUI thread
                    pr = self.payment_request