URI: 
       tadd Max button to swap dialog, fix fee slider behaviour when max is selected - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 77c2aa5017b7e3d881543b90c35dff4f03417a5d
   DIR parent a1e8f9e2aa3d1a2bd1d17b91e5f445c86e6556f4
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Tue, 16 Jun 2020 17:49:34 +0200
       
       add Max button to swap dialog, fix fee slider behaviour when max is selected
       
       Diffstat:
         M electrum/gui/qt/swap_dialog.py      |      19 +++++++++++++++++--
       
       1 file changed, 17 insertions(+), 2 deletions(-)
       ---
   DIR diff --git a/electrum/gui/qt/swap_dialog.py b/electrum/gui/qt/swap_dialog.py
       t@@ -43,6 +43,9 @@ class SwapDialog(WindowModalDialog):
                self.send_amount_e = BTCAmountEdit(self.window.get_decimal_point)
                self.send_amount_e.shortcut.connect(self.spend_max)
                self.recv_amount_e = BTCAmountEdit(self.window.get_decimal_point)
       +        self.max_button = EnterButton(_("Max"), self.spend_max)
       +        self.max_button.setFixedWidth(100)
       +        self.max_button.setCheckable(True)
                self.send_button = QPushButton('')
                self.recv_button = QPushButton('')
                self.send_follows = False
       t@@ -62,6 +65,7 @@ class SwapDialog(WindowModalDialog):
                h.addWidget(QLabel(_('You send')+':'), 1, 0)
                h.addWidget(self.send_amount_e, 1, 1)
                h.addWidget(self.send_button, 1, 2)
       +        h.addWidget(self.max_button, 1, 3)
                h.addWidget(QLabel(_('You receive')+':'), 2, 0)
                h.addWidget(self.recv_amount_e, 2, 1)
                h.addWidget(self.recv_button, 2, 2)
       t@@ -99,11 +103,17 @@ class SwapDialog(WindowModalDialog):
                self.update()
        
            def spend_max(self):
       -        if not self.is_reverse:
       +        if self.is_reverse:
       +            return
       +        if self.max_button.isChecked():
                    self.update_tx('!')
                    if self.tx:
                        txo = self.tx.outputs()[0]
                        self.send_amount_e.setAmount(txo.value)
       +        else:
       +            self.tx = None
       +            self.send_amount_e.setAmount(None)
       +            self.update_fee()
        
            def on_send_edited(self):
                if self.send_amount_e.follows:
       t@@ -139,6 +149,7 @@ class SwapDialog(WindowModalDialog):
                sm = self.swap_manager
                self.send_button.setIcon(read_QIcon("lightning.png" if self.is_reverse else "bitcoin.png"))
                self.recv_button.setIcon(read_QIcon("lightning.png" if not self.is_reverse else "bitcoin.png"))
       +        self.max_button.setEnabled(not self.is_reverse)
                server_mining_fee = sm.lockup_fee if self.is_reverse else sm.normal_fee
                server_fee_str = '%.2f'%sm.percentage + '%  +  '  + self.window.format_amount(server_mining_fee) + ' ' + self.window.base_unit()
                self.server_fee_label.setText(server_fee_str)
       t@@ -149,9 +160,13 @@ class SwapDialog(WindowModalDialog):
                    sm = self.swap_manager
                    fee = sm.get_claim_fee()
                else:
       -            onchain_amount = self.send_amount_e.get_amount()
       +            is_max = self.max_button.isChecked()
       +            onchain_amount = '!' if is_max else self.send_amount_e.get_amount()
                    self.update_tx(onchain_amount)
                    fee = self.tx.get_fee() if self.tx else None
       +            if is_max and self.tx:
       +                txo = self.tx.outputs()[0]
       +                self.send_amount_e.setAmount(txo.value)
                fee_text = self.window.format_amount(fee) + ' ' + self.window.base_unit() if fee else ''
                self.fee_label.setText(fee_text)