Merge pull request #4148 from Ultimaker/CURA-5551_prepare_button_status

Indicate when "Prepare" button has already been clicked
This commit is contained in:
Diego Prado Gesto 2018-07-30 09:47:55 +02:00 committed by GitHub
commit c3489d96df
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -48,14 +48,15 @@ Item {
}
function sliceOrStopSlicing() {
try {
if ([1, 5].indexOf(base.backendState) != -1) {
CuraApplication.backend.forceSlice();
} else {
CuraApplication.backend.stopSlicing();
}
} catch (e) {
console.log('Could not start or stop slicing', e)
if ([1, 5].indexOf(base.backendState) != -1)
{
prepareButton.preparingToSlice = true;
CuraApplication.backend.forceSlice();
}
else
{
prepareButton.preparingToSlice = false;
CuraApplication.backend.stopSlicing();
}
}
@ -167,10 +168,10 @@ Item {
// Prepare button, only shows if auto_slice is off
Button {
id: prepareButton
property bool preparingToSlice: false
tooltip: [1, 5].indexOf(base.backendState) != -1 ? catalog.i18nc("@info:tooltip","Slice current printjob") : catalog.i18nc("@info:tooltip","Cancel slicing process")
// 1 = not started, 2 = Processing
enabled: base.backendState != "undefined" && ([1, 2].indexOf(base.backendState) != -1) && base.activity
enabled: !preparingToSlice && base.backendState != "undefined" && ([1, 2].indexOf(base.backendState) != -1) && base.activity
visible: base.backendState != "undefined" && !autoSlice && ([1, 2, 4].indexOf(base.backendState) != -1) && base.activity
property bool autoSlice
height: UM.Theme.getSize("save_button_save_to_button").height
@ -180,7 +181,23 @@ Item {
anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width
// 1 = not started, 4 = error, 5 = disabled
text: [1, 4, 5].indexOf(base.backendState) != -1 ? catalog.i18nc("@label:Printjob", "Prepare") : catalog.i18nc("@label:Printjob", "Cancel")
text: {
if (preparingToSlice)
{
return catalog.i18nc("@label:Printjob", "Preparing");
}
else
{
if ([1, 4, 5].indexOf(base.backendState) != -1)
{
return catalog.i18nc("@label:Printjob", "Prepare");
}
else
{
return catalog.i18nc("@label:Printjob", "Cancel")
}
}
}
onClicked:
{
sliceOrStopSlicing();
@ -237,6 +254,17 @@ Item {
}
label: Item { }
}
Connections {
target: UM.Backend
onStateChanged:
{
if ([2, 3].indexOf(UM.Backend.state) != -1)
{
prepareButton.preparingToSlice = false;
}
}
}
}
Button {