Add many rpc settings
This commit is contained in:
parent
8cf1eb4cba
commit
6787a6c282
3 changed files with 86 additions and 17 deletions
|
@ -14,11 +14,11 @@ class MainWindow(QMainWindow):
|
||||||
|
|
||||||
def __init__(self, core: LegendaryCore):
|
def __init__(self, core: LegendaryCore):
|
||||||
super(MainWindow, self).__init__()
|
super(MainWindow, self).__init__()
|
||||||
settings = QSettings()
|
self.settings = QSettings()
|
||||||
self.core = core
|
self.core = core
|
||||||
width, height = 1200, 800
|
width, height = 1200, 800
|
||||||
if settings.value("save_size", False):
|
if self.settings.value("save_size", False):
|
||||||
width, height = settings.value("window_size", (1200, 800), tuple)
|
width, height = self.settings.value("window_size", (1200, 800), tuple)
|
||||||
|
|
||||||
self.setGeometry(0, 0, width, height)
|
self.setGeometry(0, 0, width, height)
|
||||||
self.setWindowTitle("Rare - GUI for legendary")
|
self.setWindowTitle("Rare - GUI for legendary")
|
||||||
|
@ -30,25 +30,55 @@ class MainWindow(QMainWindow):
|
||||||
game = self.tab_widget.games_tab.default_widget.game_list.active_game
|
game = self.tab_widget.games_tab.default_widget.game_list.active_game
|
||||||
if game != ("", 0):
|
if game != ("", 0):
|
||||||
self.set_discord_rpc(game[0]) # Appname
|
self.set_discord_rpc(game[0]) # Appname
|
||||||
|
self.RPC = None
|
||||||
|
if self.settings.value("rpc_enable", 0, int) == 1: # show always
|
||||||
|
self.RPC = Presence("830732538225360908")
|
||||||
|
self.RPC.connect()
|
||||||
|
self.update_rpc()
|
||||||
self.show()
|
self.show()
|
||||||
|
|
||||||
def remove_rpc(self):
|
def remove_rpc(self):
|
||||||
self.RPC.clear()
|
if self.settings.value("rpc_enable", 0, int) != 1:
|
||||||
self.RPC.close()
|
if not self.RPC:
|
||||||
del self.RPC
|
return
|
||||||
|
self.RPC.close()
|
||||||
|
del self.RPC
|
||||||
|
self.RPC = None
|
||||||
|
else:
|
||||||
|
self.update_rpc()
|
||||||
|
|
||||||
def set_discord_rpc(self, app_name):
|
def set_discord_rpc(self, app_name):
|
||||||
self.RPC = Presence("830732538225360908") # Rare app: https://discord.com/developers/applications
|
if not self.RPC:
|
||||||
self.RPC.connect()
|
self.RPC = Presence("830732538225360908") # Rare app: https://discord.com/developers/applications
|
||||||
title = self.core.get_installed_game(app_name).title
|
self.RPC.connect()
|
||||||
start = str(time.time()).split(".")[0]
|
self.update_rpc(app_name)
|
||||||
self.RPC.update(large_image="logo", details=title, large_text=title,
|
|
||||||
state="via Rare on " + platform.system(), start=start)
|
def update_rpc(self, app_name=None):
|
||||||
|
if self.settings.value("rpc_enable", 0, int) == 2:
|
||||||
|
self.remove_rpc()
|
||||||
|
return
|
||||||
|
title = None
|
||||||
|
if not app_name:
|
||||||
|
self.RPC.update(large_image="logo",
|
||||||
|
details="https://github.com/Dummerle/Rare")
|
||||||
|
return
|
||||||
|
if self.settings.value("rpc_name", True, bool):
|
||||||
|
title = self.core.get_installed_game(app_name).title
|
||||||
|
start = None
|
||||||
|
if self.settings.value("rpc_time", True, bool):
|
||||||
|
start = str(time.time()).split(".")[0]
|
||||||
|
os = None
|
||||||
|
if self.settings.value("rpc_os", True, bool):
|
||||||
|
os = "via Rare on " + platform.system()
|
||||||
|
|
||||||
|
self.RPC.update(large_image="logo",
|
||||||
|
details=title,
|
||||||
|
large_text=title,
|
||||||
|
state=os,
|
||||||
|
start=start)
|
||||||
|
|
||||||
def closeEvent(self, e: QCloseEvent):
|
def closeEvent(self, e: QCloseEvent):
|
||||||
settings = QSettings()
|
if self.settings.value("sys_tray", True, bool):
|
||||||
if settings.value("sys_tray", True, bool):
|
|
||||||
self.hide()
|
self.hide()
|
||||||
e.ignore()
|
e.ignore()
|
||||||
return
|
return
|
||||||
|
@ -56,8 +86,8 @@ class MainWindow(QMainWindow):
|
||||||
if not QMessageBox.question(self, "Close", self.tr("There is a download active. Do you really want to exit app?"), QMessageBox.Yes, QMessageBox.No) == QMessageBox.Yes:
|
if not QMessageBox.question(self, "Close", self.tr("There is a download active. Do you really want to exit app?"), QMessageBox.Yes, QMessageBox.No) == QMessageBox.Yes:
|
||||||
e.ignore()
|
e.ignore()
|
||||||
return
|
return
|
||||||
if settings.value("save_size", False, bool):
|
if self.settings.value("save_size", False, bool):
|
||||||
size = self.size().width(), self.size().height()
|
size = self.size().width(), self.size().height()
|
||||||
settings.setValue("window_size", size)
|
self.settings.setValue("window_size", size)
|
||||||
e.accept()
|
e.accept()
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ from logging import getLogger
|
||||||
from PyQt5.QtCore import QSettings, Qt
|
from PyQt5.QtCore import QSettings, Qt
|
||||||
from PyQt5.QtWidgets import QVBoxLayout, QFileDialog, QComboBox, QPushButton, QCheckBox, QGroupBox, QScrollArea
|
from PyQt5.QtWidgets import QVBoxLayout, QFileDialog, QComboBox, QPushButton, QCheckBox, QGroupBox, QScrollArea
|
||||||
|
|
||||||
|
from rare.components.tabs.settings.rpc_settings import RPCSettings
|
||||||
from rare.components.tabs.settings.settings_widget import SettingsWidget
|
from rare.components.tabs.settings.settings_widget import SettingsWidget
|
||||||
from rare.utils.extra_widgets import PathEdit
|
from rare.utils.extra_widgets import PathEdit
|
||||||
from rare.utils.utils import get_lang, get_possible_langs
|
from rare.utils.utils import get_lang, get_possible_langs
|
||||||
|
@ -55,6 +56,9 @@ class RareSettings(QScrollArea):
|
||||||
self.sys_tray_widget = SettingsWidget(self.tr("Exit to System Tray Icon"), self.exit_to_sys_tray)
|
self.sys_tray_widget = SettingsWidget(self.tr("Exit to System Tray Icon"), self.exit_to_sys_tray)
|
||||||
self.layout.addWidget(self.sys_tray_widget)
|
self.layout.addWidget(self.sys_tray_widget)
|
||||||
|
|
||||||
|
self.rpc = RPCSettings()
|
||||||
|
self.layout.addWidget(self.rpc)
|
||||||
|
|
||||||
self.game_start_accept = QCheckBox(self.tr("Confirm launch of game"))
|
self.game_start_accept = QCheckBox(self.tr("Confirm launch of game"))
|
||||||
self.game_start_accept.stateChanged.connect(lambda x: self.settings.setValue("confirm_start", self.game_start_accept.isChecked()))
|
self.game_start_accept.stateChanged.connect(lambda x: self.settings.setValue("confirm_start", self.game_start_accept.isChecked()))
|
||||||
self.game_start_accept_widget = SettingsWidget(self.tr("Confirm launch of game"), self.game_start_accept)
|
self.game_start_accept_widget = SettingsWidget(self.tr("Confirm launch of game"), self.game_start_accept)
|
||||||
|
|
35
rare/components/tabs/settings/rpc_settings.py
Normal file
35
rare/components/tabs/settings/rpc_settings.py
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
from PyQt5.QtCore import QSettings
|
||||||
|
from PyQt5.QtWidgets import QGroupBox, QCheckBox, QVBoxLayout, QComboBox
|
||||||
|
|
||||||
|
|
||||||
|
class RPCSettings(QGroupBox):
|
||||||
|
def __init__(self):
|
||||||
|
super(RPCSettings, self).__init__()
|
||||||
|
self.setTitle(self.tr("Discord RPC"))
|
||||||
|
self.setObjectName("settings_widget")
|
||||||
|
self.settings = QSettings()
|
||||||
|
self.layout = QVBoxLayout()
|
||||||
|
|
||||||
|
self.enable = QComboBox()
|
||||||
|
self.enable_states = [self.tr("Show when playing"), self.tr("Show always"), self.tr("Show never")]
|
||||||
|
self.enable.addItems(self.enable_states)
|
||||||
|
self.enable.setCurrentIndex(self.settings.value("rpc_enable", 0, int))
|
||||||
|
self.layout.addWidget(self.enable)
|
||||||
|
self.enable.currentIndexChanged.connect(lambda i: self.settings.setValue("rpc_enable", i))
|
||||||
|
|
||||||
|
self.show_game = QCheckBox(self.tr("Show Game"))
|
||||||
|
self.show_game.setChecked((self.settings.value("rpc_name", True, bool)))
|
||||||
|
self.layout.addWidget(self.show_game)
|
||||||
|
self.show_game.stateChanged.connect(lambda: self.settings.setValue("rpc_game", self.show_game.isChecked()))
|
||||||
|
|
||||||
|
self.show_os = QCheckBox(self.tr("Show OS"))
|
||||||
|
self.layout.addWidget(self.show_os)
|
||||||
|
self.show_os.setChecked((self.settings.value("rpc_os", True, bool)))
|
||||||
|
self.show_os.stateChanged.connect(lambda: self.settings.setValue("rpc_os", self.show_os.isChecked()))
|
||||||
|
|
||||||
|
self.show_time = QCheckBox(self.tr("Show Time playing"))
|
||||||
|
self.layout.addWidget(self.show_time)
|
||||||
|
self.show_time.setChecked((self.settings.value("rpc_time", True, bool)))
|
||||||
|
self.show_time.stateChanged.connect(lambda: self.settings.setValue("rpc_time", self.show_time.isChecked()))
|
||||||
|
|
||||||
|
self.setLayout(self.layout)
|
Loading…
Reference in a new issue