Parcourir la source

add save button and show current filename

Daniel Sheffield il y a 2 ans
Parent
commit
dead892815
1 fichiers modifiés avec 16 ajouts et 6 suppressions
  1. 16 6
      app/activities/RecipeEditor.py

+ 16 - 6
app/activities/RecipeEditor.py

@@ -197,6 +197,7 @@ class RecipeEditor(FocusWidget):
             ef[2].set_edit_text('')
         self.organic.set_state('mixed')
         self.instructions.set_edit_text('')
+        self.fname.set_edit_text('')
         return self.update()
 
     def add_ingredient(self):
@@ -259,7 +260,10 @@ class RecipeEditor(FocusWidget):
 			lambda x: x.strip(),
 			self.instructions.get_text()[0].splitlines()
 		)).strip())
-        with open(f'{self.fname}-modified.yaml', 'w') as f:
+        fname = self.fname.get_edit_text()
+        if not fname:
+            return
+        with open(f'{fname}-modified.yaml', 'w') as f:
             yaml.dump(yml, f)
 
 
@@ -325,12 +329,13 @@ class RecipeEditor(FocusWidget):
         fname: str,
         recipe: dict,
     ):
-        self.fname = fname
+        self.fname = Edit('', fname)
         self.components = dict()
         self.buttons = {
           'clear': Button(('streak', 'Clear')),
           'exit': Button(('streak', 'Exit')),
           'add': Button(('streak', 'Add')),
+          'save': Button(('streak', 'Save')),
         }
         self.ingredients: List[Tuple[AutoCompleteEdit, FloatEdit, AutoCompleteEdit]] = [
             (
@@ -359,8 +364,9 @@ class RecipeEditor(FocusWidget):
         self.autocomplete_callback = lambda widget, options: len(options) > 0 and widget._emit('open', options)
         connect_signal(self.organic, 'postchange', lambda _,v: self.update())
 
+        connect_signal(self.buttons['save'], 'click', lambda _: self.save())
         connect_signal(self.buttons['add'], 'click', lambda _: self.add_ingredient())
-        connect_signal(self.buttons['clear'], 'click', lambda _: self.clear().update())
+        connect_signal(self.buttons['clear'], 'click', lambda _: self.clear())
         connect_signal(self.buttons['exit'], 'click', lambda _: show_or_exit('esc'))
         connect_signal(self.instructions, 'postchange', lambda _,v: self.update())
 
@@ -414,10 +420,14 @@ class RecipeEditor(FocusWidget):
                     Divider(),
                 ])),
                 Divider(),
-                (9, Pile([
-                Divider(),
-                AttrMap(self.buttons['exit'], 'streak'),
+                LineBox(Columns([
+                    self.fname, (8, self.buttons['save'])
+                ]), title='Recipe'),
                 Divider(),
+                (9, Pile([
+                    Divider(),
+                    AttrMap(self.buttons['exit'], 'streak'),
+                    Divider(),
                 ]))
             ], dividechars=1),
             'bottom_pane': Pile(bottom_pane),