1
0
Fork 0
mirror of synced 2024-06-26 10:11:19 +12:00

Fix Discord RPC

This commit is contained in:
Dummerle 2022-03-09 22:16:45 +01:00
parent 063e7ddbaf
commit 36e84bce9f
No known key found for this signature in database
GPG key ID: AB68CC59CA39F2F1
4 changed files with 9 additions and 2 deletions

View file

@ -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()

View file

@ -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()

View file

@ -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()

View file

@ -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