From 95df85419b4f3c7c12f5ccacd07e9483b587a030 Mon Sep 17 00:00:00 2001 From: loathingKernel <142770+loathingKernel@users.noreply.github.com> Date: Tue, 24 Jan 2023 15:28:01 +0200 Subject: [PATCH] GameLaunchHelper: Enumerate valid actions and states from 1 instead of 0 Fixes potential boolean checks on the relevant attributes --- rare/game_launch_helper/console.py | 2 +- rare/models/game.py | 5 +++-- rare/models/launcher.py | 16 ++++++++-------- rare/shared/game_process.py | 4 ++-- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/rare/game_launch_helper/console.py b/rare/game_launch_helper/console.py index 9ee5a8a0..01d247f7 100644 --- a/rare/game_launch_helper/console.py +++ b/rare/game_launch_helper/console.py @@ -119,7 +119,7 @@ class Console(QDialog): def on_process_exit(self, app_title: str, status: Union[int, str]): self.error( - self.tr("Application \"{}\" finished with \"{}\"").format(app_title, status) + self.tr("Application \"{}\" finished with \"{}\"\n").format(app_title, status) ) self.accept_close = True diff --git a/rare/models/game.py b/rare/models/game.py index bc8df777..da2d7767 100644 --- a/rare/models/game.py +++ b/rare/models/game.py @@ -128,14 +128,14 @@ class RareGame(QObject): self.state = RareGame.State.RUNNING self.metadata.last_played = datetime.now() self.__save_metadata() - self.signals.game.launched.emit() + self.signals.game.launched.emit(self.app_name) @pyqtSlot(int) def __game_finished(self, exit_code: int): if exit_code == GameProcess.Code.ON_STARTUP: return self.state = RareGame.State.IDLE - self.signals.game.finished.emit() + self.signals.game.finished.emit(self.app_name) __metadata_json: Dict = None @@ -283,6 +283,7 @@ class RareGame(QObject): self.igame = None self.signals.game.uninstalled.emit(self.app_name) self.set_pixmap() + self.signals.widget.update.emit() @property def can_run_offline(self) -> bool: diff --git a/rare/models/launcher.py b/rare/models/launcher.py index 56183426..edcc5648 100644 --- a/rare/models/launcher.py +++ b/rare/models/launcher.py @@ -2,10 +2,11 @@ from dataclasses import dataclass class Actions: - finished = 0 - error = 1 - message = 2 - state_update = 3 + undefined = 0 + finished = 1 + error = 2 + message = 3 + state_update = 4 @dataclass @@ -38,11 +39,10 @@ class FinishedModel(BaseModel): @dataclass class StateChangedModel(BaseModel): class States: - started = 0 - + started = 1 # for future - syncing_cloud = 1 - cloud_sync_finished = 2 + syncing_cloud = 2 + cloud_sync_finished = 3 new_state: int diff --git a/rare/shared/game_process.py b/rare/shared/game_process.py index 537f5190..f6196249 100644 --- a/rare/shared/game_process.py +++ b/rare/shared/game_process.py @@ -20,6 +20,7 @@ class GameProcess(QObject): class Code(IntEnum): SUCCESS = 0 + ERROR = 1 TIMEOUT = -1 ON_STARTUP = -1234 @@ -93,10 +94,9 @@ class GameProcess(QObject): model = ErrorModel.from_json(data) logger.error(f"Error in game {self.game.app_title}: {model.error_string}") self.socket.close() - self.__game_finished(1) + self.__game_finished(GameProcess.Code.ERROR) QMessageBox.warning(None, "Error", self.tr( "Error in game {}:\n{}").format(self.game.app_title, model.error_string)) - elif action == Actions.state_update: model = StateChangedModel.from_json(data) if model.new_state == StateChangedModel.States.started: