tkivy: show routing options explicitly - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit ba5e73d978a6a79432e1cca6cec431d0c2ca65c8 DIR parent 880353287d26914b2c2b7c3c6f38c597d7054eec HTML Author: ThomasV <thomasv@electrum.org> Date: Thu, 18 Feb 2021 11:39:52 +0100 kivy: show routing options explicitly Diffstat: M electrum/gui/kivy/uix/dialogs/choi… | 12 +++++++++--- M electrum/gui/kivy/uix/dialogs/sett… | 23 +++++++++++++++++------ 2 files changed, 26 insertions(+), 9 deletions(-) --- DIR diff --git a/electrum/gui/kivy/uix/dialogs/choice_dialog.py b/electrum/gui/kivy/uix/dialogs/choice_dialog.py t@@ -10,12 +10,17 @@ Builder.load_string(''' <ChoiceDialog@Popup> id: popup title: '' + description: '' size_hint: 0.8, 0.8 pos_hint: {'top':0.9} BoxLayout: orientation: 'vertical' - Widget: - size_hint: 1, 0.1 + Label: + size_hint: 1, None + text: root.description + halign: 'left' + text_size: self.width, None + size: self.texture_size ScrollView: orientation: 'vertical' size_hint: 1, 0.8 t@@ -44,8 +49,9 @@ Builder.load_string(''' class ChoiceDialog(Factory.Popup): - def __init__(self, title, choices, key, callback, keep_choice_order=False): + def __init__(self, title, choices, key, callback, *, description='', keep_choice_order=False): Factory.Popup.__init__(self) + self.description = description if keep_choice_order: orig_index = {choice: i for (i, choice) in enumerate(choices)} sort_key = lambda x: orig_index[x[0]] DIR diff --git a/electrum/gui/kivy/uix/dialogs/settings.py b/electrum/gui/kivy/uix/dialogs/settings.py t@@ -99,12 +99,7 @@ Builder.load_string(''' status: _('Trampoline') if not app.use_gossip else _('Gossip') title: _('Lightning Routing') + ': ' + self.status description: _("Use trampoline routing or gossip.") - message: - _('Lightning payments require finding a path through the Lightning Network.')\ - + ' ' + ('You may use trampoline routing, or local routing (gossip).')\ - + ' ' + ('Downloading the network gossip uses quite some bandwidth and storage, and is not recommended on mobile devices.')\ - + ' ' + ('If you use trampoline, you can only open channels with trampoline nodes.') - action: partial(root.boolean_dialog, 'use_gossip', _('Download Gossip'), self.message) + action: partial(root.routing_dialog, self) CardSeparator SettingsItem: status: _('Yes') if app.android_backups else _('No') t@@ -173,6 +168,22 @@ class SettingsDialog(Factory.Popup): self.app.base_unit, cb, keep_choice_order=True) self._unit_dialog.open() + def routing_dialog(self, item, dt): + description = \ + _('Lightning payments require finding a path through the Lightning Network.')\ + + ' ' + ('You may use trampoline routing, or local routing (gossip).')\ + + ' ' + ('Downloading the network gossip uses quite some bandwidth and storage, and is not recommended on mobile devices.')\ + + ' ' + ('If you use trampoline, you can only open channels with trampoline nodes.') + def cb(text): + self.app.use_gossip = (text == 'Gossip') + dialog = ChoiceDialog( + _('Lightning Routing'), + ['Trampoline', 'Gossip'], + 'Gossip' if self.app.use_gossip else 'Trampoline', + cb, description=description, + keep_choice_order=True) + dialog.open() + def coinselect_status(self): return coinchooser.get_name(self.app.electrum_config)