mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-08 07:27:29 -06:00
Merge remote-tracking branch 'upstream/master' into master-CURA-2079
This commit is contained in:
commit
8179fabf1d
11 changed files with 50 additions and 25 deletions
|
@ -165,7 +165,7 @@ class MachineManager(QObject):
|
||||||
# Save the material that needs to be changed. Multiple changes will be handled by the callback.
|
# Save the material that needs to be changed. Multiple changes will be handled by the callback.
|
||||||
self._auto_materials_changed[str(index)] = containers[0].getId()
|
self._auto_materials_changed[str(index)] = containers[0].getId()
|
||||||
Application.getInstance().messageBox(catalog.i18nc("@window:title", "Changes on the Printer"), catalog.i18nc("@label", "Do you want to change the materials and hotends to match the material in your printer?"),
|
Application.getInstance().messageBox(catalog.i18nc("@window:title", "Changes on the Printer"), catalog.i18nc("@label", "Do you want to change the materials and hotends to match the material in your printer?"),
|
||||||
catalog.i18nc("@label", "The materials and / or hotends on your printer were changed. For best results always slice for the materials . hotends that are inserted in your printer."),
|
catalog.i18nc("@label", "The materials and / or hotends on your printer were changed. For best results always slice for the materials and hotends that are inserted in your printer."),
|
||||||
buttons = QMessageBox.Yes + QMessageBox.No, icon = QMessageBox.Question, callback = self._materialHotendChangedCallback)
|
buttons = QMessageBox.Yes + QMessageBox.No, icon = QMessageBox.Question, callback = self._materialHotendChangedCallback)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -68,6 +68,7 @@ class ChangeLog(Extension, QObject,):
|
||||||
line = line.replace("[","")
|
line = line.replace("[","")
|
||||||
line = line.replace("]","")
|
line = line.replace("]","")
|
||||||
open_version = Version(line)
|
open_version = Version(line)
|
||||||
|
open_header = ""
|
||||||
self._change_logs[open_version] = collections.OrderedDict()
|
self._change_logs[open_version] = collections.OrderedDict()
|
||||||
elif line.startswith("*"):
|
elif line.startswith("*"):
|
||||||
open_header = line.replace("*","")
|
open_header = line.replace("*","")
|
||||||
|
|
|
@ -70,6 +70,7 @@ class PerObjectSettingVisibilityHandler(UM.Settings.Models.SettingVisibilityHand
|
||||||
else:
|
else:
|
||||||
stack = UM.Application.getInstance().getGlobalContainerStack()
|
stack = UM.Application.getInstance().getGlobalContainerStack()
|
||||||
new_instance.setProperty("value", stack.getProperty(item, "value"))
|
new_instance.setProperty("value", stack.getProperty(item, "value"))
|
||||||
|
new_instance.resetState() # Ensure that the state is not seen as a user state.
|
||||||
settings.addInstance(new_instance)
|
settings.addInstance(new_instance)
|
||||||
visibility_changed = True
|
visibility_changed = True
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -311,6 +311,15 @@ Item {
|
||||||
|
|
||||||
property string labelFilter: ""
|
property string labelFilter: ""
|
||||||
|
|
||||||
|
onVisibilityChanged:
|
||||||
|
{
|
||||||
|
// force updating the model to sync it with addedSettingsModel
|
||||||
|
if(visible)
|
||||||
|
{
|
||||||
|
listview.model.forceUpdate()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
TextField {
|
TextField {
|
||||||
id: filter
|
id: filter
|
||||||
|
|
||||||
|
|
|
@ -62,8 +62,11 @@ class SolidView(View):
|
||||||
|
|
||||||
uniforms = {}
|
uniforms = {}
|
||||||
if not multi_extrusion:
|
if not multi_extrusion:
|
||||||
material = global_container_stack.findContainer({ "type": "material" })
|
if global_container_stack:
|
||||||
material_color = material.getMetaDataEntry("color_code", default = self._extruders_model.defaultColors[0]) if material else self._extruders_model.defaultColors[0]
|
material = global_container_stack.findContainer({ "type": "material" })
|
||||||
|
material_color = material.getMetaDataEntry("color_code", default = self._extruders_model.defaultColors[0]) if material else self._extruders_model.defaultColors[0]
|
||||||
|
else:
|
||||||
|
material_color = self._extruders_model.defaultColors[0]
|
||||||
else:
|
else:
|
||||||
# Get color to render this mesh in from ExtrudersModel
|
# Get color to render this mesh in from ExtrudersModel
|
||||||
extruder_index = 0
|
extruder_index = 0
|
||||||
|
|
|
@ -186,7 +186,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
|
||||||
return
|
return
|
||||||
|
|
||||||
programmer = stk500v2.Stk500v2()
|
programmer = stk500v2.Stk500v2()
|
||||||
programmer.progressCallback = self.setProgress
|
programmer.progress_callback = self.setProgress
|
||||||
|
|
||||||
try:
|
try:
|
||||||
programmer.connect(self._serial_port)
|
programmer.connect(self._serial_port)
|
||||||
|
|
|
@ -20,7 +20,7 @@ class Stk500v2(ispBase.IspBase):
|
||||||
self.serial = None
|
self.serial = None
|
||||||
self.seq = 1
|
self.seq = 1
|
||||||
self.last_addr = -1
|
self.last_addr = -1
|
||||||
self.progressCallback = None
|
self.progress_callback = None
|
||||||
|
|
||||||
def connect(self, port = "COM22", speed = 115200):
|
def connect(self, port = "COM22", speed = 115200):
|
||||||
if self.serial is not None:
|
if self.serial is not None:
|
||||||
|
@ -92,11 +92,11 @@ class Stk500v2(ispBase.IspBase):
|
||||||
load_count = (len(flash_data) + page_size - 1) / page_size
|
load_count = (len(flash_data) + page_size - 1) / page_size
|
||||||
for i in range(0, int(load_count)):
|
for i in range(0, int(load_count)):
|
||||||
recv = self.sendMessage([0x13, page_size >> 8, page_size & 0xFF, 0xc1, 0x0a, 0x40, 0x4c, 0x20, 0x00, 0x00] + flash_data[(i * page_size):(i * page_size + page_size)])
|
recv = self.sendMessage([0x13, page_size >> 8, page_size & 0xFF, 0xc1, 0x0a, 0x40, 0x4c, 0x20, 0x00, 0x00] + flash_data[(i * page_size):(i * page_size + page_size)])
|
||||||
if self.progressCallback is not None:
|
if self.progress_callback is not None:
|
||||||
if self._has_checksum:
|
if self._has_checksum:
|
||||||
self.progressCallback(i + 1, load_count)
|
self.progress_callback(i + 1, load_count)
|
||||||
else:
|
else:
|
||||||
self.progressCallback(i + 1, load_count * 2)
|
self.progress_callback(i + 1, load_count * 2)
|
||||||
|
|
||||||
def verifyFlash(self, flash_data):
|
def verifyFlash(self, flash_data):
|
||||||
if self._has_checksum:
|
if self._has_checksum:
|
||||||
|
@ -120,8 +120,8 @@ class Stk500v2(ispBase.IspBase):
|
||||||
load_count = (len(flash_data) + 0xFF) / 0x100
|
load_count = (len(flash_data) + 0xFF) / 0x100
|
||||||
for i in range(0, int(load_count)):
|
for i in range(0, int(load_count)):
|
||||||
recv = self.sendMessage([0x14, 0x01, 0x00, 0x20])[2:0x102]
|
recv = self.sendMessage([0x14, 0x01, 0x00, 0x20])[2:0x102]
|
||||||
if self.progressCallback is not None:
|
if self.progress_callback is not None:
|
||||||
self.progressCallback(load_count + i + 1, load_count * 2)
|
self.progress_callback(load_count + i + 1, load_count * 2)
|
||||||
for j in range(0, 0x100):
|
for j in range(0, 0x100):
|
||||||
if i * 0x100 + j < len(flash_data) and flash_data[i * 0x100 + j] != recv[j]:
|
if i * 0x100 + j < len(flash_data) and flash_data[i * 0x100 + j] != recv[j]:
|
||||||
raise ispBase.IspError("Verify error at: 0x%x" % (i * 0x100 + j))
|
raise ispBase.IspError("Verify error at: 0x%x" % (i * 0x100 + j))
|
||||||
|
|
|
@ -1586,6 +1586,7 @@
|
||||||
"type": "int",
|
"type": "int",
|
||||||
"default_value": 2,
|
"default_value": 2,
|
||||||
"minimum_value": "0",
|
"minimum_value": "0",
|
||||||
|
"maximum_value_warning": "1.0 / layer_height",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": false
|
"settable_per_extruder": false
|
||||||
},
|
},
|
||||||
|
@ -2747,6 +2748,16 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"brim_outside_only":
|
||||||
|
{
|
||||||
|
"label": "Brim Only on Outside",
|
||||||
|
"description": "Only print the brim on the outside of the model. This reduces the amount of brim you need to remove afterwards, while it doesn't reduce the bed adhesion that much.",
|
||||||
|
"type": "bool",
|
||||||
|
"default_value": true,
|
||||||
|
"enabled": "adhesion_type == \"brim\"",
|
||||||
|
"settable_per_mesh": false,
|
||||||
|
"settable_per_extruder": true
|
||||||
|
},
|
||||||
"raft_margin":
|
"raft_margin":
|
||||||
{
|
{
|
||||||
"label": "Raft Extra Margin",
|
"label": "Raft Extra Margin",
|
||||||
|
@ -3736,7 +3747,7 @@
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"default_value": 5,
|
"default_value": 5,
|
||||||
"minimum_value": "0.1",
|
"minimum_value": "0.1",
|
||||||
"maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)",
|
"maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + max(max_feedrate_z_override, machine_max_feedrate_z) ** 2)",
|
||||||
"maximum_value_warning": "50",
|
"maximum_value_warning": "50",
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
|
@ -3768,7 +3779,7 @@
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"default_value": 5,
|
"default_value": 5,
|
||||||
"minimum_value": "0.1",
|
"minimum_value": "0.1",
|
||||||
"maximum_value": "math.max(max_feedrate_z_override, machine_max_feedrate_z)",
|
"maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + max(max_feedrate_z_override, machine_max_feedrate_z) ** 2)",
|
||||||
"maximum_value_warning": "50",
|
"maximum_value_warning": "50",
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"value": "wireframe_printspeed",
|
"value": "wireframe_printspeed",
|
||||||
|
@ -3784,7 +3795,7 @@
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"default_value": 5,
|
"default_value": 5,
|
||||||
"minimum_value": "0.1",
|
"minimum_value": "0.1",
|
||||||
"maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)",
|
"maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + max(max_feedrate_z_override, machine_max_feedrate_z) ** 2)",
|
||||||
"maximum_value_warning": "50",
|
"maximum_value_warning": "50",
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"value": "wireframe_printspeed",
|
"value": "wireframe_printspeed",
|
||||||
|
|
|
@ -209,7 +209,7 @@ Rectangle {
|
||||||
lengths = ["0.00"];
|
lengths = ["0.00"];
|
||||||
weights = ["0"];
|
weights = ["0"];
|
||||||
}
|
}
|
||||||
return catalog.i18nc("@label", "%1 m / %2 g").arg(lengths.join(" + ")).arg(weights.join(" + "));
|
return catalog.i18nc("@label", "%1 m / ~ %2 g").arg(lengths.join(" + ")).arg(weights.join(" + "));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -100,7 +100,7 @@ SettingItem
|
||||||
|
|
||||||
maximumLength: 10;
|
maximumLength: 10;
|
||||||
|
|
||||||
validator: RegExpValidator { regExp: (type == "int") ? /^-?[0-9]{0,10}/ : /^-?[0-9.,]{0,10}/ } //"type" property from parent loader used to disallow fractional number entry
|
validator: RegExpValidator { regExp: (definition.type == "int") ? /^-?[0-9]{0,10}/ : /^-?[0-9.,]{0,10}/ } // definition.type property from parent loader used to disallow fractional number entry
|
||||||
|
|
||||||
Binding
|
Binding
|
||||||
{
|
{
|
||||||
|
|
|
@ -328,7 +328,7 @@ Item
|
||||||
} else {
|
} else {
|
||||||
supportEnabled.setPropertyValue("value", true);
|
supportEnabled.setPropertyValue("value", true);
|
||||||
// Send the extruder nr as a string.
|
// Send the extruder nr as a string.
|
||||||
supportExtruderNr.setPropertyValue("value", parseInt(index - 1) + "");
|
supportExtruderNr.setPropertyValue("value", String(index - 1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
MouseArea {
|
MouseArea {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue