From 0c5bd642e3ee3457a94c111e1f147371c55d23f5 Mon Sep 17 00:00:00 2001 From: Dummerle <44114474+Dummerle@users.noreply.github.com> Date: Mon, 22 Nov 2021 20:09:05 +0100 Subject: [PATCH] More fixes: - remove widgets in dl tab after uninstalling - fix verification error: worker was not started --- rare/components/tabs/downloads/__init__.py | 6 ++++++ rare/components/tabs/games/__init__.py | 12 +----------- rare/components/tabs/games/game_info/game_info.py | 1 + rare/components/tabs/games/game_utils.py | 1 + rare/utils/legendary_utils.py | 3 +++ rare/utils/models.py | 2 +- 6 files changed, 13 insertions(+), 12 deletions(-) diff --git a/rare/components/tabs/downloads/__init__.py b/rare/components/tabs/downloads/__init__.py index 6d92b53a..8bd62857 100644 --- a/rare/components/tabs/downloads/__init__.py +++ b/rare/components/tabs/downloads/__init__.py @@ -107,6 +107,8 @@ class DownloadTab(QWidget): self.setLayout(self.layout) self.signals.install_game.connect(self.get_install_options) + self.signals.game_uninstalled.connect(self.queue_item_removed) + self.signals.game_uninstalled.connect(self.remove_update) def queue_item_removed(self, app_name): if w := self.update_widgets.get(app_name): @@ -122,6 +124,10 @@ class DownloadTab(QWidget): self.get_install_options(InstallOptionsModel(app_name=igame.app_name, update=True, silent=True)) widget.update_button.setDisabled(True) + def remove_update(self, app_name): + if w := self.update_widgets.get(app_name): + w.delete_later() + def update_dl_queue(self, dl_queue): self.dl_queue = dl_queue diff --git a/rare/components/tabs/games/__init__.py b/rare/components/tabs/games/__init__.py index 7b091ad8..c7c72a2a 100644 --- a/rare/components/tabs/games/__init__.py +++ b/rare/components/tabs/games/__init__.py @@ -5,10 +5,8 @@ from PyQt5.QtGui import QImage, QPixmap from PyQt5.QtWidgets import QStackedWidget, QVBoxLayout, QWidget import rare.shared as shared -from legendary.models.game import Game, InstalledGame -from rare.components.dialogs.uninstall_dialog import UninstallDialog +from legendary.models.game import InstalledGame from rare.ui.components.tabs.games.games_tab import Ui_GamesTab -from rare.utils import legendary_utils from rare.utils.extra_widgets import FlowLayout from rare.utils.utils import get_pixmap, download_image from .cloud_save_utils import CloudSaveUtils @@ -123,14 +121,6 @@ class GamesTab(QStackedWidget, Ui_GamesTab): i_widget.leaveEvent(None) l_widget.update_text() - def uninstall_game(self, game: Game): - infos = UninstallDialog(game).get_information() - if infos == 0: - return - legendary_utils.uninstall(game.app_name, self.core, infos) - self.setCurrentIndex(0) - self.update_list([game.app_name]) - def show_import(self): self.setCurrentIndex(2) self.import_sync_tabs.show_import() diff --git a/rare/components/tabs/games/game_info/game_info.py b/rare/components/tabs/games/game_info/game_info.py index 078f0cdf..9bb6854a 100644 --- a/rare/components/tabs/games/game_info/game_info.py +++ b/rare/components/tabs/games/game_info/game_info.py @@ -76,6 +76,7 @@ class GameInfo(QWidget, Ui_GameInfo): verify_worker.signals.summary.connect(self.finish_verify) self.verify_progress.setValue(0) self.verify_threads[self.game.app_name] = verify_worker + self.verify_pool.start(verify_worker) def verify_staistics(self, progress): # checked, max, app_name diff --git a/rare/components/tabs/games/game_utils.py b/rare/components/tabs/games/game_utils.py index 83cb262d..1821e0aa 100644 --- a/rare/components/tabs/games/game_utils.py +++ b/rare/components/tabs/games/game_utils.py @@ -67,6 +67,7 @@ class GameUtils(QObject): if infos == 0: return False legendary_utils.uninstall(game.app_name, self.core, infos) + shared.signals.game_uninstalled.emit(app_name) return True def prepare_launch(self, app_name, offline: bool = False, skip_update_check: bool = False): diff --git a/rare/utils/legendary_utils.py b/rare/utils/legendary_utils.py index 8567fb17..5c2f55e5 100644 --- a/rare/utils/legendary_utils.py +++ b/rare/utils/legendary_utils.py @@ -79,6 +79,9 @@ class VerifySignals(QObject): class VerifyWorker(QRunnable): + num: int = 0 + total: int = 1 # set default to 1 to avoid DivisionByZero before it is initialized + def __init__(self, core, app_name): super(VerifyWorker, self).__init__() self.core, self.app_name = core, app_name diff --git a/rare/utils/models.py b/rare/utils/models.py index 0da4a580..37874aa9 100644 --- a/rare/utils/models.py +++ b/rare/utils/models.py @@ -127,6 +127,6 @@ class Signals(QObject): installation_finished = pyqtSignal(bool, str) update_gamelist = pyqtSignal(list) - uninstall_game = pyqtSignal(Game) # deprecated + game_uninstalled = pyqtSignal(str) set_discord_rpc = pyqtSignal(str) # app_name of running game