|
@@ -28,6 +28,11 @@ class TransactionEditor(FocusWidget):
|
|
|
self.advance_focus()
|
|
|
elif key == 'shift tab':
|
|
|
self.advance_focus(reverse=True)
|
|
|
+ elif key == 'ctrl delete':
|
|
|
+ self.clear()
|
|
|
+ self.update()
|
|
|
+ elif key == 'insert':
|
|
|
+ self.save_and_clear_cb()
|
|
|
else:
|
|
|
return super().keypress(size, key)
|
|
|
|
|
@@ -88,6 +93,7 @@ class TransactionEditor(FocusWidget):
|
|
|
on_state_change=self.apply_organic_state
|
|
|
)
|
|
|
self.query_manager = query_manager
|
|
|
+ self.save_and_clear_cb = save_and_clear_cb
|
|
|
self._init_data(fields)
|
|
|
self.layout = layout
|
|
|
self.side_pane = side_pane
|
|
@@ -110,7 +116,11 @@ class TransactionEditor(FocusWidget):
|
|
|
header = urwid.Text(u'Fill Transaction', 'center')
|
|
|
_copyright = urwid.Text(COPYRIGHT, 'center')
|
|
|
done_button = urwid.Button(('streak', u'Done'))
|
|
|
- urwid.connect_signal(done_button, 'click', lambda w: save_and_clear_cb())
|
|
|
+ clear_button = urwid.Button(('streak', u'Clear'))
|
|
|
+ urwid.connect_signal(done_button, 'click', lambda _: save_and_clear_cb())
|
|
|
+ urwid.connect_signal(clear_button, 'click', lambda _: [
|
|
|
+ self.clear(), self.update()
|
|
|
+ ])
|
|
|
banner = urwid.Pile([
|
|
|
urwid.Padding(header, 'center', width=('relative', 100)),
|
|
|
urwid.Padding(_copyright, 'center', width=('relative', 100)),
|
|
@@ -160,12 +170,16 @@ class TransactionEditor(FocusWidget):
|
|
|
widget = urwid.Pile([
|
|
|
banner,
|
|
|
urwid.Divider(),
|
|
|
- urwid.Columns((main_pane_widget, side_pane_widget),
|
|
|
+ urwid.Columns([
|
|
|
+ main_pane_widget, side_pane_widget
|
|
|
+ ],
|
|
|
dividechars=2,
|
|
|
),
|
|
|
*[ fields[c] if c is not None else urwid.Divider() for c in self.bottom_pane ],
|
|
|
urwid.Divider(),
|
|
|
- done_button,
|
|
|
+ urwid.Columns([
|
|
|
+ (8, done_button), urwid.Divider(), (9, clear_button)
|
|
|
+ ])
|
|
|
])
|
|
|
widget = urwid.Filler(widget, 'top')
|
|
|
widget = urwid.AttrMap(widget, 'bg')
|
|
@@ -173,5 +187,6 @@ class TransactionEditor(FocusWidget):
|
|
|
[2, 0, 1, 0],
|
|
|
[4,],
|
|
|
[5,],
|
|
|
+ [6, 1],
|
|
|
[7,],
|
|
|
])
|