Rework of the ManageButton

Now uses the internal signal

Contributes to: CURA-8587
This commit is contained in:
Jelle Spijker 2021-12-08 18:47:56 +01:00
parent 4c516e8cec
commit 9f41115bc1
No known key found for this signature in database
GPG key ID: 6662DC033BE6B99A
7 changed files with 168 additions and 262 deletions

View file

@ -11,7 +11,7 @@ import Cura 1.6 as Cura
Item
{
id: manageButton
property string button_style
property bool button_style
property string text
property bool busy
property bool confirmed
@ -117,19 +117,10 @@ Item
sourceComponent:
{
switch (manageButton.button_style)
{
case "primary":
return manageButton.primaryButton;
case "secondary":
return manageButton.secondaryButton;
case "busy":
return manageButton.busyButton;
case "confirmed":
return manageButton.confirmButton;
default:
return;
}
if (busy) { return manageButton.busyButton; }
else if (confirmed) { return manageButton.confirmButton; }
else if (manageButton.button_style) { return manageButton.primaryButton; }
else { return manageButton.secondaryButton; }
}
}
}

View file

@ -257,34 +257,16 @@ Rectangle
ManageButton
{
id: enableManageButton
visible: !(installManageButton.confirmed || updateManageButton.confirmed) || enableManageButton.confirmed
visible: root.manageableInListView && !(installManageButton.confirmed || updateManageButton.confirmed)
enabled: !(installManageButton.busy || updateManageButton.busy)
busy: false
confirmed: false
button_style: packageData.stateManageEnableButton
Layout.alignment: Qt.AlignTop
busy: packageData.enableManageButton == "busy"
confirmed: packageData.enableManageButton == "confirmed"
text: {
switch (packageData.stateManageEnableButton) {
case "primary":
return catalog.i18nc("@button", "Enable");
case "secondary":
return catalog.i18nc("@button", "Disable");
case "busy":
if (packageData.installationStatus) {
return catalog.i18nc("@button", "Enabling...");
} else {
return catalog.i18nc("@button", "Disabling...");
}
case "confirmed":
if (packageData.installationStatus) {
return catalog.i18nc("@button", "Enabled");
} else {
return catalog.i18nc("@button", "Disabled");
}
default:
return "";
}
}
enabled: !installManageButton.busy && !updateManageButton.busy
text: packageData.stateManageEnableButton ? catalog.i18nc("@button", "Enable") : catalog.i18nc("@button", "Disable")
onClicked:
{
@ -302,34 +284,31 @@ Rectangle
ManageButton
{
id: installManageButton
visible: (root.manageableInListView || installManageButton.confirmed) && !(enableManageButton.confirmed || updateManageButton.confirmed)
visible: (root.manageableInListView || confirmed) && ((packageData.isBundled && packageData.canDowngrade) || !packageData.isBundled || !updateManageButton.confirmed)
enabled: !packageData.isUpdating
busy: packageData.isInstalling
confirmed: packageData.isInstalled || packageData.isUninstalled
button_style: packageData.stateManageInstallButton
busy: packageData.stateManageInstallButton == "busy"
confirmed: packageData.stateManageInstallButton == "confirmed"
Layout.alignment: Qt.AlignTop
text: {
switch (packageData.stateManageInstallButton) {
case "primary":
return catalog.i18nc("@button", "Install");
case "secondary":
return catalog.i18nc("@button", "Uninstall");
case "busy":
if (packageData.installationStatus) {
return catalog.i18nc("@button", "Installing...");
} else {
return catalog.i18nc("@button", "Uninstalling...");
}
case "confirmed":
if (packageData.installationStatus) {
return catalog.i18nc("@button", "Installed");
} else {
return catalog.i18nc("@button", "Uninstalled");
}
default:
return "";
text:
{
if (packageData.stateManageInstallButton)
{
if (packageData.isInstalling) { return catalog.i18nc("@button", "Installing..."); }
else if (packageData.isInstalled) { return catalog.i18nc("@button", "Installed"); }
else { return catalog.i18nc("@button", "Install"); }
}
else
{
if (packageData.isInstalling) { return catalog.i18nc("@button", "Uninstalling..."); }
else if (packageData.isUninstalled) { return catalog.i18nc("@button", "Uninstalled"); }
else { return catalog.i18nc("@button", "Uninstall"); }
}
}
enabled: !enableManageButton.busy && !updateManageButton.busy
onClicked:
{
@ -347,25 +326,20 @@ Rectangle
ManageButton
{
id: updateManageButton
visible: (root.manageableInListView) && (!installManageButton.confirmed || updateManageButton.confirmed)
visible: (root.manageableInListView && confirmed) && !installManageButton.confirmed
enabled: !installManageButton.busy
button_style: packageData.stateManageUpdateButton
busy: packageData.stateManageUpdateButton == "busy"
confirmed: packageData.stateManageUpdateButton == "confirmed"
busy: packageData.isUpdating
confirmed: packageData.isUpdated
button_style: true
Layout.alignment: Qt.AlignTop
enabled: !installManageButton.busy && !enableManageButton.busy
text: {
switch (packageData.stateManageInstallButton) {
case "primary":
return catalog.i18nc("@button", "Update");
case "busy":
return catalog.i18nc("@button", "Updating...");
case "confirmed":
return catalog.i18nc("@button", "Updated");
default:
return "";
}
text:
{
if (packageData.isUpdating) { return catalog.i18nc("@button", "Updating..."); }
else if (packageData.isUpdated) { return catalog.i18nc("@button", "Updated"); }
else { return catalog.i18nc("@button", "Update"); }
}
onClicked: packageData.updatePackageTriggered(packageData.packageId)

View file

@ -207,34 +207,16 @@ Rectangle
ManageButton
{
id: enableManageButton
visible: !(installManageButton.confirmed || updateManageButton.confirmed) || enableManageButton.confirmed
visible: !(installManageButton.confirmed || updateManageButton.confirmed)
enabled: !(installManageButton.busy || updateManageButton.busy)
busy: false
confirmed: false
button_style: packageData.stateManageEnableButton
Layout.alignment: Qt.AlignTop
busy: packageData.enableManageButton == "busy"
confirmed: packageData.enableManageButton == "confirmed"
text: {
switch (packageData.stateManageEnableButton) {
case "primary":
return catalog.i18nc("@button", "Enable");
case "secondary":
return catalog.i18nc("@button", "Disable");
case "busy":
if (packageData.installationStatus) {
return catalog.i18nc("@button", "Enabling...");
} else {
return catalog.i18nc("@button", "Disabling...");
}
case "confirmed":
if (packageData.installationStatus) {
return catalog.i18nc("@button", "Enabled");
} else {
return catalog.i18nc("@button", "Disabled");
}
default:
return "";
}
}
enabled: !installManageButton.busy && !updateManageButton.busy
text: packageData.stateManageEnableButton ? catalog.i18nc("@button", "Enable") : catalog.i18nc("@button", "Disable")
onClicked:
{
@ -252,34 +234,31 @@ Rectangle
ManageButton
{
id: installManageButton
visible: !(enableManageButton.confirmed || updateManageButton.confirmed)
visible: confirmed && ((packageData.isBundled && packageData.canDowngrade) || !packageData.isBundled || !updateManageButton.confirmed)
enabled: !packageData.isUpdating
busy: packageData.isInstalling
confirmed: packageData.isInstalled || packageData.isUninstalled
button_style: packageData.stateManageInstallButton
busy: packageData.stateManageInstallButton == "busy"
confirmed: packageData.stateManageInstallButton == "confirmed"
Layout.alignment: Qt.AlignTop
text: {
switch (packageData.stateManageInstallButton) {
case "primary":
return catalog.i18nc("@button", "Install");
case "secondary":
return catalog.i18nc("@button", "Uninstall");
case "busy":
if (packageData.installationStatus) {
return catalog.i18nc("@button", "Installing...");
} else {
return catalog.i18nc("@button", "Uninstalling...");
}
case "confirmed":
if (packageData.installationStatus) {
return catalog.i18nc("@button", "Installed");
} else {
return catalog.i18nc("@button", "Uninstalled");
}
default:
return "";
text:
{
if (packageData.stateManageInstallButton)
{
if (packageData.isInstalling) { return catalog.i18nc("@button", "Installing..."); }
else if (packageData.isInstalled) { return catalog.i18nc("@button", "Installed"); }
else { return catalog.i18nc("@button", "Install"); }
}
else
{
if (packageData.isInstalling) { return catalog.i18nc("@button", "Uninstalling..."); }
else if (packageData.isUninstalled) { return catalog.i18nc("@button", "Uninstalled"); }
else { return catalog.i18nc("@button", "Uninstall"); }
}
}
enabled: !enableManageButton.busy && !updateManageButton.busy
onClicked:
{
@ -297,25 +276,20 @@ Rectangle
ManageButton
{
id: updateManageButton
visible: !installManageButton.confirmed || updateManageButton.confirmed
visible: confirmed && !installManageButton.confirmed
enabled: !installManageButton.busy
button_style: packageData.stateManageUpdateButton
busy: packageData.stateManageUpdateButton == "busy"
confirmed: packageData.stateManageUpdateButton == "confirmed"
busy: packageData.isUpdating
confirmed: packageData.isUpdated
button_style: true
Layout.alignment: Qt.AlignTop
enabled: !installManageButton.busy && !enableManageButton.busy
text: {
switch (packageData.stateManageInstallButton) {
case "primary":
return catalog.i18nc("@button", "Update");
case "busy":
return catalog.i18nc("@button", "Updating...");
case "confirmed":
return catalog.i18nc("@button", "Updated");
default:
return "";
}
text:
{
if (packageData.isUpdating) { return catalog.i18nc("@button", "Updating..."); }
else if (packageData.isUpdated) { return catalog.i18nc("@button", "Updated"); }
else { return catalog.i18nc("@button", "Update"); }
}
onClicked: packageData.updatePackageTriggered(packageData.packageId)