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