From 1abcf16583b4581ce0ae65425b5de7c15c10fc68 Mon Sep 17 00:00:00 2001 From: Dummerle <44114474+Dummerle@users.noreply.github.com> Date: Tue, 30 Nov 2021 23:15:00 +0100 Subject: [PATCH] Add update in dl tab, when imported game, with available update --- rare/components/tabs/downloads/__init__.py | 8 ++++++++ rare/components/tabs/games/import_sync/import_group.py | 9 ++++++++- rare/utils/models.py | 1 + 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/rare/components/tabs/downloads/__init__.py b/rare/components/tabs/downloads/__init__.py index df66da77..fc88bfd9 100644 --- a/rare/components/tabs/downloads/__init__.py +++ b/rare/components/tabs/downloads/__init__.py @@ -110,6 +110,8 @@ class DownloadTab(QWidget): self.signals.game_uninstalled.connect(self.queue_item_removed) self.signals.game_uninstalled.connect(self.remove_update) + self.signals.add_download.connect(lambda app_name: self.add_update(self.core.get_installed_game(app_name))) + def queue_item_removed(self, app_name): if w := self.update_widgets.get(app_name): w.update_button.setDisabled(False) @@ -127,6 +129,12 @@ class DownloadTab(QWidget): def remove_update(self, app_name): if w := self.update_widgets.get(app_name): w.deleteLater() + self.update_widgets.pop(app_name) + + if len(self.update_widgets) == 0: + self.update_text.setVisible(True) + + self.signals.update_download_tab_text.emit() def update_dl_queue(self, dl_queue): self.dl_queue = dl_queue diff --git a/rare/components/tabs/games/import_sync/import_group.py b/rare/components/tabs/games/import_sync/import_group.py index 33ca8c36..5f711531 100644 --- a/rare/components/tabs/games/import_sync/import_group.py +++ b/rare/components/tabs/games/import_sync/import_group.py @@ -146,11 +146,18 @@ class ImportGroup(QGroupBox, Ui_ImportGroup): return if legendary_utils.import_game(self.core, app_name=app_name, path=path): + igame = self.core.get_installed_game(app_name) self.info_label.setText(self.tr("Successfully imported {}. Reload library").format( - self.core.get_installed_game(app_name).title)) + igame.title)) self.app_name.setText(str()) shared.signals.update_gamelist.emit([app_name]) + + if igame.version != self.core.get_asset(app_name, False).build_version: + # update available + shared.signals.add_download.emit(igame.app_name) + shared.signals.update_download_tab_text.emit() + else: logger.warning(f'Failed to import "{app_name}"') self.info_label.setText(self.tr("Failed to import {}").format(app_name)) diff --git a/rare/utils/models.py b/rare/utils/models.py index 37874aa9..949ae549 100644 --- a/rare/utils/models.py +++ b/rare/utils/models.py @@ -122,6 +122,7 @@ class Signals(QObject): dl_progress = pyqtSignal(int) # 0-100 # set visibility of installing widget in games tab installation_started = pyqtSignal(str) # app_name + add_download = pyqtSignal(str) install_game = pyqtSignal(InstallOptionsModel) installation_finished = pyqtSignal(bool, str)