URI: 
       tkivy: use custom keyboard in send tab - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 4a0fceca90b324be0748a3910b573ed6ded55f11
   DIR parent 2f543d2ad8bd4da1b05c24f7cc78ee9eaeb8bd33
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Wed, 14 Oct 2015 13:03:13 +0200
       
       kivy: use custom keyboard in send tab
       
       Diffstat:
         M gui/kivy/main.kv                    |      32 +------------------------------
         M gui/kivy/main_window.py             |       3 ++-
         M gui/kivy/uix/ui_screens/send.kv     |     172 +++++++++++++------------------
       
       3 files changed, 75 insertions(+), 132 deletions(-)
       ---
   DIR diff --git a/gui/kivy/main.kv b/gui/kivy/main.kv
       t@@ -160,18 +160,6 @@
            on_release: app.root.children[0].toggle_drawer()
        
        
       -<SendReceiveToggle@BoxLayout>
       -    padding: '5dp', '5dp'
       -    size_hint: 1, None
       -    height: '45dp'
       -    canvas.before:
       -        Color:
       -            rgba: 1, 1, 1, 1
       -        BorderImage:
       -            border: 12, 12, 12, 12
       -            source: 'atlas://gui/kivy/theming/light/card'
       -            size: self.width + dp(3), self.height
       -            pos: self.x - dp(1.5), self.y
        
        <SendReceiveCardTop@GridLayout>
            canvas.before:
       t@@ -204,24 +192,6 @@
            padding: '12dp', 0
        
        
       -<SendToggle@ToggleButton>
       -    source: ''
       -    group: 'transfer_type'
       -    markup: False
       -    bold: True
       -    border: 4, 4, 4, 4
       -    background_normal: self.background_down
       -    color:
       -        (.140, .140, .140, 1) if self.state == 'down' else (.796, .796, .796, 1)
       -    canvas.after:
       -        Color:
       -            rgba: 1, 1, 1, 1
       -    Image:
       -        source: root.source
       -        color: root.color
       -        size: '30dp', '30dp'
       -        center_x: root.center_x - ((root.texture_size[0]/2)+(self.width/1.5))
       -        center_y: root.center_y
        
        
        <CardSeparator@Widget>
       t@@ -237,7 +207,7 @@
        
        <AddressSelector@BlueSpinner>
            icon: 'atlas://gui/kivy/theming/light/globe'
       -    values: app.wallet.addresses() if app.wallet else []
       +    values: [] #app.wallet.addresses() if app.wallet else []
            text: _("Select Your address")
        
        
   DIR diff --git a/gui/kivy/main_window.py b/gui/kivy/main_window.py
       t@@ -808,7 +808,8 @@ class ElectrumWindow(App):
                popup.ids.amount_label.text = label.text
                def cb():
                    label.text = popup.ids.amount_label.text
       -            callback()
       +            if callback:
       +                callback()
                popup.on_dismiss = cb
                popup.open()
        
   DIR diff --git a/gui/kivy/uix/ui_screens/send.kv b/gui/kivy/uix/ui_screens/send.kv
       t@@ -6,8 +6,6 @@
        #:set mbtc_symbol unichr(187)
        #:set font_light 'data/fonts/Roboto-Condensed.ttf'
        
       -
       -
        <TextInputSendBlue@TextInput>
            padding: '5dp'
            size_hint: 1, None
       t@@ -20,6 +18,40 @@
            background_normal: 'atlas://gui/kivy/theming/light/tab_btn'
            background_active: 'atlas://gui/kivy/theming/light/textinput_active'
        
       +<SendToggle@ToggleButton>
       +    source: ''
       +    markup: False
       +    bold: True
       +    border: 4, 4, 4, 4
       +    group: 'transfer_type'
       +    background_normal: self.background_down
       +    color:
       +        (.140, .140, .140, 1) if self.state == 'down' else (.796, .796, .796, 1)
       +    canvas.after:
       +        Color:
       +            rgba: 1, 1, 1, 1
       +    Image:
       +        source: root.source
       +        color: root.color
       +        size: '30dp', '30dp'
       +        center_x: root.center_x - ((root.texture_size[0]/2)+(self.width/1.5))
       +        center_y: root.center_y
       +
       +
       +
       +<SendReceiveToggle@BoxLayout>
       +    padding: '5dp', '5dp'
       +    size_hint: 1, None
       +    height: '45dp'
       +    canvas.before:
       +        Color:
       +            rgba: 1, 1, 1, 1
       +        BorderImage:
       +            border: 12, 12, 12, 12
       +            source: 'atlas://gui/kivy/theming/light/card'
       +            size: self.width + dp(3), self.height
       +            pos: self.x - dp(1.5), self.y
       +
        
        SendScreen:
        
       t@@ -38,103 +70,27 @@ SendScreen:
                mode: 'address'
                SendReceiveToggle:
                    SendToggle:
       -                id: toggle_address
       -                text: 'ADDRESS'
       +                id: qr
       +                text: 'Scan QR Code'
                        group: 'send_type'
       -                state: 'down' if root.mode == 'address' else 'normal'
       -                source: 'atlas://gui/kivy/theming/light/globe'
       -                background_down: 'atlas://gui/kivy/theming/light/btn_send_address'
       +                source: 'atlas://gui/kivy/theming/light/qrcode'
                        on_release:
       -                    if root.mode == 'address': root.mode = 'fc'
       -                    root.mode = 'address'
       +                    app.scan_qr(on_complete=root.set_qr_data)
       +                state: 'down'
       +                background_down: 'atlas://gui/kivy/theming/light/btn_send_nfc'
                    SendToggle:
       -                id: toggle_nfc
       +                id: nfc_toggle
                        text: 'NFC'
                        group: 'send_type'
       -                state: 'down' if root.mode == 'nfc' else 'normal'
       +                state: 'normal'
                        source: 'atlas://gui/kivy/theming/light/nfc'
                        background_down: 'atlas://gui/kivy/theming/light/btn_send_nfc'
       -                on_release:
       -                    if root.mode == 'nfc': root.mode = 'str'
       -                    root.mode = 'nfc'
                GridLayout:
                    id: grid
                    cols: 1
                    size_hint: 1, None
                    height: self.minimum_height
       -            SendReceiveCardTop
       -                id: card_address
       -                BoxLayout
       -                    size_hint: 1, None
       -                    height: '42dp'
       -                    rows: 1
       -                    Label
       -                        id: lbl_symbl
       -                        bold: True
       -                        color: amount_e.foreground_color
       -                        text_size: self.size
       -                        valign: 'bottom'
       -                        halign: 'left'
       -                        font_size: '22sp'
       -                        text:
       -                            u'[font={fnt}]{smbl}[/font]'.\
       -                            format(smbl=btc_symbol if app.base_unit == 'BTC' else mbtc_symbol, fnt=font_light)
       -                        size_hint_x: .25
       -                    ELTextInput:
       -                        id: amount_e
       -                        input_type: 'number'
       -                        multiline: False
       -                        bold: True
       -                        font_size: '50sp'
       -                        foreground_color: .308, .308, .308, 1
       -                        background_normal: 'atlas://gui/kivy/theming/light/tab_btn'
       -                        pos_hint: {'top': 1.5}
       -                        size_hint: .7, None
       -                        height: '67dp'
       -                        hint_text: 'Amount'
       -                        text: '0.0'
       -                        on_text_validate: payto_e.focus = True
       -                CardSeparator
       -                BoxLayout:
       -                    size_hint: 1, None
       -                    height: '42dp'
       -                    spacing: '5dp'
       -                    Label:
       -                        id: fee_e
       -                        color: .761, .761, .761, 1
       -                        font_size: '12dp'
       -                        amt: app.format_amount(app.wallet.fee_per_kb(app.gui_object.config)) if app.wallet else 0
       -                        text:
       -                            u'[b]{sign}{symbl}{amt}[/b] of fee'.\
       -                            format(symbl=lbl_symbl.text,\
       -                            sign='+' if self.amt > 0 else '-', amt=self.amt)
       -                        size_hint_x: None
       -                        width: self.texture_size[0]
       -                        halign: 'left'
       -                        valign: 'middle'
       -                    IconButton:
       -                        color: 0.694, 0.694, 0.694, 1
       -                        source: 'atlas://gui/kivy/theming/light/gear'
       -                        pos_hint: {'center_y': .5}
       -                        size_hint: None, None
       -                        size: '22dp', '22dp'
       -                        on_release:
       -                            dlg = Cache.get('electrum_widgets', 'TransactionFeeDialog')
        
       -                            if not dlg:\
       -                            Factory.register('SelectionDialog', module='electrum_gui.kivy.uix.dialogs');\
       -                            dlg = Factory.TransactionFeeDialog();\
       -                            Cache.append('electrum_widgets', 'TransactionDialog', dlg)
       -
       -                            dlg.return_obj = fee_e
       -                            dlg.open()
       -                    Label:
       -                        font_size: '12dp'
       -                        color: fee_e.color
       -                        #text: u'= {}'.format(app.create_quote_text(Decimal(float(amount_e.text)), mode='symbol')) if amount_e.text else u'0'
       -                        text_size: self.size
       -                        halign: 'right'
       -                        valign: 'middle'
                    SendReceiveBlueBottom:
                        id: blue_bottom
                        size_hint: 1, None
       t@@ -142,6 +98,23 @@ SendScreen:
                        BoxLayout
                            size_hint: 1, None
                            height: blue_bottom.item_height
       +                    Label:
       +                        id: lbl_symbl
       +                        text: 'Amount'
       +                        size_hint: 0.5, None
       +                        height: '38dp'
       +                    Button:
       +                        id: amount_e
       +                        text: ''
       +                        size_hint: 0.5, None
       +                        height: '38dp'
       +                        on_release: app.amount_dialog(amount_e, None)
       +                CardSeparator
       +                    opacity: message_selection.opacity
       +                    color: blue_bottom.foreground_color
       +                BoxLayout
       +                    size_hint: 1, None
       +                    height: blue_bottom.item_height
                            spacing: '5dp'
                            Image:
                                source: 'atlas://gui/kivy/theming/light/contact'
       t@@ -165,13 +138,6 @@ SendScreen:
                                    Rectangle:
                                        size: self.size
                                        pos: self.pos
       -                    IconButton:
       -                        id: qr
       -                        source: 'atlas://gui/kivy/theming/light/qrcode'
       -                        pos_hint: {'center_y': .5}
       -                        size_hint: None, None
       -                        size: '22dp', '22dp'
       -                        on_release: app.scan_qr(on_complete=root.set_qr_data)
                        CardSeparator
                            opacity: message_selection.opacity
                            color: blue_bottom.foreground_color
       t@@ -192,13 +158,19 @@ SendScreen:
                                on_text_validate:
                                    anim = Factory.Animation(opacity=1, height=blue_bottom.item_height)
                                    anim.start(wallet_selection)
       -        Button:
       -            #background_color: (1, 1, 1, 1) if self.disabled else ((.258, .80, .388, 1) if self.state == 'normal' else (.203, .490, .741, 1))
       -            text: _('Send')
       -            size_hint_y: None
       -            height: '38dp'
       -            disabled: False
       -            on_release: send_screen.do_send()
       +
       +        BoxLayout:
       +            Button:
       +                text: _('Clear')
       +                size_hint_y: None
       +                height: '38dp'
       +                disabled: False
       +            Button:
       +                text: _('Send')
       +                size_hint_y: None
       +                height: '38dp'
       +                disabled: False
       +                on_release: send_screen.do_send()
                Widget