diff --git a/plugins/Marketplace/LocalPackageList.py b/plugins/Marketplace/LocalPackageList.py index aca520c937..ab28e634c2 100644 --- a/plugins/Marketplace/LocalPackageList.py +++ b/plugins/Marketplace/LocalPackageList.py @@ -119,5 +119,9 @@ class LocalPackageList(PackageList): packages = response_data["data"] for package in packages: self._package_manager.addAvailablePackageVersion(package["package_id"], Version(package["package_version"])) + package_model = self.getPackageModel(package["package_id"]) + if package_model: + # Also make sure that the local list knows where to get an update + package_model.setDownloadUrl(package["download_url"]) self._ongoing_requests["check_updates"] = None diff --git a/plugins/Marketplace/PackageList.py b/plugins/Marketplace/PackageList.py index 1a76d65141..ddc39e0c94 100644 --- a/plugins/Marketplace/PackageList.py +++ b/plugins/Marketplace/PackageList.py @@ -237,7 +237,6 @@ class PackageList(ListModel): self._ongoing_requests["download_package"] = None self._requestInstall(package_id, update) - def _downloadError(self, package_id: str, update: bool = False, reply: Optional["QNetworkReply"] = None, error: Optional["QNetworkReply.NetworkError"] = None) -> None: if reply: reply_string = bytes(reply.readAll()).decode() diff --git a/plugins/Marketplace/PackageModel.py b/plugins/Marketplace/PackageModel.py index 307cdce986..7c2a5d9ae1 100644 --- a/plugins/Marketplace/PackageModel.py +++ b/plugins/Marketplace/PackageModel.py @@ -290,9 +290,8 @@ class PackageModel(QObject): def isBundled(self) -> bool: return self._is_bundled - @pyqtProperty(str, constant = True) - def downloadURL(self) -> str: - return self._download_url + def setDownloadUrl(self, download_url): + self._download_url = download_url # --- manage buttons signals --- @@ -313,12 +312,12 @@ class PackageModel(QObject): @pyqtSlot() def install(self): self.setBusy(True) - self.installPackageTriggered.emit(self.packageId, self.downloadURL) + self.installPackageTriggered.emit(self.packageId, self._download_url) @pyqtSlot() def update(self): self.setBusy(True) - self.updatePackageTriggered.emit(self.packageId, self.downloadURL) + self.updatePackageTriggered.emit(self.packageId, self._download_url) @pyqtSlot() def uninstall(self):