summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Schadt <kingdread@gmx.de>2022-05-28 17:14:45 +0200
committerDaniel Schadt <kingdread@gmx.de>2022-05-28 17:14:45 +0200
commit470928c49a80ef5e9273faa499bbd03ef5d5e6ab (patch)
tree91b33da5b0cd84c373b270bacc05281cab08c615
parented1c28e5418d90547f8ee53b4391d68453547da7 (diff)
downloadtf2sgu-470928c49a80ef5e9273faa499bbd03ef5d5e6ab.tar.gz
tf2sgu-470928c49a80ef5e9273faa499bbd03ef5d5e6ab.tar.bz2
tf2sgu-470928c49a80ef5e9273faa499bbd03ef5d5e6ab.zip
add autosave filter
-rwxr-xr-xtf2sgu21
1 files changed, 21 insertions, 0 deletions
diff --git a/tf2sgu b/tf2sgu
index 99e23e0..8dc870e 100755
--- a/tf2sgu
+++ b/tf2sgu
@@ -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()