Show Install and Update buttons in the correct scenario's

Contributes to: CURA-8587
This commit is contained in:
Jelle Spijker 2021-12-09 07:58:14 +01:00
parent 8708fd0f3a
commit 7734bf5169
No known key found for this signature in database
GPG key ID: 6662DC033BE6B99A
2 changed files with 14 additions and 19 deletions

View file

@ -64,8 +64,6 @@ class PackageModel(QObject):
self._is_installing = False
self._install_status_changing = False
self._is_recently_installed = False
self._is_recently_updated = False
self._can_update = False
self._is_updating = False
@ -93,10 +91,8 @@ class PackageModel(QObject):
def finished_installed(is_updating):
if is_updating:
self._is_recently_installed = True
self.setIsUpdating(False)
else:
self._is_recently_updated
self.setIsInstalling(False)
self.isRecentlyInstalledChanged.connect(finished_installed)
@ -362,7 +358,11 @@ class PackageModel(QObject):
@pyqtProperty(bool, notify = stateManageButtonChanged)
def isInstalled(self) -> bool:
return self._package_id in CuraApplication.getInstance().getPackageManager().getPackagesToInstall()
return self._package_id in CuraApplication.getInstance().getPackageManager().local_packages
@pyqtProperty(bool, notify = stateManageButtonChanged)
def isRecentlyInstalled(self) -> bool:
return self._package_id in CuraApplication.getInstance().getPackageManager().getPackagesToInstall() or self._package_id in CuraApplication.getInstance().getPackageManager().getPackagesToRemove()
@pyqtProperty(bool, notify = stateManageButtonChanged)
def isUninstalled(self) -> bool:
@ -389,14 +389,9 @@ class PackageModel(QObject):
def isUpdating(self):
return self._is_updating
def setIsUpdated(self, value):
if value != self._is_recently_updated:
self._is_recently_updated = value
self.stateManageButtonChanged.emit()
@pyqtProperty(bool, fset = setIsUpdated, notify = stateManageButtonChanged)
def isUpdated(self):
return self._is_recently_updated
@pyqtProperty(bool, notify = stateManageButtonChanged)
def isRecentlyUpdated(self):
return self._package_id in CuraApplication.getInstance().getPackageManager().getPackagesToInstall() and self._package_id in CuraApplication.getInstance().getPackageManager().getPackagesToRemove()
@property
def can_update(self) -> bool:

View file

@ -181,7 +181,7 @@ Item
ManageButton
{
id: enableManageButton
visible: showManageButtons && !(installManageButton.confirmed || updateManageButton.confirmed)
visible: showManageButtons && packageData.isInstalled && !(installManageButton.confirmed || updateManageButton.confirmed)
enabled: !(installManageButton.busy || updateManageButton.busy)
busy: false
@ -208,12 +208,12 @@ Item
ManageButton
{
id: installManageButton
visible: (showManageButtons || confirmed) && ((packageData.isBundled && packageData.canDowngrade) || !packageData.isBundled || !updateManageButton.confirmed)
visible: (showManageButtons || confirmed) && ((packageData.isBundled && packageData.canDowngrade) || !packageData.isBundled) && !updateManageButton.confirmed
enabled: !packageData.isUpdating
busy: packageData.isInstalling
confirmed: packageData.isInstalled || packageData.isUninstalled
confirmed: packageData.isRecentlyInstalled
button_style: packageData.stateManageInstallButton
Layout.alignment: Qt.AlignTop
@ -223,7 +223,7 @@ Item
if (packageData.stateManageInstallButton)
{
if (packageData.isInstalling) { return catalog.i18nc("@button", "Installing..."); }
else if (packageData.isInstalled) { return catalog.i18nc("@button", "Installed"); }
else if (packageData.isRecentlyInstalled) { return catalog.i18nc("@button", "Installed"); }
else { return catalog.i18nc("@button", "Install"); }
}
else
@ -254,7 +254,7 @@ Item
enabled: !installManageButton.busy
busy: packageData.isUpdating
confirmed: packageData.isUpdated
confirmed: packageData.isRecentlyUpdated
button_style: true
Layout.alignment: Qt.AlignTop
@ -262,7 +262,7 @@ Item
text:
{
if (packageData.isUpdating) { return catalog.i18nc("@button", "Updating..."); }
else if (packageData.isUpdated) { return catalog.i18nc("@button", "Updated"); }
else if (packageData.isRecentlyUpdated) { return catalog.i18nc("@button", "Updated"); }
else { return catalog.i18nc("@button", "Update"); }
}