Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelle Spijker <spijker.jelle@gmail.com>2021-12-10 19:38:20 +0300
committerJelle Spijker <spijker.jelle@gmail.com>2021-12-10 19:38:20 +0300
commite72655cc22b0bb8f27aae82afcf6c2ee1298114e (patch)
tree1a7d760824cadf2b7c15e32df1f5c7493d619809 /plugins/Marketplace/resources/qml/PackageCardHeader.qml
parentd876b85259a5346dbcadb9679a954be94dd81bed (diff)
Moved busy/confirmed logic to QML
COntributes to CURA-8587
Diffstat (limited to 'plugins/Marketplace/resources/qml/PackageCardHeader.qml')
-rw-r--r--plugins/Marketplace/resources/qml/PackageCardHeader.qml74
1 files changed, 53 insertions, 21 deletions
diff --git a/plugins/Marketplace/resources/qml/PackageCardHeader.qml b/plugins/Marketplace/resources/qml/PackageCardHeader.qml
index 56cfe4fa61..627fc27d46 100644
--- a/plugins/Marketplace/resources/qml/PackageCardHeader.qml
+++ b/plugins/Marketplace/resources/qml/PackageCardHeader.qml
@@ -209,45 +209,62 @@ Item
{
id: installManageButton
visible: (showManageButtons || confirmed) && ((packageData.isBundled && packageData.canDowngrade) || !packageData.isBundled) && !updateManageButton.confirmed
+ enabled: !updateManageButton.busy
- enabled: !packageData.isUpdating
-
- busy: packageData.isInstalling
- confirmed: packageData.isRecentlyInstalled || packageData.isRecentlyUninstalled
+ busy: false
+ confirmed: { packageData.isRecentlyInstalledChanged }
- button_style: !packageData.isInstalled
+ button_style: confirmed ? packageData.isInstalled : !packageData.isInstalled
Layout.alignment: Qt.AlignTop
text:
{
- if (packageData.canDowngrade) { return catalog.i18nc("@button", "Downgrade"); }
- if (packageData.isRecentlyInstalled) { return catalog.i18nc("@button", "Installed"); }
- 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..."); }
+ if (busy) { return catalog.i18nc("@button", "Installing..."); }
+ else if (confirmed) { return catalog.i18nc("@button", "Installed"); }
else { return catalog.i18nc("@button", "Install"); }
}
else
{
- if (packageData.isInstalling) { return catalog.i18nc("@button", "Uninstalling..."); }
- else { return catalog.i18nc("@button", "Uninstall"); }
+ if (packageData.canDowngrade)
+ {
+ if (busy) { return catalog.i18nc("@button", "Downgrading..."); }
+ else if (confirmed) { return catalog.i18nc("@button", "Downgraded"); }
+ else { return catalog.i18nc("@button", "Downgrade"); }
+ }
+ else
+ {
+ if (busy) { return catalog.i18nc("@button", "Uninstalling..."); }
+ else if (confirmed) { return catalog.i18nc("@button", "Uninstalled"); }
+ else { return catalog.i18nc("@button", "Uninstall"); }
+ }
}
}
onClicked:
{
- if (primary_action)
+ busy = true
+ if (primary_action){ packageData.installPackageTriggered(packageData.packageId, packageData.downloadURL); }
+ else { packageData.uninstallPackageTriggered(packageData.packageId); }
+ }
+
+ Connections
+ {
+ target: packageData
+
+ function onInstalledPackagesChanged(success)
{
- packageData.installPackageTriggered(packageData.packageId, packageData.downloadURL)
+ installManageButton.busy = false;
+ installManageButton.confirmed = success;
}
- else
+ function onUninstalledPackagesChanged(success)
{
- packageData.uninstallPackageTriggered(packageData.packageId)
+ installManageButton.busy = false;
+ installManageButton.confirmed = success;
+ installManageButton.button_style = !installManageButton.button_style;
}
+
}
}
@@ -257,8 +274,8 @@ Item
visible: (showManageButtons || confirmed) && (packageData.canUpdate || confirmed) && !installManageButton.confirmed
enabled: !installManageButton.busy
- busy: packageData.isUpdating
- confirmed: packageData.isRecentlyUpdated
+ busy: false
+ confirmed: { packageData.isRecentlyUpdatedChanged }
button_style: true
Layout.alignment: Qt.AlignTop
@@ -270,7 +287,22 @@ Item
else { return catalog.i18nc("@button", "Update"); }
}
- onClicked: packageData.updatePackageTriggered(packageData.packageId)
+ onClicked:
+ {
+ busy = true;
+ packageData.updatePackageTriggered(packageData.packageId);
+ }
+
+ Connections
+ {
+ target: packageData
+
+ function onUpdatePackagesChanged(succes)
+ {
+ updateManageButton.busy = false;
+ updateManageButton.confirmed = succes;
+ }
+ }
}
}
}