1
0

kivy: invoices and requests handlers

This commit is contained in:
ThomasV
2015-12-12 23:23:58 +01:00
parent 6bd37723d3
commit eef62112a8
7 changed files with 61 additions and 93 deletions

View File

@@ -39,5 +39,5 @@ class ContextMenu(Bubble):
for k, v in action_list:
l = MenuItem()
l.text = k
l.on_release = lambda: v(obj)
l.on_release = lambda f=v: f(obj)
self.ids.buttons.add_widget(l)

View File

@@ -208,6 +208,10 @@ class SendScreen(CScreen):
amount_str = str( Decimal(amount) / pow(10, self.app.decimal_point()))
self.screen.amount = amount_str + ' ' + self.app.base_unit
def update(self):
if self.app.current_invoice:
self.set_request(self.app.current_invoice)
def do_clear(self):
self.screen.amount = ''
self.screen.message = ''
@@ -215,9 +219,6 @@ class SendScreen(CScreen):
self.payment_request = None
def set_request(self, pr):
if pr.has_expired():
self.app.show_error(_('Payment request has expired'))
return
self.payment_request = pr
self.screen.address = pr.get_requestor()
self.screen.amount = self.app.format_amount(pr.get_amount())
@@ -283,7 +284,13 @@ class ReceiveScreen(CScreen):
kvname = 'receive'
def update(self):
self.screen.address = self.app.wallet.get_unused_address(None)
addr = self.app.get_receive_address()
self.screen.address = addr
req = self.app.wallet.receive_requests.get(addr)
if req:
self.screen.message = req.get('memo')
self.screen.amount = self.app.format_amount(req.get('amount')) + ' ' + self.app.base_unit
def amount_callback(self, popup):
amount_label = self.screen.ids.get('amount')
@@ -320,8 +327,10 @@ class ReceiveScreen(CScreen):
req = self.app.wallet.make_payment_request(addr, amount, message, None)
self.app.wallet.add_payment_request(req, self.app.electrum_config)
self.app.show_error(_('Request saved'))
self.app.update_screen('requests')
def do_clear(self):
self.app.receive_address = None
self.screen.amount = ''
self.screen.message = ''
self.update()
@@ -376,18 +385,19 @@ class InvoicesScreen(CScreen):
ci.screen = self
invoices_list.add_widget(ci)
def do_pay(self, x):
pass
def do_pay(self, obj):
self.app.do_pay(obj)
def do_delete(self, x):
pass
def do_delete(self, obj):
self.app.invoices.remove(obj.key)
self.app.update_screen('invoices')
class RequestsScreen(CScreen):
kvname = 'requests'
def update(self):
self.menu_actions = [(_('View'), self.do_view), (_('Delete'), self.do_delete)]
self.menu_actions = [(_('Show'), self.do_show), (_('Delete'), self.do_delete)]
requests_list = self.screen.ids.requests_container
requests_list.clear_widgets()
@@ -408,13 +418,12 @@ class RequestsScreen(CScreen):
ci.screen = self
requests_list.add_widget(ci)
def do_show(self, obj):
self.app.show_request(obj.address)
def do_view(self, o):
print o
def do_delete(self, o):
print o
def do_delete(self, obj):
self.app.wallet.remove_payment_request(obj.address, self.app.electrum_config)
self.update()
class CSpinner(Factory.Spinner):

View File

@@ -99,4 +99,4 @@ HistoryScreen:
size_hint: 1, None
height: self.minimum_height
padding: '12dp'
spacing: '12dp'
spacing: '2dp'

View File

@@ -19,9 +19,6 @@
InvoicesScreen:
name: 'invoices'
on_activate:
if not self.action_view:\
self.action_view = app.root.main_screen.ids.tabs.ids.screen_dashboard.action_view
BoxLayout:
orientation: 'vertical'
spacing: '1dp'
@@ -37,5 +34,5 @@ InvoicesScreen:
id: invoices_container
size_hint: 1, None
height: self.minimum_height
spacing: '1dp'
spacing: '2dp'
padding: '12dp'

View File

@@ -89,7 +89,7 @@ ReceiveScreen:
height: '48dp'
on_release: s.parent.do_copy()
Button:
text: _('Clear')
text: _('New')
size_hint: 1, None
height: '48dp'
on_release: s.parent.do_clear()

View File

@@ -23,9 +23,6 @@
RequestsScreen:
name: 'requests'
on_activate:
if not self.action_view:\
self.action_view = app.root.main_screen.ids.tabs.ids.screen_dashboard.action_view
BoxLayout:
orientation: 'vertical'
spacing: '1dp'
@@ -41,5 +38,5 @@ RequestsScreen:
id: requests_container
size_hint_y: None
height: self.minimum_height
spacing: '1dp'
spacing: '2dp'
padding: '12dp'