1
0
Fork 0
mirror of synced 2024-06-22 04:20:25 +12:00

GlobalSignals: Reorganize signals into groups

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
This commit is contained in:
loathingKernel 2022-12-28 19:55:15 +02:00
parent 83df445de9
commit 9ca39d94ab
12 changed files with 56 additions and 34 deletions

View file

@ -68,7 +68,7 @@ class MainWindow(QMainWindow):
self.tray_icon.show_app.connect(self.show)
self.tray_icon.activated.connect(lambda r: self.toggle() if r == self.tray_icon.DoubleClick else None)
self.signals.send_notification.connect(
self.signals.application.notify.connect(
lambda title: self.tray_icon.showMessage(
self.tr("Download finished"),
self.tr("Download finished. {} is playable now").format(title),

View file

@ -72,10 +72,10 @@ class TabWidget(QTabWidget):
)
# Signals
# set current index
self.signals.set_main_tab_index.connect(self.setCurrentIndex)
# self.signals.set_main_tab_index.connect(self.setCurrentIndex)
# update dl tab text
self.signals.update_download_tab_text.connect(self.update_dl_tab_text)
self.signals.download.update_tab.connect(self.update_dl_tab_text)
# Open game list on click on Games tab button
self.tabBarClicked.connect(self.mouse_clicked)

View file

@ -118,7 +118,7 @@ class DownloadsTab(QWidget, Ui_DownloadsTab):
if len(self.update_widgets) == 0:
self.update_text.setVisible(True)
self.signals.update_download_tab_text.emit()
self.signals.download.update_tab.emit()
def update_dl_queue(self, dl_queue):
self.dl_queue = dl_queue
@ -180,9 +180,9 @@ class DownloadsTab(QWidget, Ui_DownloadsTab):
):
self.remove_update(game.app_name)
self.signals.send_notification.emit(game.app_title)
self.signals.application.notify.emit(game.app_title)
self.signals.game.installed.emit([game.app_name])
self.signals.update_download_tab_text.emit()
self.signals.download.update_tab.emit()
self.signals.progress.finished.emit(game.app_name, True)
@ -244,7 +244,7 @@ class DownloadsTab(QWidget, Ui_DownloadsTab):
if w := self.update_widgets.get(download_item.options.app_name):
w.update_button.setDisabled(True)
w.update_with_settings.setDisabled(True)
self.signals.set_main_tab_index.emit(1)
# self.signals.set_main_tab_index.emit(1)
else:
if w := self.update_widgets.get(download_item.options.app_name):
w.update_button.setDisabled(False)

View file

@ -87,7 +87,7 @@ class DownloadThread(QThread):
ret.ret_code = ret.ReturnCode.FINISHED
if self.item.options.overlay:
self.signals.overlay_installation_finished.emit()
self.signals.application.overlay_installed.emit()
self.core.finish_overlay_install(self.item.download.igame)
self.ret_status.emit(ret)
return

View file

@ -57,8 +57,8 @@ class EOSGroup(QGroupBox, Ui_EosWidget):
self.update_button.setVisible(False)
self.overlay = self.core.lgd.get_overlay_install_info()
self.signals.overlay_installation_finished.connect(self.overlay_installation_finished)
self.signals.wine_prefix_updated.connect(self.update_prefixes)
self.signals.application.overlay_installed.connect(self.overlay_installation_finished)
self.signals.application.prefix_updated.connect(self.update_prefixes)
self.update_check_button.clicked.connect(self.check_for_update)
self.install_button.clicked.connect(self.install_overlay)
@ -221,7 +221,7 @@ class EOSGroup(QGroupBox, Ui_EosWidget):
options = InstallOptionsModel(app_name="", base_path=base_path,
platform="Windows", overlay=True)
self.signals.install_game.emit(options)
self.signals.game.install.emit(options)
def uninstall_overlay(self):
if not self.core.is_overlay_installed():

View file

@ -285,7 +285,7 @@ class ImportGroup(QGroupBox):
if igame and igame.version != self.core.get_asset(igame.app_name, igame.platform, False).build_version:
# update available
self.signals.download.enqueue_game.emit(igame.app_name)
self.signals.update_download_tab_text.emit()
self.signals.download.update_tab.emit()
if len(result) == 1:
res = result[0]

View file

@ -13,7 +13,7 @@ class DebugSettings(QWidget):
self.raise_runtime_exception_button.clicked.connect(self.raise_exception)
self.restart_button = QPushButton("Restart")
self.layout().addWidget(self.restart_button)
self.restart_button.clicked.connect(lambda: GlobalSignalsSingleton().exit_app.emit(-133742))
self.restart_button.clicked.connect(lambda: GlobalSignalsSingleton().application.quit.emit(-133742))
self.layout().addStretch(1)

View file

@ -68,7 +68,7 @@ class LinuxSettings(QWidget, Ui_LinuxSettings):
def save_prefix(self, text: str):
self.save_setting(text, f"{self.name}.env", "WINEPREFIX")
self.save_setting(text, self.name, "wine_prefix")
self.signals.wine_prefix_updated.emit()
self.signals.application.prefix_updated.emit()
def load_setting(self, section: str, setting: str, fallback: str = str()):
return self.core.lgd.config.get(section, setting, fallback=fallback)

View file

@ -39,4 +39,4 @@ class RPCSettings(QGroupBox, Ui_RPCSettings):
def changed(self, i):
self.settings.setValue("rpc_enable", i)
self.signals.rpc_settings_updated.emit()
self.signals.discord_rpc.apply_settings.emit()

View file

@ -3,12 +3,20 @@ from PyQt5.QtCore import QObject, pyqtSignal
from .install import InstallOptionsModel
class GlobalSignals(QObject):
exit_app = pyqtSignal(int) # exit code
send_notification = pyqtSignal(str) # app_title
class GlobalSignals:
set_main_tab_index = pyqtSignal(int) # tab index
update_download_tab_text = pyqtSignal()
# set_main_tab_index = pyqtSignal(int) # tab index
# update_gamelist = pyqtSignal(list)
class ApplicationSignals(QObject):
# int: exit code
quit = pyqtSignal(int)
# str: app_title
notify = pyqtSignal(str)
# none
prefix_updated = pyqtSignal()
# none
overlay_installed = pyqtSignal()
class ProgressSignals(QObject):
# str: app_name
@ -17,29 +25,43 @@ class GlobalSignals(QObject):
value = pyqtSignal(str, int)
# str: app_name, bool: stopped
finished = pyqtSignal(str, bool)
progress = ProgressSignals()
class GameSignals(QObject):
install = pyqtSignal(InstallOptionsModel)
# list of app_name
# list: app_name
installed = pyqtSignal(list)
# str: app_name
uninstalled = pyqtSignal(str)
# str: app_name
verified = pyqtSignal(str)
game = GameSignals()
class DownloadSignals(QObject):
# str: app_name
enqueue_game = pyqtSignal(str)
download = DownloadSignals()
# none
update_tab = pyqtSignal()
overlay_installation_finished = pyqtSignal()
class DiscordRPCSignals(QObject):
# str: app_title
set_title = pyqtSignal(str)
# none
apply_settings = pyqtSignal()
# update_gamelist = pyqtSignal(list)
# game_uninstalled = pyqtSignal(str)
def __init__(self):
self.application = GlobalSignals.ApplicationSignals()
self.progress = GlobalSignals.ProgressSignals()
self.game = GlobalSignals.GameSignals()
self.download = GlobalSignals.DownloadSignals()
self.discord_rpc = GlobalSignals.DiscordRPCSignals()
set_discord_rpc = pyqtSignal(str) # app_name of running game
rpc_settings_updated = pyqtSignal()
wine_prefix_updated = pyqtSignal()
def deleteLater(self):
self.application.deleteLater()
del self.application
self.progress.deleteLater()
del self.progress
self.game.deleteLater()
del self.game
self.download.deleteLater()
del self.download
self.discord_rpc.deleteLater()
del self.discord_rpc

View file

@ -293,7 +293,7 @@ class GameUtils(QObject):
self.finished.emit(app_name, "")
logger.info(f"Game exited with exit code: {exit_code}")
self.signals.set_discord_rpc.emit("")
self.signals.discord_rpc.set_title.emit("")
is_origin = self.core.get_game(app_name).third_party_store == "Origin"
if exit_code == 1 and is_origin:
msg_box = QMessageBox()

View file

@ -25,8 +25,8 @@ class DiscordRPC(QObject):
self.state = 2
self.set_discord_rpc()
self.signals.set_discord_rpc.connect(self.update_presence)
self.signals.rpc_settings_updated.connect(self.changed_settings)
self.signals.discord_rpc.set_title.connect(self.update_presence)
self.signals.discord_rpc.apply_settings.connect(self.changed_settings)
def update_presence(self, app_name):
self.set_discord_rpc(app_name)