tkivy: improve tx dialog layout - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 77ba716acb7ef1ce1fb3b36a1d74230970436745 DIR parent 774bdcde732d206d7d408aa86b96ef97f3fe6e3e HTML Author: ThomasV <thomasv@electrum.org> Date: Tue, 16 Feb 2016 10:56:58 +0100 kivy: improve tx dialog layout Diffstat: M gui/kivy/uix/dialogs/tx_dialog.py | 108 +++++++++++++++++-------------- 1 file changed, 61 insertions(+), 47 deletions(-) --- DIR diff --git a/gui/kivy/uix/dialogs/tx_dialog.py b/gui/kivy/uix/dialogs/tx_dialog.py t@@ -11,57 +11,69 @@ Builder.load_string(''' <TxDialog@Popup> id: popup title: _('Transaction') + is_mine: True can_sign: False can_broadcast: False fee_str: '' + date_str: '' amount_str: '' txid_str: '' status_str: '' - AnchorLayout: - anchor_x: 'center' - BoxLayout: - orientation: 'vertical' - Label: - id: status_label + description: '' + BoxLayout: + orientation: 'vertical' + GridLayout: + cols: 2 + spacing: '10dp' + TopLabel: + text: _('Status') + TopLabel: text: root.status_str - text_size: self.size - Label: - id: amount_label + TopLabel: + text: _('Description') if root.description else '' + TopLabel: + text: root.description + TopLabel: + text: _('Date') if root.date_str else '' + TopLabel: + text: root.date_str + TopLabel: + text: _('Amount sent') if root.is_mine else _('Amount received') + TopLabel: text: root.amount_str - text_size: self.size - Label: - id: fee_label + TopLabel: + text: _('Transaction fee') if root.fee_str else '' + TopLabel: text: root.fee_str - text_size: self.size - Label: - id: txid_label - text: root.txid_str - text_size: self.width, None - size: self.texture_size - Widget: - size_hint: 1, 1 - BoxLayout: - size_hint: 1, None + + TopLabel: + text: root.txid_str + + Widget: + size_hint: 1, 0.2 + + BoxLayout: + size_hint: 1, None + height: '48dp' + Button: + size_hint: 0.5, None + height: '48dp' + text: _('Sign') if root.can_sign else _('Broadcast') if root.can_broadcast else '' + opacity: 1 if root.can_sign or root.can_broadcast else 0 + disabled: not( root.can_sign or root.can_broadcast ) + on_release: + if root.can_sign: root.do_sign() + if root.can_broadcast: root.do_broadcast() + IconButton: + size_hint: 0.5, None + height: '48dp' + icon: 'atlas://gui/kivy/theming/light/qrcode' + on_release: root.show_qr() + Button: + size_hint: 0.5, None height: '48dp' - Button: - size_hint: 0.5, None - height: '48dp' - text: _('Sign') if root.can_sign else _('Broadcast') if root.can_broadcast else '' - opacity: 1 if root.can_sign or root.can_broadcast else 0 - disabled: not( root.can_sign or root.can_broadcast ) - on_release: - if root.can_sign: root.do_sign() - if root.can_broadcast: root.do_broadcast() - IconButton: - size_hint: 0.5, None - height: '48dp' - icon: 'atlas://gui/kivy/theming/light/qrcode' - on_release: root.show_qr() - Button: - size_hint: 0.5, None - height: '48dp' - text: _('Close') - on_release: popup.dismiss() + text: _('Close') + on_release: popup.dismiss() ''') class TxDialog(Factory.Popup): t@@ -82,7 +94,7 @@ class TxDialog(Factory.Popup): conf, timestamp = self.wallet.get_confirmations(tx_hash) self.status_str = _("%d confirmations")%conf if conf else _('Pending') if timestamp: - self.status_str += '\n' + _("Date") + ': ' + datetime.fromtimestamp(timestamp).isoformat(' ')[:-3] + self.date_str = datetime.fromtimestamp(timestamp).isoformat(' ')[:-3] else: self.can_broadcast = self.app.network is not None self.status_str = _('Signed') t@@ -90,17 +102,19 @@ class TxDialog(Factory.Popup): s, r = self.tx.signature_count() self.status_str = _("Unsigned") if s == 0 else _('Partially signed') + ' (%d/%d)'%(s,r) + self.description = self.wallet.get_label(tx_hash) is_relevant, is_mine, v, fee = self.wallet.get_wallet_delta(self.tx) + self.is_mine = is_mine if is_relevant: if is_mine: if fee is not None: - self.amount_str = _("Amount sent:")+' %s'% self.app.format_amount_and_units(-v+fee) - self.fee_str = _("Transaction fee")+': %s'% self.app.format_amount_and_units(-fee) + self.amount_str = self.app.format_amount_and_units(-v+fee) + self.fee_str = self.app.format_amount_and_units(-fee) else: - self.amount_str = _("Amount sent:")+' %s'% self.app.format_amount_and_units(-v) - self.fee_str = _("Transaction fee")+': '+ _("unknown") + self.amount_str = self.app.format_amount_and_units(-v) + self.fee_str = _("unknown") else: - self.amount_str = _("Amount received:")+' %s'% self.app.format_amount_and_units(v) + self.amount_str = self.app.format_amount_and_units(v) self.fee_str = '' else: self.amount_str = _("Transaction unrelated to your wallet")