URI: 
       tAdd RBF option to the kivy GUI - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit b8cd7eb8bd72acd9d6fa9012d04d46c7aa945bb7
   DIR parent 536a9aecde241493e92a66be939faccda00a5ab7
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Fri, 10 Jun 2016 05:49:22 +0200
       
       Add RBF option to the kivy GUI
       
       Diffstat:
         M gui/kivy/uix/dialogs/settings.py    |      25 ++++++++++++++++++++++++-
         M gui/kivy/uix/screens.py             |       2 ++
       
       2 files changed, 26 insertions(+), 1 deletion(-)
       ---
   DIR diff --git a/gui/kivy/uix/dialogs/settings.py b/gui/kivy/uix/dialogs/settings.py
       t@@ -103,6 +103,12 @@ Builder.load_string('''
                            action: partial(root.plugin_dialog, 'labels', self)
                        CardSeparator
                        SettingsItem:
       +                    status: root.rbf_status()
       +                    title: _('Replace-by-fee') + ': ' + self.status
       +                    description: _("Create replaceable transactions.")
       +                    action: partial(root.rbf_dialog, self)
       +                CardSeparator
       +                SettingsItem:
                            status: root.coinselect_status()
                            title: _('Coin selection') + ': ' + self.status
                            description: "Coin selection method"
       t@@ -123,6 +129,7 @@ class SettingsDialog(Factory.Popup):
                # cached dialogs
                self._fx_dialog = None
                self._fee_dialog = None
       +        self._rbf_dialog = None
                self._network_dialog = None
                self._language_dialog = None
                self._unit_dialog = None
       t@@ -203,7 +210,7 @@ class SettingsDialog(Factory.Popup):
                d.open()
        
            def fee_status(self):
       -        if self.config.get('dynamic_fees'):
       +        if self.config.get('dynamic_fees', True):
                    from electrum.util import fee_levels
                    return fee_levels[self.config.get('fee_level', 2)]
                else:
       t@@ -218,6 +225,22 @@ class SettingsDialog(Factory.Popup):
                    self._fee_dialog = FeeDialog(self.app, self.config, cb)
                self._fee_dialog.open()
        
       +    def rbf_status(self):
       +        return 'ON' if self.config.get('use_rbf') else 'OFF'
       +
       +    def rbf_dialog(self, label, dt):
       +        if self._rbf_dialog is None:
       +            from checkbox_dialog import CheckBoxDialog
       +            def cb(x):
       +                self.config.set_key('use_rbf', x, True)
       +                label.status = self.rbf_status()
       +            msg = [_('If you check this box, your transactions will be marked as non-final,'),
       +                   _('and you will have the possiblity, while they are unconfirmed, to replace them with transactions that pays higher fees.'),
       +                   _('Note that some merchants do not accept non-final transactions until they are confirmed.')]
       +            fullname = _('Replace by fee')
       +            self._rbf_dialog = CheckBoxDialog(fullname, ' '.join(msg), self.config.get('use_rbf'), cb)
       +        self._rbf_dialog.open()
       +
            def fx_status(self):
                p = self.plugins.get('exchange_rate')
                if p:
   DIR diff --git a/gui/kivy/uix/screens.py b/gui/kivy/uix/screens.py
       t@@ -276,6 +276,8 @@ class SendScreen(CScreen):
                    traceback.print_exc(file=sys.stdout)
                    self.app.show_error(str(e))
                    return
       +        if self.app.electrum_config.get('use_rbf'):
       +            tx.set_sequence(0)
                fee = tx.get_fee()
                msg = [
                    _("Amount to be sent") + ": " + self.app.format_amount_and_units(amount),