mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-08 07:27:29 -06:00
Show the uninstall button for packages which can be downgraded to the bundled version
Contributes to: CURA-8587
This commit is contained in:
parent
28b6bfb729
commit
1cc3d374a0
2 changed files with 16 additions and 3 deletions
|
@ -58,12 +58,14 @@ class LocalPackageList(PackageList):
|
||||||
def _makePackageModel(self, package_info: Dict[str, Any]) -> PackageModel:
|
def _makePackageModel(self, package_info: Dict[str, Any]) -> PackageModel:
|
||||||
""" Create a PackageModel from the package_info and determine its section_title"""
|
""" Create a PackageModel from the package_info and determine its section_title"""
|
||||||
|
|
||||||
bundled_or_installed = "bundled" if self._manager.isBundledPackage(package_info["package_id"]) else "installed"
|
package_id = package_info["package_id"]
|
||||||
|
bundled_or_installed = "bundled" if self._manager.isBundledPackage(package_id) else "installed"
|
||||||
package_type = package_info["package_type"]
|
package_type = package_info["package_type"]
|
||||||
section_title = self.PACKAGE_CATEGORIES[bundled_or_installed][package_type]
|
section_title = self.PACKAGE_CATEGORIES[bundled_or_installed][package_type]
|
||||||
package = PackageModel(package_info, section_title = section_title, parent = self)
|
package = PackageModel(package_info, section_title = section_title, parent = self)
|
||||||
if package_info["package_id"] in self._manager.getPackagesToRemove() or package_info["package_id"] in self._manager.getPackagesToInstall():
|
if package_id in self._manager.getPackagesToRemove() or package_id in self._manager.getPackagesToInstall():
|
||||||
package.is_recently_managed = True
|
package.is_recently_managed = True
|
||||||
|
package.can_downgrade = self._manager.canDowngrade(package_id)
|
||||||
self._connectManageButtonSignals(package)
|
self._connectManageButtonSignals(package)
|
||||||
return package
|
return package
|
||||||
|
|
||||||
|
|
|
@ -66,6 +66,7 @@ class PackageModel(QObject):
|
||||||
self._can_update = False
|
self._can_update = False
|
||||||
self._is_updating = False
|
self._is_updating = False
|
||||||
self._is_enabling = False
|
self._is_enabling = False
|
||||||
|
self._can_downgrade = False
|
||||||
self._section_title = section_title
|
self._section_title = section_title
|
||||||
self.sdk_version = package_data.get("sdk_version_semver", "")
|
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.
|
# Note that there's a lot more info in the package_data than just these specified here.
|
||||||
|
@ -323,7 +324,7 @@ class PackageModel(QObject):
|
||||||
if self._is_recently_managed:
|
if self._is_recently_managed:
|
||||||
return "hidden"
|
return "hidden"
|
||||||
if self._is_installed:
|
if self._is_installed:
|
||||||
if self._is_bundled:
|
if self._is_bundled and not self._can_downgrade:
|
||||||
return "hidden"
|
return "hidden"
|
||||||
else:
|
else:
|
||||||
return "secondary"
|
return "secondary"
|
||||||
|
@ -350,6 +351,16 @@ class PackageModel(QObject):
|
||||||
self._is_installing = value
|
self._is_installing = value
|
||||||
self.stateManageButtonChanged.emit()
|
self.stateManageButtonChanged.emit()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def can_downgrade(self) -> bool:
|
||||||
|
return self._can_downgrade
|
||||||
|
|
||||||
|
@can_downgrade.setter
|
||||||
|
def can_downgrade(self, value: bool) -> None:
|
||||||
|
if value != self._can_downgrade:
|
||||||
|
self._can_downgrade = value
|
||||||
|
self.stateManageButtonChanged.emit()
|
||||||
|
|
||||||
# --- Updating ---
|
# --- Updating ---
|
||||||
|
|
||||||
@pyqtProperty(str, notify = stateManageButtonChanged)
|
@pyqtProperty(str, notify = stateManageButtonChanged)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue