tkivy: simplify fee dialog - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 56c94153ff60ddf917645ceaf7823c5994a2b630 DIR parent 451ac0d2599e3192657fe36f5acfde35b8b66581 HTML Author: ThomasV <thomasv@electrum.org> Date: Sun, 4 Mar 2018 10:29:56 +0100 kivy: simplify fee dialog Diffstat: M gui/kivy/uix/dialogs/fee_dialog.py | 51 ++++++++++++++++++------------- 1 file changed, 29 insertions(+), 22 deletions(-) --- DIR diff --git a/gui/kivy/uix/dialogs/fee_dialog.py b/gui/kivy/uix/dialogs/fee_dialog.py t@@ -20,8 +20,9 @@ Builder.load_string(''' Label: text: _('Method') + ':' Button: - text: _('Mempool based') if root.method == 2 else _('ETA based') if root.method == 1 else _('Static') + text: _('Mempool') if root.method == 2 else _('ETA') if root.method == 1 else _('Static') background_color: (0,0,0,0) + bold: True on_release: root.method = (root.method + 1) % 3 root.update_slider() t@@ -30,25 +31,26 @@ Builder.load_string(''' orientation: 'horizontal' size_hint: 1, 0.5 Label: - text: _('Target') + ':' + text: (_('Target') if root.method > 0 else _('Fee')) + ':' Label: id: fee_target text: '' - BoxLayout: - orientation: 'horizontal' - size_hint: 1, 0.5 - Label: - text: (_('Current rate') if root.method > 0 else _('Estimate')) + ':' - Label: - id: fee_estimate - text: '' Slider: id: slider range: 0, 4 step: 1 on_value: root.on_slider(self.value) Widget: - size_hint: 1, 1 + size_hint: 1, 0.5 + BoxLayout: + orientation: 'horizontal' + size_hint: 1, 0.5 + TopLabel: + id: fee_estimate + text: '' + font_size: '14dp' + Widget: + size_hint: 1, 0.5 BoxLayout: orientation: 'horizontal' size_hint: 1, 0.5 t@@ -81,10 +83,23 @@ class FeeDialog(Factory.Popup): self.update_text() def update_text(self): - value = int(self.ids.slider.value) - target, estimate = self.get_fee_text(value) + pos = int(self.ids.slider.value) + dynfees, mempool = self.get_method() + if self.method == 2: + fee_rate = self.config.depth_to_fee(pos) + target, estimate = self.config.get_fee_text(pos, dynfees, mempool, fee_rate) + msg = 'In the current network conditions, in order to be positioned %s, a transaction will require a fee of %s.' % (target, estimate) + elif self.method == 1: + fee_rate = self.config.eta_to_fee(pos) + target, estimate = self.config.get_fee_text(pos, dynfees, mempool, fee_rate) + msg = 'In the last few days, transactions that confirmed %s usually paid a fee of at least %s.' % (target.lower(), estimate) + else: + fee_rate = self.config.static_fee(pos) + target, estimate = self.config.get_fee_text(pos, dynfees, True, fee_rate) + msg = 'In the current network conditions, a transaction paying %s would be positioned %s.' % (target, estimate) + self.ids.fee_target.text = target - self.ids.fee_estimate.text = estimate + self.ids.fee_estimate.text = msg def get_method(self): dynfees = self.method > 0 t@@ -99,14 +114,6 @@ class FeeDialog(Factory.Popup): slider.step = 1 slider.value = pos - def get_fee_text(self, pos): - dynfees, mempool = self.get_method() - if dynfees: - fee_rate = self.config.depth_to_fee(pos) if mempool else self.config.eta_to_fee(pos) - else: - fee_rate = self.config.static_fee(pos) - return self.config.get_fee_text(pos, dynfees, mempool, fee_rate) - def on_ok(self): value = int(self.ids.slider.value) dynfees, mempool = self.get_method()