Exemple #1
0
 def update_field_rows(self, source=None):
     self.fields_container.clear_widgets()
     self.field_widgets = []
     if source:
         self.view_source = source
     for field, value in self.view_source.items():
         row = BoxLayout()
         a = Label(text=str(field))
         row.add_widget(a)
         # dropdown?
         field_input = TextInput(
             text=str(value),
             multiline=False,
             height=a.height,
             font_size=a.font_size / 1.5,
         )
         field_input.field_for = str(field)
         field_input.bind(
             on_text_validate=lambda widget, field=field, value=value: self.update_field(
                 field, widget.text, widget=widget
             )
         )
         field_highlight_button = Button(text="$", size_hint_x=.1)
         field_highlight_button.bind(
             on_press=lambda widget, field=field: [
                 self.source_source.set_env_var("$SELECTED_KEY", field),
                 self.highlight_field(),
             ]
         )
         field_remove_button = Button(text="X", size_hint_x=.1)
         field_remove_button.bind(
             on_press=lambda widget, field=field: self.remove_field(field)
         )
         row.add_widget(field_input)
         row.highlight = field_highlight_button
         row.field = field
         row.add_widget(field_highlight_button)
         row.add_widget(field_remove_button)
         self.fields_container.add_widget(row)
         self.field_widgets.append(field_input)
     self.highlight_field()