diff --git a/terminatorlib/config.py b/terminatorlib/config.py
index 801dc9c0..0eff86ba 100755
--- a/terminatorlib/config.py
+++ b/terminatorlib/config.py
@@ -320,6 +320,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"""
@@ -734,6 +738,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 628350db..13a56b67 100644
--- a/terminatorlib/preferences.glade
+++ b/terminatorlib/preferences.glade
@@ -3412,6 +3412,21 @@
2
+
+
+
+ False
+ False
+ 3
+
+
False
diff --git a/terminatorlib/prefseditor.py b/terminatorlib/prefseditor.py
index 9e3c684d..60b5a851 100755
--- a/terminatorlib/prefseditor.py
+++ b/terminatorlib/prefseditor.py
@@ -1090,6 +1090,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