mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-12 00:39:01 +08:00
Merge branch 'main' into CURA-10901-warn-if-formulas-are-NOK
This commit is contained in:
commit
37c177fe04
@ -26,27 +26,40 @@ class InsertAtLayerChange(Script):
|
||||
},
|
||||
"gcode_to_add":
|
||||
{
|
||||
"label": "G-code to insert.",
|
||||
"label": "G-code to insert",
|
||||
"description": "G-code to add before or after layer change.",
|
||||
"type": "str",
|
||||
"default_value": ""
|
||||
},
|
||||
"skip_layers":
|
||||
{
|
||||
"label": "Skip layers",
|
||||
"description": "Number of layers to skip between insertions (0 for every layer).",
|
||||
"type": "int",
|
||||
"default_value": 0,
|
||||
"minimum_value": 0
|
||||
}
|
||||
}
|
||||
}"""
|
||||
|
||||
def execute(self, data):
|
||||
gcode_to_add = self.getSettingValueByKey("gcode_to_add") + "\n"
|
||||
skip_layers = self.getSettingValueByKey("skip_layers")
|
||||
count = 0
|
||||
for layer in data:
|
||||
# Check that a layer is being printed
|
||||
lines = layer.split("\n")
|
||||
for line in lines:
|
||||
if ";LAYER:" in line:
|
||||
index = data.index(layer)
|
||||
if count == 0:
|
||||
if self.getSettingValueByKey("insert_location") == "before":
|
||||
layer = gcode_to_add + layer
|
||||
else:
|
||||
layer = layer + gcode_to_add
|
||||
|
||||
data[index] = layer
|
||||
|
||||
count = (count + 1) % (skip_layers + 1)
|
||||
break
|
||||
return data
|
||||
|
@ -129,7 +129,7 @@ ScrollView
|
||||
{
|
||||
id: bedTemperature
|
||||
containerStack: Cura.MachineManager.activeMachine
|
||||
key: "material_bed_temperature"
|
||||
key: "material_bed_temperature_layer_0"
|
||||
watchedProperties: ["value", "minimum_value", "maximum_value", "resolve"]
|
||||
storeIndex: 0
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ Item
|
||||
{
|
||||
id: extruderTemperature
|
||||
containerStackId: Cura.ExtruderManager.extruderIds[position]
|
||||
key: "material_print_temperature"
|
||||
key: "material_print_temperature_layer_0"
|
||||
watchedProperties: ["value", "minimum_value", "maximum_value", "resolve"]
|
||||
storeIndex: 0
|
||||
}
|
||||
|
@ -15,7 +15,7 @@ import Cura 1.1 as Cura
|
||||
Item
|
||||
{
|
||||
id: base
|
||||
|
||||
property bool hasSearchFilter: false
|
||||
// The currently selected machine item in the local machine list.
|
||||
property var currentItem: machineList.currentIndex >= 0 ? machineList.model.getItem(machineList.currentIndex) : null
|
||||
// The currently active (expanded) section/category, where section/category is the grouping of local machine items.
|
||||
@ -32,7 +32,7 @@ Item
|
||||
|
||||
onCurrentItemChanged:
|
||||
{
|
||||
printerName = currentItem == null ? "" : currentItem.name
|
||||
printerName = currentItem && currentItem.name? currentItem.name: ""
|
||||
}
|
||||
|
||||
function updateCurrentItemUponSectionChange(section)
|
||||
@ -43,25 +43,28 @@ Item
|
||||
const item = machineList.model.getItem(i);
|
||||
if (item.section == section)
|
||||
{
|
||||
machineList.currentIndex = i;
|
||||
updateCurrentItem(i)
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getMachineName()
|
||||
function updateCurrentItem(index)
|
||||
{
|
||||
return machineList.model.getItem(machineList.currentIndex) != undefined ? machineList.model.getItem(machineList.currentIndex).name : "";
|
||||
machineList.currentIndex = index;
|
||||
currentItem = machineList.model.getItem(index);
|
||||
if (currentItem && currentItem.name)
|
||||
{
|
||||
machineName.text = currentItem.name
|
||||
manufacturer.text = currentItem.metadata["manufacturer"]
|
||||
author.text = currentItem.metadata["author"]
|
||||
}
|
||||
|
||||
function getMachineMetaDataEntry(key)
|
||||
else
|
||||
{
|
||||
var metadata = machineList.model.getItem(machineList.currentIndex) != undefined ? machineList.model.getItem(machineList.currentIndex).metadata : undefined;
|
||||
if (metadata)
|
||||
{
|
||||
return metadata[key];
|
||||
machineName.text = "No printers Found"
|
||||
manufacturer.text = ""
|
||||
author.text = ""
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
Component.onCompleted:
|
||||
@ -78,13 +81,118 @@ Item
|
||||
id: localPrinterSelectionItem
|
||||
anchors.fill: parent
|
||||
|
||||
Column
|
||||
{
|
||||
id: root
|
||||
width: Math.floor(parent.width * 0.48)
|
||||
height: parent.height
|
||||
Item
|
||||
{
|
||||
width: root.width
|
||||
height: filter.height
|
||||
Cura.TextField
|
||||
{
|
||||
id: filter
|
||||
width: parent.width
|
||||
implicitHeight: parent.height
|
||||
background: Rectangle {
|
||||
id: background
|
||||
color: UM.Theme.getColor("main_background")
|
||||
radius: UM.Theme.getSize("default_radius").width
|
||||
border.color: UM.Theme.getColor("primary_button")
|
||||
}
|
||||
height: UM.Theme.getSize("small_button_icon").height * 2
|
||||
placeholderText: catalog.i18nc("@label:textbox", "Search Printer")
|
||||
placeholderTextColor: UM.Theme.getColor("primary_button")
|
||||
font: UM.Theme.getFont("medium_italic")
|
||||
leftPadding: searchIcon.width + UM.Theme.getSize("default_margin").width * 2
|
||||
|
||||
UM.ColorImage
|
||||
{
|
||||
id: searchIcon
|
||||
source: UM.Theme.getIcon("Magnifier")
|
||||
anchors
|
||||
{
|
||||
verticalCenter: parent.verticalCenter
|
||||
left: parent.left
|
||||
leftMargin: UM.Theme.getSize("default_margin").width
|
||||
}
|
||||
height: UM.Theme.getSize("small_button_icon").height
|
||||
width: height
|
||||
color: UM.Theme.getColor("text")
|
||||
}
|
||||
|
||||
onTextChanged: editingFinished()
|
||||
onEditingFinished:
|
||||
{
|
||||
machineDefinitionsModel.filter = {"name" : "*" + text.toLowerCase() + "*", "visible": true}
|
||||
base.hasSearchFilter = (text.length > 0)
|
||||
updateDefinitionModel()
|
||||
}
|
||||
|
||||
Keys.onEscapePressed: filter.text = ""
|
||||
function updateDefinitionModel()
|
||||
{
|
||||
if (base.hasSearchFilter)
|
||||
{
|
||||
base.currentSections.clear()
|
||||
for (var i = 0; i < machineDefinitionsModel.count; i++)
|
||||
{
|
||||
var sectionexpanded = machineDefinitionsModel.getItem(i)["section"]
|
||||
if (!base.currentSections.has(sectionexpanded))
|
||||
{
|
||||
base.currentSections.add(sectionexpanded);
|
||||
}
|
||||
}
|
||||
base.updateCurrentItem(0)
|
||||
|
||||
// Trigger update on base.currentSections
|
||||
base.currentSections = base.currentSections;
|
||||
}
|
||||
else
|
||||
{
|
||||
const initialSection = "Ultimaker B.V.";
|
||||
base.currentSections.clear();
|
||||
base.currentSections.add(initialSection);
|
||||
updateCurrentItemUponSectionChange(initialSection);
|
||||
updateCurrentItem(0)
|
||||
// Trigger update on base.currentSections
|
||||
base.currentSections = base.currentSections;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
UM.SimpleButton
|
||||
{
|
||||
id: clearFilterButton
|
||||
iconSource: UM.Theme.getIcon("Cancel")
|
||||
visible: base.hasSearchFilter
|
||||
|
||||
height: Math.round(filter.height * 0.5)
|
||||
width: visible ? height : 0
|
||||
|
||||
anchors.verticalCenter: filter.verticalCenter
|
||||
anchors.right: filter.right
|
||||
anchors.rightMargin: UM.Theme.getSize("default_margin").width
|
||||
|
||||
color: UM.Theme.getColor("setting_control_button")
|
||||
hoverColor: UM.Theme.getColor("setting_control_button_hover")
|
||||
|
||||
onClicked:
|
||||
{
|
||||
filter.text = ""
|
||||
filter.forceActiveFocus()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Selecting a local printer to add from this list.
|
||||
ListView
|
||||
{
|
||||
id: machineList
|
||||
width: Math.floor(parent.width * 0.48)
|
||||
height: parent.height
|
||||
|
||||
width: root.width
|
||||
height: root.height - filter.height
|
||||
clip: true
|
||||
ScrollBar.vertical: UM.ScrollBar {}
|
||||
|
||||
@ -169,7 +277,8 @@ Item
|
||||
checked: machineList.currentIndex == index
|
||||
text: name
|
||||
visible: base.currentSections.has(section)
|
||||
onClicked: machineList.currentIndex = index
|
||||
onClicked: base.updateCurrentItem(index)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -193,8 +302,8 @@ Item
|
||||
|
||||
UM.Label
|
||||
{
|
||||
id: machineName
|
||||
width: parent.width - (2 * UM.Theme.getSize("default_margin").width)
|
||||
text: base.getMachineName()
|
||||
color: UM.Theme.getColor("primary_button")
|
||||
font: UM.Theme.getFont("huge")
|
||||
elide: Text.ElideRight
|
||||
@ -215,7 +324,7 @@ Item
|
||||
}
|
||||
UM.Label
|
||||
{
|
||||
text: base.getMachineMetaDataEntry("manufacturer")
|
||||
id: manufacturer
|
||||
width: parent.width - manufacturerLabel.width
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
@ -226,7 +335,7 @@ Item
|
||||
}
|
||||
UM.Label
|
||||
{
|
||||
text: base.getMachineMetaDataEntry("author")
|
||||
id: author
|
||||
width: parent.width - profileAuthorLabel.width
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
|
@ -110,6 +110,12 @@
|
||||
"italic": true,
|
||||
"family": "Noto Sans"
|
||||
},
|
||||
"medium_italic": {
|
||||
"size": 1.16,
|
||||
"weight": 400,
|
||||
"italic": true,
|
||||
"family": "Noto Sans"
|
||||
},
|
||||
"default_italic_ja_JP": {
|
||||
"size": 1.0,
|
||||
"weight": 400,
|
||||
|
Loading…
x
Reference in New Issue
Block a user