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 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)
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue