Explorar o código

improve op indicator for FloatEdit fields and improve ordering of side pane

Daniel Sheffield %!s(int64=3) %!d(string=hai) anos
pai
achega
353e161d5a
Modificáronse 1 ficheiros con 17 adicións e 11 borrados
  1. 17 11
      grocery_transactions.py

+ 17 - 11
grocery_transactions.py

@@ -32,8 +32,8 @@ grid_layout = [
     [ 'category',    'group',   ],
 ]
 side_pane = [
-    'quantity',
     'unit',
+    'quantity',
     'price',
 ]
 bottom_pane = [
@@ -130,11 +130,11 @@ class AutoCompleteEdit(urwid.Edit):
             pallete, title = name
             self.name = title
             title = title.title()
-            passthrough = (pallete, u'')
+            passthrough = (pallete, u'  ' if title.lower() == 'unit' else u'')
         else:
             self.name = name
             title = name.title()
-            passthrough = title
+            passthrough = u'  ' if name.lower() == 'unit' else u''
             
         super(AutoCompleteEdit, self).__init__(passthrough, *args, **kwargs)
         self.apply = apply_change_func
@@ -146,28 +146,34 @@ class AutoCompleteEdit(urwid.Edit):
 
 class AutoCompleteFloatEdit(numedit.FloatEdit):
     def __init__(self, name, *args, apply_change_func=None, **kwargs):
+        self.op = '='
+        self.pallete = None
         if isinstance(name, tuple):
-            pallete, title = name
+            self.pallete, title = name
             self.name = title
             title = title.title()
-            passthrough = (pallete, u'')
+            passthrough = (self.pallete, f'{self.op} ')
         else:
             self.name = name
             title = name.title()
             passthrough = title
-        
-        self.op = '='
             
         super(AutoCompleteFloatEdit, self).__init__(passthrough, *args, **kwargs)
-        self.set_caption('=')
         self.apply = apply_change_func
 
+    def update_caption(self):
+        if self.pallete is not None:
+            self.set_caption((self.pallete, f'{self.op}'))
+        else:
+            self.set_caption(f'{self.op} ')
+
+
     def set_op(self, op):
         self.op = op
         self.last_val = self.value()
         self.set_edit_text('')
-        self.set_caption(self.op)
-
+        self.update_caption()
+        
     def calc(self):
         x = self.last_val
         y = self.value()
@@ -182,7 +188,7 @@ class AutoCompleteFloatEdit(numedit.FloatEdit):
             z = x / y
         
         self.op = '='
-        self.set_caption(self.op)
+        self.update_caption()
         self.set_edit_text(f'{z:.2f}')
 
     def keypress(self, size, key):