diff --git a/src/game.py b/src/game.py index 60d1336..8b0dbf5 100644 --- a/src/game.py +++ b/src/game.py @@ -17,12 +17,15 @@ # # SPDX-License-Identifier: GPL-3.0-or-later +import json import os import subprocess import sys from gi.repository import GdkPixbuf, Gio, Gtk +from .save_games import save_games + @Gtk.Template(resource_path="/hu/kramo/Cartridges/gtk/game.ui") class game(Gtk.Box): # pylint: disable=invalid-name @@ -80,6 +83,24 @@ class game(Gtk.Box): # pylint: disable=invalid-name if Gio.Settings.new("hu.kramo.Cartridges").get_boolean("exit-after-launch"): sys.exit() + def toggle_hidden(self): + games_dir = os.path.join( + os.getenv("XDG_DATA_HOME") + or os.path.expanduser(os.path.join("~", ".local", "share")), + "cartridges", + "games", + ) + + if not os.path.exists(games_dir): + return + + with open(os.path.join(games_dir, f"{self.game_id}.json"), "r") as open_file: + data = json.loads(open_file.read()) + + data["hidden"] = not data["hidden"] + + save_games({self.game_id: data}) + def get_cover(self): # If the cover is already in memory, return diff --git a/src/main.py b/src/main.py index ce5c3ff..553a7b4 100644 --- a/src/main.py +++ b/src/main.py @@ -36,7 +36,6 @@ from .heroic_parser import heroic_parser from .preferences import PreferencesWindow from .save_games import save_games from .steam_parser import steam_parser -from .toggle_hidden import toggle_hidden from .window import CartridgesWindow @@ -167,7 +166,7 @@ class CartridgesApplication(Adw.Application): def on_hide_game_action(self, _widget, _callback=None): if self.win.stack.get_visible_child() == self.win.overview: self.win.on_go_back_action(None, None) - toggle_hidden(self.win.active_game_id) + self.win.games[self.win.active_game_id].toggle_hidden() self.win.update_games([self.win.active_game_id]) def on_edit_details_action(self, _widget, _callback=None): diff --git a/src/meson.build b/src/meson.build index ab407c0..32b0b14 100644 --- a/src/meson.build +++ b/src/meson.build @@ -28,7 +28,6 @@ cartridges_sources = [ 'utils/get_games.py', 'utils/save_games.py', 'utils/save_cover.py', - 'utils/toggle_hidden.py', 'utils/create_dialog.py', 'utils/create_details_window.py' ] diff --git a/src/utils/toggle_hidden.py b/src/utils/toggle_hidden.py deleted file mode 100644 index 21dc9b1..0000000 --- a/src/utils/toggle_hidden.py +++ /dev/null @@ -1,42 +0,0 @@ -# toggle_hidden.py -# -# Copyright 2022-2023 kramo -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -# SPDX-License-Identifier: GPL-3.0-or-later - -import json -import os - -from .save_games import save_games - - -def toggle_hidden(game): - games_dir = os.path.join( - os.getenv("XDG_DATA_HOME") - or os.path.expanduser(os.path.join("~", ".local", "share")), - "cartridges", - "games", - ) - - if not os.path.exists(games_dir): - return - - with open(os.path.join(games_dir, f"{game}.json"), "r") as open_file: - data = json.loads(open_file.read()) - - data["hidden"] = not data["hidden"] - - save_games({data["game_id"]: data})