add password_dialog
This commit is contained in:
parent
2e8801fdda
commit
a199061462
|
@ -381,15 +381,10 @@ class ElectrumWindow(App):
|
|||
''' Initialize The Ux part of electrum. This function performs the basic
|
||||
tasks of setting up the ui.
|
||||
'''
|
||||
global ref
|
||||
if not ref:
|
||||
from weakref import ref
|
||||
|
||||
from weakref import ref
|
||||
set_language(self.electrum_config.get('language'))
|
||||
|
||||
self.funds_error = False
|
||||
self.completions = []
|
||||
|
||||
# setup UX
|
||||
self.screens = {}
|
||||
|
||||
|
@ -806,3 +801,18 @@ class ElectrumWindow(App):
|
|||
if not pos:
|
||||
pos = (win.center[0], win.center[1] - (info_bubble.height/2))
|
||||
info_bubble.show(pos, duration, width, modal=modal, exit=exit)
|
||||
|
||||
|
||||
def password_dialog(self, f, args):
|
||||
if self.wallet.use_encryption:
|
||||
popup = Builder.load_file('gui/kivy/uix/ui_screens/password.kv')
|
||||
def callback():
|
||||
pw = popup.ids.text_input.text
|
||||
Clock.schedule_once(lambda x: apply(f, args + (pw,)), 0.5)
|
||||
popup.on_dismiss = callback
|
||||
popup.open()
|
||||
else:
|
||||
apply(f, args + (None,))
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ from weakref import ref
|
|||
from decimal import Decimal
|
||||
import re
|
||||
import datetime
|
||||
import traceback, sys
|
||||
|
||||
from kivy.app import App
|
||||
from kivy.cache import Cache
|
||||
|
@ -96,11 +97,9 @@ class HistoryScreen(CScreen):
|
|||
time_str = _("unknown")
|
||||
if conf > 0:
|
||||
try:
|
||||
time_str = datetime.datetime.fromtimestamp(
|
||||
timestamp).isoformat(' ')[:-3]
|
||||
time_str = datetime.datetime.fromtimestamp(timestamp).isoformat(' ')[:-3]
|
||||
except Exception:
|
||||
time_str = _("error")
|
||||
|
||||
if conf == -1:
|
||||
time_str = _('unverified')
|
||||
icon = "atlas://gui/kivy/theming/light/close"
|
||||
|
@ -153,7 +152,6 @@ class HistoryScreen(CScreen):
|
|||
ri = RecentActivityItem()
|
||||
ri.icon = icon
|
||||
ri.date = date_time
|
||||
mintimestr = date_time.split()[0]
|
||||
ri.address = address
|
||||
ri.amount = amount
|
||||
ri.quote_text = quote_text
|
||||
|
@ -223,17 +221,16 @@ class SendScreen(CScreen):
|
|||
app.show_error(_('Invalid Fee'))
|
||||
return
|
||||
|
||||
message = 'sending {} {} to {}'.format(self.app.base_unit, scrn.amount_e.text, r)
|
||||
# assume no password and fee is None
|
||||
password = None
|
||||
fee = None
|
||||
self.send_tx([('address', to_address, amount)], fee, label, password)
|
||||
message = 'sending {} {} to {}'.format(self.app.base_unit, scrn.amount_e.text, r)
|
||||
outputs = [('address', to_address, amount)]
|
||||
self.app.password_dialog(self.send_tx, (outputs, fee, label))
|
||||
|
||||
def send_tx(self, outputs, fee, label, password):
|
||||
# make unsigned transaction
|
||||
coins = self.app.wallet.get_spendable_coins()
|
||||
try:
|
||||
tx = self.app.wallet.make_unsigned_transaction(coins, outputs, self.electrum_config, fee)
|
||||
tx = self.app.wallet.make_unsigned_transaction(coins, outputs, self.app.electrum_config, fee)
|
||||
except Exception as e:
|
||||
traceback.print_exc(file=sys.stdout)
|
||||
self.app.show_error(str(e))
|
||||
|
@ -246,8 +243,8 @@ class SendScreen(CScreen):
|
|||
self.app.show_error(str(e))
|
||||
return
|
||||
# broadcast
|
||||
self.wallet.sendtx(tx)
|
||||
|
||||
ok, txid = self.app.wallet.sendtx(tx)
|
||||
self.app.show_info(txid)
|
||||
|
||||
|
||||
class ReceiveScreen(CScreen):
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
Popup:
|
||||
id: pw
|
||||
title: _('Password')
|
||||
|
||||
BoxLayout:
|
||||
|
||||
orientation: 'vertical'
|
||||
size_hint: 1, None
|
||||
|
||||
GridLayout:
|
||||
size_hint: 1, None
|
||||
cols: 2
|
||||
Label:
|
||||
text: 'Password'
|
||||
height: '48dp'
|
||||
TextInput:
|
||||
id: text_input
|
||||
password:True
|
||||
|
||||
Button:
|
||||
size_hint_y: None
|
||||
height: '48dp'
|
||||
text: _('Close')
|
||||
on_release: pw.dismiss()
|
||||
|
||||
Widget:
|
||||
size_hint_y: 1
|
|
@ -5,17 +5,26 @@ Popup:
|
|||
BoxLayout:
|
||||
|
||||
orientation: 'vertical'
|
||||
size_hint_y: None
|
||||
size_hint: 1, None
|
||||
|
||||
GridLayout:
|
||||
cols: 2
|
||||
Label:
|
||||
text: _('Base unit')
|
||||
height: '48dp'
|
||||
size_hint: 1, None
|
||||
Spinner:
|
||||
text: 'BTC'
|
||||
values: ('BTC', 'mBTC')
|
||||
height: '48dp'
|
||||
|
||||
Label:
|
||||
size_hint: 1, None
|
||||
text: 'OpenAlias'
|
||||
height: '48dp'
|
||||
TextInput:
|
||||
size_hint: 1, None
|
||||
|
||||
|
||||
Button:
|
||||
#size_hint_y: None
|
||||
|
|
Loading…
Reference in New Issue