diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 1a10e45662..6a4b996080 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -125,6 +125,8 @@ class CuraApplication(QtApplication): # Cura will always show the Add Machine Dialog upon start. stacksValidationFinished = pyqtSignal() # Emitted whenever a validation is finished + projectFileLoaded = pyqtSignal(str) # Emitted whenever a project file is loaded + def __init__(self): # this list of dir names will be used by UM to detect an old cura directory for dir_name in ["extruders", "machine_instances", "materials", "plugins", "quality", "user", "variants"]: @@ -1365,8 +1367,9 @@ class CuraApplication(QtApplication): # Find node location offset_shape_arr, hull_shape_arr = ShapeArray.fromNode(node, min_offset = min_offset) + # If a model is to small then it will not contain any points if offset_shape_arr is None and hull_shape_arr is None: - Message(self._i18n_catalog.i18nc("@info:status","Could not load a model"), + Message(self._i18n_catalog.i18nc("@info:status", "The selected model was too small to load."), title=self._i18n_catalog.i18nc("@info:title", "Warning")).show() return diff --git a/cura/PrintInformation.py b/cura/PrintInformation.py index 80abd0c356..86bcc2719e 100644 --- a/cura/PrintInformation.py +++ b/cura/PrintInformation.py @@ -66,10 +66,11 @@ class PrintInformation(QObject): self._base_name = "" self._abbr_machine = "" self._job_name = "" + self._project_name = "" Application.getInstance().globalContainerStackChanged.connect(self._updateJobName) Application.getInstance().fileLoaded.connect(self.setBaseName) - + Application.getInstance().projectFileLoaded.connect(self.setProjectName) Preferences.getInstance().preferenceChanged.connect(self._onPreferencesChanged) self._active_material_container = None @@ -78,7 +79,6 @@ class PrintInformation(QObject): self._material_amounts = [] - # Crate cura message translations and using translation keys initialize empty time Duration object for total time # and time for each feature def initializeCuraMessagePrintTimeProperties(self): @@ -241,6 +241,11 @@ class PrintInformation(QObject): self._job_name = name self.jobNameChanged.emit() + @pyqtSlot(str) + def setProjectName(self, name): + self._project_name = name + self.setJobName(name) + jobNameChanged = pyqtSignal() @pyqtProperty(str, notify = jobNameChanged) @@ -248,6 +253,11 @@ class PrintInformation(QObject): return self._job_name def _updateJobName(self): + # if the project name is set, we use the project name as the job name, so the job name should not get updated + # if a model file is loaded after that. + if self._project_name != "": + return + if self._base_name == "": self._job_name = "" self.jobNameChanged.emit() diff --git a/cura/ShapeArray.py b/cura/ShapeArray.py index 3594db2270..73fc2023e3 100755 --- a/cura/ShapeArray.py +++ b/cura/ShapeArray.py @@ -43,13 +43,13 @@ class ShapeArray: transform_x = transform._data[0][3] transform_y = transform._data[2][3] hull_verts = node.callDecoration("getConvexHull") - - if not hull_verts.getPoints().any(): # IF a model is to small then it will not contain any points - return None, None - # For one_at_a_time printing you need the convex hull head. hull_head_verts = node.callDecoration("getConvexHullHead") or hull_verts + # If a model is to small then it will not contain any points + if not hull_verts.getPoints().any(): + return None, None + offset_verts = hull_head_verts.getMinkowskiHull(Polygon.approximatedCircle(min_offset)) offset_points = copy.deepcopy(offset_verts._points) # x, y offset_points[:, 0] = numpy.add(offset_points[:, 0], -transform_x) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index 79e137e87f..5b1e084262 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -26,6 +26,7 @@ from configparser import ConfigParser import zipfile import io import configparser +import os i18n_catalog = i18nCatalog("cura") @@ -876,6 +877,11 @@ class ThreeMFWorkspaceReader(WorkspaceReader): nodes = self._3mf_mesh_reader.read(file_name) if nodes is None: nodes = [] + + base_file_name = os.path.basename(file_name) + if base_file_name.endswith(".curaproject.3mf"): + base_file_name = base_file_name[:base_file_name.rfind(".curaproject.3mf")] + Application.getInstance().projectFileLoaded.emit(base_file_name) return nodes ## HACK: Replaces the material container in the given stack with a newly created material container. diff --git a/plugins/LayerView/LayerSlider.qml b/plugins/LayerView/LayerSlider.qml index 74106f0bc8..9abeb01148 100644 --- a/plugins/LayerView/LayerSlider.qml +++ b/plugins/LayerView/LayerSlider.qml @@ -20,6 +20,7 @@ Item { property color lowerHandleColor: "black" property color rangeHandleColor: "black" property real handleLabelWidth: width + property var activeHandle: upperHandle // track properties property real trackThickness: 4 // width of the slider track @@ -60,6 +61,11 @@ Item { rangeHandle.height = lowerHandle.y - (upperHandle.y + upperHandle.height) } + // set the active handle to show only one label at a time + function setActiveHandle (handle) { + activeHandle = handle + } + // slider track Rectangle { id: track @@ -98,6 +104,15 @@ Item { UM.LayerView.setMinimumLayer(lowerValue) } + function setValue (value) { + var range = sliderRoot.upperValue - sliderRoot.lowerValue + value = Math.min(value, sliderRoot.maximumValue) + value = Math.max(value, sliderRoot.minimumValue + range) + + UM.LayerView.setCurrentLayer(value) + UM.LayerView.setMinimumLayer(value - range) + } + Rectangle { width: sliderRoot.trackThickness - 2 * sliderRoot.trackBorderWidth height: parent.height + sliderRoot.handleSize @@ -116,6 +131,23 @@ Item { } onPositionChanged: parent.onHandleDragged() + onPressed: sliderRoot.setActiveHandle(rangeHandle) + } + + LayerSliderLabel { + id: rangleHandleLabel + + height: sliderRoot.handleSize + UM.Theme.getSize("default_margin").height + x: parent.x - width - UM.Theme.getSize("default_margin").width + anchors.verticalCenter: parent.verticalCenter + target: Qt.point(sliderRoot.width, y + height / 2) + visible: sliderRoot.activeHandle == parent + + // custom properties + maximumValue: sliderRoot.maximumValue + value: sliderRoot.upperValue + busy: UM.LayerView.busy + setValue: rangeHandle.setValue // connect callback functions } } @@ -178,6 +210,7 @@ Item { } onPositionChanged: parent.onHandleDragged() + onPressed: sliderRoot.setActiveHandle(upperHandle) } LayerSliderLabel { @@ -187,13 +220,13 @@ Item { x: parent.x - width - UM.Theme.getSize("default_margin").width anchors.verticalCenter: parent.verticalCenter target: Qt.point(sliderRoot.width, y + height / 2) - visible: sliderRoot.layersVisible + visible: sliderRoot.activeHandle == parent // custom properties maximumValue: sliderRoot.maximumValue value: sliderRoot.upperValue busy: UM.LayerView.busy - setValue: sliderRoot.setUpperValue // connect callback functions + setValue: upperHandle.setValue // connect callback functions } } @@ -257,6 +290,7 @@ Item { } onPositionChanged: parent.onHandleDragged() + onPressed: sliderRoot.setActiveHandle(lowerHandle) } LayerSliderLabel { @@ -266,13 +300,13 @@ Item { x: parent.x - width - UM.Theme.getSize("default_margin").width anchors.verticalCenter: parent.verticalCenter target: Qt.point(sliderRoot.width, y + height / 2) - visible: sliderRoot.layersVisible + visible: sliderRoot.activeHandle == parent // custom properties maximumValue: sliderRoot.maximumValue value: sliderRoot.lowerValue busy: UM.LayerView.busy - setValue: sliderRoot.setLowerValue // connect callback functions + setValue: lowerHandle.setValue // connect callback functions } } } diff --git a/plugins/LayerView/LayerSliderLabel.qml b/plugins/LayerView/LayerSliderLabel.qml index 5c477db29f..892f1775ea 100644 --- a/plugins/LayerView/LayerSliderLabel.qml +++ b/plugins/LayerView/LayerSliderLabel.qml @@ -22,13 +22,16 @@ UM.PointingRectangle { arrowSize: UM.Theme.getSize("default_arrow").width height: parent.height width: valueLabel.width + UM.Theme.getSize("default_margin").width + visible: false + + // make sure the text field is focussed when pressing the parent handle + // needed to connect the key bindings when switching active handle + onVisibleChanged: if (visible) valueLabel.forceActiveFocus() color: UM.Theme.getColor("tool_panel_background") borderColor: UM.Theme.getColor("lining") borderWidth: UM.Theme.getSize("default_lining").width - visible: true - Behavior on height { NumberAnimation { duration: 50 @@ -53,6 +56,10 @@ UM.PointingRectangle { text: sliderLabelRoot.value + 1 // the current handle value, add 1 because layers is an array horizontalAlignment: TextInput.AlignRight + // key bindings, work when label is currenctly focused (active handle in LayerSlider) + Keys.onUpPressed: sliderLabelRoot.setValue(sliderLabelRoot.value + ((event.modifiers & Qt.ShiftModifier) ? 10 : 1)) + Keys.onDownPressed: sliderLabelRoot.setValue(sliderLabelRoot.value - ((event.modifiers & Qt.ShiftModifier) ? 10 : 1)) + style: TextFieldStyle { textColor: UM.Theme.getColor("setting_control_text") font: UM.Theme.getFont("default") @@ -76,9 +83,6 @@ UM.PointingRectangle { bottom: 1 top: sliderLabelRoot.maximumValue + 1 // +1 because actual layers is an array } - - Keys.onUpPressed: sliderLabelRoot.setValue(sliderLabelRoot.value + ((event.modifiers & Qt.ShiftModifier) ? 10 : 1)) - Keys.onDownPressed: sliderLabelRoot.setValue(sliderLabelRoot.value - ((event.modifiers & Qt.ShiftModifier) ? 10 : 1)) } BusyIndicator { diff --git a/plugins/LayerView/LayerView.qml b/plugins/LayerView/LayerView.qml index 042af5ff6c..7261926bc5 100755 --- a/plugins/LayerView/LayerView.qml +++ b/plugins/LayerView/LayerView.qml @@ -368,6 +368,7 @@ Item // update values when layer data changes Connections { target: UM.LayerView + onMaxLayersChanged: slider.setUpperValue(UM.LayerView.currentLayer) onMinimumLayerChanged: slider.setLowerValue(UM.LayerView.minimumLayer) onCurrentLayerChanged: slider.setUpperValue(UM.LayerView.currentLayer) } diff --git a/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml b/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml index 7dcda59068..205dbdc9d9 100644 --- a/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +++ b/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml @@ -285,11 +285,11 @@ Cura.MachineAction } else if (base.selectedPrinter.clusterSize === 0) { - return catalog.i18nc("@label", "Cura Connect: This printer is not set up to host a group of connected Ultimaker 3 printers."); + return catalog.i18nc("@label", "This printer is not set up to host a group of Ultimaker 3 printers."); } else { - return catalog.i18nc("@label", "Cura Connect: This printer is set up to host a group of %1 connected Ultimaker 3 printers".arg(base.selectedPrinter.clusterSize)); + return catalog.i18nc("@label", "This printer is the host for a group of %1 Ultimaker 3 printers.".arg(base.selectedPrinter.clusterSize)); } } diff --git a/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py b/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py index 5ce498e11c..cfa793996b 100644 --- a/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +++ b/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py @@ -19,6 +19,7 @@ from UM.Message import Message from UM.OutputDevice import OutputDeviceError from UM.i18n import i18nCatalog from UM.Qt.Duration import Duration, DurationFormat +from UM.PluginRegistry import PluginRegistry from . import NetworkPrinterOutputDevice @@ -36,7 +37,7 @@ class NetworkClusterPrinterOutputDevice(NetworkPrinterOutputDevice.NetworkPrinte printersChanged = pyqtSignal() selectedPrinterChanged = pyqtSignal() - def __init__(self, key, address, properties, api_prefix, plugin_path): + def __init__(self, key, address, properties, api_prefix): super().__init__(key, address, properties, api_prefix) # Store the address of the master. self._master_address = address @@ -47,7 +48,6 @@ class NetworkClusterPrinterOutputDevice(NetworkPrinterOutputDevice.NetworkPrinte name = key self._authentication_state = NetworkPrinterOutputDevice.AuthState.Authenticated # The printer is always authenticated - self._plugin_path = plugin_path self.setName(name) description = i18n_catalog.i18nc("@action:button Preceded by 'Ready to'.", "Print over network") @@ -709,3 +709,14 @@ class NetworkClusterPrinterOutputDevice(NetworkPrinterOutputDevice.NetworkPrinte @pyqtSlot(int, result=str) def formatDuration(self, seconds): return Duration(seconds).getDisplayString(DurationFormat.Format.Short) + + ## For cluster below + def _get_plugin_directory_name(self): + current_file_absolute_path = os.path.realpath(__file__) + directory_path = os.path.dirname(current_file_absolute_path) + _, directory_name = os.path.split(directory_path) + return directory_name + + @property + def _plugin_path(self): + return PluginRegistry.getInstance().getPluginPath(self._get_plugin_directory_name()) diff --git a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py index f83c17569a..9dedc87df4 100755 --- a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py +++ b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py @@ -775,6 +775,11 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): ## Start requesting data from printer def connect(self): + # Don't allow to connect to a printer with a faulty connection state. + # For instance when switching printers but the printer is disconnected from the network + if self._connection_state == ConnectionState.error: + return + if self.isConnected(): self.close() # Close previous connection diff --git a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py index daa79ad15a..3566cda69f 100644 --- a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py +++ b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py @@ -223,7 +223,7 @@ class NetworkPrinterOutputDevicePlugin(QObject, OutputDevicePlugin): Logger.log("d", "Printer [%s] had Cura Connect before, so assume it's still equipped with Cura Connect.", name) if force_cluster or cluster_size >= 0 or was_cluster_before: printer = NetworkClusterPrinterOutputDevice.NetworkClusterPrinterOutputDevice( - name, address, properties, self._api_prefix, self._plugin_path) + name, address, properties, self._api_prefix) else: printer = NetworkPrinterOutputDevice.NetworkPrinterOutputDevice(name, address, properties, self._api_prefix) self._printers[printer.getKey()] = printer @@ -289,17 +289,6 @@ class NetworkPrinterOutputDevicePlugin(QObject, OutputDevicePlugin): Logger.log("d", "Bonjour service removed: %s" % name) self.removePrinterSignal.emit(str(name)) - ## For cluster below - def _get_plugin_directory_name(self): - current_file_absolute_path = os.path.realpath(__file__) - directory_path = os.path.dirname(current_file_absolute_path) - _, directory_name = os.path.split(directory_path) - return directory_name - - @property - def _plugin_path(self): - return PluginRegistry.getInstance().getPluginPath(self._get_plugin_directory_name()) - @pyqtSlot() def openControlPanel(self): Logger.log("d", "Opening print jobs web UI...") diff --git a/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml b/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml index 256c911918..005d719266 100644 --- a/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +++ b/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml @@ -39,7 +39,8 @@ Rectangle return catalog.i18nc("@label:status", "Printing"); case "idle": return catalog.i18nc("@label:status", "Available"); - case "unreachable": // TODO: new string + case "unreachable": + return catalog.i18nc("@label:MonitorStatus", "Lost connection with the printer"); case "maintenance": // TODO: new string case "unknown": default: @@ -165,6 +166,7 @@ Rectangle anchors.right: printProgressArea.left anchors.rightMargin: UM.Theme.getSize("default_margin").width color: emphasisColor + opacity: printer != null && printer.status === "unreachable" ? 0.3 : 1 Image { diff --git a/resources/definitions/ultimaker3.def.json b/resources/definitions/ultimaker3.def.json index 2f4ad4e1a8..21f80e18fd 100644 --- a/resources/definitions/ultimaker3.def.json +++ b/resources/definitions/ultimaker3.def.json @@ -67,7 +67,7 @@ "machine_extruder_count": { "default_value": 2 }, "extruder_prime_pos_abs": { "default_value": true }, "machine_start_gcode": { "default_value": "" }, - "machine_end_gcode": { "default_value": "G91 ;Relative movement\nG0 F2400 Z3 E-{retraction_amount}\nG90 ;Disable relative movement" }, + "machine_end_gcode": { "default_value": "G91 ;Relative movement\nG0 F15000 X8.0 Z0.5 E-4.5 ;Wiping+material retraction\nG0 F10000 Z1.5 E4.5 ;Compensation for the retraction\nG90 ;Disable relative movement" }, "prime_tower_position_x": { "value": "machine_depth - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) - 30" }, "prime_tower_wipe_enabled": { "default_value": false }, diff --git a/resources/i18n/cura.pot b/resources/i18n/cura.pot index 409fd77c7b..9135cfc381 100644 --- a/resources/i18n/cura.pot +++ b/resources/i18n/cura.pot @@ -38,6 +38,31 @@ msgctxt "@label:status" msgid "Can't start print" msgstr "" +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "" + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "" + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "" + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/es_ES/cura.po b/resources/i18n/es_ES/cura.po index 1f4ade8a4f..fe88603c5e 100644 --- a/resources/i18n/es_ES/cura.po +++ b/resources/i18n/es_ES/cura.po @@ -36,6 +36,31 @@ msgctxt "@label:status" msgid "Can't start print" msgstr "No se puede imprimir" +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "La impresora no está configurada para alojar un grupo de impresoras Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "Termina a las: " + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "La impresora aloja un grupo de %1 impresoras Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "{printer_name} ha terminado de imprimir «{job_name}»." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "Impresión terminada" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/fi_FI/cura.po b/resources/i18n/fi_FI/cura.po index 6c86ed1575..6c4dc4fdc8 100644 --- a/resources/i18n/fi_FI/cura.po +++ b/resources/i18n/fi_FI/cura.po @@ -36,6 +36,31 @@ msgctxt "@label:status" msgid "Can't start print" msgstr "Tulostus ei käynnisty" +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "Tätä tulostinta ei ole määritetty Ultimaker 3 -tulostinryhmän isännäksi." + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "Päättyy: " + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "Tämä tulostin on {count} tulostimen Ultimaker 3 -ryhmän isäntä." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "{printer_name} on tulostanut työn '{job_name}'." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "Tulosta valmis" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" @@ -578,7 +603,7 @@ msgstr "Tämä tulostin on {count} tulostimen yhdistetyn Ultimaker 3 -ryhmän is #: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:105 #, python-brace-format msgid "{printer_name} has finished printing '{job_name}'. Please collect the print and confirm clearing the build plate." -msgstr "{printer_name} on tulostanut työn {job_name}. Nouda työ ja vahvista alustan tyhjennys." +msgstr "{printer_name} on tulostanut työn '{job_name}'. Nouda työ ja vahvista alustan tyhjennys." #: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/NetworkClusterPrinterOutputDevice.py:106 #, python-brace-format diff --git a/resources/i18n/fr_FR/cura.po b/resources/i18n/fr_FR/cura.po index b018bdade6..5724cb3192 100644 --- a/resources/i18n/fr_FR/cura.po +++ b/resources/i18n/fr_FR/cura.po @@ -36,6 +36,31 @@ msgctxt "@label:status" msgid "Can't start print" msgstr "Ne peux pas imprimer" +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "L'imprimante n'est pas configurée pour héberger un groupe d'imprimantes Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "Complète a: " + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "L'imprimante est le patron pour un groupe de %1 imprimantes Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "{printer_name} a terminé d'imprimer '{job_name}'." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "Impression terminée" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" @@ -163,7 +188,7 @@ msgstr "Impossible de démarrer une nouvelle tâche car l'imprimante est occupé #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:153 msgctxt "@info:title" msgid "Print Details" -msgstr "Imprimer les détails" +msgstr "Les détails d'impression" #: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:456 msgctxt "@info:status" @@ -1566,7 +1591,7 @@ msgstr "Cette imprimante n'est pas configurée pour héberger un groupe d'imprim #: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/DiscoverUM3Action.qml:287 msgctxt "@label" msgid "This printer is the host for a group of %1 connected Ultimaker 3 printers" -msgstr "L'imprimante n'est pas configurée pour héberger un groupe de %1 imprimantes connectées Ultimaker 3." +msgstr "L'imprimante est configurée pour héberger un groupe de %1 imprimantes connectées Ultimaker 3." #: /home/ruben/Projects/Cura/plugins/CuraPrintClusterUpload/PrintWindow.qml:24 msgctxt "@title:window" diff --git a/resources/i18n/it_IT/cura.po b/resources/i18n/it_IT/cura.po index 21a804d1e3..ec85f0c2c8 100644 --- a/resources/i18n/it_IT/cura.po +++ b/resources/i18n/it_IT/cura.po @@ -36,6 +36,31 @@ msgctxt "@label:status" msgid "Can't start print" msgstr "Impossibile avviare la stampa" +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "Questa stampante non è predisposta per comandare un gruppo di stampanti Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "Finisce alle: " + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "Questa stampante comanda un gruppo di %1 stampanti Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "La stampante '{printer_name}' ha finito di stampare '{job_name}'." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "Stampa finita" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/ja_JP/fdmprinter.def.json.po b/resources/i18n/ja_JP/fdmprinter.def.json.po index 4a1b71a79f..aab090bb15 100644 --- a/resources/i18n/ja_JP/fdmprinter.def.json.po +++ b/resources/i18n/ja_JP/fdmprinter.def.json.po @@ -21,8 +21,8 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_settings label" msgid "Machine" -#msgstr "プリンター" msgstr "" +#msgstr "プリンター" #: fdmprinter.def.json msgctxt "machine_settings description" @@ -32,8 +32,8 @@ msgstr "プリンター詳細設定" #: fdmprinter.def.json msgctxt "machine_name label" msgid "Machine Type" -#msgstr "プリンタータイプ" msgstr "" +#msgstr "プリンタータイプ" #: fdmprinter.def.json msgctxt "machine_name description" @@ -43,8 +43,8 @@ msgstr "3Dプリンターの機種名" #: fdmprinter.def.json msgctxt "machine_show_variants label" msgid "Show Machine Variants" -#msgstr "プリンターのバリエーションを表示する" msgstr "" +#msgstr "プリンターのバリエーションを表示する" #: fdmprinter.def.json msgctxt "machine_show_variants description" @@ -54,8 +54,8 @@ msgstr "このプリンターのバリエーションを表示するかどうか #: fdmprinter.def.json msgctxt "machine_start_gcode label" msgid "Start GCode" -#msgstr "GCodeを開始する" msgstr "" +#msgstr "GCodeを開始する" #: fdmprinter.def.json msgctxt "machine_start_gcode description" @@ -69,8 +69,8 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_end_gcode label" msgid "End GCode" -#msgstr "GCodeを終了する" msgstr "" +#msgstr "GCodeを終了する" #: fdmprinter.def.json msgctxt "machine_end_gcode description" @@ -84,8 +84,8 @@ msgstr "" #: fdmprinter.def.json msgctxt "material_guid label" msgid "Material GUID" -#msgstr "マテリアルGUID" msgstr "" +#msgstr "マテリアルGUID" #: fdmprinter.def.json msgctxt "material_guid description" @@ -95,8 +95,8 @@ msgstr "マテリアルのGUID。これは自動的に設定されます。" #: fdmprinter.def.json msgctxt "material_bed_temp_wait label" msgid "Wait for Build Plate Heatup" -#msgstr "ビルドプレート加熱の待機" msgstr "" +#msgstr "ビルドプレート加熱の待機" #: fdmprinter.def.json msgctxt "material_bed_temp_wait description" @@ -106,8 +106,8 @@ msgstr "開始時にビルドプレートが温度に達するまで待つコマ #: fdmprinter.def.json msgctxt "material_print_temp_wait label" msgid "Wait for Nozzle Heatup" -#msgstr "ノズル加熱の待機" msgstr "" +#msgstr "ノズル加熱の待機" #: fdmprinter.def.json msgctxt "material_print_temp_wait description" @@ -117,8 +117,8 @@ msgstr "開始時にノズルの温度が達するまで待つかどうか。" #: fdmprinter.def.json msgctxt "material_print_temp_prepend label" msgid "Include Material Temperatures" -#msgstr "マテリアル温度を含む" msgstr "" +#msgstr "マテリアル温度を含む" #: fdmprinter.def.json msgctxt "material_print_temp_prepend description" @@ -128,8 +128,8 @@ msgstr "GCodeの開始時にノズル温度設定を含めるかどうか。 既 #: fdmprinter.def.json msgctxt "material_bed_temp_prepend label" msgid "Include Build Plate Temperature" -#msgstr "ビルドプレートの温度を含める" msgstr "" +#msgstr "ビルドプレートの温度を含める" #: fdmprinter.def.json msgctxt "material_bed_temp_prepend description" @@ -139,8 +139,8 @@ msgstr "GCodeの開始時にビルドプレート温度設定を含めるかど #: fdmprinter.def.json msgctxt "machine_width label" msgid "Machine Width" -#msgstr "プリンターの幅" msgstr "" +#msgstr "プリンターの幅" #: fdmprinter.def.json msgctxt "machine_width description" @@ -150,8 +150,8 @@ msgstr "造形可能領域の幅(X方向)。" #: fdmprinter.def.json msgctxt "machine_depth label" msgid "Machine Depth" -#msgstr "プリンターの奥行き" msgstr "" +#msgstr "プリンターの奥行き" #: fdmprinter.def.json msgctxt "machine_depth description" @@ -161,8 +161,8 @@ msgstr "造形可能領域の幅(Y方向)。" #: fdmprinter.def.json msgctxt "machine_shape label" msgid "Build Plate Shape" -#msgstr "ビルドプレートの形" msgstr "" +#msgstr "ビルドプレートの形" #: fdmprinter.def.json msgctxt "machine_shape description" @@ -172,20 +172,20 @@ msgstr "造形不可領域を考慮しないビルドプレートの形状。" #: fdmprinter.def.json msgctxt "machine_shape option rectangular" msgid "Rectangular" -#msgstr "長方形" msgstr "" +#msgstr "長方形" #: fdmprinter.def.json msgctxt "machine_shape option elliptic" msgid "Elliptic" -#msgstr "楕円形" msgstr "" +#msgstr "楕円形" #: fdmprinter.def.json msgctxt "machine_height label" msgid "Machine Height" -#msgstr "プリンターの高さ" msgstr "" +#msgstr "プリンターの高さ" #: fdmprinter.def.json msgctxt "machine_height description" @@ -195,8 +195,8 @@ msgstr "造形可能領域の幅(Z方向)。" #: fdmprinter.def.json msgctxt "machine_heated_bed label" msgid "Has Heated Build Plate" -#msgstr "加熱したビルドプレート" msgstr "" +#msgstr "加熱したビルドプレート" #: fdmprinter.def.json msgctxt "machine_heated_bed description" @@ -206,8 +206,8 @@ msgstr "プリンターに加熱式ビルドプレートが付属しているか #: fdmprinter.def.json msgctxt "machine_center_is_zero label" msgid "Is Center Origin" -#msgstr "センター原点" msgstr "" +#msgstr "センター原点" #: fdmprinter.def.json msgctxt "machine_center_is_zero description" @@ -217,8 +217,8 @@ msgstr "プリンタのゼロポジションのX / Y座標が印刷可能領域 #: fdmprinter.def.json msgctxt "machine_extruder_count label" msgid "Number of Extruders" -#msgstr "エクストルーダーの数" msgstr "" +#msgstr "エクストルーダーの数" #: fdmprinter.def.json msgctxt "machine_extruder_count description" @@ -228,8 +228,8 @@ msgstr "エクストルーダーの数。エクストルーダーの単位は、 #: fdmprinter.def.json msgctxt "machine_nozzle_tip_outer_diameter label" msgid "Outer nozzle diameter" -#msgstr "ノズル外径" msgstr "" +#msgstr "ノズル外径" #: fdmprinter.def.json msgctxt "machine_nozzle_tip_outer_diameter description" @@ -239,8 +239,8 @@ msgstr "ノズルの外径。" #: fdmprinter.def.json msgctxt "machine_nozzle_head_distance label" msgid "Nozzle length" -#msgstr "ノズルの長さ" msgstr "" +#msgstr "ノズルの長さ" #: fdmprinter.def.json msgctxt "machine_nozzle_head_distance description" @@ -250,8 +250,8 @@ msgstr "ノズル先端とプリントヘッドの最下部との高さの差。 #: fdmprinter.def.json msgctxt "machine_nozzle_expansion_angle label" msgid "Nozzle angle" -#msgstr "ノズル角度" msgstr "" +#msgstr "ノズル角度" #: fdmprinter.def.json msgctxt "machine_nozzle_expansion_angle description" @@ -261,8 +261,8 @@ msgstr "水平面とノズル直上の円錐部分との間の角度。" #: fdmprinter.def.json msgctxt "machine_heat_zone_length label" msgid "Heat zone length" -#msgstr "加熱範囲" msgstr "" +#msgstr "加熱範囲" #: fdmprinter.def.json msgctxt "machine_heat_zone_length description" @@ -332,8 +332,8 @@ msgstr "生成するGコードの種類" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (Marlin/Sprinter)" msgid "Marlin" -#msgstr "Marlin" msgstr "" +#msgstr "Marlin" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (Volumetric)" @@ -343,44 +343,44 @@ msgstr "" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option RepRap (RepRap)" msgid "RepRap" -#msgstr "RepRap" msgstr "" +#msgstr "RepRap" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option UltiGCode" msgid "Ultimaker 2" -#msgstr "Ultimaker 2" msgstr "" +#msgstr "Ultimaker 2" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option Griffin" msgid "Griffin" -#msgstr "Griffin" msgstr "" +#msgstr "Griffin" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option Makerbot" msgid "Makerbot" -#msgstr "Makerbot" msgstr "" +#msgstr "Makerbot" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option BFB" msgid "Bits from Bytes" -#msgstr "Bits from Bytes" msgstr "" +#msgstr "Bits from Bytes" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option MACH3" msgid "Mach3" -#msgstr "Mach3" msgstr "" +#msgstr "Mach3" #: fdmprinter.def.json msgctxt "machine_gcode_flavor option Repetier" msgid "Repetier" -#msgstr "Repetier" msgstr "" +#msgstr "Repetier" #: fdmprinter.def.json msgctxt "machine_disallowed_areas label" @@ -435,8 +435,8 @@ msgstr "ノズルの先端とガントリーシステムの高さの差(X軸 #: fdmprinter.def.json msgctxt "machine_nozzle_id label" msgid "Nozzle ID" -#msgstr "ノズル ID" msgstr "" +#msgstr "ノズル ID" #: fdmprinter.def.json msgctxt "machine_nozzle_id description" @@ -616,8 +616,8 @@ msgstr "プリントヘッドの最小移動速度。" #: fdmprinter.def.json msgctxt "resolution label" msgid "Quality" -#msgstr "品質" msgstr "" +#msgstr "品質" #: fdmprinter.def.json msgctxt "resolution description" @@ -627,8 +627,8 @@ msgstr "プリントの解像度に影響を与えるすべての設定。これ #: fdmprinter.def.json msgctxt "layer_height label" msgid "Layer Height" -#msgstr "積層ピッチ" msgstr "" +#msgstr "積層ピッチ" #: fdmprinter.def.json msgctxt "layer_height description" @@ -688,8 +688,8 @@ msgstr "一番外側のウォールラインを除くすべてのウォールラ #: fdmprinter.def.json msgctxt "roofing_line_width label" msgid "Top Surface Skin Line Width" -#msgstr "上表面スキンの線幅" msgstr "" +#msgstr "上表面スキンの線幅" #: fdmprinter.def.json msgctxt "roofing_line_width description" @@ -749,8 +749,8 @@ msgstr "サポートのルーフ、フロアのライン幅" #: fdmprinter.def.json msgctxt "support_roof_line_width label" msgid "Support Roof Line Width" -#msgstr "サポートルーフライン幅" msgstr "" +#msgstr "サポートルーフライン幅" #: fdmprinter.def.json msgctxt "support_roof_line_width description" @@ -760,8 +760,8 @@ msgstr "サポートルーフのライン一幅。" #: fdmprinter.def.json msgctxt "support_bottom_line_width label" msgid "Support Floor Line Width" -#msgstr "サポートフロアライン幅" msgstr "" +#msgstr "サポートフロアライン幅" #: fdmprinter.def.json msgctxt "support_bottom_line_width description" @@ -781,8 +781,8 @@ msgstr "単一のプライムタワーラインの幅。" #: fdmprinter.def.json msgctxt "initial_layer_line_width_factor label" msgid "Initial Layer Line Width" -#msgstr "初期レイヤー線幅" msgstr "" +#msgstr "初期レイヤー線幅" #: fdmprinter.def.json msgctxt "initial_layer_line_width_factor description" @@ -792,8 +792,8 @@ msgstr "最初のレイヤーに線幅の乗数です。この値を増やすと #: fdmprinter.def.json msgctxt "shell label" msgid "Shell" -#msgstr "外郭" msgstr "" +#msgstr "外郭" #: fdmprinter.def.json msgctxt "shell description" @@ -803,8 +803,8 @@ msgstr "外郭" #: fdmprinter.def.json msgctxt "wall_0_extruder_nr label" msgid "Outer Wall Extruder" -#msgstr "外側印刷用エクストルーダー" msgstr "" +#msgstr "外側印刷用エクストルーダー" #: fdmprinter.def.json msgctxt "wall_0_extruder_nr description" @@ -814,8 +814,8 @@ msgstr "外壁印刷用のエクストルーダー。デュアルノズル印刷 #: fdmprinter.def.json msgctxt "wall_x_extruder_nr label" msgid "Inner Walls Extruder" -#msgstr "内側用エクストルーダー" msgstr "" +#msgstr "内側用エクストルーダー" #: fdmprinter.def.json msgctxt "wall_x_extruder_nr description" @@ -835,8 +835,8 @@ msgstr "壁の厚さ。この値をラインの幅で割ることで壁の数が #: fdmprinter.def.json msgctxt "wall_line_count label" msgid "Wall Line Count" -#msgstr "壁の線本数" msgstr "" +#msgstr "壁の線本数" #: fdmprinter.def.json msgctxt "wall_line_count description" @@ -846,8 +846,8 @@ msgstr "ウォールの数。厚さから計算された場合、この値は整 #: fdmprinter.def.json msgctxt "wall_0_wipe_dist label" msgid "Outer Wall Wipe Distance" -#msgstr "外壁のワイピング距離" msgstr "" +#msgstr "外壁のワイピング距離" #: fdmprinter.def.json msgctxt "wall_0_wipe_dist description" @@ -857,8 +857,8 @@ msgstr "外壁の後に挿入された移動の距離はZシームをよりよ #: fdmprinter.def.json msgctxt "roofing_extruder_nr label" msgid "Top Surface Skin Extruder" -#msgstr "上層表面スキンエクストルーダー" msgstr "" +#msgstr "上層表面スキンエクストルーダー" #: fdmprinter.def.json msgctxt "roofing_extruder_nr description" @@ -868,8 +868,8 @@ msgstr "上部の表面印刷用のエクストルーダー。デュアルノズ #: fdmprinter.def.json msgctxt "roofing_layer_count label" msgid "Top Surface Skin Layers" -#msgstr "上の表皮層" msgstr "" +#msgstr "上の表皮層" #: fdmprinter.def.json msgctxt "roofing_layer_count description" @@ -879,8 +879,8 @@ msgstr "上部表面のレイヤー数。通常一層で綺麗に出来上がり #: fdmprinter.def.json msgctxt "roofing_pattern label" msgid "Top Surface Skin Pattern" -#msgstr "上層表面スキンパターン" msgstr "" +#msgstr "上層表面スキンパターン" #: fdmprinter.def.json msgctxt "roofing_pattern description" @@ -890,26 +890,26 @@ msgstr "上層のパターン" #: fdmprinter.def.json msgctxt "roofing_pattern option lines" msgid "Lines" -#msgstr "線" msgstr "" +#msgstr "線" #: fdmprinter.def.json msgctxt "roofing_pattern option concentric" msgid "Concentric" -#msgstr "同心" msgstr "" +#msgstr "同心" #: fdmprinter.def.json msgctxt "roofing_pattern option zigzag" msgid "Zig Zag" -#msgstr "ジグザグ" msgstr "" +#msgstr "ジグザグ" #: fdmprinter.def.json msgctxt "roofing_angles label" msgid "Top Surface Skin Line Directions" -#msgstr "上層表面スキンラインの方向" msgstr "" +#msgstr "上層表面スキンラインの方向" #: fdmprinter.def.json msgctxt "roofing_angles description" @@ -919,8 +919,8 @@ msgstr "トップ表面層に縦かジグザグパターンを利用する時に #: fdmprinter.def.json msgctxt "top_bottom_extruder_nr label" msgid "Top/Bottom Extruder" -#msgstr "トップ/ボトムエクストルーダー" msgstr "" +#msgstr "トップ/ボトムエクストルーダー" #: fdmprinter.def.json msgctxt "top_bottom_extruder_nr description" @@ -995,8 +995,8 @@ msgstr "" #: fdmprinter.def.json msgctxt "top_bottom_pattern option concentric" msgid "Concentric" -#msgstr "同心" msgstr "" +#msgstr "同心" #: fdmprinter.def.json msgctxt "top_bottom_pattern option zigzag" @@ -1121,8 +1121,8 @@ msgstr "" #: fdmprinter.def.json msgctxt "fill_outline_gaps label" msgid "Print Thin Walls" -#msgstr "薄い壁をプリントする" msgstr "" +#msgstr "薄い壁をプリントする" #: fdmprinter.def.json msgctxt "fill_outline_gaps description" @@ -1142,8 +1142,8 @@ msgstr "各レイヤーのすべてのポリゴンに適用されるオフセッ #: fdmprinter.def.json msgctxt "xy_offset_layer_0 label" msgid "Initial Layer Horizontal Expansion" -#msgstr "初期レイヤー水平方向への展開" msgstr "" +#msgstr "初期レイヤー水平方向への展開" #: fdmprinter.def.json msgctxt "xy_offset_layer_0 description" @@ -1178,8 +1178,8 @@ msgstr "" #: fdmprinter.def.json msgctxt "z_seam_type option sharpest_corner" msgid "Sharpest Corner" -#msgstr "最も鋭利な角" msgstr "" +#msgstr "最も鋭利な角" #: fdmprinter.def.json msgctxt "z_seam_x label" @@ -1206,8 +1206,8 @@ msgstr "レイヤー内の各パーツの印刷を開始する場所の近くの #: fdmprinter.def.json msgctxt "z_seam_corner label" msgid "Seam Corner Preference" -#msgstr "薄層のプレファレンス" msgstr "" +#msgstr "薄層のプレファレンス" #: fdmprinter.def.json msgctxt "z_seam_corner description" @@ -1217,32 +1217,32 @@ msgstr "モデル輪郭のコーナーがシーム(縫い目)の位置に影 #: fdmprinter.def.json msgctxt "z_seam_corner option z_seam_corner_none" msgid "None" -#msgstr "なし" msgstr "" +#msgstr "なし" #: fdmprinter.def.json msgctxt "z_seam_corner option z_seam_corner_inner" msgid "Hide Seam" -#msgstr "シームを非表示にする" msgstr "" +#msgstr "シームを非表示にする" #: fdmprinter.def.json msgctxt "z_seam_corner option z_seam_corner_outer" msgid "Expose Seam" -#msgstr "シームを表示する" msgstr "" +#msgstr "シームを表示する" #: fdmprinter.def.json msgctxt "z_seam_corner option z_seam_corner_any" msgid "Hide or Expose Seam" -#msgstr "シームを非表示または表示する" msgstr "" +#msgstr "シームを非表示または表示する" #: fdmprinter.def.json msgctxt "z_seam_relative label" msgid "Z Seam Relative" -#msgstr "Zシーム関連" msgstr "" +#msgstr "Zシーム関連" #: fdmprinter.def.json msgctxt "z_seam_relative description" @@ -1252,8 +1252,8 @@ msgstr "有効時は、Zシームは各パーツの真ん中に設定されま #: fdmprinter.def.json msgctxt "skin_no_small_gaps_heuristic label" msgid "Ignore Small Z Gaps" -#msgstr "小さなZギャップを無視する" msgstr "" +#msgstr "小さなZギャップを無視する" #: fdmprinter.def.json msgctxt "skin_no_small_gaps_heuristic description" @@ -1263,8 +1263,8 @@ msgstr "モデルに垂直方向のギャップが小さくある場合、これ #: fdmprinter.def.json msgctxt "skin_outline_count label" msgid "Extra Skin Wall Count" -#msgstr "余分な肌壁の本数" msgstr "" +#msgstr "余分な肌壁の本数" #: fdmprinter.def.json msgctxt "skin_outline_count description" @@ -1274,8 +1274,8 @@ msgstr "上部/下部パターンの最も外側の部分を同心円の線で #: fdmprinter.def.json msgctxt "infill label" msgid "Infill" -#msgstr "インフィル" msgstr "" +#msgstr "インフィル" #: fdmprinter.def.json msgctxt "infill description" @@ -1285,8 +1285,8 @@ msgstr "インフィル" #: fdmprinter.def.json msgctxt "infill_extruder_nr label" msgid "Infill Extruder" -#msgstr "インフィルエクストルーダー" msgstr "" +#msgstr "インフィルエクストルーダー" #: fdmprinter.def.json msgctxt "infill_extruder_nr description" @@ -1351,20 +1351,20 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_pattern option tetrahedral" msgid "Octet" -#msgstr "オクテット" msgstr "" +#msgstr "オクテット" #: fdmprinter.def.json msgctxt "infill_pattern option quarter_cubic" msgid "Quarter Cubic" -#msgstr "クォーターキュービック" msgstr "" +#msgstr "クォーターキュービック" #: fdmprinter.def.json msgctxt "infill_pattern option concentric" msgid "Concentric" -#msgstr "同心円" msgstr "" +#msgstr "同心円" #: fdmprinter.def.json msgctxt "infill_pattern option concentric_3d" @@ -1379,20 +1379,20 @@ msgstr "" #: fdmprinter.def.json msgctxt "infill_pattern option cross" msgid "Cross" -#msgstr "クロス" msgstr "" +#msgstr "クロス" #: fdmprinter.def.json msgctxt "infill_pattern option cross_3d" msgid "Cross 3D" -#msgstr "クロス3D" msgstr "" +#msgstr "クロス3D" #: fdmprinter.def.json msgctxt "zig_zaggify_infill label" msgid "Connect Infill Lines" -#msgstr "インフィルの線をつなげる" msgstr "" +#msgstr "インフィルの線をつなげる" #: fdmprinter.def.json msgctxt "zig_zaggify_infill description" @@ -1402,8 +1402,8 @@ msgstr "内壁の形状に沿った線を使用して、インフィルのパタ #: fdmprinter.def.json msgctxt "infill_angles label" msgid "Infill Line Directions" -#msgstr "インフィルラインの方向" msgstr "" +#msgstr "インフィルラインの方向" #: fdmprinter.def.json msgctxt "infill_angles description" @@ -1423,8 +1423,8 @@ msgstr "この立方体を細分するかどうかを決定するために、各 #: fdmprinter.def.json msgctxt "infill_overlap label" msgid "Infill Overlap Percentage" -#msgstr "インフィルのオーバーラップ率" msgstr "" +#msgstr "インフィルのオーバーラップ率" #: fdmprinter.def.json msgctxt "infill_overlap description" @@ -1434,8 +1434,8 @@ msgstr "インフィルと壁が交差する量、わずかな交差によって #: fdmprinter.def.json msgctxt "infill_overlap_mm label" msgid "Infill Overlap" -#msgstr "インフィルのオーバーラップ" msgstr "" +#msgstr "インフィルのオーバーラップ" #: fdmprinter.def.json msgctxt "infill_overlap_mm description" @@ -1455,8 +1455,8 @@ msgstr "表面と壁の交わる量。ラインの幅の%で設定。少しの #: fdmprinter.def.json msgctxt "skin_overlap_mm label" msgid "Skin Overlap" -#msgstr "スキンオーバーラップ" msgstr "" +#msgstr "スキンオーバーラップ" #: fdmprinter.def.json msgctxt "skin_overlap_mm description" @@ -1466,8 +1466,8 @@ msgstr "スキンと壁の間の交差した量 わずかなオーバーラッ #: fdmprinter.def.json msgctxt "infill_wipe_dist label" msgid "Infill Wipe Distance" -#msgstr "インフィルWipe距離" msgstr "" +#msgstr "インフィルWipe距離" #: fdmprinter.def.json msgctxt "infill_wipe_dist description" @@ -1529,8 +1529,8 @@ msgstr "これより小さいインフィルの領域を生成しないでくだ #: fdmprinter.def.json msgctxt "skin_preshrink label" msgid "Skin Removal Width" -#msgstr "スキン除去幅" msgstr "" +#msgstr "スキン除去幅" #: fdmprinter.def.json msgctxt "skin_preshrink description" @@ -1540,8 +1540,8 @@ msgstr "取り除くスキンエリアの最大幅。この値より小さいす #: fdmprinter.def.json msgctxt "top_skin_preshrink label" msgid "Top Skin Removal Width" -#msgstr "トップスキン除去幅" msgstr "" +#msgstr "トップスキン除去幅" #: fdmprinter.def.json msgctxt "top_skin_preshrink description" @@ -1551,8 +1551,8 @@ msgstr "取り除くスキンエリアの最大幅。この値より小さいす #: fdmprinter.def.json msgctxt "bottom_skin_preshrink label" msgid "Bottom Skin Removal Width" -#msgstr "ボトムのスキン除去幅" msgstr "" +#msgstr "ボトムのスキン除去幅" #: fdmprinter.def.json msgctxt "bottom_skin_preshrink description" @@ -1572,8 +1572,8 @@ msgstr "スキンがインフィルまで到達する距離です。高い数値 #: fdmprinter.def.json msgctxt "top_skin_expand_distance label" msgid "Top Skin Expand Distance" -#msgstr "トップのスキンの展開距離" msgstr "" +#msgstr "トップのスキンの展開距離" #: fdmprinter.def.json msgctxt "top_skin_expand_distance description" @@ -1583,8 +1583,8 @@ msgstr "スキンがインフィルまで到達する距離です。高い数値 #: fdmprinter.def.json msgctxt "bottom_skin_expand_distance label" msgid "Bottom Skin Expand Distance" -#msgstr "ボトムのスキンの展開距離" msgstr "" +#msgstr "ボトムのスキンの展開距離" #: fdmprinter.def.json msgctxt "bottom_skin_expand_distance description" @@ -1957,8 +1957,8 @@ msgstr "内側のウォールをプリントする速度 外壁より内壁を #: fdmprinter.def.json msgctxt "speed_roofing label" msgid "Top Surface Skin Speed" -#msgstr "トップサーフェススキンの速度" msgstr "" +#msgstr "トップサーフェススキンの速度" #: fdmprinter.def.json msgctxt "speed_roofing description" @@ -2008,8 +2008,8 @@ msgstr "ルーフとフロアのサポート材をプリントする速度。低 #: fdmprinter.def.json msgctxt "speed_support_roof label" msgid "Support Roof Speed" -#msgstr "サポートルーフの速度" msgstr "" +#msgstr "サポートルーフの速度" #: fdmprinter.def.json msgctxt "speed_support_roof description" @@ -2019,8 +2019,8 @@ msgstr "ルーフとフロアのサポート材をプリントする速度 こ #: fdmprinter.def.json msgctxt "speed_support_bottom label" msgid "Support Floor Speed" -#msgstr "サポートフロアの速度" msgstr "" +#msgstr "サポートフロアの速度" #: fdmprinter.def.json msgctxt "speed_support_bottom description" @@ -2190,8 +2190,8 @@ msgstr "内側のウォールがが出力される際のスピード。" #: fdmprinter.def.json msgctxt "acceleration_roofing label" msgid "Top Surface Skin Acceleration" -#msgstr "トップ表面スキンの加速度" msgstr "" +#msgstr "トップ表面スキンの加速度" #: fdmprinter.def.json msgctxt "acceleration_roofing description" @@ -2241,8 +2241,8 @@ msgstr "サポートの上面と下面が印刷される加速度。低加速度 #: fdmprinter.def.json msgctxt "acceleration_support_roof label" msgid "Support Roof Acceleration" -#msgstr "サポートルーフの加速度" msgstr "" +#msgstr "サポートルーフの加速度" #: fdmprinter.def.json msgctxt "acceleration_support_roof description" @@ -2252,8 +2252,8 @@ msgstr "サポートの上面がプリントされる加速度、低加速度で #: fdmprinter.def.json msgctxt "acceleration_support_bottom label" msgid "Support Floor Acceleration" -#msgstr "サポートフロアの加速度" msgstr "" +#msgstr "サポートフロアの加速度" #: fdmprinter.def.json msgctxt "acceleration_support_bottom description" @@ -2383,8 +2383,8 @@ msgstr "内側のウォールがプリントされれう際の最大瞬間速度 #: fdmprinter.def.json msgctxt "jerk_roofing label" msgid "Top Surface Skin Jerk" -#msgstr "トップサーフェススキンジャーク" msgstr "" +#msgstr "トップサーフェススキンジャーク" #: fdmprinter.def.json msgctxt "jerk_roofing description" @@ -2434,8 +2434,8 @@ msgstr "どのルーフとフロアのサポート部分を印刷するかによ #: fdmprinter.def.json msgctxt "jerk_support_roof label" msgid "Support Roof Jerk" -#msgstr "サポートルーフのジャーク" msgstr "" +#msgstr "サポートルーフのジャーク" #: fdmprinter.def.json msgctxt "jerk_support_roof description" @@ -2445,8 +2445,8 @@ msgstr "どのサポートのルーフ部分を印刷するかによって最大 #: fdmprinter.def.json msgctxt "jerk_support_bottom label" msgid "Support Floor Jerk" -#msgstr "サポートフロアのジャーク" msgstr "" +#msgstr "サポートフロアのジャーク" #: fdmprinter.def.json msgctxt "jerk_support_bottom description" @@ -2784,8 +2784,8 @@ msgstr "サポート" #: fdmprinter.def.json msgctxt "support_enable label" msgid "Generate Support" -#msgstr "サポートを生成します。" msgstr "" +#msgstr "サポートを生成します。" #: fdmprinter.def.json msgctxt "support_enable description" @@ -2835,8 +2835,8 @@ msgstr "サポートのルーフおよび底面を印刷するために使用す #: fdmprinter.def.json msgctxt "support_roof_extruder_nr label" msgid "Support Roof Extruder" -#msgstr "サポートルーフエクストルーダー" msgstr "" +#msgstr "サポートルーフエクストルーダー" #: fdmprinter.def.json msgctxt "support_roof_extruder_nr description" @@ -2846,8 +2846,8 @@ msgstr "サポートのルーフ面をプリントする際のエクストルー #: fdmprinter.def.json msgctxt "support_bottom_extruder_nr label" msgid "Support Floor Extruder" -#msgstr "サポートフロアエクストルーダー" msgstr "" +#msgstr "サポートフロアエクストルーダー" #: fdmprinter.def.json msgctxt "support_bottom_extruder_nr description" @@ -2927,8 +2927,8 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_pattern option cross" msgid "Cross" -#msgstr "クロス" msgstr "" +#msgstr "クロス" #: fdmprinter.def.json msgctxt "support_connect_zigzags label" @@ -2943,8 +2943,8 @@ msgstr "ジグザグを接続します。ジグザグ形のサポート材の強 #: fdmprinter.def.json msgctxt "support_skip_some_zags label" msgid "Break Up Support In Chunks" -#msgstr "かたまりででサポートを割る" msgstr "" +#msgstr "かたまりででサポートを割る" #: fdmprinter.def.json msgctxt "support_skip_some_zags description" @@ -2954,8 +2954,8 @@ msgstr "サポートラインの接続部分をスキップし、サポート材 #: fdmprinter.def.json msgctxt "support_skip_zag_per_mm label" msgid "Support Chunk Size" -#msgstr "サポートのかたまりサイズ" msgstr "" +#msgstr "サポートのかたまりサイズ" #: fdmprinter.def.json msgctxt "support_skip_zag_per_mm description" @@ -2965,8 +2965,8 @@ msgstr "サポート毎行Nミリ時に、サポートの接続をわざと外 #: fdmprinter.def.json msgctxt "support_zag_skip_count label" msgid "Support Chunk Line Count" -#msgstr "サポートのかたまり線数" msgstr "" +#msgstr "サポートのかたまり線数" #: fdmprinter.def.json msgctxt "support_zag_skip_count description" @@ -3076,8 +3076,8 @@ msgstr "モデルにのっている階段状のサポートの底のステップ #: fdmprinter.def.json msgctxt "support_bottom_stair_step_width label" msgid "Support Stair Step Maximum Width" -#msgstr "階段状ステップサポートの最大幅" msgstr "" +#msgstr "階段状ステップサポートの最大幅" #: fdmprinter.def.json msgctxt "support_bottom_stair_step_width description" @@ -3107,8 +3107,8 @@ msgstr "各レイヤーのサポート用ポリゴンに適用されるオフセ #: fdmprinter.def.json msgctxt "support_infill_sparse_thickness label" msgid "Support Infill Layer Thickness" -#msgstr "サポートインフィルのレイヤーの厚さ" msgstr "" +#msgstr "サポートインフィルのレイヤーの厚さ" #: fdmprinter.def.json msgctxt "support_infill_sparse_thickness description" @@ -3118,8 +3118,8 @@ msgstr "サポートのインフィルの厚さ。この値はレイヤーの倍 #: fdmprinter.def.json msgctxt "gradual_support_infill_steps label" msgid "Gradual Support Infill Steps" -#msgstr "段階的なサポート インフィルステップ" msgstr "" +#msgstr "段階的なサポート インフィルステップ" #: fdmprinter.def.json msgctxt "gradual_support_infill_steps description" @@ -3129,8 +3129,8 @@ msgstr "天井面より下に遠ざかる際にサポートのインフィル密 #: fdmprinter.def.json msgctxt "gradual_support_infill_step_height label" msgid "Gradual Support Infill Step Height" -#msgstr "段階的なサポート インフィル ステップの高さ" msgstr "" +#msgstr "段階的なサポート インフィル ステップの高さ" #: fdmprinter.def.json msgctxt "gradual_support_infill_step_height description" @@ -3150,8 +3150,8 @@ msgstr "モデルとサポートの間に密なインターフェースを生成 #: fdmprinter.def.json msgctxt "support_roof_enable label" msgid "Enable Support Roof" -#msgstr "サポートルーフの有効化" msgstr "" +#msgstr "サポートルーフの有効化" #: fdmprinter.def.json msgctxt "support_roof_enable description" @@ -3161,8 +3161,8 @@ msgstr "サポートの上部とモデルの間に高密度の厚板を形成し #: fdmprinter.def.json msgctxt "support_bottom_enable label" msgid "Enable Support Floor" -#msgstr "サポートフロアを有効にします。" msgstr "" +#msgstr "サポートフロアを有効にします。" #: fdmprinter.def.json msgctxt "support_bottom_enable description" @@ -3192,8 +3192,8 @@ msgstr "サポートのルーフの厚さ。これは、モデルの下につく #: fdmprinter.def.json msgctxt "support_bottom_height label" msgid "Support Floor Thickness" -#msgstr "サポートのフロアの厚み" msgstr "" +#msgstr "サポートのフロアの厚み" #: fdmprinter.def.json msgctxt "support_bottom_height description" @@ -3223,8 +3223,8 @@ msgstr "サポート材のルーフとフロアの密度を調整します 大 #: fdmprinter.def.json msgctxt "support_roof_density label" msgid "Support Roof Density" -#msgstr "サポートルーフの密度" msgstr "" +#msgstr "サポートルーフの密度" #: fdmprinter.def.json msgctxt "support_roof_density description" @@ -3234,8 +3234,8 @@ msgstr "サポート材のルーフの部分の密度を調整します 大き #: fdmprinter.def.json msgctxt "support_roof_line_distance label" msgid "Support Roof Line Distance" -#msgstr "サポートルーフライン距離" msgstr "" +#msgstr "サポートルーフライン距離" #: fdmprinter.def.json msgctxt "support_roof_line_distance description" @@ -3245,8 +3245,8 @@ msgstr "印刷されたサポートルーフ線間の距離。この設定は、 #: fdmprinter.def.json msgctxt "support_bottom_density label" msgid "Support Floor Density" -#msgstr "サポートフロア密度" msgstr "" +#msgstr "サポートフロア密度" #: fdmprinter.def.json msgctxt "support_bottom_density description" @@ -3306,8 +3306,8 @@ msgstr "" #: fdmprinter.def.json msgctxt "support_roof_pattern label" msgid "Support Roof Pattern" -#msgstr "ルーフのサポートのパターン" msgstr "" +#msgstr "ルーフのサポートのパターン" #: fdmprinter.def.json msgctxt "support_roof_pattern description" @@ -3317,44 +3317,44 @@ msgstr "サポートのルーフが印刷されるパターン" #: fdmprinter.def.json msgctxt "support_roof_pattern option lines" msgid "Lines" -#msgstr "線" msgstr "" +#msgstr "線" #: fdmprinter.def.json msgctxt "support_roof_pattern option grid" msgid "Grid" -#msgstr "グリッド" msgstr "" +#msgstr "グリッド" #: fdmprinter.def.json msgctxt "support_roof_pattern option triangles" msgid "Triangles" -#msgstr "三角形" msgstr "" +#msgstr "三角形" #: fdmprinter.def.json msgctxt "support_roof_pattern option concentric" msgid "Concentric" -#msgstr "同心" msgstr "" +#msgstr "同心" #: fdmprinter.def.json msgctxt "support_roof_pattern option concentric_3d" msgid "Concentric 3D" -#msgstr "同心3D" msgstr "" +#msgstr "同心3D" #: fdmprinter.def.json msgctxt "support_roof_pattern option zigzag" msgid "Zig Zag" -#msgstr "ジグザグ" msgstr "" +#msgstr "ジグザグ" #: fdmprinter.def.json msgctxt "support_bottom_pattern label" msgid "Support Floor Pattern" -#msgstr "サポートフロアパターン" msgstr "" +#msgstr "サポートフロアパターン" #: fdmprinter.def.json msgctxt "support_bottom_pattern description" @@ -3364,38 +3364,38 @@ msgstr "サポートのフロアが印刷されるパターン。" #: fdmprinter.def.json msgctxt "support_bottom_pattern option lines" msgid "Lines" -#msgstr "線" msgstr "" +#msgstr "線" #: fdmprinter.def.json msgctxt "support_bottom_pattern option grid" msgid "Grid" -#msgstr "グリッド" msgstr "" +#msgstr "グリッド" #: fdmprinter.def.json msgctxt "support_bottom_pattern option triangles" msgid "Triangles" -#msgstr "三角形" msgstr "" +#msgstr "三角形" #: fdmprinter.def.json msgctxt "support_bottom_pattern option concentric" msgid "Concentric" -#msgstr "同心円" msgstr "" +#msgstr "同心円" #: fdmprinter.def.json msgctxt "support_bottom_pattern option concentric_3d" msgid "Concentric 3D" -#msgstr "コンセントリック3D" msgstr "" +#msgstr "コンセントリック3D" #: fdmprinter.def.json msgctxt "support_bottom_pattern option zigzag" msgid "Zig Zag" -#msgstr "ジグザグ" msgstr "" +#msgstr "ジグザグ" #: fdmprinter.def.json msgctxt "support_use_towers label" @@ -3450,8 +3450,8 @@ msgstr "密着性" #: fdmprinter.def.json msgctxt "prime_blob_enable label" msgid "Enable Prime Blob" -#msgstr "プライムブロブを有効にする" msgstr "" +#msgstr "プライムブロブを有効にする" #: fdmprinter.def.json msgctxt "prime_blob_enable description" @@ -3491,26 +3491,26 @@ msgstr "エクストルーダーとビルドプレートへの接着両方を改 #: fdmprinter.def.json msgctxt "adhesion_type option skirt" msgid "Skirt" -#msgstr "スカート" msgstr "" +#msgstr "スカート" #: fdmprinter.def.json msgctxt "adhesion_type option brim" msgid "Brim" -#msgstr "ブリム" msgstr "" +#msgstr "ブリム" #: fdmprinter.def.json msgctxt "adhesion_type option raft" msgid "Raft" -#msgstr "ラフト" msgstr "" +#msgstr "ラフト" #: fdmprinter.def.json msgctxt "adhesion_type option none" msgid "None" -#msgstr "なし" msgstr "" +#msgstr "なし" #: fdmprinter.def.json msgctxt "adhesion_extruder_nr label" @@ -3587,8 +3587,8 @@ msgstr "モデルの外側のみにブリムを印刷します。これにより #: fdmprinter.def.json msgctxt "z_offset_layer_0 label" msgid "Initial Layer Z Offset" -#msgstr "初期レイヤーのZオフセット" msgstr "" +#msgstr "初期レイヤーのZオフセット" #: fdmprinter.def.json msgctxt "z_offset_layer_0 description" @@ -3598,8 +3598,8 @@ msgstr "エクストルーダーは、最初のレイヤーの通常の高さか #: fdmprinter.def.json msgctxt "z_offset_taper_layers label" msgid "Z Offset Taper Layers" -#msgstr "Z オフセット テーパーレイヤー" msgstr "" +#msgstr "Z オフセット テーパーレイヤー" #: fdmprinter.def.json msgctxt "z_offset_taper_layers description" @@ -3619,8 +3619,8 @@ msgstr "ラフトが有効になっている場合、モデルの周りに余分 #: fdmprinter.def.json msgctxt "raft_smoothing label" msgid "Raft Smoothing" -#msgstr "ラフトスムージング" msgstr "" +#msgstr "ラフトスムージング" #: fdmprinter.def.json msgctxt "raft_smoothing description" @@ -4010,8 +4010,8 @@ msgstr "エクストルーダーを切り替えた後、最初に印刷したも #: fdmprinter.def.json msgctxt "prime_tower_purge_volume label" msgid "Prime Tower Purge Volume" -#msgstr "プライムタワーのパージ時のボリューム" msgstr "" +#msgstr "プライムタワーのパージ時のボリューム" #: fdmprinter.def.json msgctxt "prime_tower_purge_volume description" @@ -4181,8 +4181,8 @@ msgstr "他のインフィルメッシュのインフィル内にあるインフ #: fdmprinter.def.json msgctxt "cutting_mesh label" msgid "Cutting Mesh" -#msgstr "メッシュの切断" msgstr "" +#msgstr "メッシュの切断" #: fdmprinter.def.json msgctxt "cutting_mesh description" @@ -4192,8 +4192,8 @@ msgstr "このメッシュの大きさをを他のメッシュ内に制限しま #: fdmprinter.def.json msgctxt "mold_enabled label" msgid "Mold" -#msgstr "モールド" msgstr "" +#msgstr "モールド" #: fdmprinter.def.json msgctxt "mold_enabled description" @@ -4203,8 +4203,8 @@ msgstr "型を取るため印刷し、ビルドプレート上の同じような #: fdmprinter.def.json msgctxt "mold_width label" msgid "Minimal Mold Width" -#msgstr "最小のモールド幅" msgstr "" +#msgstr "最小のモールド幅" #: fdmprinter.def.json msgctxt "mold_width description" @@ -4214,8 +4214,8 @@ msgstr "型用とモデルの外側の最短距離。" #: fdmprinter.def.json msgctxt "mold_roof_height label" msgid "Mold Roof Height" -#msgstr "モールドの屋根の高さ" msgstr "" +#msgstr "モールドの屋根の高さ" #: fdmprinter.def.json msgctxt "mold_roof_height description" @@ -4225,8 +4225,8 @@ msgstr "型を印刷するためのモデルの水平部分上の高さ。" #: fdmprinter.def.json msgctxt "mold_angle label" msgid "Mold Angle" -#msgstr "モールドの角度" msgstr "" +#msgstr "モールドの角度" #: fdmprinter.def.json msgctxt "mold_angle description" @@ -4246,8 +4246,8 @@ msgstr "このメッシュを使用してサポート領域を指定します。 #: fdmprinter.def.json msgctxt "support_mesh_drop_down label" msgid "Drop Down Support Mesh" -#msgstr "ドロップダウンサポートメッシュ" msgstr "" +#msgstr "ドロップダウンサポートメッシュ" #: fdmprinter.def.json msgctxt "support_mesh_drop_down description" @@ -4302,8 +4302,8 @@ msgstr "Z軸の外側のエッジの動きを滑らかにします。全体の #: fdmprinter.def.json msgctxt "smooth_spiralized_contours label" msgid "Smooth Spiralized Contours" -#msgstr "滑らかならせん状の輪郭" msgstr "" +#msgstr "滑らかならせん状の輪郭" #: fdmprinter.def.json msgctxt "smooth_spiralized_contours description" @@ -4313,8 +4313,8 @@ msgstr "らせん状の輪郭を滑らかにしてZシームの視認性を低 #: fdmprinter.def.json msgctxt "relative_extrusion label" msgid "Relative Extrusion" -#msgstr "相対エクストルージョン" msgstr "" +#msgstr "相対エクストルージョン" #: fdmprinter.def.json msgctxt "relative_extrusion description" @@ -4334,8 +4334,8 @@ msgstr "実験的" #: fdmprinter.def.json msgctxt "optimize_wall_printing_order label" msgid "Optimize Wall Printing Order" -#msgstr "壁のプリントの順番を最適化する" msgstr "" +#msgstr "壁のプリントの順番を最適化する" #: fdmprinter.def.json msgctxt "optimize_wall_printing_order description" @@ -4465,8 +4465,8 @@ msgstr "トップ/ボトムのレイヤーが印刷される方向を変更し #: fdmprinter.def.json msgctxt "cross_infill_pocket_size label" msgid "Cross 3D Pocket Size" -#msgstr "クロス3Dポケットサイズ" msgstr "" +#msgstr "クロス3Dポケットサイズ" #: fdmprinter.def.json msgctxt "cross_infill_pocket_size description" @@ -4476,8 +4476,8 @@ msgstr "四方でクロス3Dパターンが交差するポケットの大きさ #: fdmprinter.def.json msgctxt "cross_infill_apply_pockets_alternatingly label" msgid "Alternate Cross 3D Pockets" -#msgstr "クロス3Dポケットと交差させる" msgstr "" +#msgstr "クロス3Dポケットと交差させる" #: fdmprinter.def.json msgctxt "cross_infill_apply_pockets_alternatingly description" @@ -4487,8 +4487,8 @@ msgstr "四方がクロスする、クロス3Dパターン交差時には半分 #: fdmprinter.def.json msgctxt "spaghetti_infill_enabled label" msgid "Spaghetti Infill" -#msgstr "スパゲッティ・インフィル" msgstr "" +#msgstr "スパゲッティ・インフィル" #: fdmprinter.def.json msgctxt "spaghetti_infill_enabled description" @@ -4498,8 +4498,8 @@ msgstr "時々インフィルを印刷してください、オブジェクト内 #: fdmprinter.def.json msgctxt "spaghetti_infill_stepped label" msgid "Spaghetti Infill Stepping" -#msgstr "スパゲッティのインフィルステッピング" msgstr "" +#msgstr "スパゲッティのインフィルステッピング" #: fdmprinter.def.json msgctxt "spaghetti_infill_stepped description" @@ -4509,8 +4509,8 @@ msgstr "スパゲッティインフィルをプリントするか印刷の最後 #: fdmprinter.def.json msgctxt "spaghetti_max_infill_angle label" msgid "Spaghetti Maximum Infill Angle" -#msgstr "スパゲッティの最大のインフィルの角度" msgstr "" +#msgstr "スパゲッティの最大のインフィルの角度" #: fdmprinter.def.json msgctxt "spaghetti_max_infill_angle description" @@ -4520,8 +4520,8 @@ msgstr "最大角度 w.r.t.-印刷範囲内がスパゲッティ・インフィ #: fdmprinter.def.json msgctxt "spaghetti_max_height label" msgid "Spaghetti Infill Maximum Height" -#msgstr "スパゲッティインフィルの最大高さ" msgstr "" +#msgstr "スパゲッティインフィルの最大高さ" #: fdmprinter.def.json msgctxt "spaghetti_max_height description" @@ -4531,8 +4531,8 @@ msgstr "内部空間の上から結合して埋め込むことができる最大 #: fdmprinter.def.json msgctxt "spaghetti_inset label" msgid "Spaghetti Inset" -#msgstr "スパゲティをセットする" msgstr "" +#msgstr "スパゲティをセットする" #: fdmprinter.def.json msgctxt "spaghetti_inset description" @@ -4542,8 +4542,8 @@ msgstr "スパゲッティ・インフィルがプリントされる壁からの #: fdmprinter.def.json msgctxt "spaghetti_flow label" msgid "Spaghetti Flow" -#msgstr "スパゲッティのフロー" msgstr "" +#msgstr "スパゲッティのフロー" #: fdmprinter.def.json msgctxt "spaghetti_flow description" @@ -4553,8 +4553,8 @@ msgstr "スパゲッティ・インフィルの密度を調整します。イン #: fdmprinter.def.json msgctxt "spaghetti_infill_extra_volume label" msgid "Spaghetti Infill Extra Volume" -#msgstr "スパゲッティ・インフィルの余分量" msgstr "" +#msgstr "スパゲッティ・インフィルの余分量" #: fdmprinter.def.json msgctxt "spaghetti_infill_extra_volume description" @@ -4901,8 +4901,8 @@ msgstr "ノズルと水平方向に下向きの線間の距離。大きな隙間 #: fdmprinter.def.json msgctxt "ironing_enabled label" msgid "Enable Ironing" -#msgstr "アイロンを有効にする" msgstr "" +#msgstr "アイロンを有効にする" #: fdmprinter.def.json msgctxt "ironing_enabled description" @@ -4912,8 +4912,8 @@ msgstr "ノズルから吐出せずに上部表面を再度動く機能。表面 #: fdmprinter.def.json msgctxt "ironing_only_highest_layer label" msgid "Iron Only Highest Layer" -#msgstr "上層のみアイロンをかけます" msgstr "" +#msgstr "上層のみアイロンをかけます" #: fdmprinter.def.json msgctxt "ironing_only_highest_layer description" @@ -4923,8 +4923,8 @@ msgstr "メッシュの最後のレイヤーでのみアイロンをかけます #: fdmprinter.def.json msgctxt "ironing_pattern label" msgid "Ironing Pattern" -#msgstr "アイロン時のパターン" msgstr "" +#msgstr "アイロン時のパターン" #: fdmprinter.def.json msgctxt "ironing_pattern description" @@ -4934,20 +4934,20 @@ msgstr "アイロンのパターン" #: fdmprinter.def.json msgctxt "ironing_pattern option concentric" msgid "Concentric" -#msgstr "同心" msgstr "" +#msgstr "同心" #: fdmprinter.def.json msgctxt "ironing_pattern option zigzag" msgid "Zig Zag" -#msgstr "ジグザグ" msgstr "" +#msgstr "ジグザグ" #: fdmprinter.def.json msgctxt "ironing_line_spacing label" msgid "Ironing Line Spacing" -#msgstr "アイロンラインの線隔" msgstr "" +#msgstr "アイロンラインの線隔" #: fdmprinter.def.json msgctxt "ironing_line_spacing description" @@ -4957,8 +4957,8 @@ msgstr "アイロンライン同士の距離" #: fdmprinter.def.json msgctxt "ironing_flow label" msgid "Ironing Flow" -#msgstr "アイロン時のフロー" msgstr "" +#msgstr "アイロン時のフロー" #: fdmprinter.def.json msgctxt "ironing_flow description" @@ -4968,8 +4968,8 @@ msgstr "アイロン時にノズルから出しておくフィラメントの量 #: fdmprinter.def.json msgctxt "ironing_inset label" msgid "Ironing Inset" -#msgstr "アイロンを挿入する" msgstr "" +#msgstr "アイロンを挿入する" #: fdmprinter.def.json msgctxt "ironing_inset description" @@ -4979,8 +4979,8 @@ msgstr "モデルの端からの距離。端までアイロンをすると、端 #: fdmprinter.def.json msgctxt "speed_ironing label" msgid "Ironing Speed" -#msgstr "アイロン時のスピード" msgstr "" +#msgstr "アイロン時のスピード" #: fdmprinter.def.json msgctxt "speed_ironing description" @@ -4990,8 +4990,8 @@ msgstr "上部表面通過時の速度" #: fdmprinter.def.json msgctxt "acceleration_ironing label" msgid "Ironing Acceleration" -#msgstr "アイロン時の加速" msgstr "" +#msgstr "アイロン時の加速" #: fdmprinter.def.json msgctxt "acceleration_ironing description" @@ -5001,8 +5001,8 @@ msgstr "アイロン時の加速度" #: fdmprinter.def.json msgctxt "jerk_ironing label" msgid "Ironing Jerk" -#msgstr "ジャークをアイロンする" msgstr "" +#msgstr "ジャークをアイロンする" #: fdmprinter.def.json msgctxt "jerk_ironing description" @@ -5251,4 +5251,4 @@ msgstr "ファイルから読み込むときに、モデルに適用するトラ #~ msgctxt "magic_spiralize description" #~ msgid "Spiralize smooths out the Z move of the outer edge. This will create a steady Z increase over the whole print. This feature turns a solid model into a single walled print with a solid bottom. This feature used to be called Joris in older versions." -#~ msgstr "Spiralizeは外縁のZ移動を平滑化します。これにより、プリント全体にわたって安定したZ値が得られます。この機能は、ソリッドモデルを単一のウォールプリントに変換し、底面と側面のみ印刷します。この機能は以前のバージョンではJorisと呼ばれていました。" \ No newline at end of file +#~ msgstr "Spiralizeは外縁のZ移動を平滑化します。これにより、プリント全体にわたって安定したZ値が得られます。この機能は、ソリッドモデルを単一のウォールプリントに変換し、底面と側面のみ印刷します。この機能は以前のバージョンではJorisと呼ばれていました。" diff --git a/resources/i18n/nl_NL/cura.po b/resources/i18n/nl_NL/cura.po index ecbe70e8c3..c43d557c71 100644 --- a/resources/i18n/nl_NL/cura.po +++ b/resources/i18n/nl_NL/cura.po @@ -36,6 +36,31 @@ msgctxt "@label:status" msgid "Can't start print" msgstr "Print start niet" +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "Deze printer is niet opgezet om een groep Ultimaker 3 printers te hosten." + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "Klaar om: " + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "Deze printer is de host voor een groep van %1 Ultimaker 3 printers." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "Printer '{printer_name}' is klaar met het printen van '{job_name}'." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "Print klaar" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/pl_PL/cura.po b/resources/i18n/pl_PL/cura.po index 36126e740c..9021cbcdde 100644 --- a/resources/i18n/pl_PL/cura.po +++ b/resources/i18n/pl_PL/cura.po @@ -38,6 +38,31 @@ msgctxt "@label:status" msgid "Can't start print" msgstr "Nie mogę rozpocząć drukowania" +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "Ta drukarka nie jest skonfigurowana do zarządzania grupą drukarek Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "Wykończenia na: " + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "Ta drukarka jest gospodarzem grupy %1 drukarek Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "{printer_name} skończyła drukowanie '{job_name}'." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "Drukowanie zakończone" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/pt_BR/cura.po b/resources/i18n/pt_BR/cura.po index 63e73a27c3..868fe5e552 100644 --- a/resources/i18n/pt_BR/cura.po +++ b/resources/i18n/pt_BR/cura.po @@ -37,6 +37,31 @@ msgctxt "@label:status" msgid "Can't start print" msgstr "Não consigo começar a imprimir" +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "Esta impressora não está configurada para hospedar um grupo de impressoras Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "Termina em: " + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "Esta impressora hospeda um grupo de %1 impressoras Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "{printer_name} acabou de imprimir '{job_name}'." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "Impressão Concluída" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/ru_RU/cura.po b/resources/i18n/ru_RU/cura.po index d578dbb819..7fe9e17073 100755 --- a/resources/i18n/ru_RU/cura.po +++ b/resources/i18n/ru_RU/cura.po @@ -38,6 +38,31 @@ msgctxt "@label:status" msgid "Can't start print" msgstr "Не удается начать печать" +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "Данный принтер не настроен для управления группой принтеров Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "Заканчивается на: " + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "Данный принтер управляет группой из %1 принтеров Ultimaker 3." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "{printer_name} завершил печать '{job_name}'." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "Печать завершена" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/tr_TR/cura.po b/resources/i18n/tr_TR/cura.po index b4eceee25f..dca9e1ce86 100644 --- a/resources/i18n/tr_TR/cura.po +++ b/resources/i18n/tr_TR/cura.po @@ -36,6 +36,31 @@ msgctxt "@label:status" msgid "Can't start print" msgstr "Baskı başlatılamıyor" +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "Bu yazıcı, Ultimaker 3 yazıcı grubunu barındırmak için ayarlı değildir." + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "Şu tarihlerde bitirir: " + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "Bu yazıcı, %1 Ultimaker 3 yazıcı grubunun ana makinesidir." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "{printer_name}, '{job_name}' yazdırmayı tamamladı." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "Baskı tamamlandı" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/zh_CN/cura.po b/resources/i18n/zh_CN/cura.po index ff29b9e52e..98357b94dc 100644 --- a/resources/i18n/zh_CN/cura.po +++ b/resources/i18n/zh_CN/cura.po @@ -38,6 +38,31 @@ msgctxt "@label:status" msgid "Can't start print" msgstr "不能开始打印" +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "这台打印机未设置为运行一组连接的 Ultimaker 3 打印机。" + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "完成时间:" + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "这台打印机是一组共 %1 台已连接 Ultimaker 3 打印机的主机。" + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "打印机 '{printer_name}' 完成了打印任务 '{job_name}'。" + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "打印完成" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/qml/ExtruderButton.qml b/resources/qml/ExtruderButton.qml index 6ceadbb5b4..99196b0c9f 100644 --- a/resources/qml/ExtruderButton.qml +++ b/resources/qml/ExtruderButton.qml @@ -40,7 +40,7 @@ Button width: UM.Theme.getSize("default_margin").width height: UM.Theme.getSize("default_margin").height - Text + Label { anchors.centerIn: parent; text: index + 1; diff --git a/resources/qml/JobSpecs.qml b/resources/qml/JobSpecs.qml index 9aab66b9be..5e892a34bc 100644 --- a/resources/qml/JobSpecs.qml +++ b/resources/qml/JobSpecs.qml @@ -124,7 +124,7 @@ Item { } } - Text + Label { id: boundingSpec anchors.top: jobNameRow.bottom diff --git a/resources/qml/Preferences/MaterialView.qml b/resources/qml/Preferences/MaterialView.qml index b13ce1aadf..143f29c86e 100644 --- a/resources/qml/Preferences/MaterialView.qml +++ b/resources/qml/Preferences/MaterialView.qml @@ -108,15 +108,15 @@ TabView { width: scrollView.columnWidth; height: parent.rowHeight; - spacing: UM.Theme.getSize("default_margin").width/2 + spacing: Math.floor(UM.Theme.getSize("default_margin").width/2) Rectangle { id: colorSelector color: properties.color_code - width: (colorLabel.height * 0.75) | 0 - height: (colorLabel.height * 0.75) | 0 + width: Math.floor(colorLabel.height * 0.75) + height: Math.floor(colorLabel.height * 0.75) border.width: UM.Theme.getSize("default_lining").height anchors.verticalCenter: parent.verticalCenter diff --git a/resources/qml/Preferences/MaterialsPage.qml b/resources/qml/Preferences/MaterialsPage.qml index 5c9e1e7b55..5e014faf24 100644 --- a/resources/qml/Preferences/MaterialsPage.qml +++ b/resources/qml/Preferences/MaterialsPage.qml @@ -67,7 +67,7 @@ UM.ManagementPage } Label { - width: (parent.width * 0.3) | 0 + width: Math.floor((parent.width * 0.3)) text: model.metadata.material elide: Text.ElideRight font.italic: model.id == activeId diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index a0e157bacf..4bf4b44aed 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -24,20 +24,20 @@ Column { id: connectedPrinterHeader width: parent.width - height: childrenRect.height + UM.Theme.getSize("default_margin").height * 2 + height: Math.floor(childrenRect.height + UM.Theme.getSize("default_margin").height * 2) color: UM.Theme.getColor("setting_category") - Text + Label { id: connectedPrinterNameLabel - text: connectedPrinter != null ? connectedPrinter.name : catalog.i18nc("@info:status", "No printer connected") font: UM.Theme.getFont("large") color: UM.Theme.getColor("text") anchors.left: parent.left anchors.top: parent.top anchors.margins: UM.Theme.getSize("default_margin").width + text: connectedPrinter != null ? connectedPrinter.name : catalog.i18nc("@info:status", "No printer connected") } - Text + Label { id: connectedPrinterAddressLabel text: (connectedPrinter != null && connectedPrinter.address != null) ? connectedPrinter.address : "" @@ -47,7 +47,7 @@ Column anchors.right: parent.right anchors.margins: UM.Theme.getSize("default_margin").width } - Text + Label { text: connectedPrinter != null ? connectedPrinter.connectionText : catalog.i18nc("@info:status", "The printer is not connected.") color: connectedPrinter != null && connectedPrinter.acceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") @@ -82,10 +82,10 @@ Column { id: extruderRectangle color: UM.Theme.getColor("sidebar") - width: index == machineExtruderCount.properties.value - 1 && index % 2 == 0 ? extrudersGrid.width : extrudersGrid.width / 2 - UM.Theme.getSize("sidebar_lining_thin").width / 2 + width: index == machineExtruderCount.properties.value - 1 && index % 2 == 0 ? extrudersGrid.width : Math.floor(extrudersGrid.width / 2 - UM.Theme.getSize("sidebar_lining_thin").width / 2) height: UM.Theme.getSize("sidebar_extruder_box").height - Text //Extruder name. + Label //Extruder name. { text: ExtruderManager.getExtruderName(index) != "" ? ExtruderManager.getExtruderName(index) : catalog.i18nc("@label", "Extruder") color: UM.Theme.getColor("text") @@ -95,7 +95,7 @@ Column anchors.margins: UM.Theme.getSize("default_margin").width } - Text //Target temperature. + Label //Target temperature. { id: extruderTargetTemperature text: (connectedPrinter != null && connectedPrinter.hotendIds[index] != null && connectedPrinter.targetHotendTemperatures[index] != null) ? Math.round(connectedPrinter.targetHotendTemperatures[index]) + "°C" : "" @@ -127,7 +127,7 @@ Column } } } - Text //Temperature indication. + Label //Temperature indication. { id: extruderTemperature text: (connectedPrinter != null && connectedPrinter.hotendIds[index] != null && connectedPrinter.hotendTemperatures[index] != null) ? Math.round(connectedPrinter.hotendTemperatures[index]) + "°C" : "" @@ -162,8 +162,8 @@ Column Rectangle //Material colour indication. { id: materialColor - width: materialName.height * 0.75 - height: materialName.height * 0.75 + width: Math.floor(materialName.height * 0.75) + height: Math.floor(materialName.height * 0.75) radius: width / 2 color: (connectedPrinter != null && connectedPrinter.materialColors[index] != null && connectedPrinter.materialIds[index] != "") ? connectedPrinter.materialColors[index] : "#00000000" border.width: UM.Theme.getSize("default_lining").width @@ -195,7 +195,7 @@ Column } } } - Text //Material name. + Label //Material name. { id: materialName text: (connectedPrinter != null && connectedPrinter.materialNames[index] != null && connectedPrinter.materialIds[index] != "") ? connectedPrinter.materialNames[index] : "" @@ -227,7 +227,7 @@ Column } } } - Text //Variant name. + Label //Variant name. { id: variantName text: (connectedPrinter != null && connectedPrinter.hotendIds[index] != null) ? connectedPrinter.hotendIds[index] : "" @@ -278,7 +278,7 @@ Column height: machineHeatedBed.properties.value == "True" ? UM.Theme.getSize("sidebar_extruder_box").height : 0 visible: machineHeatedBed.properties.value == "True" - Text //Build plate label. + Label //Build plate label. { text: catalog.i18nc("@label", "Build plate") font: UM.Theme.getFont("default") @@ -287,7 +287,7 @@ Column anchors.top: parent.top anchors.margins: UM.Theme.getSize("default_margin").width } - Text //Target temperature. + Label //Target temperature. { id: bedTargetTemperature text: connectedPrinter != null ? connectedPrinter.targetBedTemperature + "°C" : "" @@ -319,7 +319,7 @@ Column } } } - Text //Current temperature. + Label //Current temperature. { id: bedCurrentTemperature text: connectedPrinter != null ? connectedPrinter.bedTemperature + "°C" : "" @@ -357,7 +357,7 @@ Column color: !enabled ? UM.Theme.getColor("setting_control_disabled") : showError ? UM.Theme.getColor("setting_validation_error_background") : UM.Theme.getColor("setting_validation_ok") property var showError: { - if(bedTemperature.properties.maximum_value != "None" && bedTemperature.properties.maximum_value < parseInt(preheatTemperatureInput.text)) + if(bedTemperature.properties.maximum_value != "None" && bedTemperature.properties.maximum_value < Math.floor(preheatTemperatureInput.text)) { return true; } else @@ -397,7 +397,7 @@ Column color: UM.Theme.getColor("setting_control_highlight") opacity: preheatTemperatureControl.hovered ? 1.0 : 0 } - Text //Maximum temperature indication. + Label //Maximum temperature indication. { text: (bedTemperature.properties.maximum_value != "None" ? bedTemperature.properties.maximum_value : "") + "°C" color: UM.Theme.getColor("setting_unit") @@ -475,7 +475,7 @@ Column visible: preheatCountdown.visible source: UM.Theme.getIcon("print_time") anchors.right: preheatCountdown.left - anchors.rightMargin: UM.Theme.getSize("default_margin").width / 2 + anchors.rightMargin: Math.floor(UM.Theme.getSize("default_margin").width / 2) anchors.verticalCenter: preheatCountdown.verticalCenter } @@ -500,7 +500,7 @@ Column } } } - Text + Label { id: preheatCountdown text: connectedPrinter != null ? connectedPrinter.preheatBedRemainingTime : "" @@ -527,15 +527,15 @@ Column { return true; //Can always cancel if the timer is running. } - if (bedTemperature.properties.minimum_value != "None" && parseInt(preheatTemperatureInput.text) < parseInt(bedTemperature.properties.minimum_value)) + if (bedTemperature.properties.minimum_value != "None" && Math.floor(preheatTemperatureInput.text) < Math.floor(bedTemperature.properties.minimum_value)) { return false; //Target temperature too low. } - if (bedTemperature.properties.maximum_value != "None" && parseInt(preheatTemperatureInput.text) > parseInt(bedTemperature.properties.maximum_value)) + if (bedTemperature.properties.maximum_value != "None" && Math.floor(preheatTemperatureInput.text) > Math.floor(bedTemperature.properties.maximum_value)) { return false; //Target temperature too high. } - if (parseInt(preheatTemperatureInput.text) == 0) + if (Math.floor(preheatTemperatureInput.text) == 0) { return false; //Setting the temperature to 0 is not allowed (since that cancels the pre-heating). } @@ -595,7 +595,7 @@ Column } } - Text + Label { id: actualLabel anchors.centerIn: parent @@ -708,22 +708,22 @@ Column Row { height: UM.Theme.getSize("setting_control").height - width: base.width - 2 * UM.Theme.getSize("default_margin").width + width: Math.floor(base.width - 2 * UM.Theme.getSize("default_margin").width) anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("default_margin").width - Text + Label { - width: parent.width * 0.4 + width: Math.floor(parent.width * 0.4) anchors.verticalCenter: parent.verticalCenter text: label color: connectedPrinter != null && connectedPrinter.acceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") font: UM.Theme.getFont("default") elide: Text.ElideRight } - Text + Label { - width: parent.width * 0.6 + width: Math.floor(parent.width * 0.6) anchors.verticalCenter: parent.verticalCenter text: value color: connectedPrinter != null && connectedPrinter.acceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") @@ -742,7 +742,7 @@ Column width: base.width height: UM.Theme.getSize("section").height - Text + Label { anchors.verticalCenter: parent.verticalCenter anchors.left: parent.left diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index dd684d852a..56fd789564 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -35,11 +35,11 @@ Item rightMargin: UM.Theme.getSize("sidebar_margin").width } - Text + Label { id: globalProfileLabel text: catalog.i18nc("@label","Profile:"); - width: parent.width * 0.45 - UM.Theme.getSize("sidebar_margin").width - 2 + width: Math.floor(parent.width * 0.45 - UM.Theme.getSize("sidebar_margin").width - 2) font: UM.Theme.getFont("default"); color: UM.Theme.getColor("text"); verticalAlignment: Text.AlignVCenter @@ -63,7 +63,7 @@ Item } enabled: !header.currentExtruderVisible || header.currentExtruderIndex > -1 - width: parent.width * 0.55 + width: Math.floor(parent.width * 0.55) height: UM.Theme.getSize("setting_control").height anchors.left: globalProfileLabel.right anchors.right: parent.right @@ -77,8 +77,8 @@ Item id: customisedSettings visible: Cura.MachineManager.hasUserSettings - height: parent.height * 0.6 - width: parent.height * 0.6 + height: Math.floor(parent.height * 0.6) + width: Math.floor(parent.height * 0.6) anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index 99948fc4fc..a82651defe 100755 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -121,7 +121,7 @@ Rectangle anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width anchors.top: headerSeparator.bottom anchors.topMargin: UM.Theme.getSize("sidebar_margin").height - width: parent.width * 0.45 + width: Math.floor(parent.width * 0.45) font: UM.Theme.getFont("large") color: UM.Theme.getColor("text") visible: !monitoringPrint && !hideView @@ -130,13 +130,13 @@ Rectangle Rectangle { id: settingsModeSelection color: "transparent" - width: parent.width * 0.55 + width: Math.floor(parent.width * 0.55) height: UM.Theme.getSize("sidebar_header_mode_toggle").height anchors.right: parent.right anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width anchors.top: { - if (settingsModeLabel.contentWidth >= parent.width - width - UM.Theme.getSize("sidebar_margin").width) + if (settingsModeLabel.contentWidth >= parent.width - width - UM.Theme.getSize("sidebar_margin").width * 2) { return settingsModeLabel.bottom; } @@ -154,7 +154,7 @@ Rectangle anchors.left: parent.left anchors.leftMargin: model.index * (settingsModeSelection.width / 2) anchors.verticalCenter: parent.verticalCenter - width: 0.5 * parent.width + width: Math.floor(0.5 * parent.width) text: model.text exclusiveGroup: modeMenuGroup; checkable: true; @@ -186,12 +186,18 @@ Rectangle UM.Theme.getColor("action_button") Behavior on color { ColorAnimation { duration: 50; } } Label { - anchors.centerIn: parent + anchors.left: parent.left + anchors.right: parent.right + anchors.verticalCenter: parent.verticalCenter + anchors.leftMargin: UM.Theme.getSize("default_lining").width * 2 + anchors.rightMargin: UM.Theme.getSize("default_lining").width * 2 color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_text") : control.hovered ? UM.Theme.getColor("action_button_hovered_text") : UM.Theme.getColor("action_button_text") font: UM.Theme.getFont("default") - text: control.text; + text: control.text + horizontalAlignment: Text.AlignHCenter + elide: Text.ElideMiddle } } label: Item { } @@ -304,7 +310,7 @@ Rectangle height: UM.Theme.getSize("sidebar_lining").height color: UM.Theme.getColor("sidebar_lining") anchors.bottom: printSpecs.top - anchors.bottomMargin: UM.Theme.getSize("sidebar_margin").height * 2 + UM.Theme.getSize("progressbar").height + UM.Theme.getFont("default_bold").pixelSize + anchors.bottomMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height * 2 + UM.Theme.getSize("progressbar").height + UM.Theme.getFont("default_bold").pixelSize) } Rectangle @@ -317,7 +323,7 @@ Rectangle height: timeDetails.height + timeSpecDescription.height + lengthSpec.height visible: !monitoringPrint - Text + Label { id: timeDetails anchors.left: parent.left @@ -361,7 +367,7 @@ Rectangle } } - Text + Label { id: timeSpecDescription anchors.left: parent.left @@ -370,7 +376,7 @@ Rectangle color: UM.Theme.getColor("text_subtext") text: catalog.i18nc("@description", "Print time") } - Text + Label { id: lengthSpec anchors.left: parent.left @@ -484,7 +490,7 @@ Rectangle }) sidebarContents.push({ "item": modesListModel.get(base.currentModeIndex).item, "immediate": true }); - var index = parseInt(UM.Preferences.getValue("cura/active_mode")) + var index = Math.floor(UM.Preferences.getValue("cura/active_mode")) if(index) { currentModeIndex = index; diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index 9269984a2a..aa0f8a3f38 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -17,7 +17,7 @@ Column property int currentExtruderIndex: ExtruderManager.activeExtruderIndex; property bool currentExtruderVisible: extrudersList.visible; - spacing: UM.Theme.getSize("sidebar_margin").width * 0.9 + spacing: Math.floor(UM.Theme.getSize("sidebar_margin").width * 0.9) signal showTooltip(Item item, point location, string text) signal hideTooltip() @@ -52,15 +52,15 @@ Column { id: extruderSelectionRow width: parent.width - height: UM.Theme.getSize("sidebar_tabs").height * 2 / 3 + height: Math.floor(UM.Theme.getSize("sidebar_tabs").height * 2 / 3) visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint anchors { left: parent.left - leftMargin: UM.Theme.getSize("sidebar_margin").width * 0.7 + leftMargin: Math.floor(UM.Theme.getSize("sidebar_margin").width * 0.7) right: parent.right - rightMargin: UM.Theme.getSize("sidebar_margin").width * 0.7 + rightMargin: Math.floor(UM.Theme.getSize("sidebar_margin").width * 0.7) topMargin: UM.Theme.getSize("sidebar_margin").height } @@ -70,15 +70,15 @@ Column property var index: 0 height: UM.Theme.getSize("sidebar_header_mode_tabs").height - width: parent.width + width: Math.floor(parent.width) boundsBehavior: Flickable.StopAtBounds anchors { left: parent.left - leftMargin: UM.Theme.getSize("default_margin").width / 2 + leftMargin: Math.floor(UM.Theme.getSize("default_margin").width / 2) right: parent.right - rightMargin: UM.Theme.getSize("default_margin").width / 2 + rightMargin: Math.floor(UM.Theme.getSize("default_margin").width / 2) verticalCenter: parent.verticalCenter } @@ -134,11 +134,11 @@ Column width: { var extruderTextWidth = extruderStaticText.visible ? extruderStaticText.width : 0; var iconWidth = extruderIconItem.width; - return extruderTextWidth + iconWidth + UM.Theme.getSize("default_margin").width / 2; + return Math.floor(extruderTextWidth + iconWidth + UM.Theme.getSize("default_margin").width / 2); } // Static text "Extruder" - Text + Label { id: extruderStaticText anchors.verticalCenter: parent.verticalCenter @@ -166,7 +166,7 @@ Column var minimumWidth = control.width < UM.Theme.getSize("button").width ? control.width : UM.Theme.getSize("button").width; var minimumHeight = control.height < UM.Theme.getSize("button").height ? control.height : UM.Theme.getSize("button").height; var minimumSize = minimumWidth < minimumHeight ? minimumWidth : minimumHeight; - minimumSize -= UM.Theme.getSize("default_margin").width / 2; + minimumSize -= Math.floor(UM.Theme.getSize("default_margin").width / 2); return minimumSize; } @@ -184,7 +184,7 @@ Column color: extruderNumberText.color } - Text + Label { id: extruderNumberText anchors.centerIn: parent @@ -250,11 +250,11 @@ Column rightMargin: UM.Theme.getSize("sidebar_margin").width } - Text + Label { id: materialLabel text: catalog.i18nc("@label","Material"); - width: parent.width * 0.45 - UM.Theme.getSize("default_margin").width + width: Math.floor(parent.width * 0.45 - UM.Theme.getSize("default_margin").width) font: UM.Theme.getFont("default"); color: UM.Theme.getColor("text"); } @@ -306,11 +306,11 @@ Column rightMargin: UM.Theme.getSize("sidebar_margin").width } - Text + Label { id: printCoreLabel text: Cura.MachineManager.activeDefinitionVariantsName; - width: parent.width * 0.45 - UM.Theme.getSize("default_margin").width + width: Math.floor(parent.width * 0.45 - UM.Theme.getSize("default_margin").width) font: UM.Theme.getFont("default"); color: UM.Theme.getColor("text"); } @@ -322,7 +322,7 @@ Column visible: Cura.MachineManager.hasVariants height: UM.Theme.getSize("setting_control").height - width: parent.width * 0.7 + UM.Theme.getSize("sidebar_margin").width + width: Math.floor(parent.width * 0.7 + UM.Theme.getSize("sidebar_margin").width) anchors.right: parent.right style: UM.Theme.styles.sidebar_header_button activeFocusOnPress: true; @@ -335,7 +335,7 @@ Column Item { id: materialInfoRow - height: UM.Theme.getSize("sidebar_setup").height / 2 + height: Math.floor(UM.Theme.getSize("sidebar_setup").height / 2) visible: (Cura.MachineManager.hasVariants || Cura.MachineManager.hasMaterials) && !sidebar.monitoringPrint && !sidebar.hideSettings anchors @@ -349,7 +349,7 @@ Column Item { height: UM.Theme.getSize("sidebar_setup").height anchors.right: parent.right - width: parent.width * 0.7 + UM.Theme.getSize("sidebar_margin").width + width: Math.floor(parent.width * 0.7 + UM.Theme.getSize("sidebar_margin").width) UM.RecolorImage { id: warningImage diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 3301d4af67..eef06209ec 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -204,7 +204,7 @@ Item { anchors.verticalCenter: parent.verticalCenter anchors.top: parent.top - anchors.topMargin: parseInt(UM.Theme.getSize("sidebar_margin").height / 2) + anchors.topMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height / 2) color: (Cura.MachineManager.activeMachine != null && Cura.ProfilesModel.getItem(index).available) ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") text: { @@ -223,13 +223,13 @@ Item // Make sure the text aligns correctly with each tick if (qualityModel.totalTicks == 0) { // If there is only one tick, align it centrally - return parseInt(((base.width * 0.55) - width) / 2) + return Math.floor(((base.width * 0.55) - width) / 2) } else if (index == 0) { return (base.width * 0.55 / qualityModel.totalTicks) * index } else if (index == qualityModel.totalTicks) { return (base.width * 0.55 / qualityModel.totalTicks) * index - width } else { - return parseInt((base.width * 0.55 / qualityModel.totalTicks) * index - (width / 2)) + return Math.floor((base.width * 0.55 / qualityModel.totalTicks) * index - (width / 2)) } } } @@ -373,10 +373,13 @@ Item anchors.top: speedSlider.bottom anchors.left: parent.left + anchors.right: speedSlider.left + anchors.rightMargin: UM.Theme.getSize("default_margin").width text: catalog.i18nc("@label", "Print Speed") font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") + elide: Text.ElideRight } Label @@ -442,7 +445,7 @@ Item anchors.topMargin: UM.Theme.getSize("sidebar_margin").height * 2 anchors.left: parent.left - width: UM.Theme.getSize("sidebar").width * .45 - UM.Theme.getSize("sidebar_margin").width + width: Math.floor(UM.Theme.getSize("sidebar").width * .45 - UM.Theme.getSize("sidebar_margin").width) Label { @@ -452,7 +455,7 @@ Item color: UM.Theme.getColor("text") anchors.top: parent.top - anchors.topMargin: UM.Theme.getSize("sidebar_margin").height * 1.7 + anchors.topMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height * 1.7) anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width } @@ -463,7 +466,7 @@ Item id: infillCellRight height: infillSlider.height + UM.Theme.getSize("sidebar_margin").height + enableGradualInfillCheckBox.visible * (enableGradualInfillCheckBox.height + UM.Theme.getSize("sidebar_margin").height) - width: UM.Theme.getSize("sidebar").width * .55 + width: Math.floor(UM.Theme.getSize("sidebar").width * .55) anchors.left: infillCellLeft.right anchors.top: infillCellLeft.top @@ -474,10 +477,10 @@ Item //anchors.top: parent.top anchors.left: infillSlider.left - anchors.leftMargin: (infillSlider.value / infillSlider.stepSize) * (infillSlider.width / (infillSlider.maximumValue / infillSlider.stepSize)) - 10 * screenScaleFactor + anchors.leftMargin: Math.floor((infillSlider.value / infillSlider.stepSize) * (infillSlider.width / (infillSlider.maximumValue / infillSlider.stepSize)) - 10 * screenScaleFactor) anchors.right: parent.right - text: parseInt(infillDensity.properties.value) + "%" + text: Math.floor(infillDensity.properties.value) + "%" horizontalAlignment: Text.AlignLeft color: infillSlider.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") @@ -487,7 +490,7 @@ Item Binding { target: infillSlider property: "value" - value: parseInt(infillDensity.properties.value) + value: Math.floor(infillDensity.properties.value) } Slider @@ -500,7 +503,7 @@ Item anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width height: UM.Theme.getSize("sidebar_margin").height - width: infillCellRight.width - UM.Theme.getSize("sidebar_margin").width - style.handleWidth + width: Math.floor(infillCellRight.width - UM.Theme.getSize("sidebar_margin").width - style.handleWidth) minimumValue: 0 maximumValue: 100 @@ -508,15 +511,15 @@ Item tickmarksEnabled: true // disable slider when gradual support is enabled - enabled: parseInt(infillSteps.properties.value) == 0 + enabled: Math.floor(infillSteps.properties.value) == 0 // set initial value from stack - value: parseInt(infillDensity.properties.value) + value: Math.floor(infillDensity.properties.value) onValueChanged: { // Don't round the value if it's already the same - if (parseInt(infillDensity.properties.value) == infillSlider.value) { + if (Math.floor(infillDensity.properties.value) == infillSlider.value) { return } @@ -585,7 +588,7 @@ Item anchors.right: parent.right anchors.top: parent.top - anchors.topMargin: parseInt(UM.Theme.getSize("sidebar_margin").height / 2) + anchors.topMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height / 2) // we loop over all density icons and only show the one that has the current density and steps Repeater @@ -596,8 +599,8 @@ Item property int activeIndex: { for (var i = 0; i < infillModel.count; i++) { - var density = parseInt(infillDensity.properties.value) - var steps = parseInt(infillSteps.properties.value) + var density = Math.floor(infillDensity.properties.value) + var steps = Math.floor(infillSteps.properties.value) var infillModelItem = infillModel.get(i) if (density >= infillModelItem.percentageMin @@ -636,13 +639,13 @@ Item property alias _hovered: enableGradualInfillMouseArea.containsMouse anchors.top: infillSlider.bottom - anchors.topMargin: parseInt(UM.Theme.getSize("sidebar_margin").height / 2) // closer to slider since it belongs to the same category + anchors.topMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height / 2) // closer to slider since it belongs to the same category anchors.left: infillCellRight.left style: UM.Theme.styles.checkbox enabled: base.settingsEnabled visible: infillSteps.properties.enabled == "True" - checked: parseInt(infillSteps.properties.value) > 0 + checked: Math.floor(infillSteps.properties.value) > 0 MouseArea { id: enableGradualInfillMouseArea @@ -651,18 +654,18 @@ Item hoverEnabled: true enabled: true - property var previousInfillDensity: parseInt(infillDensity.properties.value) + property var previousInfillDensity: Math.floor(infillDensity.properties.value) onClicked: { // Set to 90% only when enabling gradual infill - if (parseInt(infillSteps.properties.value) == 0) { - previousInfillDensity = parseInt(infillDensity.properties.value) + if (Math.floor(infillSteps.properties.value) == 0) { + previousInfillDensity = Math.floor(infillDensity.properties.value) infillDensity.setPropertyValue("value", String(90)) } else { infillDensity.setPropertyValue("value", String(previousInfillDensity)) } - infillSteps.setPropertyValue("value", (parseInt(infillSteps.properties.value) == 0) ? 5 : 0) + infillSteps.setPropertyValue("value", (Math.floor(infillSteps.properties.value) == 0) ? 5 : 0) } onEntered: { @@ -678,7 +681,7 @@ Item Label { id: gradualInfillLabel anchors.left: enableGradualInfillCheckBox.right - anchors.leftMargin: parseInt(UM.Theme.getSize("sidebar_margin").width / 2) + anchors.leftMargin: Math.floor(UM.Theme.getSize("sidebar_margin").width / 2) text: catalog.i18nc("@label", "Enable gradual") font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") @@ -739,7 +742,7 @@ Item visible: enableSupportCheckBox.visible anchors.top: infillCellRight.bottom - anchors.topMargin: parseInt(UM.Theme.getSize("sidebar_margin").height * 1.5) + anchors.topMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height * 1.5) anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width anchors.verticalCenter: enableSupportCheckBox.verticalCenter @@ -948,7 +951,7 @@ Item { id: tipsCell anchors.top: adhesionCheckBox.visible ? adhesionCheckBox.bottom : (enableSupportCheckBox.visible ? supportExtruderCombobox.bottom : infillCellRight.bottom) - anchors.topMargin: parseInt(UM.Theme.getSize("sidebar_margin").height * 2) + anchors.topMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height * 2) anchors.left: parent.left width: parent.width height: tipsText.contentHeight * tipsText.lineCount @@ -979,6 +982,35 @@ Item storeIndex: 0 } + Binding + { + target: infillDensity + property: "containerStackId" + value: { + + // not settable per extruder or there only is global, so we must pick global + if (machineExtruderCount.properties.value == 1) { + return Cura.MachineManager.activeStackId + } + + // return the ID of the extruder when the infill is limited to an extruder + if (infillInheritStackProvider.properties.limit_to_extruder != null && infillInheritStackProvider.properties.limit_to_extruder >= 0) { + return ExtruderManager.extruderIds[String(infillInheritStackProvider.properties.limit_to_extruder)] + } + + // default to the global stack + return Cura.MachineManager.activeStackId + } + } + + UM.SettingPropertyProvider + { + id: infillInheritStackProvider + containerStackId: Cura.MachineManager.activeMachineId + key: "infill_sparse_density" + watchedProperties: [ "limit_to_extruder" ] + } + UM.SettingPropertyProvider { id: infillDensity diff --git a/resources/shaders/grid.shader b/resources/shaders/grid.shader index ca1e56e060..07cb1a01a6 100644 --- a/resources/shaders/grid.shader +++ b/resources/shaders/grid.shader @@ -31,10 +31,10 @@ fragment = vec4 minorGridColor = mix(u_plateColor, u_gridColor1, 1.0 - min(minorLine, 1.0)); // Compute anti-aliased world-space major grid lines - vec2 majorGrid = abs(fract(coord / 10 - 0.5) - 0.5) / fwidth(coord / 10); + vec2 majorGrid = abs(fract(coord / 10.0 - 0.5) - 0.5) / fwidth(coord / 10.0); float majorLine = min(majorGrid.x, majorGrid.y); - frag_color = mix(minorGridColor, u_gridColor0, 1.0 - min(majorLine, 1.0)); + gl_FragColor = mix(minorGridColor, u_gridColor0, 1.0 - min(majorLine, 1.0)); } vertex41core = @@ -72,7 +72,7 @@ fragment41core = vec4 minorGridColor = mix(u_plateColor, u_gridColor1, 1.0 - min(minorLine, 1.0)); // Compute anti-aliased world-space major grid lines - vec2 majorGrid = abs(fract(coord / 10 - 0.5) - 0.5) / fwidth(coord / 10); + vec2 majorGrid = abs(fract(coord / 10.0 - 0.5) - 0.5) / fwidth(coord / 10.0); float majorLine = min(majorGrid.x, majorGrid.y); frag_color = mix(minorGridColor, u_gridColor0, 1.0 - min(majorLine, 1.0));