From 0e161eb4d2c1917645abac24d4ac095733fc60ae Mon Sep 17 00:00:00 2001 From: loathingKernel <142770+loathingKernel@users.noreply.github.com> Date: Mon, 27 Feb 2023 23:49:44 +0200 Subject: [PATCH] Use `Worker` base class for runnables in legendary settings and ubisoft widget. Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com> --- .../tabs/games/integrations/ubisoft_group.py | 27 +++++++++---------- rare/components/tabs/settings/legendary.py | 17 +++++------- 2 files changed, 20 insertions(+), 24 deletions(-) diff --git a/rare/components/tabs/games/integrations/ubisoft_group.py b/rare/components/tabs/games/integrations/ubisoft_group.py index f58a7431..4e027a7a 100644 --- a/rare/components/tabs/games/integrations/ubisoft_group.py +++ b/rare/components/tabs/games/integrations/ubisoft_group.py @@ -2,28 +2,28 @@ import time import webbrowser from logging import getLogger -from PyQt5.QtCore import QObject, pyqtSignal, QRunnable, QThreadPool, QSize +from PyQt5.QtCore import QObject, pyqtSignal, QThreadPool, QSize from PyQt5.QtWidgets import QWidget, QLabel, QHBoxLayout, QSizePolicy, QPushButton, QGroupBox, QVBoxLayout - from legendary.models.game import Game + from rare.shared import LegendaryCoreSingleton, ArgumentsSingleton +from rare.shared.workers.worker import Worker from rare.utils.misc import icon logger = getLogger("Ubisoft") -class UbiGetInfoSignals(QObject): - worker_finished = pyqtSignal(set, set, str) +class UbiGetInfoWorker(Worker): + class Signals(QObject): + worker_finished = pyqtSignal(set, set, str) - -class UbiGetInfoWorker(QRunnable): def __init__(self): super(UbiGetInfoWorker, self).__init__() - self.signals = UbiGetInfoSignals() + self.signals = UbiGetInfoWorker.Signals() self.setAutoDelete(True) self.core = LegendaryCoreSingleton() - def run(self) -> None: + def run_real(self) -> None: try: external_auths = self.core.egs.get_external_auths() for ext_auth in external_auths: @@ -47,20 +47,19 @@ class UbiGetInfoWorker(QRunnable): self.signals.worker_finished.emit(set(), set(), "error") -class UbiConnectSignals(QObject): - linked = pyqtSignal(str) +class UbiConnectWorker(Worker): + class Signals(QObject): + linked = pyqtSignal(str) - -class UbiConnectWorker(QRunnable): def __init__(self, ubi_account_id, partner_link_id): super(UbiConnectWorker, self).__init__() - self.signals = UbiConnectSignals() + self.signals = UbiConnectWorker.Signals() self.setAutoDelete(True) self.core = LegendaryCoreSingleton() self.ubi_account_id = ubi_account_id self.partner_link_id = partner_link_id - def run(self) -> None: + def run_real(self) -> None: if not self.ubi_account_id: # debug time.sleep(2) self.signals.linked.emit("") diff --git a/rare/components/tabs/settings/legendary.py b/rare/components/tabs/settings/legendary.py index 09696bc6..cbf68dc0 100644 --- a/rare/components/tabs/settings/legendary.py +++ b/rare/components/tabs/settings/legendary.py @@ -3,10 +3,11 @@ import re from logging import getLogger from typing import Tuple -from PyQt5.QtCore import QRunnable, QObject, pyqtSignal, QThreadPool, QSettings +from PyQt5.QtCore import QObject, pyqtSignal, QThreadPool, QSettings from PyQt5.QtWidgets import QSizePolicy, QWidget, QFileDialog, QMessageBox from rare.shared import LegendaryCoreSingleton +from rare.shared.workers.worker import Worker from rare.ui.components.tabs.settings.legendary import Ui_LegendarySettings from rare.utils.misc import get_size from rare.widgets.indicator_edit import PathEdit, IndicatorLineEdit, IndicatorReasonsCommon @@ -14,21 +15,17 @@ from rare.widgets.indicator_edit import PathEdit, IndicatorLineEdit, IndicatorRe logger = getLogger("LegendarySettings") -class RefreshGameMetaSignals(QObject): - finished = pyqtSignal() +class RefreshGameMetaWorker(Worker): + class Signals(QObject): + finished = pyqtSignal() - def __init__(self): - super(RefreshGameMetaSignals, self).__init__() - - -class RefreshGameMetaWorker(QRunnable): def __init__(self): super(RefreshGameMetaWorker, self).__init__() - self.signals = RefreshGameMetaSignals() + self.signals = RefreshGameMetaWorker.Signals() self.setAutoDelete(True) self.core = LegendaryCoreSingleton() - def run(self) -> None: + def run_real(self) -> None: self.core.get_game_and_dlc_list(True, force_refresh=True) self.signals.finished.emit()