|
@@ -8,6 +8,7 @@
|
|
|
import itertools
|
|
|
from typing import Union
|
|
|
import urwid
|
|
|
+from urwid import raw_display
|
|
|
from app.db_utils import QueryManager
|
|
|
from app.activities import (
|
|
|
show_or_exit,
|
|
@@ -34,13 +35,22 @@ except:
|
|
|
exit(1)
|
|
|
#from mock import *
|
|
|
|
|
|
-palette = [
|
|
|
+dark_palette = [
|
|
|
+ ('popup_focus', 'light red', 'light gray'),
|
|
|
+ ('popup', 'light red', 'dark gray'),
|
|
|
('banner', 'light gray', 'dark red'),
|
|
|
('streak', 'light gray', 'black'),
|
|
|
('bg', 'dark red', 'black'),
|
|
|
('badge', 'light gray', 'black'),
|
|
|
- ('badge_green', 'light green', 'black',),
|
|
|
- ('badge_red', 'light red', 'black',),
|
|
|
+]
|
|
|
+
|
|
|
+light_palette = [
|
|
|
+ ('popup_focus', 'dark blue', 'light gray'),
|
|
|
+ ('popup', 'light blue', 'dark gray'),
|
|
|
+ ('banner', 'light gray', 'dark red'),
|
|
|
+ ('streak', 'white', 'dark blue'),
|
|
|
+ ('bg', 'white', 'dark blue'),
|
|
|
+ ('badge', 'white', 'dark blue'),
|
|
|
]
|
|
|
|
|
|
top_pane = [
|
|
@@ -75,9 +85,9 @@ inputs = filter(
|
|
|
)
|
|
|
|
|
|
display_map = {
|
|
|
- 'price': lambda x: f"{x:.4f}",
|
|
|
- 'quantity': lambda x: f"{x:.2f}",
|
|
|
- 'organic': lambda x: "true" if x else "false",
|
|
|
+ 'price': lambda x: f'{x:.4f}',
|
|
|
+ 'quantity': lambda x: f'{x:.2f}',
|
|
|
+ 'organic': lambda x: 'true' if x else 'false',
|
|
|
}
|
|
|
display = lambda data, name: display_map[name](data) if name in display_map else data
|
|
|
|
|
@@ -119,7 +129,19 @@ activity_manager.create(PriceCheck, 'price_check',
|
|
|
|
|
|
app = GroceryPriceCheck(activity_manager)
|
|
|
|
|
|
-loop = urwid.MainLoop(app, palette, unhandled_input=show_or_exit, pop_ups=True)
|
|
|
+def iter_palettes():
|
|
|
+ palettes = [light_palette, dark_palette]
|
|
|
+ while True:
|
|
|
+ p = palettes.pop(0)
|
|
|
+ palettes.append(p)
|
|
|
+ yield p
|
|
|
+
|
|
|
+palettes = iter_palettes()
|
|
|
+
|
|
|
+screen = raw_display.Screen()
|
|
|
+loop = urwid.MainLoop(app, dark_palette, screen=screen,
|
|
|
+ unhandled_input=lambda k: show_or_exit(k, screen=screen, palettes=palettes),
|
|
|
+ pop_ups=True)
|
|
|
loop.run()
|
|
|
|
|
|
cur.close()
|