Merge remote-tracking branch 'upstream/master' into master-CURA-2079

This commit is contained in:
Thomas Karl Pietrowski 2016-08-14 17:43:26 +02:00
commit 8179fabf1d
11 changed files with 50 additions and 25 deletions

View file

@ -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:

View file

@ -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("*","")

View file

@ -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:

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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))

View file

@ -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",

View file

@ -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(" + "));
} }
} }
} }

View file

@ -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
{ {

View file

@ -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 {