|
@@ -10,6 +10,7 @@ import itertools
|
|
|
import sys
|
|
|
from typing import Union
|
|
|
import urwid
|
|
|
+from urwid import raw_display
|
|
|
from app.db_utils import (
|
|
|
QueryManager,
|
|
|
get_insert_product_statement
|
|
@@ -40,7 +41,7 @@ except:
|
|
|
print('Failed to set up db connection. Entering Mock mode')
|
|
|
from mock import *
|
|
|
|
|
|
-palette = [
|
|
|
+dark_palette = [
|
|
|
("popup_focus", "light red", "light gray"),
|
|
|
('popup', 'light red', 'dark gray'),
|
|
|
('banner', 'light gray', 'dark red'),
|
|
@@ -48,6 +49,14 @@ palette = [
|
|
|
('bg', 'light red', 'black'),
|
|
|
]
|
|
|
|
|
|
+light_palette = [
|
|
|
+ ("popup_focus", "dark blue", "light gray"),
|
|
|
+ ('popup', 'light blue', 'dark gray'),
|
|
|
+ ('banner', 'light gray', 'dark red'),
|
|
|
+ ('streak', 'white', 'dark gray'),
|
|
|
+ ('bg', 'white', 'dark blue'),
|
|
|
+]
|
|
|
+
|
|
|
grid_layout = [
|
|
|
[ 'ts', 'store', ],
|
|
|
[ 'organic', 'product', ],
|
|
@@ -209,15 +218,30 @@ activity_manager.create(TransactionEditor, 'transaction',
|
|
|
query_manager, cols, grid_layout, side_pane, bottom_pane,
|
|
|
lambda: _save_and_clear_callback(activity_manager),
|
|
|
lambda widget, name, data: _autocomplete_callback(activity_manager, query_manager, widget, name, data),
|
|
|
- lambda name, value: _apply_choice_callback(activity_manager, 'transaction', name, value))
|
|
|
+ lambda name, value: _apply_choice_callback(activity_manager, 'transaction', name, value),
|
|
|
+)
|
|
|
|
|
|
app = None
|
|
|
+def iter_palettes():
|
|
|
+ palettes = [dark_palette, light_palette]
|
|
|
+ while True:
|
|
|
+ p = palettes.pop(0)
|
|
|
+ palettes.append(p)
|
|
|
+ yield p
|
|
|
+
|
|
|
+palettes = iter_palettes()
|
|
|
+palette = next(palettes)
|
|
|
+
|
|
|
try:
|
|
|
app = GroceryTransactionEditor(activity_manager, cur, log)
|
|
|
-
|
|
|
- loop = urwid.MainLoop(app, palette, unhandled_input=show_or_exit, pop_ups=True)
|
|
|
+ screen = raw_display.Screen()
|
|
|
+ loop = urwid.MainLoop(app, palette, screen=screen,
|
|
|
+ unhandled_input=lambda k: show_or_exit(k, screen=screen, palettes=palettes),
|
|
|
+ pop_ups=True
|
|
|
+ )
|
|
|
|
|
|
loop.run()
|
|
|
+
|
|
|
finally:
|
|
|
if app is not None:
|
|
|
app.close()
|