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:
authorcasper <c.lamboo@ultimaker.com>2021-12-08 17:50:00 +0300
committercasper <c.lamboo@ultimaker.com>2021-12-08 17:50:00 +0300
commitc72fd12ea2b44b1380b3af372e9c96a0bfb4ea88 (patch)
tree12b4960c82a4ab5fca6d106d90a493d8f0d6486f /plugins/Marketplace/resources
parent4a436b5598f9df2dfdd0f192539ecc5943b0f737 (diff)
Make ManageButton a reusable Component
cura 8734
Diffstat (limited to 'plugins/Marketplace/resources')
-rw-r--r--plugins/Marketplace/resources/qml/ManageButton.qml30
-rw-r--r--plugins/Marketplace/resources/qml/PackageCard.qml95
-rw-r--r--plugins/Marketplace/resources/qml/PackagePage.qml95
3 files changed, 158 insertions, 62 deletions
diff --git a/plugins/Marketplace/resources/qml/ManageButton.qml b/plugins/Marketplace/resources/qml/ManageButton.qml
index 0614e90c87..7843805e26 100644
--- a/plugins/Marketplace/resources/qml/ManageButton.qml
+++ b/plugins/Marketplace/resources/qml/ManageButton.qml
@@ -8,17 +8,13 @@ import QtQuick.Layouts 1.1
import UM 1.6 as UM
import Cura 1.6 as Cura
-RowLayout
+Item
{
id: manageButton
property string button_style
- property string primaryText
- property string secondaryText
- property string busyPrimaryText
- property string busySecondaryText
- property string confirmedPrimaryText
- property string confirmedSecondaryText
- property bool confirmedTextChoice: true
+ property string text
+ property bool busy
+ property bool confirmed
signal clicked(bool primary_action)
@@ -27,12 +23,10 @@ RowLayout
Cura.PrimaryButton
{
id: primaryButton
- enabled: manageButton.enabled
- text: manageButton.primaryText
+ text: manageButton.text
onClicked:
{
- manageButton.confirmedTextChoice = true
manageButton.clicked(true)
}
}
@@ -43,12 +37,10 @@ RowLayout
Cura.SecondaryButton
{
id: secondaryButton
- enabled: manageButton.enabled
- text: manageButton.secondaryText
+ text: manageButton.text
onClicked:
{
- manageButton.confirmedTextChoice = false
manageButton.clicked(false)
}
}
@@ -59,8 +51,6 @@ RowLayout
Item
{
id: busyMessage
- height: UM.Theme.getSize("action_button").height
- width: childrenRect.width
UM.RecolorImage
{
@@ -91,7 +81,7 @@ RowLayout
anchors.left: busyIndicator.right
anchors.leftMargin: UM.Theme.getSize("narrow_margin").width
anchors.verticalCenter: parent.verticalCenter
- text: manageButton.busyMessageText
+ text: manageButton.text
font: UM.Theme.getFont("medium_bold")
color: UM.Theme.getColor("primary")
@@ -111,7 +101,7 @@ RowLayout
{
id: confirmedMessageText
anchors.verticalCenter: parent.verticalCenter
- text: manageButton.confirmedTextChoice ? manageButton.confirmedPrimaryText : manageButton.confirmedSecondaryText
+ text: manageButton.text
font: UM.Theme.getFont("medium_bold")
color: UM.Theme.getColor("primary")
@@ -119,8 +109,12 @@ RowLayout
}
}
+ height: UM.Theme.getSize("action_button").height
+ width: childrenRect.width
+
Loader
{
+
sourceComponent:
{
switch (manageButton.button_style)
diff --git a/plugins/Marketplace/resources/qml/PackageCard.qml b/plugins/Marketplace/resources/qml/PackageCard.qml
index 6893b70e56..5c986c2e6e 100644
--- a/plugins/Marketplace/resources/qml/PackageCard.qml
+++ b/plugins/Marketplace/resources/qml/PackageCard.qml
@@ -257,15 +257,34 @@ Rectangle
ManageButton
{
id: enableManageButton
- button_style: !(installManageButton.confirmed || updateManageButton.confirmed) || enableManageButton.confirmed ? packageData.stateManageEnableButton : "hidden"
+ visible: !(installManageButton.confirmed || updateManageButton.confirmed) || enableManageButton.confirmed
+ button_style: packageData.stateManageEnableButton
Layout.alignment: Qt.AlignTop
- primaryText: catalog.i18nc("@button", "Enable")
- busyPrimaryText: catalog.i18nc("@button", "Enabling...")
- confirmedPrimaryText: catalog.i18nc("@button", "Enabled")
- secondaryText: catalog.i18nc("@button", "Disable")
- busySecondaryText: catalog.i18nc("@button", "Disabling...")
- confirmedSecondaryText: catalog.i18nc("@button", "Disabled")
- enabled: !(installManageButton.busy || updateManageButton.busy)
+ 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
onClicked:
{
@@ -283,16 +302,34 @@ Rectangle
ManageButton
{
id: installManageButton
- button_style: (root.manageableInListView || installManageButton.confirmed) && !(enableManageButton.confirmed || updateManageButton.confirmed) ? packageData.stateManageInstallButton : "hidden"
+ visible: (root.manageableInListView || installManageButton.confirmed) && !(enableManageButton.confirmed || updateManageButton.confirmed)
+ button_style: packageData.stateManageInstallButton
+ busy: packageData.stateManageInstallButton == "busy"
+ confirmed: packageData.stateManageInstallButton == "confirmed"
Layout.alignment: Qt.AlignTop
- primaryText: catalog.i18nc("@button", "Install")
- busyPrimaryText: catalog.i18nc("@button", "Installing...")
- confirmedPrimaryText: catalog.i18nc("@button", "Installed")
- secondaryText: catalog.i18nc("@button", "Uninstall")
- busySecondaryText: catalog.i18nc("@button", "Uninstalling...")
- confirmedSecondaryText: catalog.i18nc("@button", "Uninstalled")
- confirmedTextChoice: packageData.installationStatus
- enabled: !(enableManageButton.busy || updateManageButton.busy)
+ 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 "";
+ }
+ }
+ enabled: !enableManageButton.busy && !updateManageButton.busy
onClicked:
{
@@ -310,12 +347,26 @@ Rectangle
ManageButton
{
id: updateManageButton
- button_style: (root.manageableInListView) && (!installManageButton.confirmed || updateManageButton.confirmed) ? packageData.stateManageUpdateButton : "hidden"
+ visible: (root.manageableInListView) && (!installManageButton.confirmed || updateManageButton.confirmed)
+
+ button_style: packageData.stateManageUpdateButton
+ busy: packageData.stateManageUpdateButton == "busy"
+ confirmed: packageData.stateManageUpdateButton == "confirmed"
Layout.alignment: Qt.AlignTop
- primaryText: catalog.i18nc("@button", "Update")
- busyPrimaryText: catalog.i18nc("@button", "Updating...")
- confirmedPrimaryText: catalog.i18nc("@button", "Updated")
- enabled: !(installManageButton.busy || enableManageButton.busy)
+ 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 "";
+ }
+ }
onClicked: packageData.updatePackageTriggered(packageData.packageId)
}
diff --git a/plugins/Marketplace/resources/qml/PackagePage.qml b/plugins/Marketplace/resources/qml/PackagePage.qml
index 5529373ba3..fca25c4022 100644
--- a/plugins/Marketplace/resources/qml/PackagePage.qml
+++ b/plugins/Marketplace/resources/qml/PackagePage.qml
@@ -207,15 +207,34 @@ Rectangle
ManageButton
{
id: enableManageButton
- button_style: !(installManageButton.confirmed || updateManageButton.confirmed) || enableManageButton.confirmed ? packageData.stateManageEnableButton : "hidden"
+ visible: !(installManageButton.confirmed || updateManageButton.confirmed) || enableManageButton.confirmed
+ button_style: packageData.stateManageEnableButton
Layout.alignment: Qt.AlignTop
- primaryText: catalog.i18nc("@button", "Enable")
- busyPrimaryText: catalog.i18nc("@button", "Enabling...")
- confirmedPrimaryText: catalog.i18nc("@button", "Enabled")
- secondaryText: catalog.i18nc("@button", "Disable")
- busySecondaryText: catalog.i18nc("@button", "Disabling...")
- confirmedSecondaryText: catalog.i18nc("@button", "Disabled")
- enabled: !(installManageButton.busy || updateManageButton.busy)
+ 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
onClicked:
{
@@ -233,16 +252,34 @@ Rectangle
ManageButton
{
id: installManageButton
- button_style: !(enableManageButton.confirmed || updateManageButton.confirmed) ? packageData.stateManageInstallButton : "hidden"
+ visible: !(enableManageButton.confirmed || updateManageButton.confirmed)
+ button_style: packageData.stateManageInstallButton
+ busy: packageData.stateManageInstallButton == "busy"
+ confirmed: packageData.stateManageInstallButton == "confirmed"
Layout.alignment: Qt.AlignTop
- primaryText: catalog.i18nc("@button", "Install")
- busyPrimaryText: catalog.i18nc("@button", "Installing...")
- confirmedPrimaryText: catalog.i18nc("@button", "Installed")
- secondaryText: catalog.i18nc("@button", "Uninstall")
- busySecondaryText: catalog.i18nc("@button", "Uninstalling...")
- confirmedSecondaryText: catalog.i18nc("@button", "Uninstalled")
- confirmedTextChoice: packageData.isRecentlyInstalled
- enabled: !(enableManageButton.busy || updateManageButton.busy)
+ 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 "";
+ }
+ }
+ enabled: !enableManageButton.busy && !updateManageButton.busy
onClicked:
{
@@ -260,12 +297,26 @@ Rectangle
ManageButton
{
id: updateManageButton
- button_style: !installManageButton.confirmed || updateManageButton.confirmed ? packageData.stateManageUpdateButton : "hidden"
+ visible: !installManageButton.confirmed || updateManageButton.confirmed
+
+ button_style: packageData.stateManageUpdateButton
+ busy: packageData.stateManageUpdateButton == "busy"
+ confirmed: packageData.stateManageUpdateButton == "confirmed"
Layout.alignment: Qt.AlignTop
- primaryText: catalog.i18nc("@button", "Update")
- busyPrimaryText: catalog.i18nc("@button", "Updating...")
- confirmedPrimaryText: catalog.i18nc("@button", "Updated")
- enabled: !(installManageButton.busy || enableManageButton.busy)
+ 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 "";
+ }
+ }
onClicked: packageData.updatePackageTriggered(packageData.packageId)
}