mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-09-14 01:23:14 +08:00
Disable controls when manual control is not available
This commit is contained in:
parent
9cd8869382
commit
6294900bc7
@ -683,250 +683,270 @@ Column
|
|||||||
property string label: catalog.i18nc("@label", "Printer control")
|
property string label: catalog.i18nc("@label", "Printer control")
|
||||||
}
|
}
|
||||||
|
|
||||||
Row
|
Column
|
||||||
{
|
{
|
||||||
width: base.width - 2 * UM.Theme.getSize("default_margin").width
|
enabled:
|
||||||
height: childrenRect.height + 2 * UM.Theme.getSize("default_margin").width
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
|
||||||
|
|
||||||
spacing: UM.Theme.getSize("default_margin").width
|
|
||||||
|
|
||||||
Label
|
|
||||||
{
|
{
|
||||||
text: catalog.i18nc("@label", "Jog position")
|
if (connectedPrinter == null)
|
||||||
color: UM.Theme.getColor("setting_control_text")
|
|
||||||
font: UM.Theme.getFont("default")
|
|
||||||
|
|
||||||
width: Math.floor(parent.width * 0.4) - UM.Theme.getSize("default_margin").width
|
|
||||||
}
|
|
||||||
|
|
||||||
GridLayout
|
|
||||||
{
|
|
||||||
columns: 3
|
|
||||||
rows: 4
|
|
||||||
rowSpacing: UM.Theme.getSize("default_lining").width
|
|
||||||
columnSpacing: UM.Theme.getSize("default_lining").height
|
|
||||||
|
|
||||||
Label
|
|
||||||
{
|
{
|
||||||
text: catalog.i18nc("@label", "X/Y")
|
return false; //Can't control the printer if not connected.
|
||||||
color: UM.Theme.getColor("setting_control_text")
|
|
||||||
font: UM.Theme.getFont("default")
|
|
||||||
width: parent.width
|
|
||||||
horizontalAlignment: Text.AlignHCenter
|
|
||||||
|
|
||||||
Layout.row: 1
|
|
||||||
Layout.column: 2
|
|
||||||
Layout.preferredWidth: UM.Theme.getSize("section").height
|
|
||||||
}
|
}
|
||||||
|
if (!connectedPrinter.acceptsCommands)
|
||||||
Button
|
|
||||||
{
|
{
|
||||||
Layout.row: 2
|
return false; //Not allowed to do anything.
|
||||||
Layout.column: 2
|
|
||||||
Layout.preferredWidth: width
|
|
||||||
Layout.preferredHeight: height
|
|
||||||
iconSource: UM.Theme.getIcon("arrow_top");
|
|
||||||
style: monitorButtonStyle
|
|
||||||
width: height
|
|
||||||
height: UM.Theme.getSize("setting_control").height
|
|
||||||
|
|
||||||
onClicked:
|
|
||||||
{
|
|
||||||
connectedPrinter.moveHead(0, distancesRow.currentDistance, 0)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
if (connectedPrinter.jobState == "printing" || connectedPrinter.jobState == "resuming" || connectedPrinter.jobState == "pausing" || connectedPrinter.jobState == "error" || connectedPrinter.jobState == "offline")
|
||||||
Button
|
|
||||||
{
|
{
|
||||||
Layout.row: 3
|
return false; //Printer is in a state where it can't react to manual control
|
||||||
Layout.column: 1
|
|
||||||
Layout.preferredWidth: width
|
|
||||||
Layout.preferredHeight: height
|
|
||||||
iconSource: UM.Theme.getIcon("arrow_left");
|
|
||||||
style: monitorButtonStyle
|
|
||||||
width: height
|
|
||||||
height: UM.Theme.getSize("setting_control").height
|
|
||||||
|
|
||||||
onClicked:
|
|
||||||
{
|
|
||||||
connectedPrinter.moveHead(-distancesRow.currentDistance, 0, 0)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
Button
|
|
||||||
{
|
|
||||||
Layout.row: 3
|
|
||||||
Layout.column: 3
|
|
||||||
Layout.preferredWidth: width
|
|
||||||
Layout.preferredHeight: height
|
|
||||||
iconSource: UM.Theme.getIcon("arrow_right");
|
|
||||||
style: monitorButtonStyle
|
|
||||||
width: height
|
|
||||||
height: UM.Theme.getSize("setting_control").height
|
|
||||||
|
|
||||||
onClicked:
|
|
||||||
{
|
|
||||||
connectedPrinter.moveHead(distancesRow.currentDistance, 0, 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Button
|
|
||||||
{
|
|
||||||
Layout.row: 4
|
|
||||||
Layout.column: 2
|
|
||||||
Layout.preferredWidth: width
|
|
||||||
Layout.preferredHeight: height
|
|
||||||
iconSource: UM.Theme.getIcon("arrow_bottom");
|
|
||||||
style: monitorButtonStyle
|
|
||||||
width: height
|
|
||||||
height: UM.Theme.getSize("setting_control").height
|
|
||||||
|
|
||||||
onClicked:
|
|
||||||
{
|
|
||||||
connectedPrinter.moveHead(0, -distancesRow.currentDistance, 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Button
|
|
||||||
{
|
|
||||||
Layout.row: 3
|
|
||||||
Layout.column: 2
|
|
||||||
Layout.preferredWidth: width
|
|
||||||
Layout.preferredHeight: height
|
|
||||||
iconSource: UM.Theme.getIcon("home");
|
|
||||||
style: monitorButtonStyle
|
|
||||||
width: height
|
|
||||||
height: UM.Theme.getSize("setting_control").height
|
|
||||||
|
|
||||||
onClicked:
|
|
||||||
{
|
|
||||||
connectedPrinter.homeHead()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Column
|
|
||||||
{
|
|
||||||
spacing: UM.Theme.getSize("default_lining").height
|
|
||||||
|
|
||||||
Label
|
|
||||||
{
|
|
||||||
text: catalog.i18nc("@label", "Z")
|
|
||||||
color: UM.Theme.getColor("setting_control_text")
|
|
||||||
font: UM.Theme.getFont("default")
|
|
||||||
width: UM.Theme.getSize("section").height
|
|
||||||
|
|
||||||
horizontalAlignment: Text.AlignHCenter
|
|
||||||
}
|
|
||||||
|
|
||||||
Button
|
|
||||||
{
|
|
||||||
iconSource: UM.Theme.getIcon("arrow_top");
|
|
||||||
style: monitorButtonStyle
|
|
||||||
width: height
|
|
||||||
height: UM.Theme.getSize("setting_control").height
|
|
||||||
|
|
||||||
onClicked:
|
|
||||||
{
|
|
||||||
connectedPrinter.moveHead(0, 0, distancesRow.currentDistance)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Button
|
|
||||||
{
|
|
||||||
iconSource: UM.Theme.getIcon("home");
|
|
||||||
style: monitorButtonStyle
|
|
||||||
width: height
|
|
||||||
height: UM.Theme.getSize("setting_control").height
|
|
||||||
|
|
||||||
onClicked:
|
|
||||||
{
|
|
||||||
connectedPrinter.homeBed()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Button
|
|
||||||
{
|
|
||||||
iconSource: UM.Theme.getIcon("arrow_bottom");
|
|
||||||
style: monitorButtonStyle
|
|
||||||
width: height
|
|
||||||
height: UM.Theme.getSize("setting_control").height
|
|
||||||
|
|
||||||
onClicked:
|
|
||||||
{
|
|
||||||
connectedPrinter.moveHead(0, 0, -distancesRow.currentDistance)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Row
|
|
||||||
{
|
|
||||||
id: distancesRow
|
|
||||||
|
|
||||||
width: base.width - 2 * UM.Theme.getSize("default_margin").width
|
|
||||||
height: childrenRect.height + 2 * UM.Theme.getSize("default_margin").width
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
|
||||||
|
|
||||||
spacing: UM.Theme.getSize("default_margin").width
|
|
||||||
|
|
||||||
property real currentDistance: 10
|
|
||||||
|
|
||||||
Label
|
|
||||||
{
|
|
||||||
text: catalog.i18nc("@label", "Jog distance")
|
|
||||||
color: UM.Theme.getColor("setting_control_text")
|
|
||||||
font: UM.Theme.getFont("default")
|
|
||||||
|
|
||||||
width: Math.floor(parent.width * 0.4) - UM.Theme.getSize("default_margin").width
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Row
|
Row
|
||||||
{
|
{
|
||||||
Repeater
|
width: base.width - 2 * UM.Theme.getSize("default_margin").width
|
||||||
|
height: childrenRect.height + UM.Theme.getSize("default_margin").width
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||||
|
|
||||||
|
spacing: UM.Theme.getSize("default_margin").width
|
||||||
|
|
||||||
|
Label
|
||||||
{
|
{
|
||||||
model: distancesModel
|
text: catalog.i18nc("@label", "Jog position")
|
||||||
delegate: Button
|
color: UM.Theme.getColor("setting_control_text")
|
||||||
|
font: UM.Theme.getFont("default")
|
||||||
|
|
||||||
|
width: Math.floor(parent.width * 0.4) - UM.Theme.getSize("default_margin").width
|
||||||
|
}
|
||||||
|
|
||||||
|
GridLayout
|
||||||
|
{
|
||||||
|
columns: 3
|
||||||
|
rows: 4
|
||||||
|
rowSpacing: UM.Theme.getSize("default_lining").width
|
||||||
|
columnSpacing: UM.Theme.getSize("default_lining").height
|
||||||
|
|
||||||
|
Label
|
||||||
{
|
{
|
||||||
|
text: catalog.i18nc("@label", "X/Y")
|
||||||
|
color: UM.Theme.getColor("setting_control_text")
|
||||||
|
font: UM.Theme.getFont("default")
|
||||||
|
width: parent.width
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
|
||||||
|
Layout.row: 1
|
||||||
|
Layout.column: 2
|
||||||
|
Layout.preferredWidth: UM.Theme.getSize("section").height
|
||||||
|
}
|
||||||
|
|
||||||
|
Button
|
||||||
|
{
|
||||||
|
Layout.row: 2
|
||||||
|
Layout.column: 2
|
||||||
|
Layout.preferredWidth: width
|
||||||
|
Layout.preferredHeight: height
|
||||||
|
iconSource: UM.Theme.getIcon("arrow_top");
|
||||||
|
style: monitorButtonStyle
|
||||||
|
width: height
|
||||||
height: UM.Theme.getSize("setting_control").height
|
height: UM.Theme.getSize("setting_control").height
|
||||||
width: height + UM.Theme.getSize("default_margin").width
|
|
||||||
|
|
||||||
text: model.label
|
onClicked:
|
||||||
exclusiveGroup: distanceGroup
|
{
|
||||||
checkable: true
|
connectedPrinter.moveHead(0, distancesRow.currentDistance, 0)
|
||||||
checked: distancesRow.currentDistance == model.value
|
}
|
||||||
onClicked: distancesRow.currentDistance = model.value
|
}
|
||||||
|
|
||||||
style: ButtonStyle {
|
Button
|
||||||
background: Rectangle {
|
{
|
||||||
border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width
|
Layout.row: 3
|
||||||
border.color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_border") :
|
Layout.column: 1
|
||||||
control.hovered ? UM.Theme.getColor("action_button_hovered_border") :
|
Layout.preferredWidth: width
|
||||||
UM.Theme.getColor("action_button_border")
|
Layout.preferredHeight: height
|
||||||
color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") :
|
iconSource: UM.Theme.getIcon("arrow_left");
|
||||||
control.hovered ? UM.Theme.getColor("action_button_hovered") :
|
style: monitorButtonStyle
|
||||||
UM.Theme.getColor("action_button")
|
width: height
|
||||||
Behavior on color { ColorAnimation { duration: 50; } }
|
height: UM.Theme.getSize("setting_control").height
|
||||||
Label {
|
|
||||||
anchors.left: parent.left
|
onClicked:
|
||||||
anchors.right: parent.right
|
{
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
connectedPrinter.moveHead(-distancesRow.currentDistance, 0, 0)
|
||||||
anchors.leftMargin: UM.Theme.getSize("default_lining").width * 2
|
}
|
||||||
anchors.rightMargin: UM.Theme.getSize("default_lining").width * 2
|
}
|
||||||
color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_text") :
|
|
||||||
control.hovered ? UM.Theme.getColor("action_button_hovered_text") :
|
Button
|
||||||
UM.Theme.getColor("action_button_text")
|
{
|
||||||
font: UM.Theme.getFont("default")
|
Layout.row: 3
|
||||||
text: control.text
|
Layout.column: 3
|
||||||
horizontalAlignment: Text.AlignHCenter
|
Layout.preferredWidth: width
|
||||||
elide: Text.ElideMiddle
|
Layout.preferredHeight: height
|
||||||
|
iconSource: UM.Theme.getIcon("arrow_right");
|
||||||
|
style: monitorButtonStyle
|
||||||
|
width: height
|
||||||
|
height: UM.Theme.getSize("setting_control").height
|
||||||
|
|
||||||
|
onClicked:
|
||||||
|
{
|
||||||
|
connectedPrinter.moveHead(distancesRow.currentDistance, 0, 0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Button
|
||||||
|
{
|
||||||
|
Layout.row: 4
|
||||||
|
Layout.column: 2
|
||||||
|
Layout.preferredWidth: width
|
||||||
|
Layout.preferredHeight: height
|
||||||
|
iconSource: UM.Theme.getIcon("arrow_bottom");
|
||||||
|
style: monitorButtonStyle
|
||||||
|
width: height
|
||||||
|
height: UM.Theme.getSize("setting_control").height
|
||||||
|
|
||||||
|
onClicked:
|
||||||
|
{
|
||||||
|
connectedPrinter.moveHead(0, -distancesRow.currentDistance, 0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Button
|
||||||
|
{
|
||||||
|
Layout.row: 3
|
||||||
|
Layout.column: 2
|
||||||
|
Layout.preferredWidth: width
|
||||||
|
Layout.preferredHeight: height
|
||||||
|
iconSource: UM.Theme.getIcon("home");
|
||||||
|
style: monitorButtonStyle
|
||||||
|
width: height
|
||||||
|
height: UM.Theme.getSize("setting_control").height
|
||||||
|
|
||||||
|
onClicked:
|
||||||
|
{
|
||||||
|
connectedPrinter.homeHead()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Column
|
||||||
|
{
|
||||||
|
spacing: UM.Theme.getSize("default_lining").height
|
||||||
|
|
||||||
|
Label
|
||||||
|
{
|
||||||
|
text: catalog.i18nc("@label", "Z")
|
||||||
|
color: UM.Theme.getColor("setting_control_text")
|
||||||
|
font: UM.Theme.getFont("default")
|
||||||
|
width: UM.Theme.getSize("section").height
|
||||||
|
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
}
|
||||||
|
|
||||||
|
Button
|
||||||
|
{
|
||||||
|
iconSource: UM.Theme.getIcon("arrow_top");
|
||||||
|
style: monitorButtonStyle
|
||||||
|
width: height
|
||||||
|
height: UM.Theme.getSize("setting_control").height
|
||||||
|
|
||||||
|
onClicked:
|
||||||
|
{
|
||||||
|
connectedPrinter.moveHead(0, 0, distancesRow.currentDistance)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Button
|
||||||
|
{
|
||||||
|
iconSource: UM.Theme.getIcon("home");
|
||||||
|
style: monitorButtonStyle
|
||||||
|
width: height
|
||||||
|
height: UM.Theme.getSize("setting_control").height
|
||||||
|
|
||||||
|
onClicked:
|
||||||
|
{
|
||||||
|
connectedPrinter.homeBed()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Button
|
||||||
|
{
|
||||||
|
iconSource: UM.Theme.getIcon("arrow_bottom");
|
||||||
|
style: monitorButtonStyle
|
||||||
|
width: height
|
||||||
|
height: UM.Theme.getSize("setting_control").height
|
||||||
|
|
||||||
|
onClicked:
|
||||||
|
{
|
||||||
|
connectedPrinter.moveHead(0, 0, -distancesRow.currentDistance)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Row
|
||||||
|
{
|
||||||
|
id: distancesRow
|
||||||
|
|
||||||
|
width: base.width - 2 * UM.Theme.getSize("default_margin").width
|
||||||
|
height: childrenRect.height + UM.Theme.getSize("default_margin").width
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||||
|
|
||||||
|
spacing: UM.Theme.getSize("default_margin").width
|
||||||
|
|
||||||
|
property real currentDistance: 10
|
||||||
|
|
||||||
|
Label
|
||||||
|
{
|
||||||
|
text: catalog.i18nc("@label", "Jog distance")
|
||||||
|
color: UM.Theme.getColor("setting_control_text")
|
||||||
|
font: UM.Theme.getFont("default")
|
||||||
|
|
||||||
|
width: Math.floor(parent.width * 0.4) - UM.Theme.getSize("default_margin").width
|
||||||
|
}
|
||||||
|
|
||||||
|
Row
|
||||||
|
{
|
||||||
|
Repeater
|
||||||
|
{
|
||||||
|
model: distancesModel
|
||||||
|
delegate: Button
|
||||||
|
{
|
||||||
|
height: UM.Theme.getSize("setting_control").height
|
||||||
|
width: height + UM.Theme.getSize("default_margin").width
|
||||||
|
|
||||||
|
text: model.label
|
||||||
|
exclusiveGroup: distanceGroup
|
||||||
|
checkable: true
|
||||||
|
checked: distancesRow.currentDistance == model.value
|
||||||
|
onClicked: distancesRow.currentDistance = model.value
|
||||||
|
|
||||||
|
style: ButtonStyle {
|
||||||
|
background: Rectangle {
|
||||||
|
border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width
|
||||||
|
border.color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_border") :
|
||||||
|
control.hovered ? UM.Theme.getColor("action_button_hovered_border") :
|
||||||
|
UM.Theme.getColor("action_button_border")
|
||||||
|
color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") :
|
||||||
|
control.hovered ? UM.Theme.getColor("action_button_hovered") :
|
||||||
|
UM.Theme.getColor("action_button")
|
||||||
|
Behavior on color { ColorAnimation { duration: 50; } }
|
||||||
|
Label {
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.leftMargin: UM.Theme.getSize("default_lining").width * 2
|
||||||
|
anchors.rightMargin: UM.Theme.getSize("default_lining").width * 2
|
||||||
|
color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_text") :
|
||||||
|
control.hovered ? UM.Theme.getColor("action_button_hovered_text") :
|
||||||
|
UM.Theme.getColor("action_button_text")
|
||||||
|
font: UM.Theme.getFont("default")
|
||||||
|
text: control.text
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
elide: Text.ElideMiddle
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
label: Item { }
|
||||||
}
|
}
|
||||||
label: Item { }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user