Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[bug 760] working directory feature is broken #882

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions terminatorlib/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -499,6 +499,34 @@ def layout_set_config(self, layout, tree):
"""Set a layout"""
return(self.base.set_layout(layout, tree))

def copy_layout_item(self, src_layout, dst_layout, item):
items = {}
for child in src_layout:
section = src_layout[child]
sec_type = section.get('type', None)
if sec_type != 'Terminal':
continue

cp_item = section.get(item, None)
uuid = str(section.get('uuid', None))
if cp_item:
items[uuid] = cp_item

dbg("items to be copied:%s" % items)
for child in dst_layout:
section = dst_layout[child]
sec_type = section.get('type', None)
if sec_type != 'Terminal':
continue

uuid = str(section.get('uuid', None))
update_item = items.get(uuid, None)
if uuid and update_item:
dbg("update layout item:(%s) with value:(%s)"
% (item, update_item))
section[item] = update_item


class ConfigBase(Borg):
"""Class to provide access to our user configuration"""
loaded = None
Expand Down
10 changes: 9 additions & 1 deletion terminatorlib/prefseditor.py
Original file line number Diff line number Diff line change
Expand Up @@ -1594,6 +1594,14 @@ def on_layoutrefreshbutton_clicked(self, _button):
(model, rowiter) = selected.get_selected()
name = model.get_value(rowiter, 0)

config_layout = self.config.base.get_layout(name)
dbg("layout from terminator:(%s)" % current_layout)
dbg("layout from config:(%s)" % config_layout)

self.config.copy_layout_item(config_layout, current_layout, 'directory')
self.config.copy_layout_item(config_layout, current_layout, 'command')
dbg("updated layout from terminator:(%s)" % current_layout)

if self.config.replace_layout(name, current_layout):
treeview.set_cursor(model.get_path(rowiter), column=treeview.get_column(0), start_editing=False)
self.config.save()
Expand Down Expand Up @@ -2163,7 +2171,7 @@ def on_layout_profile_command_activate(self, widget):

def on_layout_profile_workingdir_activate(self, widget):
"""A new working directory has been entered for this item"""
workdir = widget.get_text()
workdir = os.path.expanduser(widget.get_text())
layout = self.config.layout_get_config(self.layout_name)
layout[self.layout_item]['directory'] = workdir
self.config.save()
Expand Down
2 changes: 1 addition & 1 deletion terminatorlib/terminal.py
Original file line number Diff line number Diff line change
Expand Up @@ -1507,7 +1507,7 @@ def unzoom(self, widget=None):
def set_cwd(self, cwd=None):
"""Set our cwd"""
if cwd is not None:
self.cwd = cwd
self.cwd = os.path.expanduser(cwd)

def held_open(self, widget=None, respawn=False, debugserver=False):
self.is_held_open = True
Expand Down
Loading