|
@@ -3,11 +3,13 @@
|
|
|
|
|
|
import QtQuick 2.10
|
|
|
import QtQuick.Controls 2.3
|
|
|
+import QtQuick.Layouts 1.3
|
|
|
|
|
|
import UM 1.3 as UM
|
|
|
import Cura 1.1 as Cura
|
|
|
|
|
|
import "../MachineSettings"
|
|
|
+import "../Widgets"
|
|
|
|
|
|
|
|
|
//
|
|
@@ -19,310 +21,71 @@ Item
|
|
|
id: base
|
|
|
UM.I18nCatalog { id: catalog; name: "cura" }
|
|
|
|
|
|
- anchors.left: parent.left
|
|
|
- anchors.right: parent.right
|
|
|
- anchors.top: parent.top
|
|
|
+ anchors.fill: parent
|
|
|
+ anchors.margins: UM.Theme.getSize("default_margin").width
|
|
|
|
|
|
- property int labelWidth: 130
|
|
|
- property int controlWidth: UM.Theme.getSize("setting_control").width * 3 / 4
|
|
|
- property var labelFont: UM.Theme.getFont("medium")
|
|
|
+ property var extrudersModel: Cura.ExtrudersModel {}
|
|
|
|
|
|
- property int columnWidth: (parent.width - 2 * UM.Theme.getSize("default_margin").width) / 2
|
|
|
- property int columnSpacing: 10
|
|
|
- property int propertyStoreIndex: 5 // definition_changes
|
|
|
-
|
|
|
- Item
|
|
|
+ onVisibleChanged:
|
|
|
{
|
|
|
- id: upperBlock
|
|
|
- anchors.top: parent.top
|
|
|
- anchors.left: parent.left
|
|
|
- anchors.right: parent.right
|
|
|
- anchors.margins: UM.Theme.getSize("default_margin").width
|
|
|
-
|
|
|
- height: childrenRect.height
|
|
|
-
|
|
|
- // =======================================
|
|
|
- // Left-side column for "Printer Settings"
|
|
|
- // =======================================
|
|
|
- Column
|
|
|
+ if (visible)
|
|
|
{
|
|
|
- anchors.top: parent.top
|
|
|
- anchors.left: parent.left
|
|
|
- width: base.columnWidth
|
|
|
-
|
|
|
- spacing: base.columnSpacing
|
|
|
-
|
|
|
- Label // Title Label
|
|
|
- {
|
|
|
- text: catalog.i18nc("@title:label", "Printer Settings")
|
|
|
- font: UM.Theme.getFont("medium_bold")
|
|
|
- renderType: Text.NativeRendering
|
|
|
- }
|
|
|
-
|
|
|
- NumericTextFieldWithUnit // "X (Width)"
|
|
|
- {
|
|
|
- id: machineXWidthField
|
|
|
- containerStackId: Cura.MachineManager.activeMachineId
|
|
|
- settingKey: "machine_width"
|
|
|
- settingStoreIndex: propertyStoreIndex
|
|
|
- labelText: catalog.i18nc("@label", "X (Width)")
|
|
|
- labelFont: base.labelFont
|
|
|
- labelWidth: base.labelWidth
|
|
|
- controlWidth: base.controlWidth
|
|
|
- unitText: catalog.i18nc("@label", "mm")
|
|
|
- // TODO: add forceUpdateOnChangeFunction:
|
|
|
- }
|
|
|
-
|
|
|
- NumericTextFieldWithUnit // "Y (Depth)"
|
|
|
- {
|
|
|
- id: machineYDepthField
|
|
|
- containerStackId: Cura.MachineManager.activeMachineId
|
|
|
- settingKey: "machine_depth"
|
|
|
- settingStoreIndex: propertyStoreIndex
|
|
|
- labelText: catalog.i18nc("@label", "Y (Depth)")
|
|
|
- labelFont: base.labelFont
|
|
|
- labelWidth: base.labelWidth
|
|
|
- controlWidth: base.controlWidth
|
|
|
- unitText: catalog.i18nc("@label", "mm")
|
|
|
- // TODO: add forceUpdateOnChangeFunction:
|
|
|
- }
|
|
|
-
|
|
|
- NumericTextFieldWithUnit // "Z (Height)"
|
|
|
- {
|
|
|
- id: machineZHeightField
|
|
|
- containerStackId: Cura.MachineManager.activeMachineId
|
|
|
- settingKey: "machine_height"
|
|
|
- settingStoreIndex: propertyStoreIndex
|
|
|
- labelText: catalog.i18nc("@label", "Z (Height)")
|
|
|
- labelFont: base.labelFont
|
|
|
- labelWidth: base.labelWidth
|
|
|
- controlWidth: base.controlWidth
|
|
|
- unitText: catalog.i18nc("@label", "mm")
|
|
|
- // TODO: add forceUpdateOnChangeFunction:
|
|
|
- }
|
|
|
+ tabBar.currentIndex = 0
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- ComboBoxWithOptions // "Build plate shape"
|
|
|
- {
|
|
|
- id: buildPlateShapeComboBox
|
|
|
- containerStackId: Cura.MachineManager.activeMachineId
|
|
|
- settingKey: "machine_shape"
|
|
|
- settingStoreIndex: propertyStoreIndex
|
|
|
- labelText: catalog.i18nc("@label", "Build plate shape")
|
|
|
- labelFont: base.labelFont
|
|
|
- labelWidth: base.labelWidth
|
|
|
- controlWidth: base.controlWidth
|
|
|
- // TODO: add forceUpdateOnChangeFunction:
|
|
|
- }
|
|
|
+ Rectangle
|
|
|
+ {
|
|
|
+ anchors.fill: parent
|
|
|
+ border.color: tabBar.visible ? UM.Theme.getColor("lining") : "transparent"
|
|
|
+ border.width: UM.Theme.getSize("default_lining").width
|
|
|
+ radius: UM.Theme.getSize("default_radius").width
|
|
|
|
|
|
- SimpleCheckBox // "Origin at center"
|
|
|
- {
|
|
|
- id: originAtCenterCheckBox
|
|
|
- containerStackId: Cura.MachineManager.activeMachineId
|
|
|
- settingKey: "machine_center_is_zero"
|
|
|
- settingStoreIndex: propertyStoreIndex
|
|
|
- labelText: catalog.i18nc("@label", "Origin at center")
|
|
|
- labelFont: base.labelFont
|
|
|
- labelWidth: base.labelWidth
|
|
|
- // TODO: add forceUpdateOnChangeFunction:
|
|
|
- }
|
|
|
+ UM.TabRow
|
|
|
+ {
|
|
|
+ id: tabBar
|
|
|
+ width: parent.width
|
|
|
|
|
|
- SimpleCheckBox // "Heated bed"
|
|
|
+ CuraTabButton
|
|
|
{
|
|
|
- id: heatedBedCheckBox
|
|
|
- containerStackId: Cura.MachineManager.activeMachineId
|
|
|
- settingKey: "machine_heated_bed"
|
|
|
- settingStoreIndex: propertyStoreIndex
|
|
|
- labelText: catalog.i18nc("@label", "Heated bed")
|
|
|
- labelFont: base.labelFont
|
|
|
- labelWidth: base.labelWidth
|
|
|
- // TODO: add forceUpdateOnChangeFunction:
|
|
|
+ text: catalog.i18nc("@title:tab", "Printer")
|
|
|
}
|
|
|
|
|
|
- ComboBoxWithOptions // "G-code flavor"
|
|
|
+ Repeater
|
|
|
{
|
|
|
- id: gcodeFlavorComboBox
|
|
|
- containerStackId: Cura.MachineManager.activeMachineId
|
|
|
- settingKey: "machine_gcode_flavor"
|
|
|
- settingStoreIndex: propertyStoreIndex
|
|
|
- labelText: catalog.i18nc("@label", "G-code flavor")
|
|
|
- labelFont: base.labelFont
|
|
|
- labelWidth: base.labelWidth
|
|
|
- controlWidth: base.controlWidth
|
|
|
- // TODO: add forceUpdateOnChangeFunction:
|
|
|
- // TODO: add afterOnActivate: manager.updateHasMaterialsMetadata
|
|
|
+ model: extrudersModel
|
|
|
+ delegate: CuraTabButton
|
|
|
+ {
|
|
|
+ text: model.name
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // =======================================
|
|
|
- // Right-side column for "Printhead Settings"
|
|
|
- // =======================================
|
|
|
- Column
|
|
|
+ StackLayout
|
|
|
{
|
|
|
- anchors.top: parent.top
|
|
|
+ id: tabStack
|
|
|
+ anchors.top: tabBar.bottom
|
|
|
+ anchors.left: parent.left
|
|
|
anchors.right: parent.right
|
|
|
- width: base.columnWidth
|
|
|
-
|
|
|
- spacing: base.columnSpacing
|
|
|
-
|
|
|
- Label // Title Label
|
|
|
- {
|
|
|
- text: catalog.i18nc("@title:label", "Printhead Settings")
|
|
|
- font: UM.Theme.getFont("medium_bold")
|
|
|
- renderType: Text.NativeRendering
|
|
|
- }
|
|
|
-
|
|
|
- PrintHeadMinMaxTextField // "X min"
|
|
|
- {
|
|
|
- id: machineXMinField
|
|
|
-
|
|
|
- settingStoreIndex: propertyStoreIndex
|
|
|
-
|
|
|
- labelText: catalog.i18nc("@label", "X min")
|
|
|
- labelFont: base.labelFont
|
|
|
- labelWidth: base.labelWidth
|
|
|
- controlWidth: base.controlWidth
|
|
|
- unitText: catalog.i18nc("@label", "mm")
|
|
|
-
|
|
|
- axisName: "x"
|
|
|
- axisMinOrMax: "min"
|
|
|
-
|
|
|
- // TODO: add forceUpdateOnChangeFunction:
|
|
|
- }
|
|
|
-
|
|
|
- PrintHeadMinMaxTextField // "Y min"
|
|
|
- {
|
|
|
- id: machineYMinField
|
|
|
-
|
|
|
- settingStoreIndex: propertyStoreIndex
|
|
|
-
|
|
|
- labelText: catalog.i18nc("@label", "Y min")
|
|
|
- labelFont: base.labelFont
|
|
|
- labelWidth: base.labelWidth
|
|
|
- controlWidth: base.controlWidth
|
|
|
- unitText: catalog.i18nc("@label", "mm")
|
|
|
-
|
|
|
- axisName: "y"
|
|
|
- axisMinOrMax: "min"
|
|
|
-
|
|
|
- // TODO: add forceUpdateOnChangeFunction:
|
|
|
- }
|
|
|
-
|
|
|
- PrintHeadMinMaxTextField // "X max"
|
|
|
- {
|
|
|
- id: machineXMaxField
|
|
|
-
|
|
|
- settingStoreIndex: propertyStoreIndex
|
|
|
-
|
|
|
- labelText: catalog.i18nc("@label", "X max")
|
|
|
- labelFont: base.labelFont
|
|
|
- labelWidth: base.labelWidth
|
|
|
- controlWidth: base.controlWidth
|
|
|
- unitText: catalog.i18nc("@label", "mm")
|
|
|
-
|
|
|
- axisName: "x"
|
|
|
- axisMinOrMax: "max"
|
|
|
-
|
|
|
- // TODO: add forceUpdateOnChangeFunction:
|
|
|
- }
|
|
|
-
|
|
|
- PrintHeadMinMaxTextField // "Y max"
|
|
|
- {
|
|
|
- id: machineYMaxField
|
|
|
-
|
|
|
- containerStackId: Cura.MachineManager.activeMachineId
|
|
|
- settingKey: "machine_head_with_fans_polygon"
|
|
|
- settingStoreIndex: propertyStoreIndex
|
|
|
-
|
|
|
- labelText: catalog.i18nc("@label", "Y max")
|
|
|
- labelFont: base.labelFont
|
|
|
- labelWidth: base.labelWidth
|
|
|
- controlWidth: base.controlWidth
|
|
|
- unitText: catalog.i18nc("@label", "mm")
|
|
|
-
|
|
|
- axisName: "y"
|
|
|
- axisMinOrMax: "max"
|
|
|
+ anchors.bottom: parent.bottom
|
|
|
|
|
|
- // TODO: add forceUpdateOnChangeFunction:
|
|
|
- }
|
|
|
+ width: parent.width
|
|
|
+ currentIndex: tabBar.currentIndex
|
|
|
|
|
|
- NumericTextFieldWithUnit // "Gantry Height"
|
|
|
+ MachineSettingsPrinterTab
|
|
|
{
|
|
|
- id: machineGantryHeightField
|
|
|
- containerStackId: Cura.MachineManager.activeMachineId
|
|
|
- settingKey: "gantry_height"
|
|
|
- settingStoreIndex: propertyStoreIndex
|
|
|
- labelText: catalog.i18nc("@label", "Gantry Height")
|
|
|
- labelFont: base.labelFont
|
|
|
- labelWidth: base.labelWidth
|
|
|
- controlWidth: base.controlWidth
|
|
|
- unitText: catalog.i18nc("@label", "mm")
|
|
|
- // TODO: add forceUpdateOnChangeFunction:
|
|
|
+ id: printerTab
|
|
|
}
|
|
|
|
|
|
- ComboBoxWithOptions // "Number of Extruders"
|
|
|
+ Repeater
|
|
|
{
|
|
|
- id: numberOfExtrudersComboBox
|
|
|
- containerStackId: Cura.MachineManager.activeMachineId
|
|
|
- settingKey: "machine_extruder_count"
|
|
|
- settingStoreIndex: propertyStoreIndex
|
|
|
- labelText: catalog.i18nc("@label", "Number of Extruders")
|
|
|
- labelFont: base.labelFont
|
|
|
- labelWidth: base.labelWidth
|
|
|
- controlWidth: base.controlWidth
|
|
|
- // TODO: add forceUpdateOnChangeFunction:
|
|
|
- // TODO: add afterOnActivate: manager.updateHasMaterialsMetadata
|
|
|
-
|
|
|
- optionModel: ListModel
|
|
|
+ model: extrudersModel
|
|
|
+ delegate: MachineSettingsExtruderTab
|
|
|
{
|
|
|
- id: extruderCountModel
|
|
|
- Component.onCompleted:
|
|
|
- {
|
|
|
- extruderCountModel.clear()
|
|
|
- for (var i = 1; i <= Cura.MachineManager.activeMachine.maxExtruderCount; i++)
|
|
|
- {
|
|
|
- extruderCountModel.append({text: String(i), value: i})
|
|
|
- }
|
|
|
- }
|
|
|
+ id: discoverTab
|
|
|
+ extruderStackId: model.id
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- Item // Start and End G-code
|
|
|
- {
|
|
|
- id: lowerBlock
|
|
|
- anchors.top: upperBlock.bottom
|
|
|
- anchors.bottom: parent.bottom
|
|
|
- anchors.left: parent.left
|
|
|
- anchors.right: parent.right
|
|
|
- anchors.margins: UM.Theme.getSize("default_margin").width
|
|
|
-
|
|
|
- GcodeTextArea // "Start G-code"
|
|
|
- {
|
|
|
- anchors.top: parent.top
|
|
|
- anchors.bottom: parent.bottom
|
|
|
- anchors.bottomMargin: UM.Theme.getSize("default_margin").height
|
|
|
- anchors.left: parent.left
|
|
|
- width: base.columnWidth - UM.Theme.getSize("default_margin").width
|
|
|
-
|
|
|
- labelText: catalog.i18nc("@title:label", "Start G-code")
|
|
|
- containerStackId: Cura.MachineManager.activeMachineId
|
|
|
- settingKey: "machine_start_gcode"
|
|
|
- settingStoreIndex: propertyStoreIndex
|
|
|
- }
|
|
|
-
|
|
|
- GcodeTextArea // "End G-code"
|
|
|
- {
|
|
|
- anchors.top: parent.top
|
|
|
- anchors.bottom: parent.bottom
|
|
|
- anchors.bottomMargin: UM.Theme.getSize("default_margin").height
|
|
|
- anchors.right: parent.right
|
|
|
- width: base.columnWidth - UM.Theme.getSize("default_margin").width
|
|
|
-
|
|
|
- labelText: catalog.i18nc("@title:label", "End G-code")
|
|
|
- containerStackId: Cura.MachineManager.activeMachineId
|
|
|
- settingKey: "machine_end_gcode"
|
|
|
- settingStoreIndex: propertyStoreIndex
|
|
|
- }
|
|
|
- }
|
|
|
}
|