diff options
author | Daniel Schadt <kingdread@gmx.de> | 2022-05-28 17:14:45 +0200 |
---|---|---|
committer | Daniel Schadt <kingdread@gmx.de> | 2022-05-28 17:14:45 +0200 |
commit | 470928c49a80ef5e9273faa499bbd03ef5d5e6ab (patch) | |
tree | 91b33da5b0cd84c373b270bacc05281cab08c615 | |
parent | ed1c28e5418d90547f8ee53b4391d68453547da7 (diff) | |
download | tf2sgu-470928c49a80ef5e9273faa499bbd03ef5d5e6ab.tar.gz tf2sgu-470928c49a80ef5e9273faa499bbd03ef5d5e6ab.tar.bz2 tf2sgu-470928c49a80ef5e9273faa499bbd03ef5d5e6ab.zip |
add autosave filter
-rwxr-xr-x | tf2sgu | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -37,6 +37,10 @@ class SaveGame(namedtuple("SaveGame", "name date base")): logging.debug(f"Copying {src!r} -> {dst!r}") shutil.copy2(src, dst) + def is_autosave(self): + """Returns whether this save is an autosave.""" + return self.name.startswith("autosave_") + class UserException(Exception): """Exception that shouldbe displayed to the user.""" @@ -301,6 +305,9 @@ class TuiListView: self.scr.addnstr(row + 1, 1, str_item, width - 2, attr) self.scr.refresh() + def erase(self): + self.scr.erase() + def up(self): if self.selection == 0: return @@ -398,15 +405,26 @@ class Tui: "<Tab> to switch panel", "<Enter> to copy", "<r> to refresh", + "<h> to hide autosaves", "<q> to quit", ] self.views = [None, None] + self.hide_autosaves = False def reload(self): local_saves = self.profile.saves() remote_saves = read_saves(self.args.remote_dir) + if self.hide_autosaves: + local_saves = [s for s in local_saves if not s.is_autosave()] + remote_saves = [s for s in remote_saves if not s.is_autosave()] self.views[0].set_items(local_saves) self.views[1].set_items(remote_saves) + for view in self.views: + view.erase() + + def toggle_autosaves(self): + self.hide_autosaves = not self.hide_autosaves + self.reload() def init_layout(self): import curses @@ -471,6 +489,9 @@ class Tui: elif char in {ord("R"), ord("r")}: self.reload() + elif char in {ord("H"), ord("h")}: + self.toggle_autosaves() + elif char in {10, curses.KEY_ENTER}: try: item = self.views[active].selected_item() |