diff --git a/plugins/Marketplace/LocalPackageList.py b/plugins/Marketplace/LocalPackageList.py index 72199bd0e4..7bd2005fd2 100644 --- a/plugins/Marketplace/LocalPackageList.py +++ b/plugins/Marketplace/LocalPackageList.py @@ -66,7 +66,6 @@ class LocalPackageList(PackageList): section_title = self.PACKAGE_CATEGORIES[bundled_or_installed][package_type] package = PackageModel(package_info, section_title = section_title, parent = self) self._connectManageButtonSignals(package) - package.setCanDowngrade(self._manager.canDowngrade(package_id)) return package def checkForUpdates(self, packages: List[Dict[str, Any]]): diff --git a/plugins/Marketplace/PackageModel.py b/plugins/Marketplace/PackageModel.py index f4afaf0a68..14a71206d9 100644 --- a/plugins/Marketplace/PackageModel.py +++ b/plugins/Marketplace/PackageModel.py @@ -67,7 +67,6 @@ class PackageModel(QObject): self._can_update = False self._is_updating = False - self._can_downgrade = False self._section_title = section_title self.sdk_version = package_data.get("sdk_version_semver", "") # Note that there's a lot more info in the package_data than just these specified here. @@ -309,8 +308,6 @@ class PackageModel(QObject): disablePackageTriggered = pyqtSignal(str) - isRecentlyInstalledChanged = pyqtSignal(bool) - @pyqtProperty(bool, notify = stateManageButtonChanged) def isActive(self): return not self._package_id in self._plugin_registry.getDisabledPlugins() @@ -345,15 +342,10 @@ class PackageModel(QObject): def isRecentlyUninstalled(self) -> bool: return self._package_id in self._package_manager.getPackagesToRemove() - def setCanDowngrade(self, value: bool) -> None: - if value != self._can_downgrade: - self._can_downgrade = value - self.stateManageButtonChanged.emit() - - @pyqtProperty(bool, fset = setCanDowngrade, notify = stateManageButtonChanged) + @pyqtProperty(bool, notify = stateManageButtonChanged) def canDowngrade(self) -> bool: """Flag if the installed package can be downgraded to a bundled version""" - return self._can_downgrade + return self._package_manager.canDowngrade(self._package_id) def setIsUpdating(self, value): if value != self._is_updating: diff --git a/plugins/Marketplace/resources/qml/PackageCardHeader.qml b/plugins/Marketplace/resources/qml/PackageCardHeader.qml index be0a52f52a..ff999c1ee6 100644 --- a/plugins/Marketplace/resources/qml/PackageCardHeader.qml +++ b/plugins/Marketplace/resources/qml/PackageCardHeader.qml @@ -220,8 +220,12 @@ Item text: { + if (packageData.canDowngrade) { return catalog.i18nc("@button", "Downgrade"); } if (packageData.isRecentlyInstalled) { return catalog.i18nc("@button", "Installed"); } - if (packageData.isRecentlyUninstalled) { return catalog.i18nc("@button", "Uninstalled"); } + if (packageData.isRecentlyUninstalled) + { + if (packageData.canDowngrade) { return catalog.i18nc("@button", "Downgraded") } + else { return catalog.i18nc("@button", "Uninstalled"); } } if (button_style) { if (packageData.isInstalling) { return catalog.i18nc("@button", "Installing..."); }