You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
138 lines
5.5 KiB
138 lines
5.5 KiB
#:import Decimal decimal.Decimal
|
|
|
|
<ScreenReceiveContent@BoxLayout>
|
|
opacity: 0
|
|
padding: '12dp', '12dp', '12dp', '12dp'
|
|
spacing: '12dp'
|
|
mode: 'qr'
|
|
orientation: 'vertical'
|
|
on_parent:
|
|
if args[1]:\
|
|
first_address = app.wallet.addresses()[0];\
|
|
qr.data = app.encode_uri(first_address,\
|
|
amount=amount_e.text,\
|
|
label=app.wallet.labels.get(first_address, first_address),\
|
|
message='') if app.wallet.addresses() else ''
|
|
SendReceiveToggle
|
|
SendToggle:
|
|
id: toggle_qr
|
|
text: 'QR'
|
|
state: 'down' if root.mode == 'qr' else 'normal'
|
|
source: 'atlas://gui/kivy/theming/light/qrcode'
|
|
background_down: 'atlas://gui/kivy/theming/light/btn_send_address'
|
|
on_release:
|
|
if root.mode == 'qr': root.mode = 'nr'
|
|
root.mode = 'qr'
|
|
SendToggle:
|
|
id: toggle_nfc
|
|
text: 'NFC'
|
|
state: 'down' if root.mode == 'nfc' else '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 = 'nr'
|
|
root.mode = 'nfc'
|
|
GridLayout:
|
|
id: grid
|
|
cols: 1
|
|
#size_hint: 1, None
|
|
#height: self.minimum_height
|
|
SendReceiveCardTop
|
|
height: '110dp'
|
|
BoxLayout:
|
|
size_hint: 1, None
|
|
height: '42dp'
|
|
rows: 1
|
|
Label:
|
|
color: amount_e.foreground_color
|
|
bold: True
|
|
text_size: self.size
|
|
valign: 'bottom'
|
|
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'
|
|
CardSeparator
|
|
BoxLayout:
|
|
size_hint: 1, None
|
|
height: '32dp'
|
|
spacing: '5dp'
|
|
Label:
|
|
color: lbl_quote.color
|
|
font_size: '12dp'
|
|
text: 'Ask to scan the QR below'
|
|
text_size: self.size
|
|
halign: 'left'
|
|
valign: 'middle'
|
|
Label:
|
|
id: lbl_quote
|
|
font_size: '12dp'
|
|
size_hint: .5, 1
|
|
color: .761, .761, .761, 1
|
|
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
|
|
padding: '12dp', 0, '12dp', '12dp'
|
|
WalletSelector:
|
|
id: wallet_selection
|
|
foreground_color: blue_bottom.foreground_color
|
|
size_hint: 1, None
|
|
height: blue_bottom.item_height
|
|
CardSeparator
|
|
opacity: wallet_selection.opacity
|
|
color: blue_bottom.foreground_color
|
|
AddressSelector:
|
|
id: address_selection
|
|
foreground_color: blue_bottom.foreground_color
|
|
opacity: 1 if app.expert_mode else 0
|
|
size_hint: 1, None
|
|
height: blue_bottom.item_height if app.expert_mode else 0
|
|
on_text:
|
|
if not args[1].startswith('Select'):\
|
|
qr.data = app.encode_uri(args[1],\
|
|
amount=amount_e.text,\
|
|
label=app.wallet.labels.get(args[1], args[1]),\
|
|
message='')
|
|
CardSeparator
|
|
opacity: address_selection.opacity
|
|
color: blue_bottom.foreground_color
|
|
Widget:
|
|
size_hint_y: None
|
|
height: dp(10)
|
|
FloatLayout
|
|
id: bl
|
|
QRCodeWidget:
|
|
id: qr
|
|
size_hint: None, 1
|
|
width: min(self.height, bl.width)
|
|
pos_hint: {'center': (.5, .5)}
|
|
on_touch_down:
|
|
if self.collide_point(*args[1].pos):\
|
|
app.show_info_bubble(icon=self.ids.qrimage.texture, text='texture')
|
|
CreateAccountButtonGreen:
|
|
background_color: (1, 1, 1, 1) if self.disabled else ((.258, .80, .388, 1) if self.state == 'normal' else (.203, .490, .741, 1))
|
|
text: _('Goto next step') if app.wallet.seed else _('Create unsigned transaction')
|
|
size_hint_y: None
|
|
height: '38dp'
|
|
disabled: True if wallet_selection.opacity == 0 else False
|
|
on_release:
|
|
message = 'sending {} {} to {}'.format(\
|
|
app.base_unit, amount_e.text, payto_e.text)
|
|
app.gui.main_gui.do_send(self, message=message)
|