Merge branch 'master' of github.com:Ultimaker/Cura into CURA-6522_revert_edge_distance_hack

This commit is contained in:
Jaime van Kessel 2019-12-10 13:06:37 +01:00
commit f66b1e6fde
No known key found for this signature in database
GPG Key ID: 3710727397403C91
23 changed files with 112 additions and 40 deletions

View File

@ -1,12 +1,18 @@
---
name: Bug report
about: Create a report to help us fix issues.
title: ''
labels: 'Type: Bug'
assignees: ''
---
<!-- <!--
The following template is useful for filing new issues. Processing an issue will go much faster when this is filled out, and issues which do not use this template WILL BE REMOVED. Processing an issue will go much faster when this is filled out, and issues which do not use this template WILL BE REMOVED and no fix will be considered!
Before filing, PLEASE check if the issue already exists (either open or closed) by using the search bar on the issues page. If it does, comment there. Even if it's closed, we can reopen it based on your comment. Before filing, PLEASE check if the issue already exists (either open or closed) by using the search bar on the issues page. If it does, comment there. Even if it's closed, we can reopen it based on your comment.
Also, please note the application version in the title of the issue. For example: "[3.2.1] Cannot connect to 3rd-party printer". Please do not write things like "Request:" or "[BUG]" in the title; this is what labels are for. Also, please note the application version in the title of the issue. For example: "[3.2.1] Cannot connect to 3rd-party printer". Please do NOT write things like "Request:" or "[BUG]" in the title; this is what labels are for.
It is also helpful to attach a project (.3mf or .curaproject) file and Cura log file so we can debug issues quicker.
Information about how to find the log file can be found at https://github.com/Ultimaker/Cura/wiki/Cura-Preferences-and-Settings-Locations. To upload a project, try changing the extension to e.g. .curaproject.3mf.zip so that github accepts uploading the file. Otherwise we recommend http://wetransfer.com, but other file hosts like Google Drive or Dropbox work well too.
Thank you for using Cura! Thank you for using Cura!
--> -->
@ -15,14 +21,17 @@ Thank you for using Cura!
(The version of the application this issue occurs with.) (The version of the application this issue occurs with.)
**Platform** **Platform**
(Information about the operating system the issue occurs on. Include at least the operating system. In the case of visual glitches/issues, also include information about your graphics drivers and GPU.) (Information about the operating system the issue occurs on. Include at least the operating system and maybe GPU.)
**Printer** **Printer**
(Which printer was selected in Cura? If possible, please attach project file as .curaproject.3mf.zip.) (Which printer was selected in Cura?)
**Reproduction steps** **Reproduction steps**
1. Something you did. 1. (Something you did.)
2. Something you did next. 2. (Something you did next.)
**Screenshot(s)**
(Image showing the problem, perhaps before/after images.)
**Actual results** **Actual results**
(What happens after the above steps have been followed.) (What happens after the above steps have been followed.)
@ -30,5 +39,11 @@ Thank you for using Cura!
**Expected results** **Expected results**
(What should happen after the above steps have been followed.) (What should happen after the above steps have been followed.)
**Project file**
(For slicing bugs, provide a project which clearly shows the bug, by going to File->Save. For big files you may need to use WeTransfer or similar file sharing sites.)
**Log file**
(See https://github.com/Ultimaker/Cura#logging-issues to find the log file to upload, or copy a relevant snippet from it.)
**Additional information** **Additional information**
(Extra information relevant to the issue, like screenshots. Don't forget to attach the log files with this issue report.) (Extra information relevant to the issue.)

View File

@ -14,10 +14,6 @@ Before filing, PLEASE check if the issue already exists (either open or closed)
Also, please note the application version in the title of the issue. For example: "[3.2.1] Cannot connect to 3rd-party printer". Please do NOT write things like "Request:" or "[BUG]" in the title; this is what labels are for. Also, please note the application version in the title of the issue. For example: "[3.2.1] Cannot connect to 3rd-party printer". Please do NOT write things like "Request:" or "[BUG]" in the title; this is what labels are for.
It is also helpful to attach a project (.3mf or .curaproject) file and Cura log file so we can debug issues quicker. Information about how to find the log file can be found at https://github.com/Ultimaker/Cura#logging-issues
To upload a project, try changing the extension to e.g. .curaproject.3mf.zip so that GitHub accepts uploading the file. Otherwise, we recommend http://wetransfer.com, but other file hosts like Google Drive or Dropbox work well too.
Thank you for using Cura! Thank you for using Cura!
--> -->
@ -25,14 +21,17 @@ Thank you for using Cura!
(The version of the application this issue occurs with.) (The version of the application this issue occurs with.)
**Platform** **Platform**
(Information about the operating system the issue occurs on. Include at least the operating system. In the case of visual glitches/issues, also include information about your graphics drivers and GPU.) (Information about the operating system the issue occurs on. Include at least the operating system and maybe GPU.)
**Printer** **Printer**
(Which printer was selected in Cura? If possible, please attach project file as .curaproject.3mf.zip.) (Which printer was selected in Cura?)
**Reproduction steps** **Reproduction steps**
1. Something you did. 1. (Something you did.)
2. Something you did next. 2. (Something you did next.)
**Screenshot(s)**
(Image showing the problem, perhaps before/after images.)
**Actual results** **Actual results**
(What happens after the above steps have been followed.) (What happens after the above steps have been followed.)
@ -40,5 +39,11 @@ Thank you for using Cura!
**Expected results** **Expected results**
(What should happen after the above steps have been followed.) (What should happen after the above steps have been followed.)
**Project file**
(For slicing bugs, provide a project which clearly shows the bug, by going to File->Save. For big files you may need to use WeTransfer or similar file sharing sites.)
**Log file**
(See https://github.com/Ultimaker/Cura#logging-issues to find the log file to upload, or copy a relevant snippet from it.)
**Additional information** **Additional information**
(Extra information relevant to the issue, like screenshots. Don't forget to attach the log files with this issue report.) (Extra information relevant to the issue.)

View File

@ -25,6 +25,8 @@ from UM.View.GL.OpenGL import OpenGL
from UM.i18n import i18nCatalog from UM.i18n import i18nCatalog
from UM.Resources import Resources from UM.Resources import Resources
from cura import ApplicationMetadata
catalog = i18nCatalog("cura") catalog = i18nCatalog("cura")
MYPY = False MYPY = False
@ -181,6 +183,7 @@ class CrashHandler:
self.cura_version = catalog.i18nc("@label unknown version of Cura", "Unknown") self.cura_version = catalog.i18nc("@label unknown version of Cura", "Unknown")
crash_info = "<b>" + catalog.i18nc("@label Cura version number", "Cura version") + ":</b> " + str(self.cura_version) + "<br/>" crash_info = "<b>" + catalog.i18nc("@label Cura version number", "Cura version") + ":</b> " + str(self.cura_version) + "<br/>"
crash_info += "<b>" + catalog.i18nc("@label Cura build type", "Cura build type") + ":</b> " + str(ApplicationMetadata.CuraBuildType) + "<br/>"
crash_info += "<b>" + catalog.i18nc("@label Type of platform", "Platform") + ":</b> " + str(platform.platform()) + "<br/>" crash_info += "<b>" + catalog.i18nc("@label Type of platform", "Platform") + ":</b> " + str(platform.platform()) + "<br/>"
crash_info += "<b>" + catalog.i18nc("@label", "Qt version") + ":</b> " + str(QT_VERSION_STR) + "<br/>" crash_info += "<b>" + catalog.i18nc("@label", "Qt version") + ":</b> " + str(QT_VERSION_STR) + "<br/>"
crash_info += "<b>" + catalog.i18nc("@label", "PyQt version") + ":</b> " + str(PYQT_VERSION_STR) + "<br/>" crash_info += "<b>" + catalog.i18nc("@label", "PyQt version") + ":</b> " + str(PYQT_VERSION_STR) + "<br/>"
@ -191,6 +194,7 @@ class CrashHandler:
group.setLayout(layout) group.setLayout(layout)
self.data["cura_version"] = self.cura_version self.data["cura_version"] = self.cura_version
self.data["cura_build_type"] = ApplicationMetadata.CuraBuildType
self.data["os"] = {"type": platform.system(), "version": platform.version()} self.data["os"] = {"type": platform.system(), "version": platform.version()}
self.data["qt_version"] = QT_VERSION_STR self.data["qt_version"] = QT_VERSION_STR
self.data["pyqt_version"] = PYQT_VERSION_STR self.data["pyqt_version"] = PYQT_VERSION_STR

View File

@ -140,7 +140,7 @@ class MachineNode(ContainerNode):
elif groups_by_name[name].intent_category == "default": # Intent category should be stored as "default" if everything is default or as the intent if any of the extruder have an actual intent. elif groups_by_name[name].intent_category == "default": # Intent category should be stored as "default" if everything is default or as the intent if any of the extruder have an actual intent.
groups_by_name[name].intent_category = quality_changes.get("intent_category", "default") groups_by_name[name].intent_category = quality_changes.get("intent_category", "default")
if quality_changes.get("position") is not None: # An extruder profile. if quality_changes.get("position") is not None and quality_changes.get("position") != "None": # An extruder profile.
groups_by_name[name].metadata_per_extruder[int(quality_changes["position"])] = quality_changes groups_by_name[name].metadata_per_extruder[int(quality_changes["position"])] = quality_changes
else: # Global profile. else: # Global profile.
groups_by_name[name].metadata_for_global = quality_changes groups_by_name[name].metadata_for_global = quality_changes

View File

@ -7,6 +7,7 @@ from PyQt5.QtCore import Qt, QObject, pyqtProperty, pyqtSignal
import cura.CuraApplication import cura.CuraApplication
from UM.Qt.ListModel import ListModel from UM.Qt.ListModel import ListModel
from UM.Settings.ContainerRegistry import ContainerRegistry from UM.Settings.ContainerRegistry import ContainerRegistry
from UM.Logger import Logger
from cura.Machines.ContainerTree import ContainerTree from cura.Machines.ContainerTree import ContainerTree
from cura.Machines.MaterialNode import MaterialNode from cura.Machines.MaterialNode import MaterialNode
from cura.Machines.Models.MachineModelUtils import fetchLayerHeight from cura.Machines.Models.MachineModelUtils import fetchLayerHeight
@ -101,6 +102,9 @@ class IntentModel(ListModel):
for extruder in global_stack.extruderList: for extruder in global_stack.extruderList:
active_variant_name = extruder.variant.getMetaDataEntry("name") active_variant_name = extruder.variant.getMetaDataEntry("name")
if active_variant_name not in machine_node.variants:
Logger.log("w", "Could not find the variant %s", active_variant_name)
continue
active_variant_node = machine_node.variants[active_variant_name] active_variant_node = machine_node.variants[active_variant_name]
active_material_node = active_variant_node.materials[extruder.material.getMetaDataEntry("base_file")] active_material_node = active_variant_node.materials[extruder.material.getMetaDataEntry("base_file")]
nodes.add(active_material_node) nodes.add(active_material_node)

View File

@ -154,7 +154,7 @@ class NetworkedPrinterOutputDevice(PrinterOutputDevice):
part = QHttpPart() part = QHttpPart()
if not content_header.startswith("form-data;"): if not content_header.startswith("form-data;"):
content_header = "form_data; " + content_header content_header = "form-data; " + content_header
part.setHeader(QNetworkRequest.ContentDispositionHeader, content_header) part.setHeader(QNetworkRequest.ContentDispositionHeader, content_header)
if content_type is not None: if content_type is not None:

View File

@ -39,7 +39,11 @@ class IntentManager(QObject):
# an empty list if nothing was found. # an empty list if nothing was found.
def intentMetadatas(self, definition_id: str, nozzle_name: str, material_base_file: str) -> List[Dict[str, Any]]: def intentMetadatas(self, definition_id: str, nozzle_name: str, material_base_file: str) -> List[Dict[str, Any]]:
intent_metadatas = [] # type: List[Dict[str, Any]] intent_metadatas = [] # type: List[Dict[str, Any]]
try:
materials = ContainerTree.getInstance().machines[definition_id].variants[nozzle_name].materials materials = ContainerTree.getInstance().machines[definition_id].variants[nozzle_name].materials
except KeyError:
Logger.log("w", "Unable to find the machine %s or the variant %s", definition_id, nozzle_name)
materials = {}
if material_base_file not in materials: if material_base_file not in materials:
return intent_metadatas return intent_metadatas

View File

@ -1247,6 +1247,8 @@ class MachineManager(QObject):
if metadata_key in new_machine.getMetaData(): if metadata_key in new_machine.getMetaData():
continue # Don't copy the already preset stuff. continue # Don't copy the already preset stuff.
new_machine.setMetaDataEntry(metadata_key, self._global_container_stack.getMetaDataEntry(metadata_key)) new_machine.setMetaDataEntry(metadata_key, self._global_container_stack.getMetaDataEntry(metadata_key))
# Special case, group_id should be overwritten!
new_machine.setMetaDataEntry("group_id", self._global_container_stack.getMetaDataEntry("group_id"))
else: else:
Logger.log("i", "Found a %s with the key %s. Let's use it!", machine_name, self.activeMachineNetworkKey()) Logger.log("i", "Found a %s with the key %s. Let's use it!", machine_name, self.activeMachineNetworkKey())

View File

@ -1,7 +1,7 @@
# Cura PostProcessingPlugin # Cura PostProcessingPlugin
# Author: Mathias Lyngklip Kjeldgaard # Author: Mathias Lyngklip Kjeldgaard
# Date: July 31, 2019 # Date: July 31, 2019
# Modified: --- # Modified: November 26, 2019
# Description: This plugin displayes the remaining time on the LCD of the printer # Description: This plugin displayes the remaining time on the LCD of the printer
# using the estimated print-time generated by Cura. # using the estimated print-time generated by Cura.
@ -23,7 +23,7 @@ class DisplayRemainingTimeOnLCD(Script):
def getSettingDataString(self): def getSettingDataString(self):
return """{ return """{
"name":"Disaplay Remaining Time on LCD", "name":"Display Remaining Time on LCD",
"key":"DisplayRemainingTimeOnLCD", "key":"DisplayRemainingTimeOnLCD",
"metadata": {}, "metadata": {},
"version": 2, "version": 2,
@ -32,7 +32,7 @@ class DisplayRemainingTimeOnLCD(Script):
"TurnOn": "TurnOn":
{ {
"label": "Enable", "label": "Enable",
"description": "When enabled, It will write Time Left: HHMMSS on the display", "description": "When enabled, It will write Time Left: HHMMSS on the display. This is updated every layer.",
"type": "bool", "type": "bool",
"default_value": false "default_value": false
} }

View File

@ -219,7 +219,7 @@ class PauseAtHeight(Script):
current_height = current_z - layer_0_z current_height = current_z - layer_0_z
if current_height < pause_height: if current_height < pause_height:
break # Try the next layer. continue # Scan the enitre layer, z-changes are not always on the same/first line.
# Pause at layer # Pause at layer
else: else:

View File

@ -18,6 +18,8 @@ from UM.Logger import Logger
from UM.PluginRegistry import PluginRegistry from UM.PluginRegistry import PluginRegistry
from UM.Qt.Duration import DurationFormat from UM.Qt.Duration import DurationFormat
from cura import ApplicationMetadata
from .SliceInfoJob import SliceInfoJob from .SliceInfoJob import SliceInfoJob
@ -119,6 +121,7 @@ class SliceInfo(QObject, Extension):
data["time_stamp"] = time.time() data["time_stamp"] = time.time()
data["schema_version"] = 0 data["schema_version"] = 0
data["cura_version"] = application.getVersion() data["cura_version"] = application.getVersion()
data["cura_build_type"] = ApplicationMetadata.CuraBuildType
active_mode = Application.getInstance().getPreferences().getValue("cura/active_mode") active_mode = Application.getInstance().getPreferences().getValue("cura/active_mode")
if active_mode == 0: if active_mode == 0:

View File

@ -239,7 +239,7 @@ class VersionUpgrade41to42(VersionUpgrade):
# #
# This renames the renamed settings in the containers. # This renames the renamed settings in the containers.
def upgradeInstanceContainer(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]: def upgradeInstanceContainer(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
parser = configparser.ConfigParser(interpolation = None) parser = configparser.ConfigParser(interpolation = None, comment_prefixes=())
parser.read_string(serialized) parser.read_string(serialized)
# Update version number. # Update version number.

View File

@ -104,7 +104,7 @@ class VersionUpgrade42to43(VersionUpgrade):
# #
# This renames the renamed settings in the containers. # This renames the renamed settings in the containers.
def upgradeInstanceContainer(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]: def upgradeInstanceContainer(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
parser = configparser.ConfigParser(interpolation = None) parser = configparser.ConfigParser(interpolation = None, comment_prefixes=())
parser.read_string(serialized) parser.read_string(serialized)
# Update version number. # Update version number.

View File

@ -52,7 +52,7 @@ class VersionUpgrade43to44(VersionUpgrade):
# #
# This renames the renamed settings in the containers. # This renames the renamed settings in the containers.
def upgradeInstanceContainer(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]: def upgradeInstanceContainer(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
parser = configparser.ConfigParser(interpolation = None) parser = configparser.ConfigParser(interpolation = None, comment_prefixes=())
parser.read_string(serialized) parser.read_string(serialized)
# Update version number. # Update version number.

View File

@ -1104,6 +1104,7 @@ class XmlMaterialProfile(InstanceContainer):
"anti ooze retract speed": "material_anti_ooze_retraction_speed", "anti ooze retract speed": "material_anti_ooze_retraction_speed",
"break preparation position": "material_break_preparation_retracted_position", "break preparation position": "material_break_preparation_retracted_position",
"break preparation speed": "material_break_preparation_speed", "break preparation speed": "material_break_preparation_speed",
"break preparation temperature": "material_break_preparation_temperature",
"break position": "material_break_retracted_position", "break position": "material_break_retracted_position",
"break speed": "material_break_speed", "break speed": "material_break_speed",
"break temperature": "material_break_temperature" "break temperature": "material_break_temperature"

View File

@ -9,9 +9,14 @@
}, },
"overrides": { "overrides": {
"machine_name": { "default_value": "Creality Ender-3" }, "machine_name": { "default_value": "Creality Ender-3" },
"machine_width": { "default_value": 220 }, "machine_width": { "default_value": 235 },
"machine_depth": { "default_value": 220 }, "machine_depth": { "default_value": 235 },
"machine_height": { "default_value": 250 }, "machine_height": { "default_value": 250 },
"machine_disallowed_areas": {
"default_value": [
[[-117.5, 117.5], [-117.5, 108], [117.5, 108], [117.5, 117.5]],
[[-117.5, -108], [-117.5, -117.5], [117.5, -117.5], [117.5, -108]]
]},
"machine_head_with_fans_polygon": { "default_value": [ "machine_head_with_fans_polygon": { "default_value": [
[-26, 34], [-26, 34],
[-26, -32], [-26, -32],

View File

@ -2337,6 +2337,20 @@
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
}, },
"material_break_preparation_temperature":
{
"label": "Break Preparation Temperature",
"description": "The temperature used to purge material, should be roughly equal to the highest possible printing temperature.",
"type": "float",
"unit": "°C",
"default_value": 50,
"value": "material_print_temperature",
"enabled": false,
"minimum_value": "-273.15",
"maximum_value_warning": "300",
"settable_per_mesh": false,
"settable_per_extruder": true
},
"material_break_retracted_position": "material_break_retracted_position":
{ {
"label": "Break Retracted Position", "label": "Break Retracted Position",
@ -2695,7 +2709,6 @@
"minimum_value": "0", "minimum_value": "0",
"minimum_value_warning": "line_width * 1.5", "minimum_value_warning": "line_width * 1.5",
"maximum_value_warning": "10", "maximum_value_warning": "10",
"enabled": false,
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
}, },
@ -7123,6 +7136,17 @@
"enabled": "bridge_settings_enabled", "enabled": "bridge_settings_enabled",
"settable_per_mesh": true "settable_per_mesh": true
}, },
"bridge_sparse_infill_max_density":
{
"label": "Bridge Sparse Infill Max Density",
"description": "Maximum density of infill considered to be sparse. Skin over sparse infill is considered to be unsupported and so may be treated as a bridge skin.",
"unit": "%",
"type": "float",
"default_value": 0,
"minimum_value": "0",
"enabled": "bridge_settings_enabled",
"settable_per_mesh": true
},
"bridge_wall_coast": "bridge_wall_coast":
{ {
"label": "Bridge Wall Coasting", "label": "Bridge Wall Coasting",

View File

@ -50,10 +50,10 @@
"default_value": "RepRap (Marlin/Sprinter)" "default_value": "RepRap (Marlin/Sprinter)"
}, },
"machine_start_gcode": { "machine_start_gcode": {
"default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..." "default_value": "M104 T0 S{material_print_temperature_layer_0}\nG28 ;Home extruder\nG90 ;Absolute positioning\nM82 ;Extruder in absolute mode\nG1 Z1 F100\nG92 E0 ;Reset extruder position\nM109 T0 S{material_print_temperature_layer_0}\nG1 E20 F100\nG92 E0 ;Reset extruder position"
}, },
"machine_end_gcode": { "machine_end_gcode": {
"default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" "default_value": "G1 X0 Y0 Z130 ;Get extruder out of way\nM107 ;Turn off fan\n;Disable all extruders\nG91 ;Relative positioning\nT0\nG1 E-1 ;Reduce filament pressure\nM104 T0 S0\nG90 ;Absolute positioning\nG92 E0 ;Reset extruder position\nM140 S0 ;Disable heated bed\nM84 ;Turn steppers off"
} }
} }
} }

View File

@ -2890,7 +2890,7 @@ msgstr "Coste del filamento"
#: /home/ruben/Projects/Cura/resources/qml/Preferences/Materials/MaterialsView.qml:276 #: /home/ruben/Projects/Cura/resources/qml/Preferences/Materials/MaterialsView.qml:276
msgctxt "@label" msgctxt "@label"
msgid "Filament weight" msgid "Filament weight"
msgstr "Anchura del filamento" msgstr "Peso del filamento"
#: /home/ruben/Projects/Cura/resources/qml/Preferences/Materials/MaterialsView.qml:294 #: /home/ruben/Projects/Cura/resources/qml/Preferences/Materials/MaterialsView.qml:294
msgctxt "@label" msgctxt "@label"

View File

@ -21,7 +21,8 @@ UM.MainWindow
id: base id: base
// Cura application window title // Cura application window title
title: catalog.i18nc("@title:window", "Ultimaker Cura") title: PrintInformation.jobName + " - " + catalog.i18nc("@title:window", CuraApplication.applicationDisplayName)
backgroundColor: UM.Theme.getColor("viewport_background") backgroundColor: UM.Theme.getColor("viewport_background")
UM.I18nCatalog UM.I18nCatalog

View File

@ -177,6 +177,7 @@ UM.Dialog
return catalog.i18nc("@action:label", "Extruder %1").arg(extruder_id) return catalog.i18nc("@action:label", "Extruder %1").arg(extruder_id)
} }
font.bold: true font.bold: true
enabled: modelData.isEnabled
} }
Row Row
{ {
@ -194,6 +195,7 @@ UM.Dialog
return catalog.i18nc("@action:label", "Material") return catalog.i18nc("@action:label", "Material")
} }
width: Math.floor(scroll.width / 3) | 0 width: Math.floor(scroll.width / 3) | 0
enabled: modelData.isEnabled
} }
Label Label
{ {
@ -205,7 +207,7 @@ UM.Dialog
} }
return materialName return materialName
} }
enabled: modelData.isEnabled
width: Math.floor(scroll.width / 3) | 0 width: Math.floor(scroll.width / 3) | 0
} }
} }

View File

@ -91,7 +91,8 @@ Item
// individual item has a dynamic change on its visibility, the ListView doesn't redraw itself. // individual item has a dynamic change on its visibility, the ListView doesn't redraw itself.
// The default value of cacheBuffer is platform-dependent, so we explicitly disable it here. // The default value of cacheBuffer is platform-dependent, so we explicitly disable it here.
cacheBuffer: 0 cacheBuffer: 0
boundsBehavior: Flickable.StopAtBounds
flickDeceleration: 20000 // To prevent the flicking behavior.
model: UM.DefinitionContainersModel model: UM.DefinitionContainersModel
{ {
id: machineDefinitionsModel id: machineDefinitionsModel

View File

@ -71,7 +71,8 @@ Item
section.property: "modelData.sectionName" section.property: "modelData.sectionName"
section.criteria: ViewSection.FullString section.criteria: ViewSection.FullString
section.delegate: sectionHeading section.delegate: sectionHeading
boundsBehavior: Flickable.StopAtBounds
flickDeceleration: 20000 // To prevent the flicking behavior.
cacheBuffer: 1000000 // Set a large cache to effectively just cache every list item. cacheBuffer: 1000000 // Set a large cache to effectively just cache every list item.
Component.onCompleted: Component.onCompleted: