GlobalSignals: Reorganize signals into groups
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
This commit is contained in:
parent
83df445de9
commit
9ca39d94ab
12 changed files with 56 additions and 34 deletions
|
@ -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),
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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():
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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
|
|
@ -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()
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue