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 @@
-
+
+
+ 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