diff --git a/terminatorlib/config.py b/terminatorlib/config.py index 56e1613c..adf50db8 100755 --- a/terminatorlib/config.py +++ b/terminatorlib/config.py @@ -336,6 +336,10 @@ class Config(object): def add_layout(self, name, layout): """Add a new layout""" return(self.base.add_layout(name, layout)) + + def replace_layout(self, name, layout): + """Replace an existing layout""" + return(self.base.replace_layout(name, layout)) def del_layout(self, layout): """Delete a layout""" @@ -772,6 +776,13 @@ class ConfigBase(Borg): self.layouts[name] = layout return(True) + def replace_layout(self, name, layout): + """Replaces a layout with the given name""" + if not name in self.layouts: + return(False) + self.layouts[name] = layout + return(True) + def get_layout(self, layout): """Return a layout""" if self.layouts.has_key(layout): diff --git a/terminatorlib/preferences.glade b/terminatorlib/preferences.glade index 95b87df1..1ddc7551 100644 --- a/terminatorlib/preferences.glade +++ b/terminatorlib/preferences.glade @@ -3581,7 +3581,19 @@ - + + gtk-save + True + True + True + True + + + + False + False + 3 + diff --git a/terminatorlib/prefseditor.py b/terminatorlib/prefseditor.py index bd4619f7..b074f22c 100755 --- a/terminatorlib/prefseditor.py +++ b/terminatorlib/prefseditor.py @@ -1132,6 +1132,20 @@ class PrefsEditor: self.config.save() + def on_layoutrefreshbutton_clicked(self, _button): + """Refresh the terminals status and update""" + terminator = Terminator() + current_layout = terminator.describe_layout() + + guiget = self.builder.get_object + treeview = guiget('layoutlist') + selected = treeview.get_selection() + (model, rowiter) = selected.get_selected() + name = model.get_value(rowiter, 0) + + if self.config.replace_layout(name, current_layout): + treeview.set_cursor(model.get_path(rowiter), focus_column=treeview.get_column(0), start_editing=False) + def on_layoutremovebutton_clicked(self, _button): """Remove a layout from the list""" guiget = self.builder.get_object