URI: 
       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")