commit 4a0fceca90b324be0748a3910b573ed6ded55f11
parent 2f543d2ad8bd4da1b05c24f7cc78ee9eaeb8bd33
Author: ThomasV <thomasv@electrum.org>
Date: Wed, 14 Oct 2015 13:03:13 +0200
kivy: use custom keyboard in send tab
Diffstat:
3 files changed, 75 insertions(+), 132 deletions(-)
diff --git a/gui/kivy/main.kv b/gui/kivy/main.kv
@@ -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:
@@ -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>
@@ -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")
diff --git a/gui/kivy/main_window.py b/gui/kivy/main_window.py
@@ -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()
diff --git a/gui/kivy/uix/ui_screens/send.kv b/gui/kivy/uix/ui_screens/send.kv
@@ -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
@@ -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:
@@ -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
@@ -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'
@@ -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
@@ -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