diff --git a/rare/components/tabs/games/game_utils.py b/rare/components/tabs/games/game_utils.py index c2022090..073262c2 100644 --- a/rare/components/tabs/games/game_utils.py +++ b/rare/components/tabs/games/game_utils.py @@ -250,6 +250,7 @@ class GameUtils(QObject): process.start(full_params[0], full_params[1:]) self.game_launched.emit(app_name) + self.signals.set_discord_rpc.emit(app_name) logger.info(f"{game.app_title} launched") self.running_games[game.app_name] = running_game @@ -316,6 +317,7 @@ class GameUtils(QObject): def game_finished(self, exit_code, app_name): logger.info(f"Game exited with exit code: {exit_code}") + self.signals.set_discord_rpc.emit("") is_origin = self.core.get_game(app_name).third_party_store == "Origin" if exit_code == 53 and is_origin: msg_box = QMessageBox() diff --git a/rare/components/tabs/settings/rpc.py b/rare/components/tabs/settings/rpc.py index bf51e78c..34996947 100644 --- a/rare/components/tabs/settings/rpc.py +++ b/rare/components/tabs/settings/rpc.py @@ -1,6 +1,7 @@ from PyQt5.QtCore import QSettings from PyQt5.QtWidgets import QGroupBox +from rare.shared import GlobalSignalsSingleton from rare.ui.components.tabs.settings.rpc import Ui_RPCSettings @@ -8,6 +9,7 @@ class RPCSettings(QGroupBox, Ui_RPCSettings): def __init__(self, parent): super(RPCSettings, self).__init__(parent=parent) self.setupUi(self) + self.signals = GlobalSignalsSingleton() self.settings = QSettings() @@ -31,3 +33,4 @@ class RPCSettings(QGroupBox, Ui_RPCSettings): def changed(self, i): self.settings.setValue("rpc_enable", i) + self.signals.rpc_settings_updated.emit() diff --git a/rare/utils/models.py b/rare/utils/models.py index f175aec1..d017f9d3 100644 --- a/rare/utils/models.py +++ b/rare/utils/models.py @@ -142,5 +142,6 @@ class GlobalSignals(QObject): game_uninstalled = pyqtSignal(str) set_discord_rpc = pyqtSignal(str) # app_name of running game + rpc_settings_updated = pyqtSignal() wine_prefix_updated = pyqtSignal() diff --git a/rare/utils/rpc.py b/rare/utils/rpc.py index 3aef3cf5..f6fd90e7 100644 --- a/rare/utils/rpc.py +++ b/rare/utils/rpc.py @@ -26,11 +26,12 @@ class DiscordRPC(QObject): self.set_discord_rpc() self.signals.set_discord_rpc.connect(self.update_presence) + self.signals.rpc_settings_updated.connect(self.changed_settings) def update_presence(self, app_name): self.set_discord_rpc(app_name) - def changed_settings(self, game_running: list): + def changed_settings(self, game_running: list = None): value = self.settings.value("rpc_enable", 0, int) if value == 2: self.remove_rpc() @@ -85,7 +86,7 @@ class DiscordRPC(QObject): def update_rpc(self, app_name=None): if self.settings.value("rpc_enable", 0, int) == 2 or ( - app_name is None and self.settings.value("rpc_enable", 0, int) == 0 + not app_name and self.settings.value("rpc_enable", 0, int) == 0 ): self.remove_rpc() return