mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-25 15:44:04 -06:00
Make ManageButton a reusable Component
cura 8734
This commit is contained in:
parent
4a436b5598
commit
c72fd12ea2
3 changed files with 158 additions and 62 deletions
|
@ -8,17 +8,13 @@ import QtQuick.Layouts 1.1
|
||||||
import UM 1.6 as UM
|
import UM 1.6 as UM
|
||||||
import Cura 1.6 as Cura
|
import Cura 1.6 as Cura
|
||||||
|
|
||||||
RowLayout
|
Item
|
||||||
{
|
{
|
||||||
id: manageButton
|
id: manageButton
|
||||||
property string button_style
|
property string button_style
|
||||||
property string primaryText
|
property string text
|
||||||
property string secondaryText
|
property bool busy
|
||||||
property string busyPrimaryText
|
property bool confirmed
|
||||||
property string busySecondaryText
|
|
||||||
property string confirmedPrimaryText
|
|
||||||
property string confirmedSecondaryText
|
|
||||||
property bool confirmedTextChoice: true
|
|
||||||
|
|
||||||
signal clicked(bool primary_action)
|
signal clicked(bool primary_action)
|
||||||
|
|
||||||
|
@ -27,12 +23,10 @@ RowLayout
|
||||||
Cura.PrimaryButton
|
Cura.PrimaryButton
|
||||||
{
|
{
|
||||||
id: primaryButton
|
id: primaryButton
|
||||||
enabled: manageButton.enabled
|
text: manageButton.text
|
||||||
text: manageButton.primaryText
|
|
||||||
|
|
||||||
onClicked:
|
onClicked:
|
||||||
{
|
{
|
||||||
manageButton.confirmedTextChoice = true
|
|
||||||
manageButton.clicked(true)
|
manageButton.clicked(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,12 +37,10 @@ RowLayout
|
||||||
Cura.SecondaryButton
|
Cura.SecondaryButton
|
||||||
{
|
{
|
||||||
id: secondaryButton
|
id: secondaryButton
|
||||||
enabled: manageButton.enabled
|
text: manageButton.text
|
||||||
text: manageButton.secondaryText
|
|
||||||
|
|
||||||
onClicked:
|
onClicked:
|
||||||
{
|
{
|
||||||
manageButton.confirmedTextChoice = false
|
|
||||||
manageButton.clicked(false)
|
manageButton.clicked(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,8 +51,6 @@ RowLayout
|
||||||
Item
|
Item
|
||||||
{
|
{
|
||||||
id: busyMessage
|
id: busyMessage
|
||||||
height: UM.Theme.getSize("action_button").height
|
|
||||||
width: childrenRect.width
|
|
||||||
|
|
||||||
UM.RecolorImage
|
UM.RecolorImage
|
||||||
{
|
{
|
||||||
|
@ -91,7 +81,7 @@ RowLayout
|
||||||
anchors.left: busyIndicator.right
|
anchors.left: busyIndicator.right
|
||||||
anchors.leftMargin: UM.Theme.getSize("narrow_margin").width
|
anchors.leftMargin: UM.Theme.getSize("narrow_margin").width
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
text: manageButton.busyMessageText
|
text: manageButton.text
|
||||||
|
|
||||||
font: UM.Theme.getFont("medium_bold")
|
font: UM.Theme.getFont("medium_bold")
|
||||||
color: UM.Theme.getColor("primary")
|
color: UM.Theme.getColor("primary")
|
||||||
|
@ -111,7 +101,7 @@ RowLayout
|
||||||
{
|
{
|
||||||
id: confirmedMessageText
|
id: confirmedMessageText
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
text: manageButton.confirmedTextChoice ? manageButton.confirmedPrimaryText : manageButton.confirmedSecondaryText
|
text: manageButton.text
|
||||||
|
|
||||||
font: UM.Theme.getFont("medium_bold")
|
font: UM.Theme.getFont("medium_bold")
|
||||||
color: UM.Theme.getColor("primary")
|
color: UM.Theme.getColor("primary")
|
||||||
|
@ -119,8 +109,12 @@ RowLayout
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
height: UM.Theme.getSize("action_button").height
|
||||||
|
width: childrenRect.width
|
||||||
|
|
||||||
Loader
|
Loader
|
||||||
{
|
{
|
||||||
|
|
||||||
sourceComponent:
|
sourceComponent:
|
||||||
{
|
{
|
||||||
switch (manageButton.button_style)
|
switch (manageButton.button_style)
|
||||||
|
|
|
@ -257,15 +257,34 @@ Rectangle
|
||||||
ManageButton
|
ManageButton
|
||||||
{
|
{
|
||||||
id: enableManageButton
|
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
|
Layout.alignment: Qt.AlignTop
|
||||||
primaryText: catalog.i18nc("@button", "Enable")
|
busy: packageData.enableManageButton == "busy"
|
||||||
busyPrimaryText: catalog.i18nc("@button", "Enabling...")
|
confirmed: packageData.enableManageButton == "confirmed"
|
||||||
confirmedPrimaryText: catalog.i18nc("@button", "Enabled")
|
text: {
|
||||||
secondaryText: catalog.i18nc("@button", "Disable")
|
switch (packageData.stateManageEnableButton) {
|
||||||
busySecondaryText: catalog.i18nc("@button", "Disabling...")
|
case "primary":
|
||||||
confirmedSecondaryText: catalog.i18nc("@button", "Disabled")
|
return catalog.i18nc("@button", "Enable");
|
||||||
enabled: !(installManageButton.busy || updateManageButton.busy)
|
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:
|
onClicked:
|
||||||
{
|
{
|
||||||
|
@ -283,16 +302,34 @@ Rectangle
|
||||||
ManageButton
|
ManageButton
|
||||||
{
|
{
|
||||||
id: installManageButton
|
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
|
Layout.alignment: Qt.AlignTop
|
||||||
primaryText: catalog.i18nc("@button", "Install")
|
text: {
|
||||||
busyPrimaryText: catalog.i18nc("@button", "Installing...")
|
switch (packageData.stateManageInstallButton) {
|
||||||
confirmedPrimaryText: catalog.i18nc("@button", "Installed")
|
case "primary":
|
||||||
secondaryText: catalog.i18nc("@button", "Uninstall")
|
return catalog.i18nc("@button", "Install");
|
||||||
busySecondaryText: catalog.i18nc("@button", "Uninstalling...")
|
case "secondary":
|
||||||
confirmedSecondaryText: catalog.i18nc("@button", "Uninstalled")
|
return catalog.i18nc("@button", "Uninstall");
|
||||||
confirmedTextChoice: packageData.installationStatus
|
case "busy":
|
||||||
enabled: !(enableManageButton.busy || updateManageButton.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:
|
onClicked:
|
||||||
{
|
{
|
||||||
|
@ -310,12 +347,26 @@ Rectangle
|
||||||
ManageButton
|
ManageButton
|
||||||
{
|
{
|
||||||
id: updateManageButton
|
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
|
Layout.alignment: Qt.AlignTop
|
||||||
primaryText: catalog.i18nc("@button", "Update")
|
enabled: !installManageButton.busy && !enableManageButton.busy
|
||||||
busyPrimaryText: catalog.i18nc("@button", "Updating...")
|
|
||||||
confirmedPrimaryText: catalog.i18nc("@button", "Updated")
|
text: {
|
||||||
enabled: !(installManageButton.busy || enableManageButton.busy)
|
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)
|
onClicked: packageData.updatePackageTriggered(packageData.packageId)
|
||||||
}
|
}
|
||||||
|
|
|
@ -207,15 +207,34 @@ Rectangle
|
||||||
ManageButton
|
ManageButton
|
||||||
{
|
{
|
||||||
id: enableManageButton
|
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
|
Layout.alignment: Qt.AlignTop
|
||||||
primaryText: catalog.i18nc("@button", "Enable")
|
busy: packageData.enableManageButton == "busy"
|
||||||
busyPrimaryText: catalog.i18nc("@button", "Enabling...")
|
confirmed: packageData.enableManageButton == "confirmed"
|
||||||
confirmedPrimaryText: catalog.i18nc("@button", "Enabled")
|
text: {
|
||||||
secondaryText: catalog.i18nc("@button", "Disable")
|
switch (packageData.stateManageEnableButton) {
|
||||||
busySecondaryText: catalog.i18nc("@button", "Disabling...")
|
case "primary":
|
||||||
confirmedSecondaryText: catalog.i18nc("@button", "Disabled")
|
return catalog.i18nc("@button", "Enable");
|
||||||
enabled: !(installManageButton.busy || updateManageButton.busy)
|
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:
|
onClicked:
|
||||||
{
|
{
|
||||||
|
@ -233,16 +252,34 @@ Rectangle
|
||||||
ManageButton
|
ManageButton
|
||||||
{
|
{
|
||||||
id: installManageButton
|
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
|
Layout.alignment: Qt.AlignTop
|
||||||
primaryText: catalog.i18nc("@button", "Install")
|
text: {
|
||||||
busyPrimaryText: catalog.i18nc("@button", "Installing...")
|
switch (packageData.stateManageInstallButton) {
|
||||||
confirmedPrimaryText: catalog.i18nc("@button", "Installed")
|
case "primary":
|
||||||
secondaryText: catalog.i18nc("@button", "Uninstall")
|
return catalog.i18nc("@button", "Install");
|
||||||
busySecondaryText: catalog.i18nc("@button", "Uninstalling...")
|
case "secondary":
|
||||||
confirmedSecondaryText: catalog.i18nc("@button", "Uninstalled")
|
return catalog.i18nc("@button", "Uninstall");
|
||||||
confirmedTextChoice: packageData.isRecentlyInstalled
|
case "busy":
|
||||||
enabled: !(enableManageButton.busy || updateManageButton.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:
|
onClicked:
|
||||||
{
|
{
|
||||||
|
@ -260,12 +297,26 @@ Rectangle
|
||||||
ManageButton
|
ManageButton
|
||||||
{
|
{
|
||||||
id: updateManageButton
|
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
|
Layout.alignment: Qt.AlignTop
|
||||||
primaryText: catalog.i18nc("@button", "Update")
|
enabled: !installManageButton.busy && !enableManageButton.busy
|
||||||
busyPrimaryText: catalog.i18nc("@button", "Updating...")
|
|
||||||
confirmedPrimaryText: catalog.i18nc("@button", "Updated")
|
text: {
|
||||||
enabled: !(installManageButton.busy || enableManageButton.busy)
|
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)
|
onClicked: packageData.updatePackageTriggered(packageData.packageId)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue