Delete animated covers properly
This commit is contained in:
@@ -346,6 +346,9 @@ class PreferencesWindow(Adw.PreferencesWindow):
|
|||||||
deleted_covers_dir = (
|
deleted_covers_dir = (
|
||||||
self.parent_widget.cache_dir / "cartridges" / "deleted_covers"
|
self.parent_widget.cache_dir / "cartridges" / "deleted_covers"
|
||||||
)
|
)
|
||||||
|
deleted_animated_covers_dir = (
|
||||||
|
self.parent_widget.cache_dir / "cartridges" / "deleted_animated_covers"
|
||||||
|
)
|
||||||
|
|
||||||
for game_id in self.removed_games:
|
for game_id in self.removed_games:
|
||||||
data = get_games(self.parent_widget, [game_id])[game_id]
|
data = get_games(self.parent_widget, [game_id])[game_id]
|
||||||
@@ -360,6 +363,14 @@ class PreferencesWindow(Adw.PreferencesWindow):
|
|||||||
/ "covers"
|
/ "covers"
|
||||||
/ f"{game_id}.tiff",
|
/ f"{game_id}.tiff",
|
||||||
)
|
)
|
||||||
|
if (deleted_animated_covers_dir / f"{game_id}.gif").is_file():
|
||||||
|
move(
|
||||||
|
deleted_animated_covers_dir / f"{game_id}.gif",
|
||||||
|
self.parent_widget.data_dir
|
||||||
|
/ "cartridges"
|
||||||
|
/ "animated_covers"
|
||||||
|
/ f"{game_id}.gif",
|
||||||
|
)
|
||||||
self.parent_widget.update_games(self.removed_games)
|
self.parent_widget.update_games(self.removed_games)
|
||||||
self.removed_games = []
|
self.removed_games = []
|
||||||
self.toast.dismiss()
|
self.toast.dismiss()
|
||||||
@@ -370,6 +381,11 @@ class PreferencesWindow(Adw.PreferencesWindow):
|
|||||||
)
|
)
|
||||||
deleted_covers_dir.mkdir(parents=True, exist_ok=True)
|
deleted_covers_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
|
deleted_animated_covers_dir = (
|
||||||
|
self.parent_widget.cache_dir / "cartridges" / "deleted_animated_covers"
|
||||||
|
)
|
||||||
|
deleted_animated_covers_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
for game in get_games(self.parent_widget).values():
|
for game in get_games(self.parent_widget).values():
|
||||||
if "removed" not in game:
|
if "removed" not in game:
|
||||||
self.removed_games.append(game["game_id"])
|
self.removed_games.append(game["game_id"])
|
||||||
@@ -383,8 +399,20 @@ class PreferencesWindow(Adw.PreferencesWindow):
|
|||||||
/ f'{game["game_id"]}.tiff'
|
/ f'{game["game_id"]}.tiff'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
animated_cover_path = (
|
||||||
|
self.parent_widget.data_dir
|
||||||
|
/ "cartridges"
|
||||||
|
/ "animated_covers"
|
||||||
|
/ f'{game["game_id"]}.gif'
|
||||||
|
)
|
||||||
|
|
||||||
if cover_path.is_file():
|
if cover_path.is_file():
|
||||||
move(cover_path, deleted_covers_dir / f'{game["game_id"]}.tiff')
|
move(cover_path, deleted_covers_dir / f'{game["game_id"]}.tiff')
|
||||||
|
if animated_cover_path.is_file():
|
||||||
|
move(
|
||||||
|
animated_cover_path,
|
||||||
|
deleted_animated_covers_dir / f'{game["game_id"]}.gif',
|
||||||
|
)
|
||||||
|
|
||||||
self.parent_widget.update_games(self.parent_widget.games)
|
self.parent_widget.update_games(self.parent_widget.games)
|
||||||
if self.parent_widget.stack.get_visible_child() == self.parent_widget.overview:
|
if self.parent_widget.stack.get_visible_child() == self.parent_widget.overview:
|
||||||
|
|||||||
@@ -113,6 +113,9 @@ class CartridgesWindow(Adw.ApplicationWindow):
|
|||||||
(self.data_dir / "cartridges" / "covers" / f"{game_id}.tiff").unlink(
|
(self.data_dir / "cartridges" / "covers" / f"{game_id}.tiff").unlink(
|
||||||
missing_ok=True
|
missing_ok=True
|
||||||
)
|
)
|
||||||
|
(
|
||||||
|
self.data_dir / "cartridges" / "animated_covers" / f"{game_id}.gif"
|
||||||
|
).unlink(missing_ok=True)
|
||||||
|
|
||||||
rmtree(self.cache_dir / "cartridges" / "deleted_covers", True)
|
rmtree(self.cache_dir / "cartridges" / "deleted_covers", True)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user