Compare commits
1 Commits
rewrite-si
...
rewrite-sa
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6e3272cbf9 |
@@ -160,29 +160,35 @@ class Game(Gio.SimpleActionGroup):
|
|||||||
|
|
||||||
_GAMES_DIR.mkdir(parents=True, exist_ok=True)
|
_GAMES_DIR.mkdir(parents=True, exist_ok=True)
|
||||||
path = (_GAMES_DIR / self.game_id).with_suffix(".json")
|
path = (_GAMES_DIR / self.game_id).with_suffix(".json")
|
||||||
with path.open(encoding="utf-8") as f:
|
with path.open("w", encoding="utf-8") as f:
|
||||||
json.dump(properties, f, indent=4)
|
json.dump(properties, f, indent=4)
|
||||||
|
|
||||||
def _remove(self):
|
def _remove(self):
|
||||||
self.removed = True
|
self.removed = True
|
||||||
self._send(
|
self.save()
|
||||||
_("{} removed").format(self.name),
|
self._send(_("{} removed").format(self.name), undo=self._undo_remove)
|
||||||
undo=lambda: setattr(self, "removed", False),
|
|
||||||
)
|
def _undo_remove(self):
|
||||||
|
self.removed = False
|
||||||
|
self.save()
|
||||||
|
|
||||||
def _hide(self):
|
def _hide(self):
|
||||||
self.hidden = True
|
self.hidden = True
|
||||||
self._send(
|
self.save()
|
||||||
_("{} hidden").format(self.name),
|
self._send(_("{} hidden").format(self.name), undo=self._undo_hide)
|
||||||
undo=lambda: setattr(self, "hidden", False),
|
|
||||||
)
|
def _undo_hide(self):
|
||||||
|
self.hidden = False
|
||||||
|
self.save()
|
||||||
|
|
||||||
def _unhide(self):
|
def _unhide(self):
|
||||||
self.hidden = False
|
self.hidden = False
|
||||||
self._send(
|
self.save()
|
||||||
_("{} unhidden").format(self.name),
|
self._send(_("{} unhidden").format(self.name), undo=self._undo_unhide)
|
||||||
undo=lambda: setattr(self, "hidden", True),
|
|
||||||
)
|
def _undo_unhide(self):
|
||||||
|
self.hidden = True
|
||||||
|
self.save()
|
||||||
|
|
||||||
def _send(self, title: str, *, undo: Callable[[], Any]):
|
def _send(self, title: str, *, undo: Callable[[], Any]):
|
||||||
app = cast("Application", Gio.Application.get_default())
|
app = cast("Application", Gio.Application.get_default())
|
||||||
@@ -246,6 +252,10 @@ def load() -> Generator[Game]:
|
|||||||
except (JSONDecodeError, UnicodeDecodeError):
|
except (JSONDecodeError, UnicodeDecodeError):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
if data.get("removed"):
|
||||||
|
path.unlink()
|
||||||
|
continue
|
||||||
|
|
||||||
try:
|
try:
|
||||||
game = Game.from_data(data)
|
game = Game.from_data(data)
|
||||||
except TypeError:
|
except TypeError:
|
||||||
|
|||||||
@@ -117,6 +117,7 @@ class GameDetails(Adw.NavigationPage):
|
|||||||
self.game.added = int(time.time())
|
self.game.added = int(time.time())
|
||||||
games.model.append(self.game)
|
games.model.append(self.game)
|
||||||
|
|
||||||
|
self.game.save()
|
||||||
self.stack.props.visible_child_name = "details"
|
self.stack.props.visible_child_name = "details"
|
||||||
|
|
||||||
@Gtk.Template.Callback()
|
@Gtk.Template.Callback()
|
||||||
|
|||||||
Reference in New Issue
Block a user