gui: make key bindings really work

This commit is contained in:
2019-06-26 13:57:29 +02:00
parent 59ec9f6abf
commit d15f8fd2ae

View File

@@ -18,6 +18,14 @@ ALACRITTY_CONFIG = os.path.expanduser("~/.config/alacritty/alacritty.yml")
NAME = 'Alacritty Config' NAME = 'Alacritty Config'
# TODO
# General
# visual bell
# cursor
# mouse
# mouse_bindings
def delete_layout_items(layout): def delete_layout_items(layout):
while layout.count(): while layout.count():
item = layout.takeAt(0) item = layout.takeAt(0)
@@ -373,7 +381,9 @@ class ConfigWidget(QtWidgets.QWidget):
def widgets_to_state(self, widgets): def widgets_to_state(self, widgets):
state = {} state = {}
for name, widget in widgets.items(): for name, widget in widgets.items():
if type(widget) is dict: if not name:
return self.widget_value(widget)
elif type(widget) is dict:
state[name] = self.widgets_to_state(widget) state[name] = self.widgets_to_state(widget)
else: else:
state[name] = self.widget_value(widget) state[name] = self.widget_value(widget)
@@ -681,7 +691,7 @@ class KeyBindings(ConfigWidget):
keybindings = KeyBindingsWidget(config) keybindings = KeyBindingsWidget(config)
self.widgets = { self.widgets = {
'key_bindings': keybindings, '': keybindings,
} }
self.render_state() self.render_state()
@@ -726,8 +736,12 @@ class Config(QtWidgets.QWidget):
for idx in range(self.tabs.count()): for idx in range(self.tabs.count()):
tab = self.tabs.widget(idx) tab = self.tabs.widget(idx)
title = self.tabs.tabText(idx).lower() title = "_".join(self.tabs.tabText(idx).lower().split(" "))
state[title] = {**state.get(title, {}), **tab.gather_state()} old = state.get(title, {})
if type(old) == list:
state[title].extend(e for e in tab.gather_state() if e not in old)
else:
state[title] = {**state.get(title, {}), **tab.gather_state()}
return state return state