From a597a8d86b122ce021d4657c6da9df5142a77b32 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 7 Aug 2021 15:31:03 +0530 Subject: [PATCH] Make the recent list functional --- kittens/themes/collection.py | 3 +++ kittens/themes/main.py | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/kittens/themes/collection.py b/kittens/themes/collection.py index 3771201e7..e7f0a601b 100644 --- a/kittens/themes/collection.py +++ b/kittens/themes/collection.py @@ -201,6 +201,9 @@ class Theme: def save_in_dir(self, dirpath: str) -> None: atomic_save(self.raw.encode('utf-8'), os.path.join(dirpath, f'{self.name}.conf')) + def save_in_conf(self, confdir: str) -> None: + atomic_save(self.raw.encode('utf-8'), os.path.join(confdir, 'current-theme.conf')) + class Themes: diff --git a/kittens/themes/main.py b/kittens/themes/main.py index e423d8d51..c3d8d8199 100644 --- a/kittens/themes/main.py +++ b/kittens/themes/main.py @@ -146,6 +146,13 @@ class ThemesHandler(Handler): self.line_edit = LineEdit() self.tabs = tuple('all dark light recent'.split()) + def update_recent(self) -> None: + r = list(self.cached_values.get('recent', ())) + if self.themes_list: + name = self.themes_list.current_theme.name + r = [name] + [x for x in r if x != name] + self.cached_values['recent'] = r[:20] + def enforce_cursor_state(self) -> None: self.cmd.set_cursor_visible(self.state == State.fetching) @@ -452,6 +459,12 @@ class ThemesHandler(Handler): return if key_event.matches('p'): self.themes_list.current_theme.save_in_dir(config_dir) + self.update_recent() + self.quit_loop(0) + return + if key_event.matches('m'): + self.themes_list.current_theme.save_in_conf(config_dir) + self.update_recent() self.quit_loop(0) return # }}}