Merge branch 'replace_controls_1_for_controls_2' into CURA-8684_QtControls_replacement_Buttons,_Actions_&_'Exclusivity'

Conflicts:
	plugins/ImageReader/ConfigUI.qml
	plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml
	plugins/PerObjectSettingsTool/SettingPickDialog.qml
	resources/qml/Dialogs/DiscardOrKeepProfileChangesDialog.qml
	resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml
	resources/qml/Preferences/GeneralPage.qml
	resources/qml/Preferences/Materials/MaterialsPage.qml
	resources/qml/Preferences/Materials/MaterialsView.qml
	resources/qml/Preferences/ProfilesPage.qml

These conflicts are all arising from headers/includes being updated at the same time, or from the two branches marking the other one's components as needing OldControls.
This introduced more OldControls markers which don't get marked as merge conflicts by Git. This happens when an element could just be left as the original name but from the new import (e.g. a Button stays a Button in Controls 2, but should be marked as from OldControls on the branch that doesn't update the Button).
This commit is contained in:
Ghostkeeper 2022-01-31 16:53:45 +01:00
commit 6db4a55f6e
No known key found for this signature in database
GPG key ID: D2A8871EE34EC59A
98 changed files with 3984 additions and 4921 deletions

3
.gitignore vendored
View file

@ -10,6 +10,8 @@ resources/i18n/en_7S
resources/i18n/x-test resources/i18n/x-test
resources/firmware resources/firmware
resources/materials resources/materials
resources/images/whats_new
resources/texts/whats_new
CuraEngine.exe CuraEngine.exe
LC_MESSAGES LC_MESSAGES
.cache .cache
@ -37,6 +39,7 @@ cura.desktop
#Externally located plug-ins commonly installed by our devs. #Externally located plug-ins commonly installed by our devs.
plugins/cura-big-flame-graph plugins/cura-big-flame-graph
plugins/cura-camera-position
plugins/cura-god-mode-plugin plugins/cura-god-mode-plugin
plugins/cura-siemensnx-plugin plugins/cura-siemensnx-plugin
plugins/CuraBlenderPlugin plugins/CuraBlenderPlugin

View file

@ -40,7 +40,7 @@ def findNodePlacement(nodes_to_arrange: List["SceneNode"], build_volume: "BuildV
machine_width = build_volume.getWidth() machine_width = build_volume.getWidth()
machine_depth = build_volume.getDepth() machine_depth = build_volume.getDepth()
build_plate_bounding_box = Box(machine_width * factor, machine_depth * factor) build_plate_bounding_box = Box(int(machine_width * factor), int(machine_depth * factor))
if fixed_nodes is None: if fixed_nodes is None:
fixed_nodes = [] fixed_nodes = []

View file

@ -848,10 +848,10 @@ class BuildVolume(SceneNode):
""" """
result = {} result = {}
adhesion_extruder = None #type: ExtruderStack skirt_brim_extruder: ExtruderStack = None
for extruder in used_extruders: for extruder in used_extruders:
if int(extruder.getProperty("extruder_nr", "value")) == int(self._global_container_stack.getProperty("adhesion_extruder_nr", "value")): if int(extruder.getProperty("extruder_nr", "value")) == int(self._global_container_stack.getProperty("skirt_brim_extruder_nr", "value")):
adhesion_extruder = extruder skirt_brim_extruder = extruder
result[extruder.getId()] = [] result[extruder.getId()] = []
# Currently, the only normally printed object is the prime tower. # Currently, the only normally printed object is the prime tower.
@ -865,11 +865,11 @@ class BuildVolume(SceneNode):
prime_tower_x = prime_tower_x - machine_width / 2 #Offset by half machine_width and _depth to put the origin in the front-left. prime_tower_x = prime_tower_x - machine_width / 2 #Offset by half machine_width and _depth to put the origin in the front-left.
prime_tower_y = prime_tower_y + machine_depth / 2 prime_tower_y = prime_tower_y + machine_depth / 2
if adhesion_extruder is not None and self._global_container_stack.getProperty("prime_tower_brim_enable", "value") and self._global_container_stack.getProperty("adhesion_type", "value") != "raft": if skirt_brim_extruder is not None and self._global_container_stack.getProperty("prime_tower_brim_enable", "value") and self._global_container_stack.getProperty("adhesion_type", "value") != "raft":
brim_size = ( brim_size = (
adhesion_extruder.getProperty("brim_line_count", "value") * skirt_brim_extruder.getProperty("brim_line_count", "value") *
adhesion_extruder.getProperty("skirt_brim_line_width", "value") / 100.0 * skirt_brim_extruder.getProperty("skirt_brim_line_width", "value") / 100.0 *
adhesion_extruder.getProperty("initial_layer_line_width_factor", "value") skirt_brim_extruder.getProperty("initial_layer_line_width_factor", "value")
) )
prime_tower_x -= brim_size prime_tower_x -= brim_size
prime_tower_y += brim_size prime_tower_y += brim_size
@ -1100,18 +1100,18 @@ class BuildVolume(SceneNode):
# with the adhesion extruder, but it also prints one extra line by all other extruders. As such, the # with the adhesion extruder, but it also prints one extra line by all other extruders. As such, the
# setting does *not* have a limit_to_extruder setting (which means that we can't ask the global extruder what # setting does *not* have a limit_to_extruder setting (which means that we can't ask the global extruder what
# the value is. # the value is.
adhesion_extruder = self._global_container_stack.getProperty("adhesion_extruder_nr", "value") skirt_brim_extruder_nr = self._global_container_stack.getProperty("skirt_brim_extruder_nr", "value")
try: try:
adhesion_stack = self._global_container_stack.extruderList[int(adhesion_extruder)] skirt_brim_stack = self._global_container_stack.extruderList[int(skirt_brim_extruder_nr)]
except IndexError: except IndexError:
Logger.warning(f"Couldn't find extruder with index '{adhesion_extruder}', defaulting to 0 instead.") Logger.warning(f"Couldn't find extruder with index '{skirt_brim_extruder_nr}', defaulting to 0 instead.")
adhesion_stack = self._global_container_stack.extruderList[0] skirt_brim_stack = self._global_container_stack.extruderList[0]
skirt_brim_line_width = adhesion_stack.getProperty("skirt_brim_line_width", "value") skirt_brim_line_width = skirt_brim_stack.getProperty("skirt_brim_line_width", "value")
initial_layer_line_width_factor = adhesion_stack.getProperty("initial_layer_line_width_factor", "value") initial_layer_line_width_factor = skirt_brim_stack.getProperty("initial_layer_line_width_factor", "value")
# Use brim width if brim is enabled OR the prime tower has a brim. # Use brim width if brim is enabled OR the prime tower has a brim.
if adhesion_type == "brim": if adhesion_type == "brim":
brim_line_count = self._global_container_stack.getProperty("brim_line_count", "value") brim_line_count = skirt_brim_stack.getProperty("brim_line_count", "value")
bed_adhesion_size = skirt_brim_line_width * brim_line_count * initial_layer_line_width_factor / 100.0 bed_adhesion_size = skirt_brim_line_width * brim_line_count * initial_layer_line_width_factor / 100.0
for extruder_stack in used_extruders: for extruder_stack in used_extruders:
@ -1120,8 +1120,8 @@ class BuildVolume(SceneNode):
# We don't create an additional line for the extruder we're printing the brim with. # We don't create an additional line for the extruder we're printing the brim with.
bed_adhesion_size -= skirt_brim_line_width * initial_layer_line_width_factor / 100.0 bed_adhesion_size -= skirt_brim_line_width * initial_layer_line_width_factor / 100.0
elif adhesion_type == "skirt": elif adhesion_type == "skirt":
skirt_distance = self._global_container_stack.getProperty("skirt_gap", "value") skirt_distance = skirt_brim_stack.getProperty("skirt_gap", "value")
skirt_line_count = self._global_container_stack.getProperty("skirt_line_count", "value") skirt_line_count = skirt_brim_stack.getProperty("skirt_line_count", "value")
bed_adhesion_size = skirt_distance + ( bed_adhesion_size = skirt_distance + (
skirt_brim_line_width * skirt_line_count) * initial_layer_line_width_factor / 100.0 skirt_brim_line_width * skirt_line_count) * initial_layer_line_width_factor / 100.0
@ -1132,7 +1132,7 @@ class BuildVolume(SceneNode):
# We don't create an additional line for the extruder we're printing the skirt with. # We don't create an additional line for the extruder we're printing the skirt with.
bed_adhesion_size -= skirt_brim_line_width * initial_layer_line_width_factor / 100.0 bed_adhesion_size -= skirt_brim_line_width * initial_layer_line_width_factor / 100.0
elif adhesion_type == "raft": elif adhesion_type == "raft":
bed_adhesion_size = self._global_container_stack.getProperty("raft_margin", "value") bed_adhesion_size = self._global_container_stack.getProperty("raft_margin", "value") # Should refer to the raft extruder if set.
elif adhesion_type == "none": elif adhesion_type == "none":
bed_adhesion_size = 0 bed_adhesion_size = 0
else: else:
@ -1220,7 +1220,7 @@ class BuildVolume(SceneNode):
_tower_settings = ["prime_tower_enable", "prime_tower_size", "prime_tower_position_x", "prime_tower_position_y", "prime_tower_brim_enable"] _tower_settings = ["prime_tower_enable", "prime_tower_size", "prime_tower_position_x", "prime_tower_position_y", "prime_tower_brim_enable"]
_ooze_shield_settings = ["ooze_shield_enabled", "ooze_shield_dist"] _ooze_shield_settings = ["ooze_shield_enabled", "ooze_shield_dist"]
_distance_settings = ["infill_wipe_dist", "travel_avoid_distance", "support_offset", "support_enable", "travel_avoid_other_parts", "travel_avoid_supports", "wall_line_count", "wall_line_width_0", "wall_line_width_x"] _distance_settings = ["infill_wipe_dist", "travel_avoid_distance", "support_offset", "support_enable", "travel_avoid_other_parts", "travel_avoid_supports", "wall_line_count", "wall_line_width_0", "wall_line_width_x"]
_extruder_settings = ["support_enable", "support_bottom_enable", "support_roof_enable", "support_infill_extruder_nr", "support_extruder_nr_layer_0", "support_bottom_extruder_nr", "support_roof_extruder_nr", "brim_line_count", "adhesion_extruder_nr", "adhesion_type"] #Settings that can affect which extruders are used. _extruder_settings = ["support_enable", "support_bottom_enable", "support_roof_enable", "support_infill_extruder_nr", "support_extruder_nr_layer_0", "support_bottom_extruder_nr", "support_roof_extruder_nr", "brim_line_count", "skirt_brim_extruder_nr", "raft_base_extruder_nr", "raft_interface_extruder_nr", "raft_surface_extruder_nr", "adhesion_type"] #Settings that can affect which extruders are used.
_limit_to_extruder_settings = ["wall_extruder_nr", "wall_0_extruder_nr", "wall_x_extruder_nr", "top_bottom_extruder_nr", "infill_extruder_nr", "support_infill_extruder_nr", "support_extruder_nr_layer_0", "support_bottom_extruder_nr", "support_roof_extruder_nr", "adhesion_extruder_nr"] _limit_to_extruder_settings = ["wall_extruder_nr", "wall_0_extruder_nr", "wall_x_extruder_nr", "top_bottom_extruder_nr", "infill_extruder_nr", "support_infill_extruder_nr", "support_extruder_nr_layer_0", "support_bottom_extruder_nr", "support_roof_extruder_nr", "skirt_brim_extruder_nr", "raft_base_extruder_nr", "raft_interface_extruder_nr", "raft_surface_extruder_nr"]
_material_size_settings = ["material_shrinkage_percentage", "material_shrinkage_percentage_xy", "material_shrinkage_percentage_z"] _material_size_settings = ["material_shrinkage_percentage", "material_shrinkage_percentage_xy", "material_shrinkage_percentage_z"]
_disallowed_area_settings = _skirt_settings + _prime_settings + _tower_settings + _ooze_shield_settings + _distance_settings + _extruder_settings + _material_size_settings _disallowed_area_settings = _skirt_settings + _prime_settings + _tower_settings + _ooze_shield_settings + _distance_settings + _extruder_settings + _material_size_settings

View file

@ -15,7 +15,7 @@ from typing import cast, Any
try: try:
from sentry_sdk.hub import Hub from sentry_sdk.hub import Hub
from sentry_sdk.utils import event_from_exception from sentry_sdk.utils import event_from_exception
from sentry_sdk import configure_scope from sentry_sdk import configure_scope, add_breadcrumb
with_sentry_sdk = True with_sentry_sdk = True
except ImportError: except ImportError:
with_sentry_sdk = False with_sentry_sdk = False
@ -424,6 +424,13 @@ class CrashHandler:
if with_sentry_sdk: if with_sentry_sdk:
try: try:
hub = Hub.current hub = Hub.current
if not Logger.getLoggers():
# No loggers have been loaded yet, so we don't have any breadcrumbs :(
# So add them manually so we at least have some info...
add_breadcrumb(level = "info", message = "SentryLogging was not initialised yet")
for log_type, line in Logger.getUnloggedLines():
add_breadcrumb(message=line)
event, hint = event_from_exception((self.exception_type, self.value, self.traceback)) event, hint = event_from_exception((self.exception_type, self.value, self.traceback))
hub.capture_event(event, hint=hint) hub.capture_event(event, hint=hint)
hub.flush() hub.flush()

View file

@ -777,10 +777,14 @@ class CuraApplication(QtApplication):
lib_suffixes = {""} lib_suffixes = {""}
for suffix in lib_suffixes: for suffix in lib_suffixes:
self._plugin_registry.addPluginLocation(os.path.join(QtApplication.getInstallPrefix(), "lib" + suffix, "cura")) self._plugin_registry.addPluginLocation(os.path.join(QtApplication.getInstallPrefix(), "lib" + suffix, "cura"))
if not hasattr(sys, "frozen"): if not hasattr(sys, "frozen"):
self._plugin_registry.addPluginLocation(os.path.join(os.path.abspath(os.path.dirname(__file__)), "..", "plugins")) self._plugin_registry.addPluginLocation(os.path.join(os.path.abspath(os.path.dirname(__file__)), "..", "plugins"))
self._plugin_registry.preloaded_plugins.append("ConsoleLogger") self._plugin_registry.preloaded_plugins.append("ConsoleLogger")
# Since it's possible to get crashes in code before the sentrylogger is loaded, we want to start this plugin
# as quickly as possible, as we might get unsolvable crash reports without it.
self._plugin_registry.preloaded_plugins.append("SentryLogger")
self._plugin_registry.loadPlugins() self._plugin_registry.loadPlugins()
if self.getBackend() is None: if self.getBackend() is None:

View file

@ -60,7 +60,7 @@ class MaterialManagementModel(QObject):
sync_materials_message.addAction( sync_materials_message.addAction(
"sync", "sync",
name = catalog.i18nc("@action:button", "Sync materials with printers"), name = catalog.i18nc("@action:button", "Sync materials"),
icon = "", icon = "",
description = "Sync your newly installed materials with your printers.", description = "Sync your newly installed materials with your printers.",
button_align = Message.ActionButtonAlignment.ALIGN_RIGHT button_align = Message.ActionButtonAlignment.ALIGN_RIGHT

View file

@ -1,4 +1,4 @@
# Copyright (c) 2020 Ultimaker B.V. # Copyright (c) 2022 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
from PyQt5.QtCore import pyqtProperty, pyqtSignal, Qt from PyQt5.QtCore import pyqtProperty, pyqtSignal, Qt
@ -9,6 +9,7 @@ from UM import i18nCatalog
from UM.Logger import Logger from UM.Logger import Logger
from UM.Qt.ListModel import ListModel from UM.Qt.ListModel import ListModel
from UM.Settings.ContainerRegistry import ContainerRegistry from UM.Settings.ContainerRegistry import ContainerRegistry
from UM.Settings.SettingFunction import SettingFunction # To format setting functions differently.
import os import os
@ -173,12 +174,19 @@ class QualitySettingsModel(ListModel):
label = definition.label label = definition.label
if self._i18n_catalog: if self._i18n_catalog:
label = self._i18n_catalog.i18nc(definition.key + " label", label) label = self._i18n_catalog.i18nc(definition.key + " label", label)
if profile_value_source == "quality_changes":
label = f"<i>{label}</i>" # Make setting name italic if it's derived from the quality-changes profile.
if isinstance(profile_value, SettingFunction):
profile_value_display = self._i18n_catalog.i18nc("@info:status", "Calculated")
else:
profile_value_display = "" if profile_value is None else str(profile_value)
items.append({ items.append({
"key": definition.key, "key": definition.key,
"label": label, "label": label,
"unit": definition.unit, "unit": definition.unit,
"profile_value": "" if profile_value is None else str(profile_value), # it is for display only "profile_value": profile_value_display,
"profile_value_source": profile_value_source, "profile_value_source": profile_value_source,
"user_value": "" if user_value is None else str(user_value), "user_value": "" if user_value is None else str(user_value),
"category": current_category "category": current_category

View file

@ -1,8 +1,7 @@
# Copyright (c) 2020 Ultimaker B.V. # Copyright (c) 2021 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
from PyQt5.QtCore import QTimer from PyQt5.QtCore import QTimer
from shapely.errors import TopologicalError # To capture errors if Shapely messes up.
from UM.Application import Application from UM.Application import Application
from UM.Logger import Logger from UM.Logger import Logger
@ -138,11 +137,7 @@ class PlatformPhysics:
own_convex_hull = node.callDecoration("getConvexHull") own_convex_hull = node.callDecoration("getConvexHull")
other_convex_hull = other_node.callDecoration("getConvexHull") other_convex_hull = other_node.callDecoration("getConvexHull")
if own_convex_hull and other_convex_hull: if own_convex_hull and other_convex_hull:
try: overlap = own_convex_hull.translate(move_vector.x, move_vector.z).intersectsPolygon(other_convex_hull)
overlap = own_convex_hull.translate(move_vector.x, move_vector.z).intersectsPolygon(other_convex_hull)
except TopologicalError as e: # Can happen if the convex hull is degenerate?
Logger.warning("Got a topological error when calculating convex hull intersection: {err}".format(err = str(e)))
overlap = False
if overlap: # Moving ensured that overlap was still there. Try anew! if overlap: # Moving ensured that overlap was still there. Try anew!
temp_move_vector = move_vector.set(x = move_vector.x + overlap[0] * self._move_factor, temp_move_vector = move_vector.set(x = move_vector.x + overlap[0] * self._move_factor,
z = move_vector.z + overlap[1] * self._move_factor) z = move_vector.z + overlap[1] * self._move_factor)

View file

@ -259,11 +259,20 @@ class ExtruderManager(QObject):
if support_roof_enabled: if support_roof_enabled:
used_extruder_stack_ids.add(self.extruderIds[self.extruderValueWithDefault(str(global_stack.getProperty("support_roof_extruder_nr", "value")))]) used_extruder_stack_ids.add(self.extruderIds[self.extruderValueWithDefault(str(global_stack.getProperty("support_roof_extruder_nr", "value")))])
# The platform adhesion extruder. Not used if using none. # The platform adhesion extruders.
if global_stack.getProperty("adhesion_type", "value") != "none" or ( used_adhesion_extruders = set()
global_stack.getProperty("prime_tower_brim_enable", "value") and adhesion_type = global_stack.getProperty("adhesion_type", "value")
global_stack.getProperty("adhesion_type", "value") != 'raft'): if adhesion_type == "skirt" and (global_stack.getProperty("skirt_line_count", "value") > 0 or global_stack.getProperty("skirt_brim_minimal_length", "value") > 0):
extruder_str_nr = str(global_stack.getProperty("adhesion_extruder_nr", "value")) used_adhesion_extruders.add("skirt_brim_extruder_nr") # There's a skirt.
if (adhesion_type == "brim" or global_stack.getProperty("prime_tower_brim_enable", "value")) and (global_stack.getProperty("brim_line_count", "value") > 0 or global_stack.getProperty("skirt_brim_minimal_length", "value") > 0):
used_adhesion_extruders.add("skirt_brim_extruder_nr") # There's a brim or prime tower brim.
if adhesion_type == "raft":
used_adhesion_extruders.add("raft_base_extruder_nr")
used_adhesion_extruders.add("raft_interface_extruder_nr")
if global_stack.getProperty("raft_surface_layers", "value") > 0:
used_adhesion_extruders.add("raft_surface_extruder_nr")
for extruder_setting in used_adhesion_extruders:
extruder_str_nr = str(global_stack.getProperty(extruder_setting, "value"))
if extruder_str_nr == "-1": if extruder_str_nr == "-1":
extruder_str_nr = self._application.getMachineManager().defaultExtruderPosition extruder_str_nr = self._application.getMachineManager().defaultExtruderPosition
if extruder_str_nr in self.extruderIds: if extruder_str_nr in self.extruderIds:
@ -286,8 +295,11 @@ class ExtruderManager(QObject):
global_stack = application.getGlobalContainerStack() global_stack = application.getGlobalContainerStack()
# Starts with the adhesion extruder. # Starts with the adhesion extruder.
if global_stack.getProperty("adhesion_type", "value") != "none": adhesion_type = global_stack.getProperty("adhesion_type", "value")
return global_stack.getProperty("adhesion_extruder_nr", "value") if adhesion_type in {"skirt", "brim"}:
return global_stack.getProperty("skirt_brim_extruder_nr", "value")
if adhesion_type == "raft":
return global_stack.getProperty("raft_base_extruder_nr", "value")
# No adhesion? Well maybe there is still support brim. # No adhesion? Well maybe there is still support brim.
if (global_stack.getProperty("support_enable", "value") or global_stack.getProperty("support_structure", "value") == "tree") and global_stack.getProperty("support_brim_enable", "value"): if (global_stack.getProperty("support_enable", "value") or global_stack.getProperty("support_structure", "value") == "tree") and global_stack.getProperty("support_brim_enable", "value"):
@ -422,7 +434,10 @@ class ExtruderManager(QObject):
Logger.log("w", "Could not find the variant %s", active_variant_name) Logger.log("w", "Could not find the variant %s", active_variant_name)
return True return True
active_variant_node = machine_node.variants[active_variant_name] active_variant_node = machine_node.variants[active_variant_name]
active_material_node = active_variant_node.materials[extruder_stack.material.getMetaDataEntry("base_file")] try:
active_material_node = active_variant_node.materials[extruder_stack.material.getMetaDataEntry("base_file")]
except KeyError: # The material in this stack is not a supported material (e.g. wrong filament diameter, as loaded from a project file).
return False
active_material_node_qualities = active_material_node.qualities active_material_node_qualities = active_material_node.qualities
if not active_material_node_qualities: if not active_material_node_qualities:

View file

@ -71,7 +71,7 @@ class CloudMaterialSync(QObject):
sync_materials_message.addAction( sync_materials_message.addAction(
"sync", "sync",
name = catalog.i18nc("@action:button", "Sync materials with printers"), name = catalog.i18nc("@action:button", "Sync materials"),
icon = "", icon = "",
description = "Sync your newly installed materials with your printers.", description = "Sync your newly installed materials with your printers.",
button_align = Message.ActionButtonAlignment.ALIGN_RIGHT button_align = Message.ActionButtonAlignment.ALIGN_RIGHT

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# Copyright (c) 2020 Ultimaker B.V. # Copyright (c) 2022 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
# Remove the working directory from sys.path. # Remove the working directory from sys.path.
@ -15,6 +15,9 @@ if "" in sys.path:
import argparse import argparse
import faulthandler import faulthandler
import os import os
if sys.platform != "linux": # Turns out the Linux build _does_ use this, but we're not making an Enterprise release for that system anyway.
os.environ["QT_PLUGIN_PATH"] = "" # Security workaround: Don't need it, and introduces an attack vector, so set to nul.
os.environ["QML2_IMPORT_PATH"] = "" # Security workaround: Don't need it, and introduces an attack vector, so set to nul.
from PyQt5.QtNetwork import QSslConfiguration, QSslSocket from PyQt5.QtNetwork import QSslConfiguration, QSslSocket

View file

@ -1,39 +1,34 @@
// Copyright (c) 2018 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.7 import QtQuick 2.7
import QtQuick.Controls 2.2 import QtQuick.Controls 2.2
import QtQuick.Layouts 1.3 import QtQuick.Layouts 1.3
import UM 1.1 as UM import UM 1.5 as UM
ScrollView ListView
{ {
property alias model: backupList.model
width: parent.width
clip: true clip: true
ListView ScrollBar.vertical: UM.ScrollBar {}
delegate: Item
{ {
id: backupList // Add a margin, otherwise the scrollbar is on top of the right most component
width: parent.width width: parent.width - UM.Theme.getSize("scrollbar").width
delegate: Item height: childrenRect.height
BackupListItem
{ {
// Add a margin, otherwise the scrollbar is on top of the right most component id: backupListItem
width: parent.width - UM.Theme.getSize("default_margin").width width: parent.width
height: childrenRect.height }
BackupListItem Rectangle
{ {
id: backupListItem id: divider
width: parent.width color: UM.Theme.getColor("lining")
} height: UM.Theme.getSize("default_lining").height
Rectangle
{
id: divider
color: UM.Theme.getColor("lining")
height: UM.Theme.getSize("default_lining").height
}
} }
} }
} }

View file

@ -1,8 +1,9 @@
// Copyright (C) 2021 Ultimaker B.V. //Copyright (C) 2022 Ultimaker B.V.
//Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10 import Qt.labs.qmlmodels 1.0
import QtQuick 2.15
import QtQuick.Window 2.2 import QtQuick.Window 2.2
import QtQuick.Controls 1.4 as OldControls // TableView doesn't exist in the QtQuick Controls 2.x in 5.10, so use the old one
import QtQuick.Controls 2.3 import QtQuick.Controls 2.3
import UM 1.2 as UM import UM 1.2 as UM
@ -56,52 +57,32 @@ Item
border.width: UM.Theme.getSize("default_lining").width border.width: UM.Theme.getSize("default_lining").width
border.color: UM.Theme.getColor("lining") border.color: UM.Theme.getColor("lining")
//We can't use Cura's TableView here, since in Cura >= 5.0 this uses QtQuick.TableView, while in Cura < 5.0 this uses QtControls1.TableView.
Cura.TableView //So we have to define our own. Once support for 4.13 and earlier is dropped, we can switch to Cura.TableView.
Table
{ {
id: filesTableView id: filesTableView
anchors.fill: parent anchors.fill: parent
model: manager.digitalFactoryFileModel anchors.margins: parent.border.width
visible: model.count != 0 && manager.retrievingFileStatus != DF.RetrievalStatus.InProgress
selectionMode: OldControls.SelectionMode.SingleSelection columnHeaders: ["Name", "Uploaded by", "Uploaded at"]
onDoubleClicked: model: TableModel
{
TableModelColumn { display: "fileName" }
TableModelColumn { display: "username" }
TableModelColumn { display: "uploadedAt" }
rows: manager.digitalFactoryFileModel.items
}
onCurrentRowChanged:
{
manager.setSelectedFileIndices([currentRow]);
}
onDoubleClicked: function(row)
{ {
manager.setSelectedFileIndices([row]); manager.setSelectedFileIndices([row]);
openFilesButton.clicked(); openFilesButton.clicked();
} }
OldControls.TableViewColumn
{
id: fileNameColumn
role: "fileName"
title: "Name"
width: Math.round(filesTableView.width / 3)
}
OldControls.TableViewColumn
{
id: usernameColumn
role: "username"
title: "Uploaded by"
width: Math.round(filesTableView.width / 3)
}
OldControls.TableViewColumn
{
role: "uploadedAt"
title: "Uploaded at"
}
Connections
{
target: filesTableView.selection
function onSelectionChanged()
{
let newSelection = [];
filesTableView.selection.forEach(function(rowIndex) { newSelection.push(rowIndex); });
manager.setSelectedFileIndices(newSelection);
}
}
} }
Label Label
@ -160,7 +141,6 @@ Item
{ {
// Make sure no files are selected when the file model changes // Make sure no files are selected when the file model changes
filesTableView.currentRow = -1 filesTableView.currentRow = -1
filesTableView.selection.clear()
} }
} }
} }
@ -186,7 +166,7 @@ Item
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
anchors.right: parent.right anchors.right: parent.right
text: "Open" text: "Open"
enabled: filesTableView.selection.count > 0 enabled: filesTableView.currentRow >= 0
onClicked: onClicked:
{ {
manager.openSelectedFiles() manager.openSelectedFiles()

View file

@ -1,8 +1,9 @@
// Copyright (C) 2021 Ultimaker B.V. //Copyright (C) 2022 Ultimaker B.V.
//Cura is released under the terms of the LGPLv3 or higher.
import Qt.labs.qmlmodels 1.0
import QtQuick 2.10 import QtQuick 2.10
import QtQuick.Window 2.2 import QtQuick.Window 2.2
import QtQuick.Controls 1.4 as OldControls // TableView doesn't exist in the QtQuick Controls 2.x in 5.10, so use the old one
import QtQuick.Controls 2.3 import QtQuick.Controls 2.3
import UM 1.2 as UM import UM 1.2 as UM
@ -85,35 +86,22 @@ Item
border.width: UM.Theme.getSize("default_lining").width border.width: UM.Theme.getSize("default_lining").width
border.color: UM.Theme.getColor("lining") border.color: UM.Theme.getColor("lining")
//We can't use Cura's TableView here, since in Cura >= 5.0 this uses QtQuick.TableView, while in Cura < 5.0 this uses QtControls1.TableView.
Cura.TableView //So we have to define our own. Once support for 4.13 and earlier is dropped, we can switch to Cura.TableView.
Table
{ {
id: filesTableView id: filesTableView
anchors.fill: parent anchors.fill: parent
model: manager.digitalFactoryFileModel anchors.margins: parent.border.width
visible: model.count != 0 && manager.retrievingFileStatus != DF.RetrievalStatus.InProgress
selectionMode: OldControls.SelectionMode.NoSelection
OldControls.TableViewColumn allowSelection: false
columnHeaders: ["Name", "Uploaded by", "Uploaded at"]
model: TableModel
{ {
id: fileNameColumn TableModelColumn { display: "fileName" }
role: "fileName" TableModelColumn { display: "username" }
title: "@tableViewColumn:title", "Name" TableModelColumn { display: "uploadedAt" }
width: Math.round(filesTableView.width / 3) rows: manager.digitalFactoryFileModel.items
}
OldControls.TableViewColumn
{
id: usernameColumn
role: "username"
title: "Uploaded by"
width: Math.round(filesTableView.width / 3)
}
OldControls.TableViewColumn
{
role: "uploadedAt"
title: "Uploaded at"
} }
} }
@ -172,8 +160,7 @@ Item
function onItemsChanged() function onItemsChanged()
{ {
// Make sure no files are selected when the file model changes // Make sure no files are selected when the file model changes
filesTableView.currentRow = -1 filesTableView.currentRow = -1;
filesTableView.selection.clear()
} }
} }
} }

View file

@ -49,6 +49,7 @@ Item
Layout.fillWidth: true Layout.fillWidth: true
implicitHeight: createNewProjectButton.height implicitHeight: createNewProjectButton.height
leftPadding: searchIcon.width + UM.Theme.getSize("default_margin").width * 2 leftPadding: searchIcon.width + UM.Theme.getSize("default_margin").width * 2
focus: true
onTextEdited: manager.projectFilter = text //Update the search filter when editing this text field. onTextEdited: manager.projectFilter = text //Update the search filter when editing this text field.

View file

@ -0,0 +1,200 @@
//Copyright (C) 2022 Ultimaker B.V.
//Cura is released under the terms of the LGPLv3 or higher.
import Qt.labs.qmlmodels 1.0
import QtQuick 2.15
import QtQuick.Controls 2.15
import UM 1.2 as UM
/*
* A re-sizeable table of data.
*
* This table combines a list of headers with a TableView to show certain roles in a table.
* The columns of the table can be resized.
* When the table becomes too big, you can scroll through the table. When a column becomes too small, the contents of
* the table are elided.
* The table gets Cura's themeing.
*/
Item
{
id: tableBase
required property var columnHeaders //The text to show in the headers of each column.
property alias model: tableView.model //A TableModel to display in this table. To use a ListModel for the rows, use "rows: listModel.items"
property int currentRow: -1 //The selected row index.
property var onDoubleClicked: function(row) {} //Something to execute when double clicked. Accepts one argument: The index of the row that was clicked on.
property bool allowSelection: true //Whether to allow the user to select items.
Row
{
id: headerBar
Repeater
{
id: headerRepeater
model: columnHeaders
Rectangle
{
width: Math.max(1, Math.round(tableBase.width / headerRepeater.count))
height: UM.Theme.getSize("section").height
color: UM.Theme.getColor("secondary")
Label
{
id: contentText
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("narrow_margin").width
anchors.right: parent.right
anchors.rightMargin: UM.Theme.getSize("narrow_margin").width
text: modelData
font: UM.Theme.getFont("medium_bold")
color: UM.Theme.getColor("text")
elide: Text.ElideRight
}
Rectangle //Resize handle.
{
anchors
{
right: parent.right
top: parent.top
bottom: parent.bottom
}
width: UM.Theme.getSize("thick_lining").width
color: UM.Theme.getColor("thick_lining")
MouseArea
{
anchors.fill: parent
cursorShape: Qt.SizeHorCursor
drag
{
target: parent
axis: Drag.XAxis
}
onMouseXChanged:
{
if(drag.active)
{
let new_width = parent.parent.width + mouseX;
let sum_widths = mouseX;
for(let i = 0; i < headerBar.children.length; ++i)
{
sum_widths += headerBar.children[i].width;
}
if(sum_widths > tableBase.width)
{
new_width -= sum_widths - tableBase.width; //Limit the total width to not exceed the view.
}
let width_fraction = new_width / tableBase.width; //Scale with the same fraction along with the total width, if the table is resized.
parent.parent.width = Qt.binding(function() { return tableBase.width * width_fraction });
}
}
}
}
onWidthChanged:
{
tableView.forceLayout(); //Rescale table cells underneath as well.
}
}
}
}
TableView
{
id: tableView
anchors
{
top: headerBar.bottom
left: parent.left
right: parent.right
bottom: parent.bottom
}
clip: true
ScrollBar.vertical: ScrollBar
{
// Vertical ScrollBar, styled similarly to the scrollBar in the settings panel
id: verticalScrollBar
visible: tableView.contentHeight > tableView.height
background: Rectangle
{
implicitWidth: UM.Theme.getSize("scrollbar").width
radius: Math.round(implicitWidth / 2)
color: UM.Theme.getColor("scrollbar_background")
}
contentItem: Rectangle
{
id: scrollViewHandle
implicitWidth: UM.Theme.getSize("scrollbar").width
radius: Math.round(implicitWidth / 2)
color: verticalScrollBar.pressed ? UM.Theme.getColor("scrollbar_handle_down") : verticalScrollBar.hovered ? UM.Theme.getColor("scrollbar_handle_hover") : UM.Theme.getColor("scrollbar_handle")
Behavior on color { ColorAnimation { duration: 50; } }
}
}
columnWidthProvider: function(column)
{
return headerBar.children[column].width; //Cells get the same width as their column header.
}
delegate: Rectangle
{
implicitHeight: Math.max(1, cellContent.height)
color: UM.Theme.getColor((tableBase.currentRow == row) ? "primary" : ((row % 2 == 0) ? "main_background" : "viewport_background"))
Label
{
id: cellContent
width: parent.width
text: display
verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight
font: UM.Theme.getFont("default")
color: UM.Theme.getColor("text")
}
TextMetrics
{
id: cellTextMetrics
text: cellContent.text
font: cellContent.font
elide: cellContent.elide
elideWidth: cellContent.width
}
UM.TooltipArea
{
anchors.fill: parent
text: (cellTextMetrics.elidedText == cellContent.text) ? "" : cellContent.text //Show full text in tooltip if it was elided.
onClicked:
{
if(tableBase.allowSelection)
{
tableBase.currentRow = row; //Select this row.
}
}
onDoubleClicked:
{
tableBase.onDoubleClicked(row);
}
}
}
Connections
{
target: model
function onRowCountChanged()
{
tableView.contentY = 0; //When the number of rows is reduced, make sure to scroll back to the start.
}
}
}
}

View file

@ -2,7 +2,8 @@
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.1 import QtQuick 2.1
import QtQuick.Controls 2.3 <<<<<<< HEAD
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.3 import QtQuick.Layouts 1.3
import QtQuick.Window 2.1 import QtQuick.Window 2.1
@ -63,7 +64,8 @@ UM.Dialog
text: catalog.i18nc("@action:label", "Base (mm)") text: catalog.i18nc("@action:label", "Base (mm)")
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
MouseArea { MouseArea
{
id: base_height_label id: base_height_label
anchors.fill: parent anchors.fill: parent
hoverEnabled: true hoverEnabled: true
@ -251,7 +253,8 @@ UM.Dialog
text: catalog.i18nc("@action:label", "Smoothing") text: catalog.i18nc("@action:label", "Smoothing")
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
MouseArea { MouseArea
{
id: smoothing_label id: smoothing_label
anchors.fill: parent anchors.fill: parent
hoverEnabled: true hoverEnabled: true

View file

@ -1,5 +1,5 @@
// Copyright (c) 2019 Ultimaker B.V. //Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. //Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10 import QtQuick 2.10
import QtQuick.Controls 2.3 import QtQuick.Controls 2.3
@ -111,6 +111,7 @@ Cura.MachineAction
model: tabNameModel model: tabNameModel
delegate: UM.TabRowButton delegate: UM.TabRowButton
{ {
checked: model.index == 0
text: model.name text: model.name
} }
} }

View file

@ -1,8 +1,8 @@
// Copyright (c) 2021 Ultimaker B.V. //Copyright (c) 2022 Ultimaker B.V.
// Uranium is released under the terms of the LGPLv3 or higher. //Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 2.1 import QtQuick.Controls 2.15
import QtQuick.Controls 1.2 as OldControls import QtQuick.Controls 1.2 as OldControls
import QtQuick.Controls.Styles 1.2 import QtQuick.Controls.Styles 1.2
@ -192,186 +192,184 @@ Item
height: Math.min(contents.count * (UM.Theme.getSize("section").height + UM.Theme.getSize("default_lining").height), maximumHeight) height: Math.min(contents.count * (UM.Theme.getSize("section").height + UM.Theme.getSize("default_lining").height), maximumHeight)
visible: currentMeshType != "anti_overhang_mesh" visible: currentMeshType != "anti_overhang_mesh"
OldControls.ScrollView ListView
{ {
id: contents
height: parent.height height: parent.height
width: UM.Theme.getSize("setting").width + UM.Theme.getSize("default_margin").width width: UM.Theme.getSize("setting").width + UM.Theme.getSize("default_margin").width
style: UM.Theme.styles.scrollview
ListView ScrollBar.vertical: UM.ScrollBar {}
clip: true
spacing: UM.Theme.getSize("default_lining").height
model: UM.SettingDefinitionsModel
{ {
id: contents id: addedSettingsModel
spacing: UM.Theme.getSize("default_lining").height containerId: Cura.MachineManager.activeMachine != null ? Cura.MachineManager.activeMachine.definition.id: ""
expanded: [ "*" ]
model: UM.SettingDefinitionsModel filter:
{ {
id: addedSettingsModel if (printSequencePropertyProvider.properties.value == "one_at_a_time")
containerId: Cura.MachineManager.activeMachine != null ? Cura.MachineManager.activeMachine.definition.id: ""
expanded: [ "*" ]
filter:
{ {
if (printSequencePropertyProvider.properties.value == "one_at_a_time") return {"settable_per_meshgroup": true}
}
return {"settable_per_mesh": true}
}
exclude:
{
var excluded_settings = [ "support_mesh", "anti_overhang_mesh", "cutting_mesh", "infill_mesh" ]
if (currentMeshType == "support_mesh")
{
excluded_settings = excluded_settings.concat(base.allCategoriesExceptSupport)
}
return excluded_settings
}
visibilityHandler: Cura.PerObjectSettingVisibilityHandler
{
id: visibility_handler
selectedObjectId: UM.ActiveTool.properties.getValue("SelectedObjectId")
}
// For some reason the model object is updated after removing him from the memory and
// it happens only on Windows. For this reason, set the destroyed value manually.
Component.onDestruction:
{
setDestroyed(true)
}
}
delegate: Row
{
spacing: - UM.Theme.getSize("default_margin").width
Loader
{
id: settingLoader
width: UM.Theme.getSize("setting").width
height: UM.Theme.getSize("section").height
enabled: provider.properties.enabled === "True"
property var definition: model
property var settingDefinitionsModel: addedSettingsModel
property var propertyProvider: provider
property var globalPropertyProvider: inheritStackProvider
property var externalResetHandler: false
//Qt5.4.2 and earlier has a bug where this causes a crash: https://bugreports.qt.io/browse/QTBUG-35989
//In addition, while it works for 5.5 and higher, the ordering of the actual combo box drop down changes,
//causing nasty issues when selecting different options. So disable asynchronous loading of enum type completely.
asynchronous: model.type != "enum" && model.type != "extruder"
onLoaded:
{
settingLoader.item.showRevertButton = false
settingLoader.item.showInheritButton = false
settingLoader.item.showLinkedSettingIcon = false
settingLoader.item.doDepthIndentation = false
settingLoader.item.doQualityUserSettingEmphasis = false
}
sourceComponent:
{
switch(model.type)
{ {
return {"settable_per_meshgroup": true} case "int":
return settingTextField
case "[int]":
return settingTextField
case "float":
return settingTextField
case "enum":
return settingComboBox
case "extruder":
return settingExtruder
case "optional_extruder":
return settingOptionalExtruder
case "bool":
return settingCheckBox
case "str":
return settingTextField
case "category":
return settingCategory
default:
return settingUnknown
} }
return {"settable_per_mesh": true}
}
exclude:
{
var excluded_settings = [ "support_mesh", "anti_overhang_mesh", "cutting_mesh", "infill_mesh" ]
if (currentMeshType == "support_mesh")
{
excluded_settings = excluded_settings.concat(base.allCategoriesExceptSupport)
}
return excluded_settings
}
visibilityHandler: Cura.PerObjectSettingVisibilityHandler
{
id: visibility_handler
selectedObjectId: UM.ActiveTool.properties.getValue("SelectedObjectId")
}
// For some reason the model object is updated after removing him from the memory and
// it happens only on Windows. For this reason, set the destroyed value manually.
Component.onDestruction:
{
setDestroyed(true)
} }
} }
delegate: Row Button
{ {
spacing: - UM.Theme.getSize("default_margin").width width: Math.round(UM.Theme.getSize("setting").height / 2)
Loader height: UM.Theme.getSize("setting").height
onClicked: addedSettingsModel.setVisible(model.key, false)
background: Item
{ {
id: settingLoader UM.RecolorImage
width: UM.Theme.getSize("setting").width
height: UM.Theme.getSize("section").height
enabled: provider.properties.enabled === "True"
property var definition: model
property var settingDefinitionsModel: addedSettingsModel
property var propertyProvider: provider
property var globalPropertyProvider: inheritStackProvider
property var externalResetHandler: false
//Qt5.4.2 and earlier has a bug where this causes a crash: https://bugreports.qt.io/browse/QTBUG-35989
//In addition, while it works for 5.5 and higher, the ordering of the actual combo box drop down changes,
//causing nasty issues when selecting different options. So disable asynchronous loading of enum type completely.
asynchronous: model.type != "enum" && model.type != "extruder"
onLoaded:
{ {
settingLoader.item.showRevertButton = false anchors.verticalCenter: parent.verticalCenter
settingLoader.item.showInheritButton = false width: parent.width
settingLoader.item.showLinkedSettingIcon = false height: width
settingLoader.item.doDepthIndentation = false sourceSize.height: width
settingLoader.item.doQualityUserSettingEmphasis = false color: parent.hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button")
} source: UM.Theme.getIcon("Minus")
sourceComponent:
{
switch(model.type)
{
case "int":
return settingTextField
case "[int]":
return settingTextField
case "float":
return settingTextField
case "enum":
return settingComboBox
case "extruder":
return settingExtruder
case "optional_extruder":
return settingOptionalExtruder
case "bool":
return settingCheckBox
case "str":
return settingTextField
case "category":
return settingCategory
default:
return settingUnknown
}
} }
} }
}
Button // Specialty provider that only watches global_inherits (we can't filter on what property changed we get events
// so we bypass that to make a dedicated provider).
UM.SettingPropertyProvider
{
id: provider
containerStackId: UM.ActiveTool.properties.getValue("ContainerID")
key: model.key
watchedProperties: [ "value", "enabled", "validationState" ]
storeIndex: 0
removeUnusedValue: false
}
UM.SettingPropertyProvider
{
id: inheritStackProvider
containerStackId: UM.ActiveTool.properties.getValue("ContainerID")
key: model.key
watchedProperties: [ "limit_to_extruder" ]
}
Connections
{
target: inheritStackProvider
function onPropertiesChanged() { provider.forcePropertiesChanged() }
}
Connections
{
target: UM.ActiveTool
function onPropertiesChanged()
{ {
width: Math.round(UM.Theme.getSize("setting").height / 2) // the values cannot be bound with UM.ActiveTool.properties.getValue() calls,
height: UM.Theme.getSize("setting").height // so here we connect to the signal and update the those values.
if (typeof UM.ActiveTool.properties.getValue("SelectedObjectId") !== "undefined")
onClicked: addedSettingsModel.setVisible(model.key, false)
background: Item
{ {
UM.RecolorImage const selectedObjectId = UM.ActiveTool.properties.getValue("SelectedObjectId")
if (addedSettingsModel.visibilityHandler.selectedObjectId != selectedObjectId)
{ {
anchors.verticalCenter: parent.verticalCenter addedSettingsModel.visibilityHandler.selectedObjectId = selectedObjectId
width: parent.width
height: width
sourceSize.height: width
color: parent.hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button")
source: UM.Theme.getIcon("Minus")
} }
} }
} if (typeof UM.ActiveTool.properties.getValue("ContainerID") !== "undefined")
// Specialty provider that only watches global_inherits (we can't filter on what property changed we get events
// so we bypass that to make a dedicated provider).
UM.SettingPropertyProvider
{
id: provider
containerStackId: UM.ActiveTool.properties.getValue("ContainerID")
key: model.key
watchedProperties: [ "value", "enabled", "validationState" ]
storeIndex: 0
removeUnusedValue: false
}
UM.SettingPropertyProvider
{
id: inheritStackProvider
containerStackId: UM.ActiveTool.properties.getValue("ContainerID")
key: model.key
watchedProperties: [ "limit_to_extruder" ]
}
Connections
{
target: inheritStackProvider
function onPropertiesChanged() { provider.forcePropertiesChanged() }
}
Connections
{
target: UM.ActiveTool
function onPropertiesChanged()
{ {
// the values cannot be bound with UM.ActiveTool.properties.getValue() calls, const containerId = UM.ActiveTool.properties.getValue("ContainerID")
// so here we connect to the signal and update the those values. if (provider.containerStackId != containerId)
if (typeof UM.ActiveTool.properties.getValue("SelectedObjectId") !== "undefined")
{ {
const selectedObjectId = UM.ActiveTool.properties.getValue("SelectedObjectId") provider.containerStackId = containerId
if (addedSettingsModel.visibilityHandler.selectedObjectId != selectedObjectId)
{
addedSettingsModel.visibilityHandler.selectedObjectId = selectedObjectId
}
} }
if (typeof UM.ActiveTool.properties.getValue("ContainerID") !== "undefined") if (inheritStackProvider.containerStackId != containerId)
{ {
const containerId = UM.ActiveTool.properties.getValue("ContainerID") inheritStackProvider.containerStackId = containerId
if (provider.containerStackId != containerId)
{
provider.containerStackId = containerId
}
if (inheritStackProvider.containerStackId != containerId)
{
inheritStackProvider.containerStackId = containerId
}
} }
} }
} }

View file

@ -1,11 +1,10 @@
// Copyright (c) 2022 Ultimaker B.V. //Copyright (c) 2022 Ultimaker B.V.
// Uranium is released under the terms of the LGPLv3 or higher. //Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 1.2 as OldControls import QtQuick.Controls 2.2
import QtQuick.Controls 2.0
import UM 1.2 as UM import UM 1.5 as UM
import Cura 1.0 as Cura import Cura 1.0 as Cura
import ".." import ".."
@ -72,10 +71,9 @@ UM.Dialog
text: catalog.i18nc("@label:checkbox", "Show all") text: catalog.i18nc("@label:checkbox", "Show all")
} }
OldControls.ScrollView ListView
{ {
id: scrollView id: listview
anchors anchors
{ {
top: filterInput.bottom top: filterInput.bottom
@ -83,47 +81,47 @@ UM.Dialog
right: parent.right right: parent.right
bottom: parent.bottom bottom: parent.bottom
} }
ListView
ScrollBar.vertical: UM.ScrollBar {}
clip: true
model: UM.SettingDefinitionsModel
{ {
id: listview id: definitionsModel
model: UM.SettingDefinitionsModel containerId: Cura.MachineManager.activeMachine != null ? Cura.MachineManager.activeMachine.definition.id: ""
visibilityHandler: UM.SettingPreferenceVisibilityHandler {}
expanded: [ "*" ]
exclude:
{ {
id: definitionsModel var excluded_settings = [ "machine_settings", "command_line_settings", "support_mesh", "anti_overhang_mesh", "cutting_mesh", "infill_mesh" ]
containerId: Cura.MachineManager.activeMachine != null ? Cura.MachineManager.activeMachine.definition.id: "" excluded_settings = excluded_settings.concat(settingPickDialog.additional_excluded_settings)
visibilityHandler: UM.SettingPreferenceVisibilityHandler {} return excluded_settings
expanded: [ "*" ]
exclude:
{
var excluded_settings = [ "machine_settings", "command_line_settings", "support_mesh", "anti_overhang_mesh", "cutting_mesh", "infill_mesh" ]
excluded_settings = excluded_settings.concat(settingPickDialog.additional_excluded_settings)
return excluded_settings
}
showAll: toggleShowAll.checked || filterInput.text !== ""
} }
delegate: Loader showAll: toggleShowAll.checked || filterInput.text !== ""
{
id: loader
width: listview.width
height: model.type != undefined ? UM.Theme.getSize("section").height : 0
property var definition: model
property var settingDefinitionsModel: definitionsModel
asynchronous: true
source:
{
switch(model.type)
{
case "category":
return "PerObjectCategory.qml"
default:
return "PerObjectItem.qml"
}
}
}
Component.onCompleted: settingPickDialog.updateFilter()
} }
delegate: Loader
{
id: loader
width: listview.width
height: model.type != undefined ? UM.Theme.getSize("section").height : 0
property var definition: model
property var settingDefinitionsModel: definitionsModel
asynchronous: true
source:
{
switch(model.type)
{
case "category":
return "PerObjectCategory.qml"
default:
return "PerObjectItem.qml"
}
}
}
Component.onCompleted: settingPickDialog.updateFilter()
} }
rightButtons: [ rightButtons: [

View file

@ -1,4 +1,4 @@
// Copyright (c) 2015 Jaime van Kessel, Ultimaker B.V. // Copyright (c) 2022 Jaime van Kessel, Ultimaker B.V.
// The PostProcessingPlugin is released under the terms of the AGPLv3 or higher. // The PostProcessingPlugin is released under the terms of the AGPLv3 or higher.
import QtQuick 2.2 import QtQuick 2.2
@ -8,7 +8,7 @@ import QtQuick.Layouts 1.1
import QtQuick.Dialogs 1.1 import QtQuick.Dialogs 1.1
import QtQuick.Window 2.2 import QtQuick.Window 2.2
import UM 1.2 as UM import UM 1.5 as UM
import Cura 1.0 as Cura import Cura 1.0 as Cura
UM.Dialog UM.Dialog
@ -34,7 +34,7 @@ UM.Dialog
UM.I18nCatalog{id: catalog; name: "cura"} UM.I18nCatalog{id: catalog; name: "cura"}
id: base id: base
property int columnWidth: Math.round((base.width / 2) - UM.Theme.getSize("default_margin").width) property int columnWidth: Math.round((base.width / 2) - UM.Theme.getSize("default_margin").width)
property int textMargin: Math.round(UM.Theme.getSize("default_margin").width / 2) property int textMargin: UM.Theme.getSize("narrow_margin").width
property string activeScriptName property string activeScriptName
SystemPalette{ id: palette } SystemPalette{ id: palette }
SystemPalette{ id: disabledPalette; colorGroup: SystemPalette.Disabled } SystemPalette{ id: disabledPalette; colorGroup: SystemPalette.Disabled }
@ -44,19 +44,18 @@ UM.Dialog
{ {
id: selectedScriptGroup id: selectedScriptGroup
} }
Item Column
{ {
id: activeScripts id: activeScripts
anchors.left: parent.left
width: base.columnWidth width: base.columnWidth
height: parent.height height: parent.height
spacing: base.textMargin
Label Label
{ {
id: activeScriptsHeader id: activeScriptsHeader
text: catalog.i18nc("@label", "Post Processing Scripts") text: catalog.i18nc("@label", "Post Processing Scripts")
anchors.top: parent.top
anchors.topMargin: base.textMargin
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: base.textMargin anchors.leftMargin: base.textMargin
anchors.right: parent.right anchors.right: parent.right
@ -67,22 +66,24 @@ UM.Dialog
ListView ListView
{ {
id: activeScriptsList id: activeScriptsList
anchors anchors
{ {
top: activeScriptsHeader.bottom
left: parent.left left: parent.left
leftMargin: UM.Theme.getSize("default_margin").width
right: parent.right right: parent.right
rightMargin: base.textMargin rightMargin: base.textMargin
topMargin: base.textMargin
leftMargin: UM.Theme.getSize("default_margin").width
} }
height: Math.min(contentHeight, parent.height - parent.spacing * 2 - activeScriptsHeader.height - addButton.height) //At the window height, start scrolling this one.
height: childrenRect.height clip: true
ScrollBar.vertical: UM.ScrollBar
{
id: activeScriptsScrollBar
}
model: manager.scriptList model: manager.scriptList
delegate: Item delegate: Item
{ {
width: parent.width width: parent.width - activeScriptsScrollBar.width
height: activeScriptButton.height height: activeScriptButton.height
Button Button
{ {
@ -132,8 +133,7 @@ UM.Dialog
text: "x" text: "x"
width: 20 * screenScaleFactor width: 20 * screenScaleFactor
height: 20 * screenScaleFactor height: 20 * screenScaleFactor
anchors.right:parent.right anchors.right: parent.right
anchors.rightMargin: base.textMargin
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
onClicked: manager.removeScriptByIndex(index) onClicked: manager.removeScriptByIndex(index)
contentItem: Item contentItem: Item
@ -221,8 +221,6 @@ UM.Dialog
text: catalog.i18nc("@action", "Add a script") text: catalog.i18nc("@action", "Add a script")
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: base.textMargin anchors.leftMargin: base.textMargin
anchors.top: activeScriptsList.bottom
anchors.topMargin: base.textMargin
onClicked: scriptsMenu.open() onClicked: scriptsMenu.open()
} }
Menu Menu
@ -275,9 +273,9 @@ UM.Dialog
color: UM.Theme.getColor("text") color: UM.Theme.getColor("text")
} }
ScrollView ListView
{ {
id: scrollView id: listview
anchors anchors
{ {
top: scriptSpecsHeader.bottom top: scriptSpecsHeader.bottom
@ -288,123 +286,121 @@ UM.Dialog
bottom: parent.bottom bottom: parent.bottom
} }
ScrollBar.vertical: UM.ScrollBar {}
clip: true
visible: manager.selectedScriptDefinitionId != "" visible: manager.selectedScriptDefinitionId != ""
spacing: UM.Theme.getSize("default_lining").height
ListView model: UM.SettingDefinitionsModel
{ {
id: listview id: definitionsModel
spacing: UM.Theme.getSize("default_lining").height containerId: manager.selectedScriptDefinitionId
model: UM.SettingDefinitionsModel showAll: true
{ }
id: definitionsModel
containerId: manager.selectedScriptDefinitionId
showAll: true
}
delegate: Loader delegate: Loader
{ {
id: settingLoader id: settingLoader
width: parent.width width: listview.width
height: height:
{
if(provider.properties.enabled == "True")
{ {
if(provider.properties.enabled == "True") if(model.type != undefined)
{ {
if(model.type != undefined) return UM.Theme.getSize("section").height
{
return UM.Theme.getSize("section").height
}
else
{
return 0
}
} }
else else
{ {
return 0 return 0
} }
} }
Behavior on height { NumberAnimation { duration: 100 } } else
opacity: provider.properties.enabled == "True" ? 1 : 0
Behavior on opacity { NumberAnimation { duration: 100 } }
enabled: opacity > 0
property var definition: model
property var settingDefinitionsModel: definitionsModel
property var propertyProvider: provider
property var globalPropertyProvider: inheritStackProvider
//Qt5.4.2 and earlier has a bug where this causes a crash: https://bugreports.qt.io/browse/QTBUG-35989
//In addition, while it works for 5.5 and higher, the ordering of the actual combo box drop down changes,
//causing nasty issues when selecting different options. So disable asynchronous loading of enum type completely.
asynchronous: model.type != "enum" && model.type != "extruder"
onLoaded:
{ {
settingLoader.item.showRevertButton = false return 0
settingLoader.item.showInheritButton = false }
settingLoader.item.showLinkedSettingIcon = false }
settingLoader.item.doDepthIndentation = false Behavior on height { NumberAnimation { duration: 100 } }
settingLoader.item.doQualityUserSettingEmphasis = false opacity: provider.properties.enabled == "True" ? 1 : 0
Behavior on opacity { NumberAnimation { duration: 100 } }
enabled: opacity > 0
property var definition: model
property var settingDefinitionsModel: definitionsModel
property var propertyProvider: provider
property var globalPropertyProvider: inheritStackProvider
//Qt5.4.2 and earlier has a bug where this causes a crash: https://bugreports.qt.io/browse/QTBUG-35989
//In addition, while it works for 5.5 and higher, the ordering of the actual combo box drop down changes,
//causing nasty issues when selecting different options. So disable asynchronous loading of enum type completely.
asynchronous: model.type != "enum" && model.type != "extruder"
onLoaded:
{
settingLoader.item.showRevertButton = false
settingLoader.item.showInheritButton = false
settingLoader.item.showLinkedSettingIcon = false
settingLoader.item.doDepthIndentation = false
settingLoader.item.doQualityUserSettingEmphasis = false
}
sourceComponent:
{
switch(model.type)
{
case "int":
return settingTextField
case "float":
return settingTextField
case "enum":
return settingComboBox
case "extruder":
return settingExtruder
case "bool":
return settingCheckBox
case "str":
return settingTextField
case "category":
return settingCategory
default:
return settingUnknown
}
}
UM.SettingPropertyProvider
{
id: provider
containerStackId: manager.selectedScriptStackId
key: model.key ? model.key : "None"
watchedProperties: [ "value", "enabled", "state", "validationState" ]
storeIndex: 0
}
// Specialty provider that only watches global_inherits (we can't filter on what property changed we get events
// so we bypass that to make a dedicated provider).
UM.SettingPropertyProvider
{
id: inheritStackProvider
containerStack: Cura.MachineManager.activeMachine
key: model.key ? model.key : "None"
watchedProperties: [ "limit_to_extruder" ]
}
Connections
{
target: item
function onShowTooltip(text)
{
tooltip.text = text
var position = settingLoader.mapToItem(settingsPanel, settingsPanel.x, 0)
tooltip.show(position)
tooltip.target.x = position.x + 1
} }
sourceComponent: function onHideTooltip() { tooltip.hide() }
{
switch(model.type)
{
case "int":
return settingTextField
case "float":
return settingTextField
case "enum":
return settingComboBox
case "extruder":
return settingExtruder
case "bool":
return settingCheckBox
case "str":
return settingTextField
case "category":
return settingCategory
default:
return settingUnknown
}
}
UM.SettingPropertyProvider
{
id: provider
containerStackId: manager.selectedScriptStackId
key: model.key ? model.key : "None"
watchedProperties: [ "value", "enabled", "state", "validationState" ]
storeIndex: 0
}
// Specialty provider that only watches global_inherits (we can't filter on what property changed we get events
// so we bypass that to make a dedicated provider).
UM.SettingPropertyProvider
{
id: inheritStackProvider
containerStack: Cura.MachineManager.activeMachine
key: model.key ? model.key : "None"
watchedProperties: [ "limit_to_extruder" ]
}
Connections
{
target: item
function onShowTooltip(text)
{
tooltip.text = text
var position = settingLoader.mapToItem(settingsPanel, settingsPanel.x, 0)
tooltip.show(position)
tooltip.target.x = position.x + 1
}
function onHideTooltip() { tooltip.hide() }
}
} }
} }
} }

View file

@ -11,7 +11,6 @@ try:
except ImportError: except ImportError:
pass pass
from typing import Optional from typing import Optional
import os
class SentryLogger(LogOutput): class SentryLogger(LogOutput):

View file

@ -1,7 +1,7 @@
// Copyright (c) 2019 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import UM 1.2 as UM import UM 1.5 as UM
import Cura 1.5 as Cura import Cura 1.5 as Cura
import QtQuick 2.2 import QtQuick 2.2
@ -109,53 +109,51 @@ Cura.MachineAction
width: Math.round(parent.width * 0.5) width: Math.round(parent.width * 0.5)
spacing: UM.Theme.getSize("default_margin").height spacing: UM.Theme.getSize("default_margin").height
ScrollView ListView
{ {
id: objectListContainer id: listview
width: parent.width width: parent.width
height: base.height - contentRow.y - discoveryTip.height height: base.height - contentRow.y - discoveryTip.height
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
ListView
{
id: listview
model: manager.foundDevices
width: parent.width
currentIndex: -1
onCurrentIndexChanged:
{
base.selectedDevice = listview.model[currentIndex];
// Only allow connecting if the printer has responded to API query since the last refresh
base.completeProperties = base.selectedDevice != null && base.selectedDevice.getProperty("incomplete") != "true";
}
Component.onCompleted: manager.startDiscovery()
delegate: Rectangle
{
height: printNameLabel.height
color: ListView.isCurrentItem ? palette.highlight : index % 2 ? palette.base : palette.alternateBase
width: listview.width
Label
{
id: printNameLabel
height: contentHeight
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width
anchors.right: parent.right
text: listview.model[index].name
color: parent.ListView.isCurrentItem ? palette.highlightedText : palette.text
elide: Text.ElideRight
renderType: Text.NativeRendering
}
MouseArea ScrollBar.vertical: UM.ScrollBar {}
clip: true
model: manager.foundDevices
currentIndex: -1
onCurrentIndexChanged:
{
base.selectedDevice = listview.model[currentIndex];
// Only allow connecting if the printer has responded to API query since the last refresh
base.completeProperties = base.selectedDevice != null && base.selectedDevice.getProperty("incomplete") != "true";
}
Component.onCompleted: manager.startDiscovery()
delegate: Rectangle
{
height: printNameLabel.height
color: ListView.isCurrentItem ? palette.highlight : index % 2 ? palette.base : palette.alternateBase
width: listview.width
Label
{
id: printNameLabel
height: contentHeight
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width
anchors.right: parent.right
text: listview.model[index].name
color: parent.ListView.isCurrentItem ? palette.highlightedText : palette.text
elide: Text.ElideRight
renderType: Text.NativeRendering
}
MouseArea
{
anchors.fill: parent;
onClicked:
{ {
anchors.fill: parent; if(!parent.ListView.isCurrentItem)
onClicked:
{ {
if(!parent.ListView.isCurrentItem) parent.ListView.view.currentIndex = index;
{
parent.ListView.view.currentIndex = index;
}
} }
} }
} }

View file

@ -1,8 +1,8 @@
// Copyright (c) 2019 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 1.4 import QtQuick.Controls 2.15
import UM 1.5 as UM import UM 1.5 as UM
import Cura 1.0 as Cura import Cura 1.0 as Cura
@ -22,7 +22,7 @@ Item
id: queuedLabel id: queuedLabel
anchors anchors
{ {
left: queuedPrintJobs.left left: printJobList.left
top: parent.top top: parent.top
} }
font: UM.Theme.getFont("large") font: UM.Theme.getFont("large")
@ -34,7 +34,7 @@ Item
id: manageQueueLabel id: manageQueueLabel
anchors anchors
{ {
right: queuedPrintJobs.right right: printJobList.right
verticalCenter: queuedLabel.verticalCenter verticalCenter: queuedLabel.verticalCenter
} }
height: 18 * screenScaleFactor // TODO: Theme! height: 18 * screenScaleFactor // TODO: Theme!
@ -78,7 +78,7 @@ Item
id: printJobQueueHeadings id: printJobQueueHeadings
anchors anchors
{ {
left: queuedPrintJobs.left left: printJobList.left
leftMargin: UM.Theme.getSize("narrow_margin").width leftMargin: UM.Theme.getSize("narrow_margin").width
top: queuedLabel.bottom top: queuedLabel.bottom
topMargin: 24 * screenScaleFactor // TODO: Theme! topMargin: 24 * screenScaleFactor // TODO: Theme!
@ -121,41 +121,42 @@ Item
} }
} }
ScrollView ListView
{ {
id: queuedPrintJobs id: printJobList
anchors anchors
{ {
bottom: parent.bottom bottom: parent.bottom
horizontalCenter: parent.horizontalCenter horizontalCenter: parent.horizontalCenter
top: printJobQueueHeadings.bottom top: printJobQueueHeadings.bottom
topMargin: 12 * screenScaleFactor // TODO: Theme! topMargin: UM.Theme.getSize("default_margin").width
} }
style: UM.Theme.styles.scrollview
width: parent.width width: parent.width
ListView ScrollBar.vertical: UM.ScrollBar
{ {
id: printJobList id: printJobScrollBar
anchors.fill: parent }
delegate: MonitorPrintJobCard spacing: UM.Theme.getSize("narrow_margin").width
clip: true
delegate: MonitorPrintJobCard
{
anchors
{ {
anchors left: parent.left
{ right: parent.right
left: parent.left rightMargin: printJobScrollBar.width
right: parent.right
}
printJob: modelData
} }
model: printJob: modelData
}
model:
{
if (OutputDevice.receivedData)
{ {
if (OutputDevice.receivedData) return OutputDevice.queuedPrintJobs
{
return OutputDevice.queuedPrintJobs
}
return [null, null]
} }
spacing: 6 // TODO: Theme! return [null, null]
} }
} }
} }

View file

@ -650,7 +650,6 @@ class XmlMaterialProfile(InstanceContainer):
machine_id_list = product_id_map.get(identifier.get("product"), []) machine_id_list = product_id_map.get(identifier.get("product"), [])
if not machine_id_list: if not machine_id_list:
machine_id_list = self.getPossibleDefinitionIDsFromName(identifier.get("product")) machine_id_list = self.getPossibleDefinitionIDsFromName(identifier.get("product"))
for machine_id in machine_id_list: for machine_id in machine_id_list:
definitions = ContainerRegistry.getInstance().findDefinitionContainersMetadata(id = machine_id) definitions = ContainerRegistry.getInstance().findDefinitionContainersMetadata(id = machine_id)
if not definitions: if not definitions:
@ -1068,6 +1067,8 @@ class XmlMaterialProfile(InstanceContainer):
id_list = {name.lower().replace(" ", ""), # simply removing all spaces id_list = {name.lower().replace(" ", ""), # simply removing all spaces
name.lower().replace(" ", "_"), # simply replacing all spaces with underscores name.lower().replace(" ", "_"), # simply replacing all spaces with underscores
"_".join(merged_name_parts), "_".join(merged_name_parts),
name.replace(" ", ""),
name.replace(" ", "_")
} }
id_list = list(id_list) id_list = list(id_list)
return id_list return id_list

View file

@ -1248,12 +1248,14 @@
"label": "Minimum Feature Size", "label": "Minimum Feature Size",
"description": "Minimum thickness of thin features. Model features that are thinner than this value will not be printed, while features thicker than the Minimum Feature Size will be widened to the Minimum Wall Line Width.", "description": "Minimum thickness of thin features. Model features that are thinner than this value will not be printed, while features thicker than the Minimum Feature Size will be widened to the Minimum Wall Line Width.",
"unit": "mm", "unit": "mm",
"default_value": 0.1,
"value": "wall_line_width_0 / 4", "value": "wall_line_width_0 / 4",
"minimum_value": "0", "minimum_value": "0",
"maximum_value": "wall_line_width_0", "maximum_value": "wall_line_width_0",
"type": "float", "type": "float",
"limit_to_extruder": "wall_0_extruder_nr", "limit_to_extruder": "wall_0_extruder_nr",
"enabled": "fill_outline_gaps" "enabled": "fill_outline_gaps",
"settable_per_mesh": true
}, },
"min_bead_width": "min_bead_width":
{ {
@ -1261,13 +1263,14 @@
"description": "Width of the wall that will replace thin features (according to the Minimum Feature Size) of the model. If the Minimum Wall Line Width is thinner than the thickness of the feature, the wall will become as thick as the feature itself.", "description": "Width of the wall that will replace thin features (according to the Minimum Feature Size) of the model. If the Minimum Wall Line Width is thinner than the thickness of the feature, the wall will become as thick as the feature itself.",
"unit": "mm", "unit": "mm",
"value": "wall_line_width_0 * (100.0 + wall_split_middle_threshold)/200", "value": "wall_line_width_0 * (100.0 + wall_split_middle_threshold)/200",
"default_value": "0.2", "default_value": 0.2,
"minimum_value": "0.001", "minimum_value": "0.001",
"minimum_value_warning": "min_feature_size", "minimum_value_warning": "min_feature_size",
"maximum_value_warning": "wall_line_width_0", "maximum_value_warning": "wall_line_width_0",
"type": "float", "type": "float",
"limit_to_extruder": "wall_0_extruder_nr", "limit_to_extruder": "wall_0_extruder_nr",
"enabled": "fill_outline_gaps" "enabled": "fill_outline_gaps",
"settable_per_mesh": true
}, },
"xy_offset": "xy_offset":
{ {
@ -3232,7 +3235,7 @@
"enabled": "resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('draft_shield_enabled') or resolveOrValue('ooze_shield_enabled')", "enabled": "resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('draft_shield_enabled') or resolveOrValue('ooze_shield_enabled')",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "skirt_brim_extruder_nr"
}, },
"speed_z_hop": "speed_z_hop":
{ {
@ -3561,7 +3564,7 @@
"maximum_value_warning": "10000", "maximum_value_warning": "10000",
"enabled": "resolveOrValue('acceleration_enabled') and (resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('draft_shield_enabled') or resolveOrValue('ooze_shield_enabled'))", "enabled": "resolveOrValue('acceleration_enabled') and (resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('draft_shield_enabled') or resolveOrValue('ooze_shield_enabled'))",
"settable_per_mesh": false, "settable_per_mesh": false,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "skirt_brim_extruder_nr"
}, },
"jerk_enabled": "jerk_enabled":
{ {
@ -3836,7 +3839,7 @@
"value": "jerk_layer_0", "value": "jerk_layer_0",
"enabled": "resolveOrValue('jerk_enabled') and (resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('draft_shield_enabled') or resolveOrValue('ooze_shield_enabled'))", "enabled": "resolveOrValue('jerk_enabled') and (resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('draft_shield_enabled') or resolveOrValue('ooze_shield_enabled'))",
"settable_per_mesh": false, "settable_per_mesh": false,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "skirt_brim_extruder_nr"
} }
} }
}, },
@ -3963,6 +3966,7 @@
"default_value": 90, "default_value": 90,
"minimum_value": "0", "minimum_value": "0",
"maximum_value_warning": "100", "maximum_value_warning": "100",
"maximum_value": 999999999,
"type": "int", "type": "int",
"enabled": "retraction_enable", "enabled": "retraction_enable",
"settable_per_mesh": false, "settable_per_mesh": false,
@ -5410,7 +5414,54 @@
"value": "int(defaultExtruderPosition())", "value": "int(defaultExtruderPosition())",
"enabled": "extruders_enabled_count > 1 and (resolveOrValue('adhesion_type') != 'none' or resolveOrValue('prime_tower_brim_enable'))", "enabled": "extruders_enabled_count > 1 and (resolveOrValue('adhesion_type') != 'none' or resolveOrValue('prime_tower_brim_enable'))",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": false "settable_per_extruder": false,
"children":
{
"skirt_brim_extruder_nr":
{
"label": "Skirt/Brim Extruder",
"description": "The extruder train to use for printing the skirt or brim. This is used in multi-extrusion.",
"type": "extruder",
"default_value": "0",
"value": "adhesion_extruder_nr",
"enabled": "extruders_enabled_count > 1 and (resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable'))",
"settable_per_mesh": false,
"settable_per_extruder": false
},
"raft_base_extruder_nr":
{
"label": "Raft Base Extruder",
"description": "The extruder train to use for printing the first layer of the raft. This is used in multi-extrusion.",
"type": "extruder",
"default_value": "0",
"value": "adhesion_extruder_nr",
"enabled": "extruders_enabled_count > 1 and resolveOrValue('adhesion_type') == 'raft'",
"settable_per_mesh": false,
"settable_per_extruder": false
},
"raft_interface_extruder_nr":
{
"label": "Raft Middle Extruder",
"description": "The extruder train to use for printing the middle layer of the raft. This is used in multi-extrusion.",
"type": "extruder",
"default_value": "0",
"value": "adhesion_extruder_nr",
"enabled": "extruders_enabled_count > 1 and resolveOrValue('adhesion_type') == 'raft'",
"settable_per_mesh": false,
"settable_per_extruder": false
},
"raft_surface_extruder_nr":
{
"label": "Raft Top Extruder",
"description": "The extruder train to use for printing the top layer(s) of the raft. This is used in multi-extrusion.",
"type": "extruder",
"default_value": "0",
"value": "adhesion_extruder_nr",
"enabled": "extruders_enabled_count > 1 and resolveOrValue('adhesion_type') == 'raft' and raft_surface_layers > 0",
"settable_per_mesh": false,
"settable_per_extruder": false
}
}
}, },
"skirt_line_count": "skirt_line_count":
{ {
@ -5424,7 +5475,7 @@
"enabled": "resolveOrValue('adhesion_type') == 'skirt'", "enabled": "resolveOrValue('adhesion_type') == 'skirt'",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "skirt_brim_extruder_nr"
}, },
"skirt_gap": "skirt_gap":
{ {
@ -5438,7 +5489,7 @@
"enabled": "resolveOrValue('adhesion_type') == 'skirt'", "enabled": "resolveOrValue('adhesion_type') == 'skirt'",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "skirt_brim_extruder_nr"
}, },
"skirt_brim_minimal_length": "skirt_brim_minimal_length":
{ {
@ -5467,7 +5518,7 @@
"enabled": "resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable')", "enabled": "resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable')",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr", "limit_to_extruder": "skirt_brim_extruder_nr",
"children": "children":
{ {
"brim_line_count": "brim_line_count":
@ -5483,7 +5534,7 @@
"enabled": "resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable')", "enabled": "resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable')",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "skirt_brim_extruder_nr"
} }
} }
}, },
@ -5499,7 +5550,7 @@
"enabled": "resolveOrValue('adhesion_type') == 'brim'", "enabled": "resolveOrValue('adhesion_type') == 'brim'",
"settable_per_mesh": true, "settable_per_mesh": true,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "skirt_brim_extruder_nr"
}, },
"brim_replaces_support": "brim_replaces_support":
{ {
@ -5521,7 +5572,7 @@
"enabled": "resolveOrValue('adhesion_type') == 'brim'", "enabled": "resolveOrValue('adhesion_type') == 'brim'",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "skirt_brim_extruder_nr"
}, },
"raft_margin": "raft_margin":
{ {
@ -5563,7 +5614,7 @@
"enabled": "resolveOrValue('adhesion_type') == 'raft'", "enabled": "resolveOrValue('adhesion_type') == 'raft'",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_surface_extruder_nr"
}, },
"layer_0_z_overlap": "layer_0_z_overlap":
{ {
@ -5578,7 +5629,7 @@
"enabled": "resolveOrValue('adhesion_type') == 'raft'", "enabled": "resolveOrValue('adhesion_type') == 'raft'",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_surface_extruder_nr"
}, },
"raft_surface_layers": "raft_surface_layers":
{ {
@ -5591,7 +5642,7 @@
"enabled": "resolveOrValue('adhesion_type') == 'raft'", "enabled": "resolveOrValue('adhesion_type') == 'raft'",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_interface_extruder_nr"
}, },
"raft_surface_thickness": "raft_surface_thickness":
{ {
@ -5607,7 +5658,7 @@
"enabled": "resolveOrValue('adhesion_type') == 'raft'", "enabled": "resolveOrValue('adhesion_type') == 'raft'",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_surface_extruder_nr"
}, },
"raft_surface_line_width": "raft_surface_line_width":
{ {
@ -5623,7 +5674,7 @@
"enabled": "resolveOrValue('adhesion_type') == 'raft'", "enabled": "resolveOrValue('adhesion_type') == 'raft'",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_surface_extruder_nr"
}, },
"raft_surface_line_spacing": "raft_surface_line_spacing":
{ {
@ -5639,7 +5690,7 @@
"value": "raft_surface_line_width", "value": "raft_surface_line_width",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_surface_extruder_nr"
}, },
"raft_interface_thickness": "raft_interface_thickness":
{ {
@ -5655,7 +5706,7 @@
"enabled": "resolveOrValue('adhesion_type') == 'raft'", "enabled": "resolveOrValue('adhesion_type') == 'raft'",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_interface_extruder_nr"
}, },
"raft_interface_line_width": "raft_interface_line_width":
{ {
@ -5671,7 +5722,7 @@
"enabled": "resolveOrValue('adhesion_type') == 'raft'", "enabled": "resolveOrValue('adhesion_type') == 'raft'",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_interface_extruder_nr"
}, },
"raft_interface_line_spacing": "raft_interface_line_spacing":
{ {
@ -5687,7 +5738,7 @@
"enabled": "resolveOrValue('adhesion_type') == 'raft'", "enabled": "resolveOrValue('adhesion_type') == 'raft'",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_interface_extruder_nr"
}, },
"raft_base_thickness": "raft_base_thickness":
{ {
@ -5703,7 +5754,7 @@
"enabled": "resolveOrValue('adhesion_type') == 'raft'", "enabled": "resolveOrValue('adhesion_type') == 'raft'",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_base_extruder_nr"
}, },
"raft_base_line_width": "raft_base_line_width":
{ {
@ -5719,7 +5770,7 @@
"enabled": "resolveOrValue('adhesion_type') == 'raft'", "enabled": "resolveOrValue('adhesion_type') == 'raft'",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_base_extruder_nr"
}, },
"raft_base_line_spacing": "raft_base_line_spacing":
{ {
@ -5735,7 +5786,7 @@
"enabled": "resolveOrValue('adhesion_type') == 'raft'", "enabled": "resolveOrValue('adhesion_type') == 'raft'",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_base_extruder_nr"
}, },
"raft_speed": "raft_speed":
{ {
@ -5768,7 +5819,7 @@
"value": "raft_speed", "value": "raft_speed",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_surface_extruder_nr"
}, },
"raft_interface_speed": "raft_interface_speed":
{ {
@ -5784,7 +5835,7 @@
"enabled": "resolveOrValue('adhesion_type') == 'raft'", "enabled": "resolveOrValue('adhesion_type') == 'raft'",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_interface_extruder_nr"
}, },
"raft_base_speed": "raft_base_speed":
{ {
@ -5800,7 +5851,7 @@
"value": "0.75 * raft_speed", "value": "0.75 * raft_speed",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_base_extruder_nr"
} }
} }
}, },
@ -5833,7 +5884,7 @@
"maximum_value_warning": "10000", "maximum_value_warning": "10000",
"enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('acceleration_enabled')", "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('acceleration_enabled')",
"settable_per_mesh": false, "settable_per_mesh": false,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_surface_extruder_nr"
}, },
"raft_interface_acceleration": "raft_interface_acceleration":
{ {
@ -5848,7 +5899,7 @@
"maximum_value_warning": "10000", "maximum_value_warning": "10000",
"enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('acceleration_enabled')", "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('acceleration_enabled')",
"settable_per_mesh": false, "settable_per_mesh": false,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_interface_extruder_nr"
}, },
"raft_base_acceleration": "raft_base_acceleration":
{ {
@ -5863,7 +5914,7 @@
"maximum_value_warning": "10000", "maximum_value_warning": "10000",
"enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('acceleration_enabled')", "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('acceleration_enabled')",
"settable_per_mesh": false, "settable_per_mesh": false,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_base_extruder_nr"
} }
} }
}, },
@ -5896,7 +5947,7 @@
"maximum_value_warning": "100", "maximum_value_warning": "100",
"enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled')", "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled')",
"settable_per_mesh": false, "settable_per_mesh": false,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_surface_extruder_nr"
}, },
"raft_interface_jerk": "raft_interface_jerk":
{ {
@ -5911,7 +5962,7 @@
"maximum_value_warning": "50", "maximum_value_warning": "50",
"enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled')", "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled')",
"settable_per_mesh": false, "settable_per_mesh": false,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_interface_extruder_nr"
}, },
"raft_base_jerk": "raft_base_jerk":
{ {
@ -5926,7 +5977,7 @@
"maximum_value_warning": "50", "maximum_value_warning": "50",
"enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled')", "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled')",
"settable_per_mesh": false, "settable_per_mesh": false,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_base_extruder_nr"
} }
} }
}, },
@ -5958,7 +6009,7 @@
"enabled": "resolveOrValue('adhesion_type') == 'raft'", "enabled": "resolveOrValue('adhesion_type') == 'raft'",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_surface_extruder_nr"
}, },
"raft_interface_fan_speed": "raft_interface_fan_speed":
{ {
@ -5973,7 +6024,7 @@
"enabled": "resolveOrValue('adhesion_type') == 'raft'", "enabled": "resolveOrValue('adhesion_type') == 'raft'",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_interface_extruder_nr"
}, },
"raft_base_fan_speed": "raft_base_fan_speed":
{ {
@ -5988,7 +6039,7 @@
"enabled": "resolveOrValue('adhesion_type') == 'raft'", "enabled": "resolveOrValue('adhesion_type') == 'raft'",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"limit_to_extruder": "adhesion_extruder_nr" "limit_to_extruder": "raft_base_extruder_nr"
} }
} }
} }
@ -6050,7 +6101,7 @@
"unit": "mm", "unit": "mm",
"enabled": "resolveOrValue('prime_tower_enable')", "enabled": "resolveOrValue('prime_tower_enable')",
"default_value": 200, "default_value": 200,
"value": "machine_width - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' or (prime_tower_brim_enable and adhesion_type != 'raft') 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')) * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 - (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0) - max(map(abs, extruderValues('machine_nozzle_offset_x'))) - 1", "value": "machine_width - max(extruderValue(skirt_brim_extruder_nr, 'brim_width') * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' or (prime_tower_brim_enable and adhesion_type != 'raft') else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(skirt_brim_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')) * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 - (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0) - max(map(abs, extruderValues('machine_nozzle_offset_x'))) - 1",
"maximum_value": "machine_width / 2 if machine_center_is_zero else machine_width", "maximum_value": "machine_width / 2 if machine_center_is_zero else machine_width",
"minimum_value": "resolveOrValue('prime_tower_size') - machine_width / 2 if machine_center_is_zero else resolveOrValue('prime_tower_size')", "minimum_value": "resolveOrValue('prime_tower_size') - machine_width / 2 if machine_center_is_zero else resolveOrValue('prime_tower_size')",
"settable_per_mesh": false, "settable_per_mesh": false,
@ -6064,7 +6115,7 @@
"unit": "mm", "unit": "mm",
"enabled": "resolveOrValue('prime_tower_enable')", "enabled": "resolveOrValue('prime_tower_enable')",
"default_value": 200, "default_value": 200,
"value": "machine_depth - prime_tower_size - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' or (prime_tower_brim_enable and adhesion_type != 'raft') 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')) * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 - (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0) - max(map(abs, extruderValues('machine_nozzle_offset_y'))) - 3", "value": "machine_depth - prime_tower_size - max(extruderValue(skirt_brim_extruder_nr, 'brim_width') * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' or (prime_tower_brim_enable and adhesion_type != 'raft') else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(skirt_brim_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')) * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 - (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0) - max(map(abs, extruderValues('machine_nozzle_offset_y'))) - 3",
"maximum_value": "machine_depth / 2 - resolveOrValue('prime_tower_size') if machine_center_is_zero else machine_depth - resolveOrValue('prime_tower_size')", "maximum_value": "machine_depth / 2 - resolveOrValue('prime_tower_size') if machine_center_is_zero else machine_depth - resolveOrValue('prime_tower_size')",
"minimum_value": "machine_depth / -2 if machine_center_is_zero else 0", "minimum_value": "machine_depth / -2 if machine_center_is_zero else 0",
"settable_per_mesh": false, "settable_per_mesh": false,

View file

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Cura 4.13\n" "Project-Id-Version: Cura 4.13\n"
"Report-Msgid-Bugs-To: plugins@ultimaker.com\n" "Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-12-10 12:00+0100\n" "POT-Creation-Date: 2021-12-10 12:00+0100\n"
"PO-Revision-Date: 2021-04-04 15:31+0200\n" "PO-Revision-Date: 2021-12-17 21:07+0100\n"
"Last-Translator: Miroslav Šustek <sustmidown@centrum.cz>\n" "Last-Translator: Miroslav Šustek <sustmidown@centrum.cz>\n"
"Language-Team: DenyCZ <www.github.com/DenyCZ>\n" "Language-Team: DenyCZ <www.github.com/DenyCZ>\n"
"Language: cs_CZ\n" "Language: cs_CZ\n"
@ -16,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n>=2 && n<=4 ? 1 : 2);\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n>=2 && n<=4 ? 1 : 2);\n"
"X-Generator: Poedit 2.4.2\n" "X-Generator: Poedit 3.0\n"
#: /home/clamboo/Desktop/Cura/cura/Backups/Backup.py:115 #: /home/clamboo/Desktop/Cura/cura/Backups/Backup.py:115
msgctxt "@info:backup_failed" msgctxt "@info:backup_failed"
@ -84,7 +84,7 @@ msgstr "Nepodařilo se uložit archiv s materiálem"
#: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:188 #: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:188
msgctxt "@text" msgctxt "@text"
msgid "Unknown error." msgid "Unknown error."
msgstr "" msgstr "Neznámá chyba."
#: /home/clamboo/Desktop/Cura/cura/BuildVolume.py:99 #: /home/clamboo/Desktop/Cura/cura/BuildVolume.py:99
msgctxt "@info:status" msgctxt "@info:status"
@ -229,35 +229,35 @@ msgstr "Nemohu najít umístění"
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:104 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:104
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to create archive of materials to sync with printers." msgid "Failed to create archive of materials to sync with printers."
msgstr "" msgstr "Nepodařilo se vytvořit archiv s materiály pro synchronizaci s tiskárnami."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:111 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:111
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:165 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:165
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to load the archive of materials to sync it with printers." msgid "Failed to load the archive of materials to sync it with printers."
msgstr "" msgstr "Nepodařilo se načíst archiv s materiály pro synchronizaci s tiskárnami."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:143 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:143
msgctxt "@text:error" msgctxt "@text:error"
msgid "The response from Digital Factory appears to be corrupted." msgid "The response from Digital Factory appears to be corrupted."
msgstr "" msgstr "Odpověď z Digital Factory se zdá být poškozená."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:147 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:147
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:151 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:151
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:155 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:155
msgctxt "@text:error" msgctxt "@text:error"
msgid "The response from Digital Factory is missing important information." msgid "The response from Digital Factory is missing important information."
msgstr "" msgstr "Odpověď z Digital Factory postrádá důležité informace."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:218 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:218
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to connect to Digital Factory to sync materials with some of the printers." msgid "Failed to connect to Digital Factory to sync materials with some of the printers."
msgstr "" msgstr "Nepodařilo se připojit k Digital Factory pro synchronizaci materiálů s některými z tiskáren."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:232 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:232
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to connect to Digital Factory." msgid "Failed to connect to Digital Factory."
msgstr "" msgstr "Nepodařilo se připojit k Digital Factory."
#: /home/clamboo/Desktop/Cura/cura/CuraApplication.py:530 #: /home/clamboo/Desktop/Cura/cura/CuraApplication.py:530
msgctxt "@info:progress" msgctxt "@info:progress"
@ -607,7 +607,7 @@ msgstr "Nelze se dostat na server účtu Ultimaker."
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationService.py:278 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationService.py:278
msgctxt "@info:title" msgctxt "@info:title"
msgid "Log-in failed" msgid "Log-in failed"
msgstr "" msgstr "Přihlášení selhalo"
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:75 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:75
msgctxt "@message" msgctxt "@message"
@ -617,7 +617,7 @@ msgstr "Poskytnutý stav není správný."
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:80 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:80
msgctxt "@message" msgctxt "@message"
msgid "Timeout when authenticating with the account server." msgid "Timeout when authenticating with the account server."
msgstr "" msgstr "Vypršel časový limit při autentizaci se serverem s účty."
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:97 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:97
msgctxt "@message" msgctxt "@message"
@ -1749,7 +1749,7 @@ msgstr "Plugin 3MF Writer je poškozen."
#: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:37 #: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:37
msgctxt "@error" msgctxt "@error"
msgid "There is no workspace yet to write. Please add a printer first." msgid "There is no workspace yet to write. Please add a printer first."
msgstr "" msgstr "Zatím neexistuje žádný pracovní prostor. Nejprve prosím přidejte tiskárnu."
#: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:64 #: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:64
#: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:97 #: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:97
@ -3127,7 +3127,7 @@ msgstr "Zrušeno"
#: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:100 #: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:100
msgctxt "@label:status" msgctxt "@label:status"
msgid "Failed" msgid "Failed"
msgstr "" msgstr "Selhání"
#: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:102 #: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:102
msgctxt "@label:status" msgctxt "@label:status"
@ -4314,12 +4314,12 @@ msgstr "S touto kombinací materiálu pro lepší adhezi použijte lepidlo."
#: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:102 #: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:102
msgctxt "@tooltip" msgctxt "@tooltip"
msgid "The configuration of this extruder is not allowed, and prohibits slicing." msgid "The configuration of this extruder is not allowed, and prohibits slicing."
msgstr "" msgstr "Konfigurace tohoto extruderu není dovolena a znemožňuje slicování."
#: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:106 #: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:106
msgctxt "@tooltip" msgctxt "@tooltip"
msgid "There are no profiles matching the configuration of this extruder." msgid "There are no profiles matching the configuration of this extruder."
msgstr "" msgstr "Neexistují žádné profily odpovídající nastavení tohoto extruderu."
#: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:253 #: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:253
msgctxt "@label" msgctxt "@label"
@ -5056,157 +5056,157 @@ msgstr "Úspěšné exportování materiálu do <filename>%1</filename>"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:17 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:17
msgctxt "@title:window" msgctxt "@title:window"
msgid "Sync materials with printers" msgid "Sync materials with printers"
msgstr "" msgstr "Synchronizovat materiály s tiskárnami"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:47 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:47
msgctxt "@title:header" msgctxt "@title:header"
msgid "Sync materials with printers" msgid "Sync materials with printers"
msgstr "" msgstr "Synchronizovat materiály s tiskárnami"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:53 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:53
msgctxt "@text" msgctxt "@text"
msgid "Following a few simple steps, you will be able to synchronize all your material profiles with your printers." msgid "Following a few simple steps, you will be able to synchronize all your material profiles with your printers."
msgstr "" msgstr "Následováním několika jednoduchých kroků budete moci synchronizovat všechny vaše materiálové profily s vašimi tiskárnami."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:77 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:77
msgctxt "@button" msgctxt "@button"
msgid "Start" msgid "Start"
msgstr "" msgstr "Začít"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:98 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:98
msgctxt "@button" msgctxt "@button"
msgid "Why do I need to sync material profiles?" msgid "Why do I need to sync material profiles?"
msgstr "" msgstr "K čemu je dobrá synchronizace materiálových profilů?"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:130 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:130
msgctxt "@title:header" msgctxt "@title:header"
msgid "Sign in" msgid "Sign in"
msgstr "" msgstr "Přihlásit se"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:137 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:137
msgctxt "@text" msgctxt "@text"
msgid "To automatically sync the material profiles with all your printers connected to Digital Factory you need to be signed in in Cura." msgid "To automatically sync the material profiles with all your printers connected to Digital Factory you need to be signed in in Cura."
msgstr "" msgstr "Pro automatickou synchronizaci materiálových profilů se všemi vašimi tiskárnami připojenými k Digital Factory musíte být přihlášení v Cuře."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:165 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:165
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:476 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:476
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:611 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:611
msgctxt "@button" msgctxt "@button"
msgid "Sync materials with USB" msgid "Sync materials with USB"
msgstr "" msgstr "Synchronizovat materiály pomocí USB"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:200 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:200
msgctxt "@title:header" msgctxt "@title:header"
msgid "The following printers will receive the new material profiles:" msgid "The following printers will receive the new material profiles:"
msgstr "" msgstr "Následující tiskárny získají nové materiálové profily:"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:207 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:207
msgctxt "@title:header" msgctxt "@title:header"
msgid "Something went wrong when sending the materials to the printers." msgid "Something went wrong when sending the materials to the printers."
msgstr "" msgstr "Při odesílání materiálů do tiskáren se něco nepodařilo."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:214 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:214
msgctxt "@title:header" msgctxt "@title:header"
msgid "Material profiles successfully synced with the following printers:" msgid "Material profiles successfully synced with the following printers:"
msgstr "" msgstr "Materiálové profily byly úspěšně synchronizovány s následujícími tiskárnami:"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:256 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:256
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:444 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:444
msgctxt "@button" msgctxt "@button"
msgid "Troubleshooting" msgid "Troubleshooting"
msgstr "" msgstr "Podpora při problémech"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:432 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:432
msgctxt "@text Asking the user whether printers are missing in a list." msgctxt "@text Asking the user whether printers are missing in a list."
msgid "Printers missing?" msgid "Printers missing?"
msgstr "" msgstr "Chybí tiskárny?"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:434 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:434
msgctxt "@text" msgctxt "@text"
msgid "Make sure all your printers are turned ON and connected to Digital Factory." msgid "Make sure all your printers are turned ON and connected to Digital Factory."
msgstr "" msgstr "Ujistěte se, že jsou všechny vaše tiskárny zapnuté a připojené k Digital Factory."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:457 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:457
msgctxt "@button" msgctxt "@button"
msgid "Refresh List" msgid "Refresh List"
msgstr "" msgstr "Obnovit seznam"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:487 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:487
msgctxt "@button" msgctxt "@button"
msgid "Try again" msgid "Try again"
msgstr "" msgstr "Zkusit znovu"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:491 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:491
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716
msgctxt "@button" msgctxt "@button"
msgid "Done" msgid "Done"
msgstr "" msgstr "Hotovo"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:493 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:493
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:618 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:618
msgctxt "@button" msgctxt "@button"
msgid "Sync" msgid "Sync"
msgstr "" msgstr "Synchronizovat"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:549 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:549
msgctxt "@button" msgctxt "@button"
msgid "Syncing" msgid "Syncing"
msgstr "" msgstr "Synchronizuji"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:566 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:566
msgctxt "@title:header" msgctxt "@title:header"
msgid "No printers found" msgid "No printers found"
msgstr "" msgstr "Nenalezeny žádné tiskárny"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:582 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:582
msgctxt "@text" msgctxt "@text"
msgid "It seems like you don't have any compatible printers connected to Digital Factory. Make sure your printer is connected and it's running the latest firmware." msgid "It seems like you don't have any compatible printers connected to Digital Factory. Make sure your printer is connected and it's running the latest firmware."
msgstr "" msgstr "Zdá se, že nemáte žádné kompatibilní tiskárny připojené k Digital Factory. Ujistěte se, že je vaše tiskárna připojena a používá nejnovější firmware."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:595 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:595
msgctxt "@button" msgctxt "@button"
msgid "Learn how to connect your printer to Digital Factory" msgid "Learn how to connect your printer to Digital Factory"
msgstr "" msgstr "Zjistěte, jak připojit vaši tiskárnu k Digital Factory"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:625 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:625
msgctxt "@button" msgctxt "@button"
msgid "Refresh" msgid "Refresh"
msgstr "" msgstr "Obnovit"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:647 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:647
msgctxt "@title:header" msgctxt "@title:header"
msgid "Sync material profiles via USB" msgid "Sync material profiles via USB"
msgstr "" msgstr "Synchronizovat materiálové profily přes USB"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:654 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:654
msgctxt "@text In the UI this is followed by a list of steps the user needs to take." msgctxt "@text In the UI this is followed by a list of steps the user needs to take."
msgid "Follow the following steps to load the new material profiles to your printer." msgid "Follow the following steps to load the new material profiles to your printer."
msgstr "" msgstr "Následujte tyto kroky, abyste nahráli nové materiálové profily do vaší tiskárny."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:679 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:679
msgctxt "@text" msgctxt "@text"
msgid "Click the export material archive button." msgid "Click the export material archive button."
msgstr "" msgstr "Klikněte na tlačítko \"Exportovat archiv s materiálem\"."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:680 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:680
msgctxt "@text" msgctxt "@text"
msgid "Save the .umm file on a USB stick." msgid "Save the .umm file on a USB stick."
msgstr "" msgstr "Uložte soubor .umm na USB úložiště."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:681 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:681
msgctxt "@text" msgctxt "@text"
msgid "Insert the USB stick into your printer and launch the procedure to load new material profiles." msgid "Insert the USB stick into your printer and launch the procedure to load new material profiles."
msgstr "" msgstr "Připojte USB úložiště k vaší tiskárně a spusťte proceduru pro nahrání nových materiálových profilů."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:692 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:692
msgctxt "@button" msgctxt "@button"
msgid "How to load new material profiles to my printer" msgid "How to load new material profiles to my printer"
msgstr "" msgstr "Jak nahrát nové materiálové profily do mé tiskárny"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716
msgctxt "@button" msgctxt "@button"
msgid "Export material archive" msgid "Export material archive"
msgstr "" msgstr "Exportovat archiv s materiálem"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:753 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:753
msgctxt "@title:window" msgctxt "@title:window"

View file

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: Cura 4.13\n" "Project-Id-Version: Cura 4.13\n"
"Report-Msgid-Bugs-To: plugins@ultimaker.com\n" "Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-12-10 11:59+0000\n" "POT-Creation-Date: 2021-12-10 11:59+0000\n"
"PO-Revision-Date: 2021-04-04 19:37+0200\n" "PO-Revision-Date: 2021-12-17 21:11+0100\n"
"Last-Translator: Miroslav Šustek <sustmidown@centrum.cz>\n" "Last-Translator: Miroslav Šustek <sustmidown@centrum.cz>\n"
"Language-Team: DenyCZ <www.github.com/DenyCZ>\n" "Language-Team: DenyCZ <www.github.com/DenyCZ>\n"
"Language: cs_CZ\n" "Language: cs_CZ\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.4.2\n" "X-Generator: Poedit 3.0\n"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_settings label" msgctxt "machine_settings label"
@ -561,7 +561,7 @@ msgstr "Maximální rychlost pro motor ve směru Z."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e label" msgctxt "machine_max_feedrate_e label"
msgid "Maximum Speed E" msgid "Maximum Speed E"
msgstr "" msgstr "Maximální rychlost E"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e description" msgctxt "machine_max_feedrate_e description"
@ -1731,7 +1731,7 @@ msgstr "Výplňový vzor"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern description" msgctxt "infill_pattern description"
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object." msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object."
msgstr "" msgstr "Vzor výplňového materiálu tisku. Čáry a cik-cak s každou vrstvou obracejí směr výplně, čímž se snižují náklady na materiál. Mřížka, trojúhelník, tri-hexagon, krychle, oktet, čtvrtinově krychlový, křížový a soustředný vzor jsou plně vytištěny v každé vrstvě. Vzory gyroid, krychlový, čtvrtinově krychlový a oktet se mění s každou vrstvou, aby se zajistilo rovnoměrnější rozložení síly v každém směru. Bleskový vzor se snaží minimalizovat množství výplně tím, že podporuje pouze strop objektu."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern option grid" msgctxt "infill_pattern option grid"
@ -2045,7 +2045,7 @@ msgstr "Úhel ústupu bleskové vrstvy"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_prune_angle description" msgctxt "lightning_infill_prune_angle description"
msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines." msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines."
msgstr "" msgstr "Koncové body čar výplně jsou zkracovány pro šetření materiálu. Toto nastavení je úhel převisu koncových bodů těchto čar."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle label" msgctxt "lightning_infill_straightening_angle label"
@ -2055,7 +2055,7 @@ msgstr "Úhel vyrovnávání bleskové vrstvy"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle description" msgctxt "lightning_infill_straightening_angle description"
msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line." msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line."
msgstr "" msgstr "Čáry výplně jsou vyrovnávány, aby se snížila doba tisku. Toto je maximální dovolený úhel převisu podél čáry výplně."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material label" msgctxt "material label"

File diff suppressed because it is too large Load diff

View file

@ -57,6 +57,8 @@ msgid ""
"G-code commands to be executed at the very start - separated by \n" "G-code commands to be executed at the very start - separated by \n"
"." "."
msgstr "" msgstr ""
"G-Code-Befehle, die ganz am Anfang ausgeführt werden - getrennt durch \n"
"."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_end_gcode label" msgctxt "machine_end_gcode label"
@ -69,6 +71,8 @@ msgid ""
"G-code commands to be executed at the very end - separated by \n" "G-code commands to be executed at the very end - separated by \n"
"." "."
msgstr "" msgstr ""
"G-Code-Befehle, die ganz am Ende ausgeführt werden - getrennt durch \n"
"."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material_guid label" msgctxt "material_guid label"
@ -558,7 +562,7 @@ msgstr "Die Maximaldrehzahl für den Motor der Z-Richtung."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e label" msgctxt "machine_max_feedrate_e label"
msgid "Maximum Speed E" msgid "Maximum Speed E"
msgstr "" msgstr "Maximaldrehzahl Extruder"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e description" msgctxt "machine_max_feedrate_e description"
@ -1728,7 +1732,7 @@ msgstr "Füllmuster"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern description" msgctxt "infill_pattern description"
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object." msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object."
msgstr "" msgstr "Das Muster des Füllungsmaterials des Drucks. Die Linien- und Zickzack-Füllung wechselt die Richtung auf abwechselnden Schichten, was die Materialkosten reduziert. Die Gitter-, Dreieck-, Tri-Hexagon-, Kubus-, Oktett-, Viertelkubus-, Kreuz- und konzentrischen Muster werden in jeder Schicht vollständig gedruckt. Die Füllung in Form von Kreiseln, Würfeln, Viertelwürfeln und Achten wechselt mit jeder Schicht, um eine gleichmäßigere Verteilung der Stärke in jeder Richtung zu erreichen. Bei der Blitz-Füllung wird versucht, die Füllung zu minimieren, indem nur die Decke des Objekts unterstützt wird."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern option grid" msgctxt "infill_pattern option grid"
@ -2042,7 +2046,7 @@ msgstr "Beschnittwinkel der Blitz-Füllung"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_prune_angle description" msgctxt "lightning_infill_prune_angle description"
msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines." msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines."
msgstr "" msgstr "Die Endpunkte der Füllungslinien werden verkürzt, um Material zu sparen. Diese Einstellung ist der Winkel des Überhangs der Endpunkte dieser Linien."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle label" msgctxt "lightning_infill_straightening_angle label"
@ -2052,7 +2056,7 @@ msgstr "Begradigungswinkel der Blitz-Füllung"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle description" msgctxt "lightning_infill_straightening_angle description"
msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line." msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line."
msgstr "" msgstr "Um Druckzeit zu sparen, werden die Füllungslinien begradigt. Dies ist der maximal zulässige Winkel des Überhangs über die Länge der Füllung."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material label" msgctxt "material label"
@ -3717,7 +3721,7 @@ msgstr "Zickzack"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "support_pattern option cross" msgctxt "support_pattern option cross"
msgid "Cross" msgid "Cross"
msgstr "Quer" msgstr "Kreuz"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "support_pattern option gyroid" msgctxt "support_pattern option gyroid"
@ -5581,17 +5585,17 @@ msgstr "Die Geschwindigkeit, mit der die Bewegung während des Coasting erfolgt,
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "cross_infill_pocket_size label" msgctxt "cross_infill_pocket_size label"
msgid "Cross 3D Pocket Size" msgid "Cross 3D Pocket Size"
msgstr "Größe 3D-Quertasche" msgstr "Größe 3D-Kreuztasche"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "cross_infill_pocket_size description" msgctxt "cross_infill_pocket_size description"
msgid "The size of pockets at four-way crossings in the cross 3D pattern at heights where the pattern is touching itself." msgid "The size of pockets at four-way crossings in the cross 3D pattern at heights where the pattern is touching itself."
msgstr "Die Größe der Taschen bei Überkreuzung im 3D-Quermuster bei Höhen, in denen sich das Muster selbst berührt." msgstr "Die Größe der Taschen bei Überkreuzung im 3D-Kreuzmuster bei Höhen, in denen sich das Muster selbst berührt."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "cross_infill_density_image label" msgctxt "cross_infill_density_image label"
msgid "Cross Infill Density Image" msgid "Cross Infill Density Image"
msgstr "Querfülldichte Bild" msgstr "Kreuzfülldichte Bild"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "cross_infill_density_image description" msgctxt "cross_infill_density_image description"
@ -5601,7 +5605,7 @@ msgstr "Die Dateiposition eines Bildes, von dem die Helligkeitswerte die minimal
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "cross_support_density_image label" msgctxt "cross_support_density_image label"
msgid "Cross Fill Density Image for Support" msgid "Cross Fill Density Image for Support"
msgstr "Querfülldichte Bild für Stützstruktur" msgstr "Kreuzfülldichte Bild für Stützstruktur"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "cross_support_density_image description" msgctxt "cross_support_density_image description"
@ -6491,7 +6495,7 @@ msgstr "Transformationsmatrix, die beim Laden aus der Datei auf das Modell angew
#~ msgctxt "infill_pattern description" #~ msgctxt "infill_pattern description"
#~ msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model." #~ msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
#~ msgstr "Das Muster des Füllmaterials des Drucks. Die Linien- und Zickzackfüllmethode wechseln nach jeder Schicht die Richtung, um Materialkosten zu reduzieren. Die Gitter-, Dreieck- Tri-Hexagon-, Würfel-, Octahedral-, Viertelwürfel-, Quer- und konzentrischen Muster werden in jeder Schicht vollständig gedruckt. Gyroid-, Würfel-, Viertelwürfel- und achtflächige Füllungen wechseln mit jeder Schicht, um eine gleichmäßigere Verteilung der Stärke in allen Richtungen zu erzielen. Die Einstellung Blitz versucht, die Füllung zu minimieren, indem nur die (internen) Dächer des Objekts gestützt werden. Der gültige Prozentsatz der Füllung bezieht sich daher nur auf die jeweilige Ebene unter dem zu stützenden Bereich des Modells." #~ msgstr "Das Muster des Füllmaterials des Drucks. Die Linien- und Zickzackfüllmethode wechseln nach jeder Schicht die Richtung, um Materialkosten zu reduzieren. Die Gitter-, Dreieck- Tri-Hexagon-, Würfel-, Octahedral-, Viertelwürfel-, Kreuz- und konzentrischen Muster werden in jeder Schicht vollständig gedruckt. Gyroid-, Würfel-, Viertelwürfel- und achtflächige Füllungen wechseln mit jeder Schicht, um eine gleichmäßigere Verteilung der Stärke in allen Richtungen zu erzielen. Die Einstellung Blitz versucht, die Füllung zu minimieren, indem nur die (internen) Dächer des Objekts gestützt werden. Der gültige Prozentsatz der Füllung bezieht sich daher nur auf die jeweilige Ebene unter dem zu stützenden Bereich des Modells."
#~ msgctxt "lightning_infill_prune_angle description" #~ msgctxt "lightning_infill_prune_angle description"
#~ msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness." #~ msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
@ -6503,7 +6507,7 @@ msgstr "Transformationsmatrix, die beim Laden aus der Datei auf das Modell angew
#~ msgctxt "infill_pattern description" #~ msgctxt "infill_pattern description"
#~ msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." #~ msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction."
#~ msgstr "Das Muster des Füllmaterials des Drucks. Die Linien- und Zickzackfüllmethode wechseln nach jeder Schicht die Richtung, um Materialkosten zu reduzieren. Die Gitter-, Dreieck- Tri-Hexagon-, Würfel-, Octahedral-, Viertelwürfel-, Quer- und konzentrischen Muster werden in jeder Schicht vollständig gedruckt. Gyroid-, Würfel-, Viertelwürfel- und Octahedral-Füllungen wechseln mit jeder Schicht, um eine gleichmäßigere Verteilung der Stärke in allen Richtungen zu erzielen." #~ msgstr "Das Muster des Füllmaterials des Drucks. Die Linien- und Zickzackfüllmethode wechseln nach jeder Schicht die Richtung, um Materialkosten zu reduzieren. Die Gitter-, Dreieck- Tri-Hexagon-, Würfel-, Octahedral-, Viertelwürfel-, Kreuz- und konzentrischen Muster werden in jeder Schicht vollständig gedruckt. Gyroid-, Würfel-, Viertelwürfel- und Octahedral-Füllungen wechseln mit jeder Schicht, um eine gleichmäßigere Verteilung der Stärke in allen Richtungen zu erzielen."
#~ msgctxt "mold_width description" #~ msgctxt "mold_width description"
#~ msgid "The minimal distance between the ouside of the mold and the outside of the model." #~ msgid "The minimal distance between the ouside of the mold and the outside of the model."
@ -6983,7 +6987,7 @@ msgstr "Transformationsmatrix, die beim Laden aus der Datei auf das Modell angew
#~ msgctxt "infill_pattern description" #~ msgctxt "infill_pattern description"
#~ msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." #~ msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction."
#~ msgstr "Das Muster des Füllmaterials des Drucks. Die Linien- und Zickzackfüllmethode wechseln nach jeder Schicht die Richtung, um Materialkosten zu reduzieren. Die Gitter-, Dreieck- Tri-Hexagon-, Würfel-, Octahedral-, Viertelwürfel-, Quer- und konzentrischen Muster werden in jeder Schicht vollständig gedruckt. Würfel-, Viertelwürfel- und Octahedral-Füllungen wechseln mit jeder Schicht, um eine gleichmäßigere Verteilung der Stärke in allen Richtungen zu erzielen." #~ msgstr "Das Muster des Füllmaterials des Drucks. Die Linien- und Zickzackfüllmethode wechseln nach jeder Schicht die Richtung, um Materialkosten zu reduzieren. Die Gitter-, Dreieck- Tri-Hexagon-, Würfel-, Octahedral-, Viertelwürfel-, Kreuz- und konzentrischen Muster werden in jeder Schicht vollständig gedruckt. Würfel-, Viertelwürfel- und Octahedral-Füllungen wechseln mit jeder Schicht, um eine gleichmäßigere Verteilung der Stärke in allen Richtungen zu erzielen."
#~ msgctxt "infill_pattern option concentric_3d" #~ msgctxt "infill_pattern option concentric_3d"
#~ msgid "Concentric 3D" #~ msgid "Concentric 3D"
@ -7055,11 +7059,11 @@ msgstr "Transformationsmatrix, die beim Laden aus der Datei auf das Modell angew
#~ msgctxt "cross_infill_apply_pockets_alternatingly label" #~ msgctxt "cross_infill_apply_pockets_alternatingly label"
#~ msgid "Alternate Cross 3D Pockets" #~ msgid "Alternate Cross 3D Pockets"
#~ msgstr "3D-Quertaschen abwechseln" #~ msgstr "3D-Kreuztaschen abwechseln"
#~ msgctxt "cross_infill_apply_pockets_alternatingly description" #~ msgctxt "cross_infill_apply_pockets_alternatingly description"
#~ msgid "Only apply pockets at half of the four-way crossings in the cross 3D pattern and alternate the location of the pockets between heights where the pattern is touching itself." #~ msgid "Only apply pockets at half of the four-way crossings in the cross 3D pattern and alternate the location of the pockets between heights where the pattern is touching itself."
#~ msgstr "Wenden Sie Taschen nur in der Hälfte der Überkreuzungen im 3D-Quermuster an und wechseln Sie die Position der Taschen zwischen den Höhen ab, in denen sich das Muster selbst berührt." #~ msgstr "Wenden Sie Taschen nur in der Hälfte der Überkreuzungen im 3D-Kreuzmuster an und wechseln Sie die Position der Taschen zwischen den Höhen ab, in denen sich das Muster selbst berührt."
#~ msgctxt "infill_hollow label" #~ msgctxt "infill_hollow label"
#~ msgid "Hollow Out Objects" #~ msgid "Hollow Out Objects"

View file

@ -61,7 +61,7 @@ msgstr "Nuevos materiales instalados"
#: /home/clamboo/Desktop/Cura/cura/Machines/Models/MaterialManagementModel.py:63 #: /home/clamboo/Desktop/Cura/cura/Machines/Models/MaterialManagementModel.py:63
msgctxt "@action:button" msgctxt "@action:button"
msgid "Sync materials with printers" msgid "Sync materials with printers"
msgstr "Sincronizar materiales con impresoras" msgstr "Sincronizar materiales"
#: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:82 #: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:82
#: /home/clamboo/Desktop/Cura/cura/Machines/Models/MaterialManagementModel.py:71 #: /home/clamboo/Desktop/Cura/cura/Machines/Models/MaterialManagementModel.py:71
@ -83,7 +83,7 @@ msgstr "Se ha producido un error al guardar el archivo de material"
#: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:188 #: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:188
msgctxt "@text" msgctxt "@text"
msgid "Unknown error." msgid "Unknown error."
msgstr "" msgstr "Error desconocido."
#: /home/clamboo/Desktop/Cura/cura/BuildVolume.py:99 #: /home/clamboo/Desktop/Cura/cura/BuildVolume.py:99
msgctxt "@info:status" msgctxt "@info:status"
@ -228,35 +228,35 @@ msgstr "No se puede encontrar la ubicación"
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:104 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:104
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to create archive of materials to sync with printers." msgid "Failed to create archive of materials to sync with printers."
msgstr "" msgstr "Error al crear un archivo de materiales para sincronizarlo con las impresoras."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:111 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:111
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:165 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:165
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to load the archive of materials to sync it with printers." msgid "Failed to load the archive of materials to sync it with printers."
msgstr "" msgstr "Error al cargar el archivo de materiales para sincronizarlo con las impresoras."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:143 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:143
msgctxt "@text:error" msgctxt "@text:error"
msgid "The response from Digital Factory appears to be corrupted." msgid "The response from Digital Factory appears to be corrupted."
msgstr "" msgstr "La respuesta de Digital Factory parece estar dañada."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:147 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:147
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:151 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:151
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:155 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:155
msgctxt "@text:error" msgctxt "@text:error"
msgid "The response from Digital Factory is missing important information." msgid "The response from Digital Factory is missing important information."
msgstr "" msgstr "A la respuesta de Digital Factory le falta información importante."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:218 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:218
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to connect to Digital Factory to sync materials with some of the printers." msgid "Failed to connect to Digital Factory to sync materials with some of the printers."
msgstr "" msgstr "Error al conectarse con Digital Factory para sincronizar los materiales con algunas de las impresoras."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:232 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:232
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to connect to Digital Factory." msgid "Failed to connect to Digital Factory."
msgstr "" msgstr "Error al conectarse con Digital Factory."
#: /home/clamboo/Desktop/Cura/cura/CuraApplication.py:530 #: /home/clamboo/Desktop/Cura/cura/CuraApplication.py:530
msgctxt "@info:progress" msgctxt "@info:progress"
@ -606,7 +606,7 @@ msgstr "No se puede acceder al servidor de cuentas de Ultimaker."
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationService.py:278 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationService.py:278
msgctxt "@info:title" msgctxt "@info:title"
msgid "Log-in failed" msgid "Log-in failed"
msgstr "" msgstr "Error de inicio de sesión"
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:75 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:75
msgctxt "@message" msgctxt "@message"
@ -616,7 +616,7 @@ msgstr "El estado indicado no es correcto."
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:80 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:80
msgctxt "@message" msgctxt "@message"
msgid "Timeout when authenticating with the account server." msgid "Timeout when authenticating with the account server."
msgstr "" msgstr "Se agotó el tiempo de autenticación con el servidor de la cuenta."
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:97 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:97
msgctxt "@message" msgctxt "@message"
@ -1739,7 +1739,7 @@ msgstr "El complemento del Escritor de 3MF está dañado."
#: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:37 #: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:37
msgctxt "@error" msgctxt "@error"
msgid "There is no workspace yet to write. Please add a printer first." msgid "There is no workspace yet to write. Please add a printer first."
msgstr "" msgstr "Aún no hay espacio de trabajo en el que escribir. Añada una impresora primero."
#: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:64 #: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:64
#: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:97 #: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:97
@ -3113,7 +3113,7 @@ msgstr "Cancelado"
#: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:100 #: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:100
msgctxt "@label:status" msgctxt "@label:status"
msgid "Failed" msgid "Failed"
msgstr "" msgstr "Error"
#: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:102 #: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:102
msgctxt "@label:status" msgctxt "@label:status"
@ -4299,12 +4299,12 @@ msgstr "Utilice pegamento con esta combinación de materiales para lograr una me
#: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:102 #: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:102
msgctxt "@tooltip" msgctxt "@tooltip"
msgid "The configuration of this extruder is not allowed, and prohibits slicing." msgid "The configuration of this extruder is not allowed, and prohibits slicing."
msgstr "" msgstr "La configuración de este extrusor no está permitida y evita el corte."
#: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:106 #: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:106
msgctxt "@tooltip" msgctxt "@tooltip"
msgid "There are no profiles matching the configuration of this extruder." msgid "There are no profiles matching the configuration of this extruder."
msgstr "" msgstr "No hay perfiles que coincidan con la configuración de este extrusor."
#: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:253 #: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:253
msgctxt "@label" msgctxt "@label"
@ -5040,157 +5040,158 @@ msgstr "El material se ha exportado correctamente a <filename>%1</filename>"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:17 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:17
msgctxt "@title:window" msgctxt "@title:window"
msgid "Sync materials with printers" msgid "Sync materials with printers"
msgstr "" msgstr "Sincronizar materiales con impresoras"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:47 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:47
msgctxt "@title:header" msgctxt "@title:header"
msgid "Sync materials with printers" msgid "Sync materials with printers"
msgstr "" msgstr "Sincronizar materiales con impresoras"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:53 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:53
msgctxt "@text" msgctxt "@text"
msgid "Following a few simple steps, you will be able to synchronize all your material profiles with your printers." msgid "Following a few simple steps, you will be able to synchronize all your material profiles with your printers."
msgstr "" msgstr "Con unos sencillos pasos puede sincronizar todos sus perfiles de material con sus impresoras."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:77 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:77
msgctxt "@button" msgctxt "@button"
msgid "Start" msgid "Start"
msgstr "" msgstr "Iniciar"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:98 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:98
msgctxt "@button" msgctxt "@button"
msgid "Why do I need to sync material profiles?" msgid "Why do I need to sync material profiles?"
msgstr "" msgstr "¿Por qué tengo que sincronizar los perfiles de materiales?"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:130 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:130
msgctxt "@title:header" msgctxt "@title:header"
msgid "Sign in" msgid "Sign in"
msgstr "" msgstr "Iniciar sesión"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:137 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:137
msgctxt "@text" msgctxt "@text"
msgid "To automatically sync the material profiles with all your printers connected to Digital Factory you need to be signed in in Cura." msgid "To automatically sync the material profiles with all your printers connected to Digital Factory you need to be signed in in Cura."
msgstr "" msgstr "Para sincronizar automáticamente los perfiles de material con todas sus impresoras conectadas a Digital Factory debe iniciar sesión en Cura."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:165 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:165
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:476 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:476
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:611 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:611
msgctxt "@button" msgctxt "@button"
msgid "Sync materials with USB" msgid "Sync materials with USB"
msgstr "" msgstr "Sincronización de materiales con USB"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:200 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:200
msgctxt "@title:header" msgctxt "@title:header"
msgid "The following printers will receive the new material profiles:" msgid "The following printers will receive the new material profiles:"
msgstr "" msgstr "Las siguientes impresoras recibirán los nuevos perfiles de material:"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:207 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:207
msgctxt "@title:header" msgctxt "@title:header"
msgid "Something went wrong when sending the materials to the printers." msgid "Something went wrong when sending the materials to the printers."
msgstr "" msgstr "Hubo un error al enviar los materiales a las impresoras."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:214 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:214
msgctxt "@title:header" msgctxt "@title:header"
msgid "Material profiles successfully synced with the following printers:" msgid "Material profiles successfully synced with the following printers:"
msgstr "" msgstr "Los perfiles de material se han sincronizado correctamente con las siguientes impresoras:"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:256 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:256
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:444 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:444
msgctxt "@button" msgctxt "@button"
msgid "Troubleshooting" msgid "Troubleshooting"
msgstr "" msgstr "Solución de problemas"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:432 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:432
msgctxt "@text Asking the user whether printers are missing in a list." msgctxt "@text Asking the user whether printers are missing in a list."
msgid "Printers missing?" msgid "Printers missing?"
msgstr "" msgstr "¿Faltan impresoras?"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:434 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:434
msgctxt "@text" msgctxt "@text"
msgid "Make sure all your printers are turned ON and connected to Digital Factory." msgid "Make sure all your printers are turned ON and connected to Digital Factory."
msgstr "" msgstr "Asegúrese de que todas las impresoras estén encendidas y conectadas a Digital Factory."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:457 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:457
msgctxt "@button" msgctxt "@button"
msgid "Refresh List" msgid "Refresh List"
msgstr "" msgstr "Actualizar la lista"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:487 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:487
msgctxt "@button" msgctxt "@button"
msgid "Try again" msgid "Try again"
msgstr "" msgstr "Inténtelo de nuevo"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:491 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:491
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716
msgctxt "@button" msgctxt "@button"
msgid "Done" msgid "Done"
msgstr "" msgstr "Realizado"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:493 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:493
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:618 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:618
msgctxt "@button" msgctxt "@button"
msgid "Sync" msgid "Sync"
msgstr "" msgstr "Sincronizar"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:549 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:549
msgctxt "@button" msgctxt "@button"
msgid "Syncing" msgid "Syncing"
msgstr "" msgstr "Sincronizando"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:566 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:566
msgctxt "@title:header" msgctxt "@title:header"
msgid "No printers found" msgid "No printers found"
msgstr "" msgstr "No se ha encontrado ninguna impresora"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:582 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:582
msgctxt "@text" msgctxt "@text"
msgid "It seems like you don't have any compatible printers connected to Digital Factory. Make sure your printer is connected and it's running the latest firmware." msgid "It seems like you don't have any compatible printers connected to Digital Factory. Make sure your printer is connected and it's running the latest firmware."
msgstr "" msgstr "Parece que no tiene ninguna impresora compatible conectada a Digital Factory. Asegúrese de que su impresora esté conectada y ejecutando el firmware más"
" reciente."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:595 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:595
msgctxt "@button" msgctxt "@button"
msgid "Learn how to connect your printer to Digital Factory" msgid "Learn how to connect your printer to Digital Factory"
msgstr "" msgstr "Aprenda a conectar su impresora a Digital Factory"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:625 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:625
msgctxt "@button" msgctxt "@button"
msgid "Refresh" msgid "Refresh"
msgstr "" msgstr "Actualizar"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:647 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:647
msgctxt "@title:header" msgctxt "@title:header"
msgid "Sync material profiles via USB" msgid "Sync material profiles via USB"
msgstr "" msgstr "Sincronización de perfiles de material a través USB"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:654 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:654
msgctxt "@text In the UI this is followed by a list of steps the user needs to take." msgctxt "@text In the UI this is followed by a list of steps the user needs to take."
msgid "Follow the following steps to load the new material profiles to your printer." msgid "Follow the following steps to load the new material profiles to your printer."
msgstr "" msgstr "Siga estos pasos para cargar los nuevos perfiles de material en la impresora."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:679 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:679
msgctxt "@text" msgctxt "@text"
msgid "Click the export material archive button." msgid "Click the export material archive button."
msgstr "" msgstr "Haga clic en el botón para exportar el archivo de material."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:680 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:680
msgctxt "@text" msgctxt "@text"
msgid "Save the .umm file on a USB stick." msgid "Save the .umm file on a USB stick."
msgstr "" msgstr "Guarde el archivo .umm en una memoria USB."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:681 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:681
msgctxt "@text" msgctxt "@text"
msgid "Insert the USB stick into your printer and launch the procedure to load new material profiles." msgid "Insert the USB stick into your printer and launch the procedure to load new material profiles."
msgstr "" msgstr "Inserte la memoria USB en la impresora e inicie el procedimiento para cargar nuevos perfiles de material."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:692 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:692
msgctxt "@button" msgctxt "@button"
msgid "How to load new material profiles to my printer" msgid "How to load new material profiles to my printer"
msgstr "" msgstr "Cómo cargar nuevos perfiles de material en mi impresora"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716
msgctxt "@button" msgctxt "@button"
msgid "Export material archive" msgid "Export material archive"
msgstr "" msgstr "Exportar archivo de material"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:753 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:753
msgctxt "@title:window" msgctxt "@title:window"

View file

@ -56,7 +56,7 @@ msgctxt "machine_start_gcode description"
msgid "" msgid ""
"G-code commands to be executed at the very start - separated by \n" "G-code commands to be executed at the very start - separated by \n"
"." "."
msgstr "" msgstr "Los comandos de GCode que se ejecutarán justo al inicio - separados por \n."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_end_gcode label" msgctxt "machine_end_gcode label"
@ -68,7 +68,7 @@ msgctxt "machine_end_gcode description"
msgid "" msgid ""
"G-code commands to be executed at the very end - separated by \n" "G-code commands to be executed at the very end - separated by \n"
"." "."
msgstr "" msgstr "Los comandos de GCode que se ejecutarán justo al final - separados por \n."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material_guid label" msgctxt "material_guid label"
@ -558,7 +558,7 @@ msgstr "Velocidad máxima del motor de la dirección Z."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e label" msgctxt "machine_max_feedrate_e label"
msgid "Maximum Speed E" msgid "Maximum Speed E"
msgstr "" msgstr "Velocidad máxima E"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e description" msgctxt "machine_max_feedrate_e description"
@ -1728,7 +1728,10 @@ msgstr "Patrón de relleno"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern description" msgctxt "infill_pattern description"
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object." msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object."
msgstr "" msgstr "Patrón del material de relleno de la impresión. El método de llenado en línea y en zigzag cambia de dirección en capas alternas para reducir los costes"
" de material. Los patrones de rejilla, triángulo, trihexágono, cubo, octaédrico, cubo bitruncado, transversal y concéntrico se imprimen en todas las capas"
" por completo. Los rellenos de giroide, cúbico, cúbico bitruncado y octaédrico se alternan en cada capa para lograr una distribución más uniforme de la"
" fuerza en todas las direcciones. El relleno de iluminación intenta minimizar el relleno apoyando solo la parte superior del objeto."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern option grid" msgctxt "infill_pattern option grid"
@ -2042,7 +2045,7 @@ msgstr "Ángulo de recorte de relleno de iluminación"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_prune_angle description" msgctxt "lightning_infill_prune_angle description"
msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines." msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines."
msgstr "" msgstr "Los extremos de las líneas de relleno se acortan para ahorrar material. Esta configuración es el ángulo de voladizo de los extremos de estas líneas."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle label" msgctxt "lightning_infill_straightening_angle label"
@ -2052,7 +2055,8 @@ msgstr "Ángulo de enderezamiento de iluminación"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle description" msgctxt "lightning_infill_straightening_angle description"
msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line." msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line."
msgstr "" msgstr "Las líneas de relleno se simplifican para ahorrar tiempo al imprimir. Este es el ángulo máximo permitido del voladizo sobre la longitud de la línea de"
" relleno."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material label" msgctxt "material label"

View file

@ -61,7 +61,7 @@ msgstr "Nouveaux matériaux installés"
#: /home/clamboo/Desktop/Cura/cura/Machines/Models/MaterialManagementModel.py:63 #: /home/clamboo/Desktop/Cura/cura/Machines/Models/MaterialManagementModel.py:63
msgctxt "@action:button" msgctxt "@action:button"
msgid "Sync materials with printers" msgid "Sync materials with printers"
msgstr "Synchroniser les matériaux avec les imprimantes" msgstr "Synchroniser les matériaux"
#: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:82 #: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:82
#: /home/clamboo/Desktop/Cura/cura/Machines/Models/MaterialManagementModel.py:71 #: /home/clamboo/Desktop/Cura/cura/Machines/Models/MaterialManagementModel.py:71
@ -83,7 +83,7 @@ msgstr "Échec de l'enregistrement de l'archive des matériaux"
#: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:188 #: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:188
msgctxt "@text" msgctxt "@text"
msgid "Unknown error." msgid "Unknown error."
msgstr "" msgstr "Erreur inconnue."
#: /home/clamboo/Desktop/Cura/cura/BuildVolume.py:99 #: /home/clamboo/Desktop/Cura/cura/BuildVolume.py:99
msgctxt "@info:status" msgctxt "@info:status"
@ -228,35 +228,35 @@ msgstr "Impossible de trouver un emplacement"
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:104 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:104
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to create archive of materials to sync with printers." msgid "Failed to create archive of materials to sync with printers."
msgstr "" msgstr "Échec de la création de l'archive des matériaux à synchroniser avec les imprimantes."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:111 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:111
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:165 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:165
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to load the archive of materials to sync it with printers." msgid "Failed to load the archive of materials to sync it with printers."
msgstr "" msgstr "Impossible de charger l'archive des matériaux pour la synchroniser avec les imprimantes."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:143 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:143
msgctxt "@text:error" msgctxt "@text:error"
msgid "The response from Digital Factory appears to be corrupted." msgid "The response from Digital Factory appears to be corrupted."
msgstr "" msgstr "La réponse de Digital Factory semble être corrompue."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:147 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:147
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:151 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:151
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:155 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:155
msgctxt "@text:error" msgctxt "@text:error"
msgid "The response from Digital Factory is missing important information." msgid "The response from Digital Factory is missing important information."
msgstr "" msgstr "Il manque des informations importantes dans la réponse de Digital Factory."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:218 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:218
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to connect to Digital Factory to sync materials with some of the printers." msgid "Failed to connect to Digital Factory to sync materials with some of the printers."
msgstr "" msgstr "Échec de la connexion à Digital Factory pour synchroniser les matériaux avec certaines imprimantes."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:232 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:232
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to connect to Digital Factory." msgid "Failed to connect to Digital Factory."
msgstr "" msgstr "Échec de la connexion à Digital Factory."
#: /home/clamboo/Desktop/Cura/cura/CuraApplication.py:530 #: /home/clamboo/Desktop/Cura/cura/CuraApplication.py:530
msgctxt "@info:progress" msgctxt "@info:progress"
@ -606,7 +606,7 @@ msgstr "Impossible datteindre le serveur du compte Ultimaker."
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationService.py:278 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationService.py:278
msgctxt "@info:title" msgctxt "@info:title"
msgid "Log-in failed" msgid "Log-in failed"
msgstr "" msgstr "Échec de la connexion"
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:75 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:75
msgctxt "@message" msgctxt "@message"
@ -616,7 +616,7 @@ msgstr "L'état fourni n'est pas correct."
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:80 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:80
msgctxt "@message" msgctxt "@message"
msgid "Timeout when authenticating with the account server." msgid "Timeout when authenticating with the account server."
msgstr "" msgstr "Délai d'expiration lors de l'authentification avec le serveur de compte."
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:97 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:97
msgctxt "@message" msgctxt "@message"
@ -1741,7 +1741,7 @@ msgstr "Le plug-in 3MF Writer est corrompu."
#: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:37 #: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:37
msgctxt "@error" msgctxt "@error"
msgid "There is no workspace yet to write. Please add a printer first." msgid "There is no workspace yet to write. Please add a printer first."
msgstr "" msgstr "Il n'y a pas encore d'espace de travail à écrire. Veuillez d'abord ajouter une imprimante."
#: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:64 #: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:64
#: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:97 #: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:97
@ -3115,7 +3115,7 @@ msgstr "Abandonné"
#: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:100 #: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:100
msgctxt "@label:status" msgctxt "@label:status"
msgid "Failed" msgid "Failed"
msgstr "" msgstr "Échec"
#: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:102 #: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:102
msgctxt "@label:status" msgctxt "@label:status"
@ -4300,12 +4300,12 @@ msgstr "Utiliser de la colle pour une meilleure adhérence avec cette combinaiso
#: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:102 #: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:102
msgctxt "@tooltip" msgctxt "@tooltip"
msgid "The configuration of this extruder is not allowed, and prohibits slicing." msgid "The configuration of this extruder is not allowed, and prohibits slicing."
msgstr "" msgstr "La configuration de cet extrudeur n'est pas autorisée et interdit la découpe."
#: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:106 #: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:106
msgctxt "@tooltip" msgctxt "@tooltip"
msgid "There are no profiles matching the configuration of this extruder." msgid "There are no profiles matching the configuration of this extruder."
msgstr "" msgstr "Aucun profil ne correspond à la configuration de cet extrudeur."
#: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:253 #: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:253
msgctxt "@label" msgctxt "@label"
@ -5041,157 +5041,158 @@ msgstr "Matériau exporté avec succès vers <filename>%1</filename>"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:17 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:17
msgctxt "@title:window" msgctxt "@title:window"
msgid "Sync materials with printers" msgid "Sync materials with printers"
msgstr "" msgstr "Synchroniser les matériaux avec les imprimantes"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:47 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:47
msgctxt "@title:header" msgctxt "@title:header"
msgid "Sync materials with printers" msgid "Sync materials with printers"
msgstr "" msgstr "Synchroniser les matériaux avec les imprimantes"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:53 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:53
msgctxt "@text" msgctxt "@text"
msgid "Following a few simple steps, you will be able to synchronize all your material profiles with your printers." msgid "Following a few simple steps, you will be able to synchronize all your material profiles with your printers."
msgstr "" msgstr "En suivant quelques étapes simples, vous serez en mesure de synchroniser tous vos profils de matériaux avec vos imprimantes."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:77 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:77
msgctxt "@button" msgctxt "@button"
msgid "Start" msgid "Start"
msgstr "" msgstr "Démarrer"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:98 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:98
msgctxt "@button" msgctxt "@button"
msgid "Why do I need to sync material profiles?" msgid "Why do I need to sync material profiles?"
msgstr "" msgstr "Pourquoi dois-je synchroniser les profils de matériaux ?"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:130 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:130
msgctxt "@title:header" msgctxt "@title:header"
msgid "Sign in" msgid "Sign in"
msgstr "" msgstr "Se connecter"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:137 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:137
msgctxt "@text" msgctxt "@text"
msgid "To automatically sync the material profiles with all your printers connected to Digital Factory you need to be signed in in Cura." msgid "To automatically sync the material profiles with all your printers connected to Digital Factory you need to be signed in in Cura."
msgstr "" msgstr "Pour synchroniser automatiquement les profils de matériaux avec toutes vos imprimantes connectées à Digital Factory, vous devez être connecté à Cura."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:165 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:165
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:476 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:476
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:611 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:611
msgctxt "@button" msgctxt "@button"
msgid "Sync materials with USB" msgid "Sync materials with USB"
msgstr "" msgstr "Synchroniser les matériaux avec USB"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:200 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:200
msgctxt "@title:header" msgctxt "@title:header"
msgid "The following printers will receive the new material profiles:" msgid "The following printers will receive the new material profiles:"
msgstr "" msgstr "Les imprimantes suivantes recevront les nouveaux profils de matériaux :"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:207 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:207
msgctxt "@title:header" msgctxt "@title:header"
msgid "Something went wrong when sending the materials to the printers." msgid "Something went wrong when sending the materials to the printers."
msgstr "" msgstr "Un problème est survenu lors de l'envoi des matériaux aux imprimantes."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:214 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:214
msgctxt "@title:header" msgctxt "@title:header"
msgid "Material profiles successfully synced with the following printers:" msgid "Material profiles successfully synced with the following printers:"
msgstr "" msgstr "Les profils de matériaux ont été synchronisés avec les imprimantes suivantes :"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:256 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:256
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:444 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:444
msgctxt "@button" msgctxt "@button"
msgid "Troubleshooting" msgid "Troubleshooting"
msgstr "" msgstr "Dépannage"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:432 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:432
msgctxt "@text Asking the user whether printers are missing in a list." msgctxt "@text Asking the user whether printers are missing in a list."
msgid "Printers missing?" msgid "Printers missing?"
msgstr "" msgstr "Imprimantes manquantes ?"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:434 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:434
msgctxt "@text" msgctxt "@text"
msgid "Make sure all your printers are turned ON and connected to Digital Factory." msgid "Make sure all your printers are turned ON and connected to Digital Factory."
msgstr "" msgstr "Assurez-vous que toutes vos imprimantes sont allumées et connectées à Digital Factory."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:457 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:457
msgctxt "@button" msgctxt "@button"
msgid "Refresh List" msgid "Refresh List"
msgstr "" msgstr "Actualiser la liste"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:487 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:487
msgctxt "@button" msgctxt "@button"
msgid "Try again" msgid "Try again"
msgstr "" msgstr "Réessayer"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:491 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:491
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716
msgctxt "@button" msgctxt "@button"
msgid "Done" msgid "Done"
msgstr "" msgstr "Terminé"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:493 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:493
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:618 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:618
msgctxt "@button" msgctxt "@button"
msgid "Sync" msgid "Sync"
msgstr "" msgstr "Synchroniser"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:549 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:549
msgctxt "@button" msgctxt "@button"
msgid "Syncing" msgid "Syncing"
msgstr "" msgstr "Synchronisation"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:566 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:566
msgctxt "@title:header" msgctxt "@title:header"
msgid "No printers found" msgid "No printers found"
msgstr "" msgstr "Aucune imprimante trouvée"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:582 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:582
msgctxt "@text" msgctxt "@text"
msgid "It seems like you don't have any compatible printers connected to Digital Factory. Make sure your printer is connected and it's running the latest firmware." msgid "It seems like you don't have any compatible printers connected to Digital Factory. Make sure your printer is connected and it's running the latest firmware."
msgstr "" msgstr "Il semble que vous n'ayez aucune imprimante compatible connectée à Digital Factory. Assurez-vous que votre imprimante est connectée et qu'elle utilise"
" le dernier micrologiciel."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:595 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:595
msgctxt "@button" msgctxt "@button"
msgid "Learn how to connect your printer to Digital Factory" msgid "Learn how to connect your printer to Digital Factory"
msgstr "" msgstr "Découvrez comment connecter votre imprimante à Digital Factory"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:625 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:625
msgctxt "@button" msgctxt "@button"
msgid "Refresh" msgid "Refresh"
msgstr "" msgstr "Rafraîchir"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:647 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:647
msgctxt "@title:header" msgctxt "@title:header"
msgid "Sync material profiles via USB" msgid "Sync material profiles via USB"
msgstr "" msgstr "Synchroniser les profils de matériaux via USB"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:654 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:654
msgctxt "@text In the UI this is followed by a list of steps the user needs to take." msgctxt "@text In the UI this is followed by a list of steps the user needs to take."
msgid "Follow the following steps to load the new material profiles to your printer." msgid "Follow the following steps to load the new material profiles to your printer."
msgstr "" msgstr "Suivez les étapes suivantes pour charger les nouveaux profils de matériaux dans votre imprimante."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:679 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:679
msgctxt "@text" msgctxt "@text"
msgid "Click the export material archive button." msgid "Click the export material archive button."
msgstr "" msgstr "Cliquez sur le bouton d'exportation des archives de matériaux."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:680 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:680
msgctxt "@text" msgctxt "@text"
msgid "Save the .umm file on a USB stick." msgid "Save the .umm file on a USB stick."
msgstr "" msgstr "Enregistrez le fichier .umm sur une clé USB."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:681 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:681
msgctxt "@text" msgctxt "@text"
msgid "Insert the USB stick into your printer and launch the procedure to load new material profiles." msgid "Insert the USB stick into your printer and launch the procedure to load new material profiles."
msgstr "" msgstr "Insérez la clé USB dans votre imprimante et lancez la procédure pour charger de nouveaux profils de matériaux."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:692 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:692
msgctxt "@button" msgctxt "@button"
msgid "How to load new material profiles to my printer" msgid "How to load new material profiles to my printer"
msgstr "" msgstr "Comment charger de nouveaux profils de matériaux dans mon imprimante"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716
msgctxt "@button" msgctxt "@button"
msgid "Export material archive" msgid "Export material archive"
msgstr "" msgstr "Exporter l'archive des matériaux"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:753 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:753
msgctxt "@title:window" msgctxt "@title:window"

View file

@ -56,7 +56,7 @@ msgctxt "machine_start_gcode description"
msgid "" msgid ""
"G-code commands to be executed at the very start - separated by \n" "G-code commands to be executed at the very start - separated by \n"
"." "."
msgstr "" msgstr "Commandes G-Code à exécuter au tout début, séparées par \n."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_end_gcode label" msgctxt "machine_end_gcode label"
@ -68,7 +68,7 @@ msgctxt "machine_end_gcode description"
msgid "" msgid ""
"G-code commands to be executed at the very end - separated by \n" "G-code commands to be executed at the very end - separated by \n"
"." "."
msgstr "" msgstr "Commandes G-Code à exécuter tout à la fin, séparées par \n."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material_guid label" msgctxt "material_guid label"
@ -558,7 +558,7 @@ msgstr "La vitesse maximale pour le moteur du sens Z."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e label" msgctxt "machine_max_feedrate_e label"
msgid "Maximum Speed E" msgid "Maximum Speed E"
msgstr "" msgstr "Vitesse maximale E"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e description" msgctxt "machine_max_feedrate_e description"
@ -1728,7 +1728,10 @@ msgstr "Motif de remplissage"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern description" msgctxt "infill_pattern description"
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object." msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object."
msgstr "" msgstr "Le motif du matériau de remplissage de l'impression. La ligne et le remplissage en zigzag changent de sens à chaque alternance de couche, réduisant ainsi"
" les coûts matériels. Les motifs en grille, en triangle, tri-hexagonaux, cubiques, octaédriques, quart cubiques, entrecroisés et concentriques sont entièrement"
" imprimés sur chaque couche. Les remplissages gyroïdes, cubiques, quart cubiques et octaédriques changent à chaque couche afin d'offrir une répartition"
" plus égale de la solidité dans chaque direction. Le remplissage éclair tente de minimiser le remplissage, en ne supportant que le plafond de l'objet."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern option grid" msgctxt "infill_pattern option grid"
@ -2042,7 +2045,7 @@ msgstr "Angle d'élagage du remplissage éclair"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_prune_angle description" msgctxt "lightning_infill_prune_angle description"
msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines." msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines."
msgstr "" msgstr "Les extrémités des lignes de remplissage sont raccourcies pour économiser du matériau. Ce paramètre est l'angle de saillie des extrémités de ces lignes."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle label" msgctxt "lightning_infill_straightening_angle label"
@ -2052,7 +2055,8 @@ msgstr "Angle de redressement du remplissage éclair"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle description" msgctxt "lightning_infill_straightening_angle description"
msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line." msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line."
msgstr "" msgstr "Les lignes de remplissage sont redressées pour gagner du temps d'impression. Il s'agit de l'angle maximal de saillie autorisé sur la longueur de la ligne"
" de remplissage."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material label" msgctxt "material label"

View file

@ -61,7 +61,7 @@ msgstr "Nuovi materiali installati"
#: /home/clamboo/Desktop/Cura/cura/Machines/Models/MaterialManagementModel.py:63 #: /home/clamboo/Desktop/Cura/cura/Machines/Models/MaterialManagementModel.py:63
msgctxt "@action:button" msgctxt "@action:button"
msgid "Sync materials with printers" msgid "Sync materials with printers"
msgstr "Sincronizza materiali con stampanti" msgstr "Sincronizza materiali"
#: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:82 #: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:82
#: /home/clamboo/Desktop/Cura/cura/Machines/Models/MaterialManagementModel.py:71 #: /home/clamboo/Desktop/Cura/cura/Machines/Models/MaterialManagementModel.py:71
@ -83,7 +83,7 @@ msgstr "Impossibile salvare archivio materiali"
#: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:188 #: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:188
msgctxt "@text" msgctxt "@text"
msgid "Unknown error." msgid "Unknown error."
msgstr "" msgstr "Errore sconosciuto."
#: /home/clamboo/Desktop/Cura/cura/BuildVolume.py:99 #: /home/clamboo/Desktop/Cura/cura/BuildVolume.py:99
msgctxt "@info:status" msgctxt "@info:status"
@ -228,35 +228,35 @@ msgstr "Impossibile individuare posizione"
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:104 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:104
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to create archive of materials to sync with printers." msgid "Failed to create archive of materials to sync with printers."
msgstr "" msgstr "Impossibile creare archivio di materiali da sincronizzare con le stampanti."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:111 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:111
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:165 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:165
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to load the archive of materials to sync it with printers." msgid "Failed to load the archive of materials to sync it with printers."
msgstr "" msgstr "Impossibile caricare l'archivio di materiali da sincronizzare con le stampanti."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:143 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:143
msgctxt "@text:error" msgctxt "@text:error"
msgid "The response from Digital Factory appears to be corrupted." msgid "The response from Digital Factory appears to be corrupted."
msgstr "" msgstr "La risposta da Digital Factory sembra essere danneggiata."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:147 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:147
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:151 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:151
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:155 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:155
msgctxt "@text:error" msgctxt "@text:error"
msgid "The response from Digital Factory is missing important information." msgid "The response from Digital Factory is missing important information."
msgstr "" msgstr "Nella risposta da Digital Factory mancano informazioni importanti."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:218 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:218
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to connect to Digital Factory to sync materials with some of the printers." msgid "Failed to connect to Digital Factory to sync materials with some of the printers."
msgstr "" msgstr "Impossibile connettersi a Digital Factory per sincronizzare i materiali con alcune delle stampanti."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:232 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:232
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to connect to Digital Factory." msgid "Failed to connect to Digital Factory."
msgstr "" msgstr "Impossibile connettersi a Digital Factory."
#: /home/clamboo/Desktop/Cura/cura/CuraApplication.py:530 #: /home/clamboo/Desktop/Cura/cura/CuraApplication.py:530
msgctxt "@info:progress" msgctxt "@info:progress"
@ -606,7 +606,7 @@ msgstr "Impossibile raggiungere il server account Ultimaker."
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationService.py:278 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationService.py:278
msgctxt "@info:title" msgctxt "@info:title"
msgid "Log-in failed" msgid "Log-in failed"
msgstr "" msgstr "Log in non riuscito"
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:75 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:75
msgctxt "@message" msgctxt "@message"
@ -616,7 +616,7 @@ msgstr "Lo stato fornito non è corretto."
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:80 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:80
msgctxt "@message" msgctxt "@message"
msgid "Timeout when authenticating with the account server." msgid "Timeout when authenticating with the account server."
msgstr "" msgstr "Timeout durante l'autenticazione con il server account."
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:97 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:97
msgctxt "@message" msgctxt "@message"
@ -1741,7 +1741,7 @@ msgstr "Plug-in Writer 3MF danneggiato."
#: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:37 #: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:37
msgctxt "@error" msgctxt "@error"
msgid "There is no workspace yet to write. Please add a printer first." msgid "There is no workspace yet to write. Please add a printer first."
msgstr "" msgstr "Ancora nessuna area di lavoro da scrivere. Aggiungere innanzitutto una stampante."
#: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:64 #: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:64
#: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:97 #: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:97
@ -3115,7 +3115,7 @@ msgstr "Interrotto"
#: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:100 #: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:100
msgctxt "@label:status" msgctxt "@label:status"
msgid "Failed" msgid "Failed"
msgstr "" msgstr "Non riuscita"
#: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:102 #: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:102
msgctxt "@label:status" msgctxt "@label:status"
@ -4301,12 +4301,12 @@ msgstr "Utilizzare la colla per una migliore adesione con questa combinazione di
#: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:102 #: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:102
msgctxt "@tooltip" msgctxt "@tooltip"
msgid "The configuration of this extruder is not allowed, and prohibits slicing." msgid "The configuration of this extruder is not allowed, and prohibits slicing."
msgstr "" msgstr "La configurazione di questo estrusore non è consentita e proibisce il sezionamento."
#: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:106 #: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:106
msgctxt "@tooltip" msgctxt "@tooltip"
msgid "There are no profiles matching the configuration of this extruder." msgid "There are no profiles matching the configuration of this extruder."
msgstr "" msgstr "Nessun profilo corrispondente alla configurazione di questo estrusore."
#: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:253 #: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:253
msgctxt "@label" msgctxt "@label"
@ -5042,157 +5042,157 @@ msgstr "Materiale esportato correttamente su <filename>%1</filename>"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:17 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:17
msgctxt "@title:window" msgctxt "@title:window"
msgid "Sync materials with printers" msgid "Sync materials with printers"
msgstr "" msgstr "Sincronizza materiali con stampanti"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:47 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:47
msgctxt "@title:header" msgctxt "@title:header"
msgid "Sync materials with printers" msgid "Sync materials with printers"
msgstr "" msgstr "Sincronizza materiali con stampanti"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:53 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:53
msgctxt "@text" msgctxt "@text"
msgid "Following a few simple steps, you will be able to synchronize all your material profiles with your printers." msgid "Following a few simple steps, you will be able to synchronize all your material profiles with your printers."
msgstr "" msgstr "Seguendo alcuni semplici passaggi, sarà possibile sincronizzare tutti i profili del materiale con le stampanti."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:77 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:77
msgctxt "@button" msgctxt "@button"
msgid "Start" msgid "Start"
msgstr "" msgstr "Avvio"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:98 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:98
msgctxt "@button" msgctxt "@button"
msgid "Why do I need to sync material profiles?" msgid "Why do I need to sync material profiles?"
msgstr "" msgstr "Cosa occorre per sincronizzare i profili del materiale?"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:130 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:130
msgctxt "@title:header" msgctxt "@title:header"
msgid "Sign in" msgid "Sign in"
msgstr "" msgstr "Accedi"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:137 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:137
msgctxt "@text" msgctxt "@text"
msgid "To automatically sync the material profiles with all your printers connected to Digital Factory you need to be signed in in Cura." msgid "To automatically sync the material profiles with all your printers connected to Digital Factory you need to be signed in in Cura."
msgstr "" msgstr "Per sincronizzare automaticamente i profili del materiale con tutte le stampanti collegate a Digital Factory è necessario aver effettuato l'accesso a Cura."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:165 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:165
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:476 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:476
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:611 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:611
msgctxt "@button" msgctxt "@button"
msgid "Sync materials with USB" msgid "Sync materials with USB"
msgstr "" msgstr "Sincronizza materiali con USB"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:200 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:200
msgctxt "@title:header" msgctxt "@title:header"
msgid "The following printers will receive the new material profiles:" msgid "The following printers will receive the new material profiles:"
msgstr "" msgstr "Le stampanti seguenti riceveranno i nuovi profili del materiale:"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:207 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:207
msgctxt "@title:header" msgctxt "@title:header"
msgid "Something went wrong when sending the materials to the printers." msgid "Something went wrong when sending the materials to the printers."
msgstr "" msgstr "Si è verificato un errore durante l'invio di materiali alle stampanti."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:214 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:214
msgctxt "@title:header" msgctxt "@title:header"
msgid "Material profiles successfully synced with the following printers:" msgid "Material profiles successfully synced with the following printers:"
msgstr "" msgstr "I profili del materiale sono stati sincronizzati correttamente con le stampanti seguenti:"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:256 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:256
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:444 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:444
msgctxt "@button" msgctxt "@button"
msgid "Troubleshooting" msgid "Troubleshooting"
msgstr "" msgstr "Ricerca e riparazione dei guasti"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:432 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:432
msgctxt "@text Asking the user whether printers are missing in a list." msgctxt "@text Asking the user whether printers are missing in a list."
msgid "Printers missing?" msgid "Printers missing?"
msgstr "" msgstr "Mancano stampanti?"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:434 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:434
msgctxt "@text" msgctxt "@text"
msgid "Make sure all your printers are turned ON and connected to Digital Factory." msgid "Make sure all your printers are turned ON and connected to Digital Factory."
msgstr "" msgstr "Accertarsi che tutte le stampanti siano accese e collegate a Digital Factory."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:457 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:457
msgctxt "@button" msgctxt "@button"
msgid "Refresh List" msgid "Refresh List"
msgstr "" msgstr "Aggiorna elenco"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:487 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:487
msgctxt "@button" msgctxt "@button"
msgid "Try again" msgid "Try again"
msgstr "" msgstr "Riprova"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:491 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:491
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716
msgctxt "@button" msgctxt "@button"
msgid "Done" msgid "Done"
msgstr "" msgstr "Eseguito"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:493 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:493
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:618 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:618
msgctxt "@button" msgctxt "@button"
msgid "Sync" msgid "Sync"
msgstr "" msgstr "Sincronizza"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:549 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:549
msgctxt "@button" msgctxt "@button"
msgid "Syncing" msgid "Syncing"
msgstr "" msgstr "Sincronizzazione"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:566 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:566
msgctxt "@title:header" msgctxt "@title:header"
msgid "No printers found" msgid "No printers found"
msgstr "" msgstr "Nessuna stampante trovata"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:582 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:582
msgctxt "@text" msgctxt "@text"
msgid "It seems like you don't have any compatible printers connected to Digital Factory. Make sure your printer is connected and it's running the latest firmware." msgid "It seems like you don't have any compatible printers connected to Digital Factory. Make sure your printer is connected and it's running the latest firmware."
msgstr "" msgstr "Nessuna stampante compatibile collegata a Digital Factory. Accertarsi che la stampante sia collegata e che il firmware più recente sia in esecuzione."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:595 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:595
msgctxt "@button" msgctxt "@button"
msgid "Learn how to connect your printer to Digital Factory" msgid "Learn how to connect your printer to Digital Factory"
msgstr "" msgstr "Scopri come collegare la stampante a Digital Factory"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:625 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:625
msgctxt "@button" msgctxt "@button"
msgid "Refresh" msgid "Refresh"
msgstr "" msgstr "Aggiorna"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:647 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:647
msgctxt "@title:header" msgctxt "@title:header"
msgid "Sync material profiles via USB" msgid "Sync material profiles via USB"
msgstr "" msgstr "Sincronizza profili del materiale tramite USB"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:654 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:654
msgctxt "@text In the UI this is followed by a list of steps the user needs to take." msgctxt "@text In the UI this is followed by a list of steps the user needs to take."
msgid "Follow the following steps to load the new material profiles to your printer." msgid "Follow the following steps to load the new material profiles to your printer."
msgstr "" msgstr "Eseguire le operazioni descritte di seguito per caricare nuovi profili del materiale nella stampante."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:679 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:679
msgctxt "@text" msgctxt "@text"
msgid "Click the export material archive button." msgid "Click the export material archive button."
msgstr "" msgstr "Fare clic sul pulsante Esporta archivio materiali."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:680 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:680
msgctxt "@text" msgctxt "@text"
msgid "Save the .umm file on a USB stick." msgid "Save the .umm file on a USB stick."
msgstr "" msgstr "Salvare il file .umm su una chiavetta USB."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:681 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:681
msgctxt "@text" msgctxt "@text"
msgid "Insert the USB stick into your printer and launch the procedure to load new material profiles." msgid "Insert the USB stick into your printer and launch the procedure to load new material profiles."
msgstr "" msgstr "Inserire la chiavetta USB nella stampante e avviare la procedura per caricare nuovi profili del materiale."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:692 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:692
msgctxt "@button" msgctxt "@button"
msgid "How to load new material profiles to my printer" msgid "How to load new material profiles to my printer"
msgstr "" msgstr "Come caricare nuovi profili del materiale nella stampante"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716
msgctxt "@button" msgctxt "@button"
msgid "Export material archive" msgid "Export material archive"
msgstr "" msgstr "Esporta archivio materiali"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:753 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:753
msgctxt "@title:window" msgctxt "@title:window"

View file

@ -56,7 +56,7 @@ msgctxt "machine_start_gcode description"
msgid "" msgid ""
"G-code commands to be executed at the very start - separated by \n" "G-code commands to be executed at the very start - separated by \n"
"." "."
msgstr "" msgstr "I comandi codice G da eseguire allavvio, separati da \n."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_end_gcode label" msgctxt "machine_end_gcode label"
@ -68,7 +68,7 @@ msgctxt "machine_end_gcode description"
msgid "" msgid ""
"G-code commands to be executed at the very end - separated by \n" "G-code commands to be executed at the very end - separated by \n"
"." "."
msgstr "" msgstr "I comandi codice G da eseguire alla fine, separati da \n."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material_guid label" msgctxt "material_guid label"
@ -558,7 +558,7 @@ msgstr "Indica la velocità massima del motore per la direzione Z."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e label" msgctxt "machine_max_feedrate_e label"
msgid "Maximum Speed E" msgid "Maximum Speed E"
msgstr "" msgstr "Velocità massima E"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e description" msgctxt "machine_max_feedrate_e description"
@ -1728,7 +1728,10 @@ msgstr "Configurazione di riempimento"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern description" msgctxt "infill_pattern description"
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object." msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object."
msgstr "" msgstr "Configurazione del materiale di riempimento della stampa. Il riempimento a linea e a zig zag cambia direzione su strati alternati, riducendo il costo del"
" materiale. Le configurazioni a griglia, a triangolo, tri-esagonali, cubiche, ottagonali, a quarto di cubo, incrociate e concentriche sono stampate completamente"
" su ogni strato. Le configurazioni gyroid, cubiche, a quarto di cubo e ottagonali variano per ciascuno strato per garantire una più uniforme distribuzione"
" della forza in ogni direzione. Il riempimento fulmine cerca di minimizzare il riempimento, supportando solo la parte superiore dell'oggetto."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern option grid" msgctxt "infill_pattern option grid"
@ -2042,7 +2045,8 @@ msgstr "Angolo eliminazione riempimento fulmine"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_prune_angle description" msgctxt "lightning_infill_prune_angle description"
msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines." msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines."
msgstr "" msgstr "I punti finali delle linee di riempimento vengono accorciati per risparmiare sul materiale. Questa impostazione è l'angolo di sbalzo dei punti finali di"
" queste linee."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle label" msgctxt "lightning_infill_straightening_angle label"
@ -2052,7 +2056,8 @@ msgstr "Angolo di raddrizzatura riempimento fulmine"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle description" msgctxt "lightning_infill_straightening_angle description"
msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line." msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line."
msgstr "" msgstr "Le linee di riempimento vengono raddrizzate per risparmiare sul tempo di stampa. Questo è l'angolo di sbalzo massimo consentito sulla lunghezza della linea"
" di riempimento."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material label" msgctxt "material label"

File diff suppressed because it is too large Load diff

View file

@ -60,7 +60,7 @@ msgctxt "machine_start_gcode description"
msgid "" msgid ""
"G-code commands to be executed at the very start - separated by \n" "G-code commands to be executed at the very start - separated by \n"
"." "."
msgstr "" msgstr "最初に実行するG-codeコマンドは、\nで区切ります。"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_end_gcode label" msgctxt "machine_end_gcode label"
@ -72,7 +72,7 @@ msgctxt "machine_end_gcode description"
msgid "" msgid ""
"G-code commands to be executed at the very end - separated by \n" "G-code commands to be executed at the very end - separated by \n"
"." "."
msgstr "" msgstr "最後に実行するG-codeコマンドは、\nで区切ります。"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material_guid label" msgctxt "material_guid label"
@ -587,7 +587,7 @@ msgstr "Z方向のモーターの最大速度。"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e label" msgctxt "machine_max_feedrate_e label"
msgid "Maximum Speed E" msgid "Maximum Speed E"
msgstr "" msgstr "最大速度E"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e description" msgctxt "machine_max_feedrate_e description"
@ -1799,7 +1799,7 @@ msgstr "インフィルパターン"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern description" msgctxt "infill_pattern description"
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object." msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object."
msgstr "" msgstr "プリントのインフィル材料のパターンラインおよびジグザグインフィルはレイヤーごとに方向を入れ替え、材料コストを削減します。グリッド、トライアングル、トライヘキサゴン、キュービック、オクテット、クォーターキュービック、クロスおよび同心円パターンはレイヤーごとに完全にプリントされます。ジャイロイド、キュービック、クォーターキュービックおよびオクテットインフィルはレイヤーごとに変化し、各方向にかけてより均一な強度分布を実現します。ライトニングインフィルは造形物の天井のみを支えることで、インフィルを最低限にするよう試みます。"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern option grid" msgctxt "infill_pattern option grid"
@ -2122,7 +2122,7 @@ msgstr "ライトニングインフィル刈り込み角度"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_prune_angle description" msgctxt "lightning_infill_prune_angle description"
msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines." msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines."
msgstr "" msgstr "インフィルラインのエンドポイントは短縮され、材料が節約されます。この設定は、これらのラインのエンドポイントにおけるオーバーハングの角度です。"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle label" msgctxt "lightning_infill_straightening_angle label"
@ -2132,7 +2132,7 @@ msgstr "ライトニングインフィル矯正角度"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle description" msgctxt "lightning_infill_straightening_angle description"
msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line." msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line."
msgstr "" msgstr "インフィルラインは矯正され、プリント時間が節約されます。これは、インフィルラインの全長にわたって許可されるオーバーハングの最大角度です。"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material label" msgctxt "material label"

File diff suppressed because it is too large Load diff

View file

@ -57,7 +57,7 @@ msgctxt "machine_start_gcode description"
msgid "" msgid ""
"G-code commands to be executed at the very start - separated by \n" "G-code commands to be executed at the very start - separated by \n"
"." "."
msgstr "" msgstr "시작과 동시에형실행될 G 코드 명령어 \n."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_end_gcode label" msgctxt "machine_end_gcode label"
@ -69,7 +69,7 @@ msgctxt "machine_end_gcode description"
msgid "" msgid ""
"G-code commands to be executed at the very end - separated by \n" "G-code commands to be executed at the very end - separated by \n"
"." "."
msgstr "" msgstr "맨 마지막에 실행될 G 코드 명령 \n."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material_guid label" msgctxt "material_guid label"
@ -559,7 +559,7 @@ msgstr "Z 방향의 모터 최대 속도입니다."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e label" msgctxt "machine_max_feedrate_e label"
msgid "Maximum Speed E" msgid "Maximum Speed E"
msgstr "" msgstr "최대 속도 E"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e description" msgctxt "machine_max_feedrate_e description"
@ -1729,7 +1729,8 @@ msgstr "내부채움 패턴"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern description" msgctxt "infill_pattern description"
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object." msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object."
msgstr "" msgstr "프린트 내부채움 재료의 패턴입니다. 선형과 지그재그형 내부채움이 서로 다른 레이어에서 방향을 바꾸므로 재료비가 절감됩니다. 격자, 삼각형, 트라이 헥사곤 (tri-hexagon), 큐빅, 옥텟 (octet), 쿼터 큐빅, 크로스, 동심원 패턴이 레이어마다 완전히 프린트됩니다."
" 자이로이드 (Gyroid), 큐빅, 쿼터 큐빅, 옥텟 (octet) 내부채움이 레이어마다 변경되므로 각 방향으로 힘이 더 균등하게 분산됩니다. 라이트닝 내부채움이 객체의 천장만 서포트하여 내부채움을 최소화합니다."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern option grid" msgctxt "infill_pattern option grid"
@ -2043,7 +2044,7 @@ msgstr "라이트닝 내부채움 가지치기 각도"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_prune_angle description" msgctxt "lightning_infill_prune_angle description"
msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines." msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines."
msgstr "" msgstr "내부채움 선의 종점이 재료를 절약하기 위해 단축됩니다. 이 설정은 해당 선의 종점에 대한 오버행(경사면)의 각도입니다."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle label" msgctxt "lightning_infill_straightening_angle label"
@ -2053,7 +2054,7 @@ msgstr "라이트닝 내부채움 정리 각도"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle description" msgctxt "lightning_infill_straightening_angle description"
msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line." msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line."
msgstr "" msgstr "내부채움 선이 인쇄 시간을 절약하기 위해 정리됩니다. 이는 내부채움 선 길이 전체에 허용되는 오버행(경사면)의 최대 각도입니다."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material label" msgctxt "material label"

View file

@ -61,7 +61,7 @@ msgstr "Nieuwe materialen geïnstalleerd"
#: /home/clamboo/Desktop/Cura/cura/Machines/Models/MaterialManagementModel.py:63 #: /home/clamboo/Desktop/Cura/cura/Machines/Models/MaterialManagementModel.py:63
msgctxt "@action:button" msgctxt "@action:button"
msgid "Sync materials with printers" msgid "Sync materials with printers"
msgstr "Synchroniseer materialen met printers" msgstr "Synchroniseer materialen"
#: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:82 #: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:82
#: /home/clamboo/Desktop/Cura/cura/Machines/Models/MaterialManagementModel.py:71 #: /home/clamboo/Desktop/Cura/cura/Machines/Models/MaterialManagementModel.py:71
@ -83,7 +83,7 @@ msgstr "Opslaan materiaalarchief mislukt"
#: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:188 #: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:188
msgctxt "@text" msgctxt "@text"
msgid "Unknown error." msgid "Unknown error."
msgstr "" msgstr "Onbekende fout."
#: /home/clamboo/Desktop/Cura/cura/BuildVolume.py:99 #: /home/clamboo/Desktop/Cura/cura/BuildVolume.py:99
msgctxt "@info:status" msgctxt "@info:status"
@ -228,35 +228,35 @@ msgstr "Kan locatie niet vinden"
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:104 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:104
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to create archive of materials to sync with printers." msgid "Failed to create archive of materials to sync with printers."
msgstr "" msgstr "Kan geen materiaalarchief maken voor synchronisatie met printers."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:111 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:111
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:165 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:165
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to load the archive of materials to sync it with printers." msgid "Failed to load the archive of materials to sync it with printers."
msgstr "" msgstr "Kan het materiaalarchief niet laden voor synchronisatie met printers."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:143 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:143
msgctxt "@text:error" msgctxt "@text:error"
msgid "The response from Digital Factory appears to be corrupted." msgid "The response from Digital Factory appears to be corrupted."
msgstr "" msgstr "Antwoord van Digital Factor is mogelijk beschadigd."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:147 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:147
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:151 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:151
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:155 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:155
msgctxt "@text:error" msgctxt "@text:error"
msgid "The response from Digital Factory is missing important information." msgid "The response from Digital Factory is missing important information."
msgstr "" msgstr "In het antwoord van Digital Factory ontbreekt belangrijke informatie."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:218 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:218
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to connect to Digital Factory to sync materials with some of the printers." msgid "Failed to connect to Digital Factory to sync materials with some of the printers."
msgstr "" msgstr "Kan geen verbinding maken met Digital Factory voor de synchronisatie van materialen met enkele printers."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:232 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:232
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to connect to Digital Factory." msgid "Failed to connect to Digital Factory."
msgstr "" msgstr "Kan geen verbinding maken met Digital Factory."
#: /home/clamboo/Desktop/Cura/cura/CuraApplication.py:530 #: /home/clamboo/Desktop/Cura/cura/CuraApplication.py:530
msgctxt "@info:progress" msgctxt "@info:progress"
@ -606,7 +606,7 @@ msgstr "Kan de Ultimaker-accountserver niet bereiken."
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationService.py:278 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationService.py:278
msgctxt "@info:title" msgctxt "@info:title"
msgid "Log-in failed" msgid "Log-in failed"
msgstr "" msgstr "Aanmelden mislukt"
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:75 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:75
msgctxt "@message" msgctxt "@message"
@ -616,7 +616,7 @@ msgstr "De opgegeven status is niet juist."
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:80 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:80
msgctxt "@message" msgctxt "@message"
msgid "Timeout when authenticating with the account server." msgid "Timeout when authenticating with the account server."
msgstr "" msgstr "Time-out tijdens verificatie bij de accountserver."
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:97 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:97
msgctxt "@message" msgctxt "@message"
@ -1741,7 +1741,7 @@ msgstr "3MF-schrijverplug-in is beschadigd."
#: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:37 #: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:37
msgctxt "@error" msgctxt "@error"
msgid "There is no workspace yet to write. Please add a printer first." msgid "There is no workspace yet to write. Please add a printer first."
msgstr "" msgstr "Er is nog geen werkruimte om te schrijven. Voeg eerst een printer toe."
#: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:64 #: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:64
#: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:97 #: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:97
@ -3115,7 +3115,7 @@ msgstr "Afgebroken"
#: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:100 #: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:100
msgctxt "@label:status" msgctxt "@label:status"
msgid "Failed" msgid "Failed"
msgstr "" msgstr "Mislukt"
#: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:102 #: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:102
msgctxt "@label:status" msgctxt "@label:status"
@ -4301,12 +4301,12 @@ msgstr "Gebruik lijm bij deze combinatie van materialen voor een betere hechting
#: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:102 #: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:102
msgctxt "@tooltip" msgctxt "@tooltip"
msgid "The configuration of this extruder is not allowed, and prohibits slicing." msgid "The configuration of this extruder is not allowed, and prohibits slicing."
msgstr "" msgstr "De configuratie van deze extruder is niet toegestaan en verhindert slicen."
#: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:106 #: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:106
msgctxt "@tooltip" msgctxt "@tooltip"
msgid "There are no profiles matching the configuration of this extruder." msgid "There are no profiles matching the configuration of this extruder."
msgstr "" msgstr "Er zijn geen profielen die compatibel zijn met de configuratie van deze extruder."
#: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:253 #: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:253
msgctxt "@label" msgctxt "@label"
@ -5042,157 +5042,158 @@ msgstr "Materiaal is geëxporteerd naar <filename>%1</filename>"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:17 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:17
msgctxt "@title:window" msgctxt "@title:window"
msgid "Sync materials with printers" msgid "Sync materials with printers"
msgstr "" msgstr "Synchroniseer materialen met printers"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:47 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:47
msgctxt "@title:header" msgctxt "@title:header"
msgid "Sync materials with printers" msgid "Sync materials with printers"
msgstr "" msgstr "Synchroniseer materialen met printers"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:53 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:53
msgctxt "@text" msgctxt "@text"
msgid "Following a few simple steps, you will be able to synchronize all your material profiles with your printers." msgid "Following a few simple steps, you will be able to synchronize all your material profiles with your printers."
msgstr "" msgstr "Met een paar simpele stappen kunt u al uw materiaalprofielen synchroniseren met uw printers."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:77 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:77
msgctxt "@button" msgctxt "@button"
msgid "Start" msgid "Start"
msgstr "" msgstr "Starten"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:98 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:98
msgctxt "@button" msgctxt "@button"
msgid "Why do I need to sync material profiles?" msgid "Why do I need to sync material profiles?"
msgstr "" msgstr "Waarom moet ik materiaalprofielen synchroniseren?"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:130 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:130
msgctxt "@title:header" msgctxt "@title:header"
msgid "Sign in" msgid "Sign in"
msgstr "" msgstr "Aanmelden"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:137 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:137
msgctxt "@text" msgctxt "@text"
msgid "To automatically sync the material profiles with all your printers connected to Digital Factory you need to be signed in in Cura." msgid "To automatically sync the material profiles with all your printers connected to Digital Factory you need to be signed in in Cura."
msgstr "" msgstr "Om de materiaalprofielen automatisch te synchroniseren met alle printers die op Digital Factory zijn aangesloten, moet u zich aanmelden bij Cura."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:165 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:165
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:476 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:476
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:611 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:611
msgctxt "@button" msgctxt "@button"
msgid "Sync materials with USB" msgid "Sync materials with USB"
msgstr "" msgstr "Materialen synchroniseren met USB"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:200 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:200
msgctxt "@title:header" msgctxt "@title:header"
msgid "The following printers will receive the new material profiles:" msgid "The following printers will receive the new material profiles:"
msgstr "" msgstr "De volgende printers ontvangen de nieuwe materiaalprofielen:"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:207 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:207
msgctxt "@title:header" msgctxt "@title:header"
msgid "Something went wrong when sending the materials to the printers." msgid "Something went wrong when sending the materials to the printers."
msgstr "" msgstr "Er is iets misgegaan bij het verzenden van de materialen naar de printers."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:214 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:214
msgctxt "@title:header" msgctxt "@title:header"
msgid "Material profiles successfully synced with the following printers:" msgid "Material profiles successfully synced with the following printers:"
msgstr "" msgstr "Materiaalprofielen zijn gesynchroniseerd met de volgende printers:"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:256 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:256
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:444 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:444
msgctxt "@button" msgctxt "@button"
msgid "Troubleshooting" msgid "Troubleshooting"
msgstr "" msgstr "Probleemoplossing"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:432 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:432
msgctxt "@text Asking the user whether printers are missing in a list." msgctxt "@text Asking the user whether printers are missing in a list."
msgid "Printers missing?" msgid "Printers missing?"
msgstr "" msgstr "Ontbreken er printers?"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:434 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:434
msgctxt "@text" msgctxt "@text"
msgid "Make sure all your printers are turned ON and connected to Digital Factory." msgid "Make sure all your printers are turned ON and connected to Digital Factory."
msgstr "" msgstr "Controleer of alle printers zijn ingeschakeld en zijn aangesloten op Digital Factory."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:457 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:457
msgctxt "@button" msgctxt "@button"
msgid "Refresh List" msgid "Refresh List"
msgstr "" msgstr "Lijst vernieuwen"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:487 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:487
msgctxt "@button" msgctxt "@button"
msgid "Try again" msgid "Try again"
msgstr "" msgstr "Probeer het opnieuw"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:491 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:491
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716
msgctxt "@button" msgctxt "@button"
msgid "Done" msgid "Done"
msgstr "" msgstr "Klaar"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:493 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:493
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:618 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:618
msgctxt "@button" msgctxt "@button"
msgid "Sync" msgid "Sync"
msgstr "" msgstr "Synchroniseren"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:549 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:549
msgctxt "@button" msgctxt "@button"
msgid "Syncing" msgid "Syncing"
msgstr "" msgstr "Synchroniseren"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:566 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:566
msgctxt "@title:header" msgctxt "@title:header"
msgid "No printers found" msgid "No printers found"
msgstr "" msgstr "Geen printers gevonden"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:582 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:582
msgctxt "@text" msgctxt "@text"
msgid "It seems like you don't have any compatible printers connected to Digital Factory. Make sure your printer is connected and it's running the latest firmware." msgid "It seems like you don't have any compatible printers connected to Digital Factory. Make sure your printer is connected and it's running the latest firmware."
msgstr "" msgstr "Mogelijk zijn er geen compatibele printers op Digital Factory aangesloten. Controleer of de printer is aangesloten en de nieuwste firmware op de printer"
" is geïnstalleerd."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:595 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:595
msgctxt "@button" msgctxt "@button"
msgid "Learn how to connect your printer to Digital Factory" msgid "Learn how to connect your printer to Digital Factory"
msgstr "" msgstr "Meer informatie over het aansluiten van de printer op Digital Factory"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:625 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:625
msgctxt "@button" msgctxt "@button"
msgid "Refresh" msgid "Refresh"
msgstr "" msgstr "Vernieuwen"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:647 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:647
msgctxt "@title:header" msgctxt "@title:header"
msgid "Sync material profiles via USB" msgid "Sync material profiles via USB"
msgstr "" msgstr "Materiaalprofielen synchroniseren via USB"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:654 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:654
msgctxt "@text In the UI this is followed by a list of steps the user needs to take." msgctxt "@text In the UI this is followed by a list of steps the user needs to take."
msgid "Follow the following steps to load the new material profiles to your printer." msgid "Follow the following steps to load the new material profiles to your printer."
msgstr "" msgstr "Volg onderstaande stappen om nieuwe materiaalprofielen op uw printer te laden."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:679 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:679
msgctxt "@text" msgctxt "@text"
msgid "Click the export material archive button." msgid "Click the export material archive button."
msgstr "" msgstr "Klik op de knop Materiaalarchief exporteren."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:680 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:680
msgctxt "@text" msgctxt "@text"
msgid "Save the .umm file on a USB stick." msgid "Save the .umm file on a USB stick."
msgstr "" msgstr "Bewaar het .umm-bestand op een USB-stick."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:681 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:681
msgctxt "@text" msgctxt "@text"
msgid "Insert the USB stick into your printer and launch the procedure to load new material profiles." msgid "Insert the USB stick into your printer and launch the procedure to load new material profiles."
msgstr "" msgstr "Steek de USB-stick in de printer en start de procedure om nieuwe materiaalprofielen te laden."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:692 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:692
msgctxt "@button" msgctxt "@button"
msgid "How to load new material profiles to my printer" msgid "How to load new material profiles to my printer"
msgstr "" msgstr "Hoe u nieuwe materiaalprofielen laadt op Mijn printer"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716
msgctxt "@button" msgctxt "@button"
msgid "Export material archive" msgid "Export material archive"
msgstr "" msgstr "Materiaalarchief exporteren"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:753 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:753
msgctxt "@title:window" msgctxt "@title:window"

View file

@ -56,7 +56,7 @@ msgctxt "machine_start_gcode description"
msgid "" msgid ""
"G-code commands to be executed at the very start - separated by \n" "G-code commands to be executed at the very start - separated by \n"
"." "."
msgstr "" msgstr "G-code-opdrachten die aan het begin worden uitgevoerd, gescheiden door \n."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_end_gcode label" msgctxt "machine_end_gcode label"
@ -68,7 +68,7 @@ msgctxt "machine_end_gcode description"
msgid "" msgid ""
"G-code commands to be executed at the very end - separated by \n" "G-code commands to be executed at the very end - separated by \n"
"." "."
msgstr "" msgstr "G-code-opdrachten die aan het eind worden uitgevoerd, gescheiden door \n."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material_guid label" msgctxt "material_guid label"
@ -558,7 +558,7 @@ msgstr "De maximale snelheid van de motor in de Z-richting."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e label" msgctxt "machine_max_feedrate_e label"
msgid "Maximum Speed E" msgid "Maximum Speed E"
msgstr "" msgstr "Maximale Snelheid E"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e description" msgctxt "machine_max_feedrate_e description"
@ -1728,7 +1728,10 @@ msgstr "Vulpatroon"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern description" msgctxt "infill_pattern description"
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object." msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object."
msgstr "" msgstr "Het patroon van het vulmateriaal van de print. De lijn- en zigzagvulling veranderen per vullaag van richting, waardoor u bespaart op materiaalkosten. De"
" raster-, driehoeks-, tri-hexagonale, kubische, achtvlaks-, afgeknotte kubus-, kruis- en concentrische patronen worden per laag volledig geprint. Gyroïde,"
" kubische, afgeknotte kubus- en achtvlaksvullingen veranderen per laag voor een meer gelijke krachtverdeling in elke richting. Bliksemvulling minimaliseert"
" de vulling doordat deze alleen het plafond van het object ondersteunt."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern option grid" msgctxt "infill_pattern option grid"
@ -2042,7 +2045,7 @@ msgstr "Snoeihoek bliksemvulling"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_prune_angle description" msgctxt "lightning_infill_prune_angle description"
msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines." msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines."
msgstr "" msgstr "De eindpunten van de vullijnen worden verkort om materiaal te besparen. Deze instelling is de overhanghoek van de eindpunten van deze lijnen."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle label" msgctxt "lightning_infill_straightening_angle label"
@ -2052,7 +2055,7 @@ msgstr "Rechtbuighoek bliksemvulling"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle description" msgctxt "lightning_infill_straightening_angle description"
msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line." msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line."
msgstr "" msgstr "De vullijnen zijn rechtgetrokken om printtijd te besparen. Dit is de grootste overhanghoek die over de lengte van de vullijn is toegestaan."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material label" msgctxt "material label"

File diff suppressed because it is too large Load diff

View file

@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: Cura 4.13\n" "Project-Id-Version: Cura 4.13\n"
"Report-Msgid-Bugs-To: plugins@ultimaker.com\n" "Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-12-10 11:59+0000\n" "POT-Creation-Date: 2021-12-10 11:59+0000\n"
"PO-Revision-Date: 2021-11-04 08:29+0100\n" "PO-Revision-Date: 2022-01-04 05:45+0100\n"
"Last-Translator: Cláudio Sampaio <patola@gmail.com>\n" "Last-Translator: Cláudio Sampaio <patola@gmail.com>\n"
"Language-Team: Cláudio Sampaio <patola@gmail.com>\n" "Language-Team: Cláudio Sampaio <patola@gmail.com>\n"
"Language: pt_BR\n" "Language: pt_BR\n"
@ -563,7 +563,7 @@ msgstr "A velocidade máxima para o motor da impressora na direção Z."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e label" msgctxt "machine_max_feedrate_e label"
msgid "Maximum Speed E" msgid "Maximum Speed E"
msgstr "" msgstr "Velocidade Máxima de Extrusão"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e description" msgctxt "machine_max_feedrate_e description"
@ -1733,7 +1733,7 @@ msgstr "Padrão de Preenchimento"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern description" msgctxt "infill_pattern description"
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object." msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object."
msgstr "" msgstr "O padrão do material de preenchimento da impressão. Os preenchimentos de linha e ziguezague trocam de direção em camadas alternadas, reduzindo custo de material. Os padrões de grade, triângulo, tri-hexágono, cúbico, octeto, quarto cúbico, cruzado e concêntrico são completamente impressos a cada camada. Os preenchimentos giroide, cúbico, quarto cúbico e octeto mudam a cada camada para prover uma distribuição de força mais uniforme em cada direção. O preenchimento de relâmpago tenta minimizar material somente suportando o teto do objeto."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern option grid" msgctxt "infill_pattern option grid"
@ -2047,7 +2047,7 @@ msgstr "Ângulo de Poda do Preenchimento Relâmpago"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_prune_angle description" msgctxt "lightning_infill_prune_angle description"
msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines." msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines."
msgstr "" msgstr "As pontas dos filetes de preenchimento são encurtadas para poupar material. Este ajuste é o ângulo da seção pendente das pontas desses filetes."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle label" msgctxt "lightning_infill_straightening_angle label"
@ -2057,7 +2057,7 @@ msgstr "Ângulo de Retificação do Preenchimento Relâmpago"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle description" msgctxt "lightning_infill_straightening_angle description"
msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line." msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line."
msgstr "" msgstr "Os filetes de preenchimentos são retificados para poupar tempo de impressão. Este é o ângulo máximo de seção pendente permito através do comprimento do filete de preenchimento."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material label" msgctxt "material label"

View file

@ -61,7 +61,7 @@ msgstr "Novos materiais instalados"
#: /home/clamboo/Desktop/Cura/cura/Machines/Models/MaterialManagementModel.py:63 #: /home/clamboo/Desktop/Cura/cura/Machines/Models/MaterialManagementModel.py:63
msgctxt "@action:button" msgctxt "@action:button"
msgid "Sync materials with printers" msgid "Sync materials with printers"
msgstr "Sincronizar materiais com impressoras" msgstr "Sincronizar materiais"
#: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:82 #: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:82
#: /home/clamboo/Desktop/Cura/cura/Machines/Models/MaterialManagementModel.py:71 #: /home/clamboo/Desktop/Cura/cura/Machines/Models/MaterialManagementModel.py:71
@ -83,7 +83,7 @@ msgstr "Erro ao guardar o arquivo de material"
#: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:188 #: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:188
msgctxt "@text" msgctxt "@text"
msgid "Unknown error." msgid "Unknown error."
msgstr "" msgstr "Erro desconhecido."
#: /home/clamboo/Desktop/Cura/cura/BuildVolume.py:99 #: /home/clamboo/Desktop/Cura/cura/BuildVolume.py:99
msgctxt "@info:status" msgctxt "@info:status"
@ -231,35 +231,35 @@ msgstr "Não é Possível Posicionar"
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:104 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:104
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to create archive of materials to sync with printers." msgid "Failed to create archive of materials to sync with printers."
msgstr "" msgstr "Não foi possível criar o ficheiro de materiais para sincronizar com as impressoras."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:111 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:111
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:165 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:165
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to load the archive of materials to sync it with printers." msgid "Failed to load the archive of materials to sync it with printers."
msgstr "" msgstr "Não foi possível carregar o ficheiro de materiais para sincronizá-lo com as impressoras."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:143 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:143
msgctxt "@text:error" msgctxt "@text:error"
msgid "The response from Digital Factory appears to be corrupted." msgid "The response from Digital Factory appears to be corrupted."
msgstr "" msgstr "A resposta da Digital Factory parece estar corrompida."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:147 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:147
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:151 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:151
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:155 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:155
msgctxt "@text:error" msgctxt "@text:error"
msgid "The response from Digital Factory is missing important information." msgid "The response from Digital Factory is missing important information."
msgstr "" msgstr "A resposta da Digital Factory tem informações importantes em falta."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:218 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:218
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to connect to Digital Factory to sync materials with some of the printers." msgid "Failed to connect to Digital Factory to sync materials with some of the printers."
msgstr "" msgstr "Não foi possível estabelecer a ligação com a Digital Factory para poder sincronizar os materiais com algumas das impressoras."
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:232 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:232
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to connect to Digital Factory." msgid "Failed to connect to Digital Factory."
msgstr "" msgstr "Não foi possível estabelecer a ligação com a Digital Factory."
#: /home/clamboo/Desktop/Cura/cura/CuraApplication.py:530 #: /home/clamboo/Desktop/Cura/cura/CuraApplication.py:530
msgctxt "@info:progress" msgctxt "@info:progress"
@ -616,7 +616,7 @@ msgstr "Não é possível aceder ao servidor da conta Ultimaker."
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationService.py:278 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationService.py:278
msgctxt "@info:title" msgctxt "@info:title"
msgid "Log-in failed" msgid "Log-in failed"
msgstr "" msgstr "O Log-in falhou"
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:75 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:75
msgctxt "@message" msgctxt "@message"
@ -626,7 +626,7 @@ msgstr "O estado apresentado não está correto."
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:80 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:80
msgctxt "@message" msgctxt "@message"
msgid "Timeout when authenticating with the account server." msgid "Timeout when authenticating with the account server."
msgstr "" msgstr "Foi excedido o tempo limite de autenticação com o servidor."
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:97 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:97
msgctxt "@message" msgctxt "@message"
@ -1751,7 +1751,7 @@ msgstr "O plug-in Gravador 3MF está danificado."
#: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:37 #: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:37
msgctxt "@error" msgctxt "@error"
msgid "There is no workspace yet to write. Please add a printer first." msgid "There is no workspace yet to write. Please add a printer first."
msgstr "" msgstr "Ainda não existe um espaço de trabalho para gravar. Por favor, primeiro adicione uma impressora."
#: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:64 #: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:64
#: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:97 #: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:97
@ -3133,7 +3133,7 @@ msgstr "Cancelado"
#: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:100 #: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:100
msgctxt "@label:status" msgctxt "@label:status"
msgid "Failed" msgid "Failed"
msgstr "" msgstr "Falhou"
#: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:102 #: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:102
msgctxt "@label:status" msgctxt "@label:status"
@ -3468,12 +3468,12 @@ msgstr "A processar"
#: /home/clamboo/Desktop/Cura/resources/qml/ActionPanel/SliceProcessWidget.qml:121 #: /home/clamboo/Desktop/Cura/resources/qml/ActionPanel/SliceProcessWidget.qml:121
msgctxt "@button" msgctxt "@button"
msgid "Slice" msgid "Slice"
msgstr "Segmentação" msgstr "Seccionar"
#: /home/clamboo/Desktop/Cura/resources/qml/ActionPanel/SliceProcessWidget.qml:122 #: /home/clamboo/Desktop/Cura/resources/qml/ActionPanel/SliceProcessWidget.qml:122
msgctxt "@label" msgctxt "@label"
msgid "Start the slicing process" msgid "Start the slicing process"
msgstr "Iniciar o processo de segmentação" msgstr "Iniciar o processo de seccionamento"
#: /home/clamboo/Desktop/Cura/resources/qml/ActionPanel/SliceProcessWidget.qml:136 #: /home/clamboo/Desktop/Cura/resources/qml/ActionPanel/SliceProcessWidget.qml:136
msgctxt "@button" msgctxt "@button"
@ -3726,7 +3726,7 @@ msgstr "Utilização do material"
#: /home/clamboo/Desktop/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:83 #: /home/clamboo/Desktop/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:83
msgctxt "@text" msgctxt "@text"
msgid "Number of slices" msgid "Number of slices"
msgstr "Número de segmentos" msgstr "Número de Secções"
#: /home/clamboo/Desktop/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:89 #: /home/clamboo/Desktop/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:89
msgctxt "@text" msgctxt "@text"
@ -4325,12 +4325,12 @@ msgstr "Utilizar cola para melhor aderência com esta combinação de materiais.
#: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:102 #: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:102
msgctxt "@tooltip" msgctxt "@tooltip"
msgid "The configuration of this extruder is not allowed, and prohibits slicing." msgid "The configuration of this extruder is not allowed, and prohibits slicing."
msgstr "" msgstr "A configuração deste extrusor não é permitida o que impede o seccionamento."
#: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:106 #: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:106
msgctxt "@tooltip" msgctxt "@tooltip"
msgid "There are no profiles matching the configuration of this extruder." msgid "There are no profiles matching the configuration of this extruder."
msgstr "" msgstr "Não existem perfis que correspondam à configuração deste extrusor."
#: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:253 #: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:253
msgctxt "@label" msgctxt "@label"
@ -5070,157 +5070,158 @@ msgstr "Material exportado com êxito para <filename>%1</filename>"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:17 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:17
msgctxt "@title:window" msgctxt "@title:window"
msgid "Sync materials with printers" msgid "Sync materials with printers"
msgstr "" msgstr "Sincronizar materiais com impressoras"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:47 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:47
msgctxt "@title:header" msgctxt "@title:header"
msgid "Sync materials with printers" msgid "Sync materials with printers"
msgstr "" msgstr "Sincronizar materiais com impressoras"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:53 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:53
msgctxt "@text" msgctxt "@text"
msgid "Following a few simple steps, you will be able to synchronize all your material profiles with your printers." msgid "Following a few simple steps, you will be able to synchronize all your material profiles with your printers."
msgstr "" msgstr "Com alguns passos simples poderá sincronizar todos os seus perfis de materiais com as suas impressoras."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:77 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:77
msgctxt "@button" msgctxt "@button"
msgid "Start" msgid "Start"
msgstr "" msgstr "Começar"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:98 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:98
msgctxt "@button" msgctxt "@button"
msgid "Why do I need to sync material profiles?" msgid "Why do I need to sync material profiles?"
msgstr "" msgstr "Por que motivo tenho de sincronizar os perfis de materiais?"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:130 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:130
msgctxt "@title:header" msgctxt "@title:header"
msgid "Sign in" msgid "Sign in"
msgstr "" msgstr "Iniciar sessão"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:137 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:137
msgctxt "@text" msgctxt "@text"
msgid "To automatically sync the material profiles with all your printers connected to Digital Factory you need to be signed in in Cura." msgid "To automatically sync the material profiles with all your printers connected to Digital Factory you need to be signed in in Cura."
msgstr "" msgstr "Para sincronizar automaticamente os perfis de materiais com todas as impressoras ligadas à Digital Factory, tem de ter uma sessão iniciada no Cura."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:165 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:165
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:476 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:476
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:611 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:611
msgctxt "@button" msgctxt "@button"
msgid "Sync materials with USB" msgid "Sync materials with USB"
msgstr "" msgstr "Sincronizar materiais através de USB"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:200 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:200
msgctxt "@title:header" msgctxt "@title:header"
msgid "The following printers will receive the new material profiles:" msgid "The following printers will receive the new material profiles:"
msgstr "" msgstr "As seguintes impressoras vão receber os novos perfis de materiais:"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:207 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:207
msgctxt "@title:header" msgctxt "@title:header"
msgid "Something went wrong when sending the materials to the printers." msgid "Something went wrong when sending the materials to the printers."
msgstr "" msgstr "Ocorreu um problema ao enviar os materiais para as impressoras."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:214 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:214
msgctxt "@title:header" msgctxt "@title:header"
msgid "Material profiles successfully synced with the following printers:" msgid "Material profiles successfully synced with the following printers:"
msgstr "" msgstr "Perfis de materiais foram sincronizados com êxito com as seguintes impressoras:"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:256 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:256
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:444 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:444
msgctxt "@button" msgctxt "@button"
msgid "Troubleshooting" msgid "Troubleshooting"
msgstr "" msgstr "Resolução de problemas"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:432 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:432
msgctxt "@text Asking the user whether printers are missing in a list." msgctxt "@text Asking the user whether printers are missing in a list."
msgid "Printers missing?" msgid "Printers missing?"
msgstr "" msgstr "Faltam impressoras?"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:434 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:434
msgctxt "@text" msgctxt "@text"
msgid "Make sure all your printers are turned ON and connected to Digital Factory." msgid "Make sure all your printers are turned ON and connected to Digital Factory."
msgstr "" msgstr "Certifique-se de que todas as impressoras estão ON e ligadas com a Digital Factory."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:457 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:457
msgctxt "@button" msgctxt "@button"
msgid "Refresh List" msgid "Refresh List"
msgstr "" msgstr "Atualizar lista"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:487 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:487
msgctxt "@button" msgctxt "@button"
msgid "Try again" msgid "Try again"
msgstr "" msgstr "Tente novamente"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:491 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:491
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716
msgctxt "@button" msgctxt "@button"
msgid "Done" msgid "Done"
msgstr "" msgstr "Concluído"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:493 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:493
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:618 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:618
msgctxt "@button" msgctxt "@button"
msgid "Sync" msgid "Sync"
msgstr "" msgstr "Sincronizar"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:549 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:549
msgctxt "@button" msgctxt "@button"
msgid "Syncing" msgid "Syncing"
msgstr "" msgstr "A sincronizar"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:566 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:566
msgctxt "@title:header" msgctxt "@title:header"
msgid "No printers found" msgid "No printers found"
msgstr "" msgstr "Não foi encontrada nenhuma impressora"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:582 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:582
msgctxt "@text" msgctxt "@text"
msgid "It seems like you don't have any compatible printers connected to Digital Factory. Make sure your printer is connected and it's running the latest firmware." msgid "It seems like you don't have any compatible printers connected to Digital Factory. Make sure your printer is connected and it's running the latest firmware."
msgstr "" msgstr "Parece que não tem nenhuma impressora compatível ligada com a Digital Factory. Certifique-se de que a impressora está ligada e que tem o firmware mais"
" recente instalado."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:595 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:595
msgctxt "@button" msgctxt "@button"
msgid "Learn how to connect your printer to Digital Factory" msgid "Learn how to connect your printer to Digital Factory"
msgstr "" msgstr "Saiba como ligar a sua impressora à Digital Factory"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:625 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:625
msgctxt "@button" msgctxt "@button"
msgid "Refresh" msgid "Refresh"
msgstr "" msgstr "Atualizar"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:647 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:647
msgctxt "@title:header" msgctxt "@title:header"
msgid "Sync material profiles via USB" msgid "Sync material profiles via USB"
msgstr "" msgstr "Sincronizar perfis de materiais via USB"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:654 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:654
msgctxt "@text In the UI this is followed by a list of steps the user needs to take." msgctxt "@text In the UI this is followed by a list of steps the user needs to take."
msgid "Follow the following steps to load the new material profiles to your printer." msgid "Follow the following steps to load the new material profiles to your printer."
msgstr "" msgstr "Siga os seguintes passos para instalar os novos perfis de materiais na sua impressora."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:679 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:679
msgctxt "@text" msgctxt "@text"
msgid "Click the export material archive button." msgid "Click the export material archive button."
msgstr "" msgstr "Clique no botão para exportar o ficheiro de material."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:680 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:680
msgctxt "@text" msgctxt "@text"
msgid "Save the .umm file on a USB stick." msgid "Save the .umm file on a USB stick."
msgstr "" msgstr "Guarde o ficheiro .umm numa unidade USB."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:681 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:681
msgctxt "@text" msgctxt "@text"
msgid "Insert the USB stick into your printer and launch the procedure to load new material profiles." msgid "Insert the USB stick into your printer and launch the procedure to load new material profiles."
msgstr "" msgstr "Insira a unidade USB na impressora e inicie o procedimento para carregar novos perfis de materiais."
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:692 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:692
msgctxt "@button" msgctxt "@button"
msgid "How to load new material profiles to my printer" msgid "How to load new material profiles to my printer"
msgstr "" msgstr "Como carregar novos perfis de materiais para a minha impressora"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716
msgctxt "@button" msgctxt "@button"
msgid "Export material archive" msgid "Export material archive"
msgstr "" msgstr "Exportar ficheiro de material"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:753 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:753
msgctxt "@title:window" msgctxt "@title:window"

View file

@ -57,7 +57,7 @@ msgctxt "machine_start_gcode description"
msgid "" msgid ""
"G-code commands to be executed at the very start - separated by \n" "G-code commands to be executed at the very start - separated by \n"
"." "."
msgstr "" msgstr "Comandos G-code a serem executados no início separados por \n."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_end_gcode label" msgctxt "machine_end_gcode label"
@ -69,7 +69,7 @@ msgctxt "machine_end_gcode description"
msgid "" msgid ""
"G-code commands to be executed at the very end - separated by \n" "G-code commands to be executed at the very end - separated by \n"
"." "."
msgstr "" msgstr "Comandos G-code a serem executados no fim separados por \n."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material_guid label" msgctxt "material_guid label"
@ -563,7 +563,7 @@ msgstr "A velocidade máxima do motor da direção Z."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e label" msgctxt "machine_max_feedrate_e label"
msgid "Maximum Speed E" msgid "Maximum Speed E"
msgstr "" msgstr "Velocidade Máxima de E"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e description" msgctxt "machine_max_feedrate_e description"
@ -1783,7 +1783,10 @@ msgstr "Padrão de Enchimento"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern description" msgctxt "infill_pattern description"
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object." msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object."
msgstr "" msgstr "O padrão do material de enchimento da impressão. A linha e o enchimento em ziguezague mudam de direção em camadas alternativas, o que reduz o custo do"
" material. Os padrões de grelha, triângulo, tri-hexágono, cubo, octeto, quarto cúbico, cruz e concêntrico são totalmente impressos em cada camada. Os enchimentos"
" gyroid, cúbico, quarto cúbico e octeto mudam em cada camada para proporcionar uma distribuição mais uniforme da resistência em cada direção. O enchimento"
" relâmpago tenta minimizar o enchimento, ao suportar apenas a parte superior do objeto."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern option grid" msgctxt "infill_pattern option grid"
@ -2100,7 +2103,7 @@ msgstr "Ângulo de corte do enchimento relâmpago"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_prune_angle description" msgctxt "lightning_infill_prune_angle description"
msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines." msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines."
msgstr "" msgstr "As extremidades das linhas de enchimento são encurtadas para poupar material. Esta definição é o ângulo da saliência das extremidades destas linhas."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle label" msgctxt "lightning_infill_straightening_angle label"
@ -2110,7 +2113,7 @@ msgstr "Ângulo de alisamento do enchimento relâmpago"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle description" msgctxt "lightning_infill_straightening_angle description"
msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line." msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line."
msgstr "" msgstr "As linhas de enchimento são simplificadas para poupar tempo de impressão. Este é o ângulo máximo permitido de saliência ao longo da linha de enchimento."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material label" msgctxt "material label"

File diff suppressed because it is too large Load diff

View file

@ -57,7 +57,7 @@ msgctxt "machine_start_gcode description"
msgid "" msgid ""
"G-code commands to be executed at the very start - separated by \n" "G-code commands to be executed at the very start - separated by \n"
"." "."
msgstr "" msgstr "Команды в G-коде, которые будут выполнены в самом начале, разделенные с помощью \n."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_end_gcode label" msgctxt "machine_end_gcode label"
@ -69,7 +69,7 @@ msgctxt "machine_end_gcode description"
msgid "" msgid ""
"G-code commands to be executed at the very end - separated by \n" "G-code commands to be executed at the very end - separated by \n"
"." "."
msgstr "" msgstr "Команды в G-коде, которые будут выполнены в самом конце, разделенные с помощью \n."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material_guid label" msgctxt "material_guid label"
@ -559,7 +559,7 @@ msgstr "Максимальная скорость для мотора оси Z."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e label" msgctxt "machine_max_feedrate_e label"
msgid "Maximum Speed E" msgid "Maximum Speed E"
msgstr "" msgstr "Максимальная скорость по оси E"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e description" msgctxt "machine_max_feedrate_e description"
@ -1729,7 +1729,10 @@ msgstr "Шаблон заполнения"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern description" msgctxt "infill_pattern description"
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object." msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object."
msgstr "" msgstr "Шаблон заполняющего материала печати. Линейное и зигзагообразное заполнение меняет направление на чередующихся слоях, снижая расходы на материал. Шаблоны"
" «сетка», «треугольник», «шестигранник из треугольников», «куб», «восьмигранник», «четверть куба», «крестовое», «концентрическое» полностью печатаются"
" в каждом слое. Шаблоны заполнения «гироид», «куб», «четверть куба» и «восьмигранник» меняются в каждом слое, чтобы обеспечить более равномерное распределение"
" прочности в каждом направлении. Шаблон заполнения «молния» пытается минимизировать заполнение, поддерживая только верхнюю область объекта."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern option grid" msgctxt "infill_pattern option grid"
@ -2043,7 +2046,7 @@ msgstr "Угол обрезки шаблона заполнения «молни
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_prune_angle description" msgctxt "lightning_infill_prune_angle description"
msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines." msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines."
msgstr "" msgstr "Конечные точки линий заполнения укорачиваются для экономии материала. Эта настройка представляет собой угол нависания конечных точек этих линий."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle label" msgctxt "lightning_infill_straightening_angle label"
@ -2053,7 +2056,7 @@ msgstr "Угол выпрямления шаблона заполнения «м
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle description" msgctxt "lightning_infill_straightening_angle description"
msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line." msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line."
msgstr "" msgstr "Линии заполнения выравниваются для сокращения время печати. Это максимально допустимый угол нависания по всей длине линии заполнения."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material label" msgctxt "material label"

File diff suppressed because it is too large Load diff

View file

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: Cura 4.13\n" "Project-Id-Version: Cura 4.13\n"
"Report-Msgid-Bugs-To: plugins@ultimaker.com\n" "Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-12-10 11:59+0000\n" "POT-Creation-Date: 2021-12-10 11:59+0000\n"
"PO-Revision-Date: 2021-04-16 15:03+0200\n" "PO-Revision-Date: 2022-01-10 12:00+0100\n"
"Last-Translator: Lionbridge <info@lionbridge.com>\n" "Last-Translator: Lionbridge <info@lionbridge.com>\n"
"Language-Team: Turkish <info@lionbridge.com>, Turkish <info@bothof.nl>\n" "Language-Team: Turkish <info@lionbridge.com>, Turkish <info@bothof.nl>\n"
"Language: tr_TR\n" "Language: tr_TR\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.4.1\n" "X-Generator: Poedit 2.3\n"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_settings label" msgctxt "machine_settings label"
@ -57,6 +57,8 @@ msgid ""
"G-code commands to be executed at the very start - separated by \n" "G-code commands to be executed at the very start - separated by \n"
"." "."
msgstr "" msgstr ""
"ile ayrılan, başlangıçta yürütülecek G-code komutları\n"
"."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_end_gcode label" msgctxt "machine_end_gcode label"
@ -69,6 +71,8 @@ msgid ""
"G-code commands to be executed at the very end - separated by \n" "G-code commands to be executed at the very end - separated by \n"
"." "."
msgstr "" msgstr ""
"Ile ayrılan, bitişte yürütülecek G-code komutları\n"
"."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material_guid label" msgctxt "material_guid label"
@ -558,7 +562,7 @@ msgstr "Z yönü motoru için maksimum hız."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e label" msgctxt "machine_max_feedrate_e label"
msgid "Maximum Speed E" msgid "Maximum Speed E"
msgstr "" msgstr "Maksimum Hız E"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e description" msgctxt "machine_max_feedrate_e description"
@ -1728,7 +1732,7 @@ msgstr "Dolgu Şekli"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern description" msgctxt "infill_pattern description"
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object." msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object."
msgstr "" msgstr "Baskının dolgu malzemesinin şeklidir. Hat ve zikzak dolgu, farklı katmanlar üzerinde yön değiştirerek malzeme maliyetini azaltır. Izgara, üçgen, üçlü altıgen, kübik, sekizlik, çeyrek kübik, çapraz ve eşmerkezli şekiller her katmana tam olarak basılır. Gyroid, kübik, çeyrek kübik ve sekizlik dolgu, her yönde daha eşit bir kuvvet dağılımı sağlamak için her katmanda değişir. Yıldırım dolgu, objenin yalnızca tavanını destekleyerek dolgu miktarını en aza indirmeye çalışır."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern option grid" msgctxt "infill_pattern option grid"
@ -2042,7 +2046,7 @@ msgstr "Yıldırım Dolgu Budama Açısı"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_prune_angle description" msgctxt "lightning_infill_prune_angle description"
msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines." msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines."
msgstr "" msgstr "Malzemeden tasarruf etmek için dolgu hatlarının uç noktaları kısaltılır. Bu ayar, bu hatların uç noktalarının çıkıntıısıdır."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle label" msgctxt "lightning_infill_straightening_angle label"
@ -2052,7 +2056,7 @@ msgstr "Yıldırım Dolgu Düzleştirme Açısı"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle description" msgctxt "lightning_infill_straightening_angle description"
msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line." msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line."
msgstr "" msgstr "Dolgu hatları, baskı süresinden tasarruf etmek için düzleştirilir. Bu, dolgu hattının uzunluğu boyunca izin verilen maksimum çıkıntıısıdır."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material label" msgctxt "material label"

View file

@ -83,7 +83,7 @@ msgstr "未能保存材料存档"
#: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:188 #: /home/clamboo/Desktop/Cura/cura/UltimakerCloud/CloudMaterialSync.py:188
msgctxt "@text" msgctxt "@text"
msgid "Unknown error." msgid "Unknown error."
msgstr "" msgstr "未知错误。"
#: /home/clamboo/Desktop/Cura/cura/BuildVolume.py:99 #: /home/clamboo/Desktop/Cura/cura/BuildVolume.py:99
msgctxt "@info:status" msgctxt "@info:status"
@ -228,35 +228,35 @@ msgstr "找不到位置"
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:104 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:104
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to create archive of materials to sync with printers." msgid "Failed to create archive of materials to sync with printers."
msgstr "" msgstr "无法创建材料存档以与打印机同步。"
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:111 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:111
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:165 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:165
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to load the archive of materials to sync it with printers." msgid "Failed to load the archive of materials to sync it with printers."
msgstr "" msgstr "无法加载材料存档以与打印机同步。"
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:143 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:143
msgctxt "@text:error" msgctxt "@text:error"
msgid "The response from Digital Factory appears to be corrupted." msgid "The response from Digital Factory appears to be corrupted."
msgstr "" msgstr "来自 Digital Factory 的响应似乎已损坏。"
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:147 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:147
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:151 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:151
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:155 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:155
msgctxt "@text:error" msgctxt "@text:error"
msgid "The response from Digital Factory is missing important information." msgid "The response from Digital Factory is missing important information."
msgstr "" msgstr "来自 Digital Factory 的响应缺少重要信息。"
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:218 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:218
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to connect to Digital Factory to sync materials with some of the printers." msgid "Failed to connect to Digital Factory to sync materials with some of the printers."
msgstr "" msgstr "无法通过 Digital Factory 为某些打印机同步材料配置文件。"
#: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:232 #: /home/clamboo/Desktop/Cura/cura/PrinterOutput/UploadMaterialsJob.py:232
msgctxt "@text:error" msgctxt "@text:error"
msgid "Failed to connect to Digital Factory." msgid "Failed to connect to Digital Factory."
msgstr "" msgstr "无法连接至 Digital Factory。"
#: /home/clamboo/Desktop/Cura/cura/CuraApplication.py:530 #: /home/clamboo/Desktop/Cura/cura/CuraApplication.py:530
msgctxt "@info:progress" msgctxt "@info:progress"
@ -606,7 +606,7 @@ msgstr "无法连接 Ultimaker 帐户服务器。"
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationService.py:278 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationService.py:278
msgctxt "@info:title" msgctxt "@info:title"
msgid "Log-in failed" msgid "Log-in failed"
msgstr "" msgstr "登录失败"
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:75 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:75
msgctxt "@message" msgctxt "@message"
@ -616,7 +616,7 @@ msgstr "所提供的状态不正确。"
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:80 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:80
msgctxt "@message" msgctxt "@message"
msgid "Timeout when authenticating with the account server." msgid "Timeout when authenticating with the account server."
msgstr "" msgstr "使用帐户服务器进行身份验证超时。"
#: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:97 #: /home/clamboo/Desktop/Cura/cura/OAuth2/AuthorizationRequestHandler.py:97
msgctxt "@message" msgctxt "@message"
@ -1734,7 +1734,7 @@ msgstr "3MF 编写器插件已损坏。"
#: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:37 #: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:37
msgctxt "@error" msgctxt "@error"
msgid "There is no workspace yet to write. Please add a printer first." msgid "There is no workspace yet to write. Please add a printer first."
msgstr "" msgstr "没有可写入的工作区。请先添加打印机。"
#: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:64 #: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:64
#: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:97 #: /home/clamboo/Desktop/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:97
@ -3104,7 +3104,7 @@ msgstr "已中止"
#: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:100 #: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:100
msgctxt "@label:status" msgctxt "@label:status"
msgid "Failed" msgid "Failed"
msgstr "" msgstr "失败"
#: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:102 #: /home/clamboo/Desktop/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml:102
msgctxt "@label:status" msgctxt "@label:status"
@ -4287,12 +4287,12 @@ msgstr "用胶粘和此材料组合以产生更好的附着。"
#: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:102 #: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:102
msgctxt "@tooltip" msgctxt "@tooltip"
msgid "The configuration of this extruder is not allowed, and prohibits slicing." msgid "The configuration of this extruder is not allowed, and prohibits slicing."
msgstr "" msgstr "不允许此挤出器的配置并禁止切片。"
#: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:106 #: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:106
msgctxt "@tooltip" msgctxt "@tooltip"
msgid "There are no profiles matching the configuration of this extruder." msgid "There are no profiles matching the configuration of this extruder."
msgstr "" msgstr "没有与此挤出器的配置匹配的配置文件。"
#: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:253 #: /home/clamboo/Desktop/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:253
msgctxt "@label" msgctxt "@label"
@ -5027,157 +5027,157 @@ msgstr "成功导出材料至: <filename>%1</filename>"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:17 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:17
msgctxt "@title:window" msgctxt "@title:window"
msgid "Sync materials with printers" msgid "Sync materials with printers"
msgstr "" msgstr "匹配材料和打印机"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:47 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:47
msgctxt "@title:header" msgctxt "@title:header"
msgid "Sync materials with printers" msgid "Sync materials with printers"
msgstr "" msgstr "匹配材料和打印机"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:53 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:53
msgctxt "@text" msgctxt "@text"
msgid "Following a few simple steps, you will be able to synchronize all your material profiles with your printers." msgid "Following a few simple steps, you will be able to synchronize all your material profiles with your printers."
msgstr "" msgstr "只需遵循几个简单步骤,您就可以将所有材料配置文件与打印机同步。"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:77 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:77
msgctxt "@button" msgctxt "@button"
msgid "Start" msgid "Start"
msgstr "" msgstr "开始"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:98 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:98
msgctxt "@button" msgctxt "@button"
msgid "Why do I need to sync material profiles?" msgid "Why do I need to sync material profiles?"
msgstr "" msgstr "为什么需要同步材料配置文件?"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:130 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:130
msgctxt "@title:header" msgctxt "@title:header"
msgid "Sign in" msgid "Sign in"
msgstr "" msgstr "登录"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:137 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:137
msgctxt "@text" msgctxt "@text"
msgid "To automatically sync the material profiles with all your printers connected to Digital Factory you need to be signed in in Cura." msgid "To automatically sync the material profiles with all your printers connected to Digital Factory you need to be signed in in Cura."
msgstr "" msgstr "要自动将材料配置文件与连接到 Digital Factory 的所有打印机同步,您需要登录 Cura。"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:165 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:165
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:476 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:476
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:611 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:611
msgctxt "@button" msgctxt "@button"
msgid "Sync materials with USB" msgid "Sync materials with USB"
msgstr "" msgstr "使用 USB 同步材料"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:200 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:200
msgctxt "@title:header" msgctxt "@title:header"
msgid "The following printers will receive the new material profiles:" msgid "The following printers will receive the new material profiles:"
msgstr "" msgstr "以下打印机将收到新的材料配置文件:"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:207 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:207
msgctxt "@title:header" msgctxt "@title:header"
msgid "Something went wrong when sending the materials to the printers." msgid "Something went wrong when sending the materials to the printers."
msgstr "" msgstr "向打印机发送材料时出错。"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:214 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:214
msgctxt "@title:header" msgctxt "@title:header"
msgid "Material profiles successfully synced with the following printers:" msgid "Material profiles successfully synced with the following printers:"
msgstr "" msgstr "材料配置文件与以下打印机成功同步:"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:256 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:256
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:444 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:444
msgctxt "@button" msgctxt "@button"
msgid "Troubleshooting" msgid "Troubleshooting"
msgstr "" msgstr "故障排除"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:432 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:432
msgctxt "@text Asking the user whether printers are missing in a list." msgctxt "@text Asking the user whether printers are missing in a list."
msgid "Printers missing?" msgid "Printers missing?"
msgstr "" msgstr "缺少打印机?"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:434 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:434
msgctxt "@text" msgctxt "@text"
msgid "Make sure all your printers are turned ON and connected to Digital Factory." msgid "Make sure all your printers are turned ON and connected to Digital Factory."
msgstr "" msgstr "请确保所有打印机都已打开并连接到 Digital Factory。"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:457 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:457
msgctxt "@button" msgctxt "@button"
msgid "Refresh List" msgid "Refresh List"
msgstr "" msgstr "刷新列表"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:487 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:487
msgctxt "@button" msgctxt "@button"
msgid "Try again" msgid "Try again"
msgstr "" msgstr "再试一次"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:491 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:491
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716
msgctxt "@button" msgctxt "@button"
msgid "Done" msgid "Done"
msgstr "" msgstr "完成"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:493 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:493
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:618 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:618
msgctxt "@button" msgctxt "@button"
msgid "Sync" msgid "Sync"
msgstr "" msgstr "同步"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:549 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:549
msgctxt "@button" msgctxt "@button"
msgid "Syncing" msgid "Syncing"
msgstr "" msgstr "正在同步"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:566 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:566
msgctxt "@title:header" msgctxt "@title:header"
msgid "No printers found" msgid "No printers found"
msgstr "" msgstr "未找到打印机"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:582 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:582
msgctxt "@text" msgctxt "@text"
msgid "It seems like you don't have any compatible printers connected to Digital Factory. Make sure your printer is connected and it's running the latest firmware." msgid "It seems like you don't have any compatible printers connected to Digital Factory. Make sure your printer is connected and it's running the latest firmware."
msgstr "" msgstr "您似乎没有任何兼容打印机连接到 Digital Factory。请确保打印机已连接并运行最新固件。"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:595 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:595
msgctxt "@button" msgctxt "@button"
msgid "Learn how to connect your printer to Digital Factory" msgid "Learn how to connect your printer to Digital Factory"
msgstr "" msgstr "了解如何将打印机连接到 Digital Factory"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:625 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:625
msgctxt "@button" msgctxt "@button"
msgid "Refresh" msgid "Refresh"
msgstr "" msgstr "刷新"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:647 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:647
msgctxt "@title:header" msgctxt "@title:header"
msgid "Sync material profiles via USB" msgid "Sync material profiles via USB"
msgstr "" msgstr "通过 USB 同步材料配置文件"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:654 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:654
msgctxt "@text In the UI this is followed by a list of steps the user needs to take." msgctxt "@text In the UI this is followed by a list of steps the user needs to take."
msgid "Follow the following steps to load the new material profiles to your printer." msgid "Follow the following steps to load the new material profiles to your printer."
msgstr "" msgstr "请遵循以下步骤将新材料配置文件加载到打印机。"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:679 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:679
msgctxt "@text" msgctxt "@text"
msgid "Click the export material archive button." msgid "Click the export material archive button."
msgstr "" msgstr "单击导出材料存档按钮。"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:680 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:680
msgctxt "@text" msgctxt "@text"
msgid "Save the .umm file on a USB stick." msgid "Save the .umm file on a USB stick."
msgstr "" msgstr "将 .umm文件保存到 U 盘。"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:681 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:681
msgctxt "@text" msgctxt "@text"
msgid "Insert the USB stick into your printer and launch the procedure to load new material profiles." msgid "Insert the USB stick into your printer and launch the procedure to load new material profiles."
msgstr "" msgstr "将 U 盘插入打印机,并启动程序以加载新材料配置文件。"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:692 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:692
msgctxt "@button" msgctxt "@button"
msgid "How to load new material profiles to my printer" msgid "How to load new material profiles to my printer"
msgstr "" msgstr "如何将新材料配置文件加载到打印机"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:716
msgctxt "@button" msgctxt "@button"
msgid "Export material archive" msgid "Export material archive"
msgstr "" msgstr "导出材料存档"
#: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:753 #: /home/clamboo/Desktop/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:753
msgctxt "@title:window" msgctxt "@title:window"

View file

@ -57,7 +57,7 @@ msgctxt "machine_start_gcode description"
msgid "" msgid ""
"G-code commands to be executed at the very start - separated by \n" "G-code commands to be executed at the very start - separated by \n"
"." "."
msgstr "" msgstr "在开始时执行的 G-code 命令 - 以 \n 分行。"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_end_gcode label" msgctxt "machine_end_gcode label"
@ -69,7 +69,7 @@ msgctxt "machine_end_gcode description"
msgid "" msgid ""
"G-code commands to be executed at the very end - separated by \n" "G-code commands to be executed at the very end - separated by \n"
"." "."
msgstr "" msgstr "在结束前执行的 G-code 命令 - 以 \n 分行。"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material_guid label" msgctxt "material_guid label"
@ -559,7 +559,7 @@ msgstr "Z 轴方向电机的最大速度。"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e label" msgctxt "machine_max_feedrate_e label"
msgid "Maximum Speed E" msgid "Maximum Speed E"
msgstr "" msgstr "E 轴最大速度"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e description" msgctxt "machine_max_feedrate_e description"
@ -1729,7 +1729,7 @@ msgstr "填充图案"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern description" msgctxt "infill_pattern description"
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object." msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object."
msgstr "" msgstr "打印的填充材料的图案。直线和锯齿形填充交替在各层上变换方向,从而降低材料成本。每层都完整地打印网格、三角形、三六边形、立方体、八角形、四分之一立方体、十字和同心图案。螺旋二十四面体、立方体、四分之一立方体和八角形填充随每层变化,以使各方向的强度分布更均衡。闪电形填充尝试通过仅支撑物体顶部,将填充程度降至最低。"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern option grid" msgctxt "infill_pattern option grid"
@ -2043,7 +2043,7 @@ msgstr "闪电形填充修剪角"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_prune_angle description" msgctxt "lightning_infill_prune_angle description"
msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines." msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines."
msgstr "" msgstr "为节省材料,填充线的端点将被缩短。此设置为这些线的端点形成的悬垂角度。"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle label" msgctxt "lightning_infill_straightening_angle label"
@ -2053,7 +2053,7 @@ msgstr "闪电形填充矫直角"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle description" msgctxt "lightning_infill_straightening_angle description"
msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line." msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line."
msgstr "" msgstr "为节省打印时间,填充线将被拉直。这是整条填充线上允许的最大悬垂角度。"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material label" msgctxt "material label"

File diff suppressed because it is too large Load diff

View file

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: Cura 4.13\n" "Project-Id-Version: Cura 4.13\n"
"Report-Msgid-Bugs-To: plugins@ultimaker.com\n" "Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-12-10 12:00+0000\n" "POT-Creation-Date: 2021-12-10 12:00+0000\n"
"PO-Revision-Date: 2021-04-16 20:13+0200\n" "PO-Revision-Date: 2022-01-02 19:59+0800\n"
"Last-Translator: Valen Chang <carf17771@gmail.com>\n" "Last-Translator: Valen Chang <carf17771@gmail.com>\n"
"Language-Team: Valen Chang <carf17771@gmail.com>/Zhang Heh Ji <dinowchang@gmail.com>\n" "Language-Team: Valen Chang <carf17771@gmail.com>\n"
"Language: zh_TW\n" "Language: zh_TW\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.4.1\n" "X-Generator: Poedit 3.0\n"
#: fdmextruder.def.json #: fdmextruder.def.json
msgctxt "machine_settings label" msgctxt "machine_settings label"

View file

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Cura 4.13\n" "Project-Id-Version: Cura 4.13\n"
"Report-Msgid-Bugs-To: plugins@ultimaker.com\n" "Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-12-10 11:59+0000\n" "POT-Creation-Date: 2021-12-10 11:59+0000\n"
"PO-Revision-Date: 2021-10-31 12:13+0800\n" "PO-Revision-Date: 2022-01-02 20:24+0800\n"
"Last-Translator: Valen Chang <carf17771@gmail.com>\n" "Last-Translator: Valen Chang <carf17771@gmail.com>\n"
"Language-Team: Valen Chang <carf17771@gmail.com>\n" "Language-Team: Valen Chang <carf17771@gmail.com>\n"
"Language: zh_TW\n" "Language: zh_TW\n"
@ -563,7 +563,7 @@ msgstr "Z 軸方向馬達的最大速度。"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e label" msgctxt "machine_max_feedrate_e label"
msgid "Maximum Speed E" msgid "Maximum Speed E"
msgstr "" msgstr "E 軸最大速度"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "machine_max_feedrate_e description" msgctxt "machine_max_feedrate_e description"
@ -1733,7 +1733,7 @@ msgstr "填充列印樣式"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern description" msgctxt "infill_pattern description"
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object." msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object."
msgstr "" msgstr "內部填充層的圖案。線形、鋸齒形填充在交替層間交換方向,已降低材料成本。網格、三角形、三角-六邊形、立方體、八面體、四分立方體、十字和同心圖案每個層間皆有列印。螺旋型、立方體、四分立方體和八面體的填充隨著每一層而變化,以在每個方向上提供更均勻的強度分佈。閃電型填充透過僅支撐物體的頂層來最小化填充。"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "infill_pattern option grid" msgctxt "infill_pattern option grid"
@ -2047,7 +2047,7 @@ msgstr "閃電形填充生成角度"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_prune_angle description" msgctxt "lightning_infill_prune_angle description"
msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines." msgid "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines."
msgstr "" msgstr "內部填充線的端點已被縮減以節省線材. 這個設定用於調整突出線的角度."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle label" msgctxt "lightning_infill_straightening_angle label"
@ -2057,7 +2057,7 @@ msgstr "閃電形填充層間垂直堆疊角度"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "lightning_infill_straightening_angle description" msgctxt "lightning_infill_straightening_angle description"
msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line." msgid "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line."
msgstr "" msgstr "填充線被拉直用以節省列印時間. 這是填充線長度上允許的最大突出角度."
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "material label" msgctxt "material label"
@ -2517,7 +2517,7 @@ msgstr "列印速度"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "speed_print description" msgctxt "speed_print description"
msgid "The speed at which printing happens." msgid "The speed at which printing happens."
msgstr "開始列印的速度。" msgstr "開始列印的速度。"
#: fdmprinter.def.json #: fdmprinter.def.json
msgctxt "speed_infill label" msgctxt "speed_infill label"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 872 KiB

View file

@ -146,8 +146,8 @@ Button
// Using parent.width is fine in fixedWidthMode. // Using parent.width is fine in fixedWidthMode.
target: buttonText target: buttonText
property: "width" property: "width"
value: button.fixedWidthMode ? button.width - button.leftPadding - button.rightPadding value: button.fixedWidthMode ? (button.width - button.leftPadding - button.rightPadding)
: ((maximumWidth != 0 && button.contentWidth > maximumWidth) ? maximumWidth : undefined) : ((button.maximumWidth != 0 && button.implicitContentWidth > button.maximumWidth) ? (button.maximumWidth - (button.width - button.implicitContentWidth) * 2) : undefined)
} }
} }

View file

@ -1,4 +1,4 @@
// Copyright (c) 2021 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
pragma Singleton pragma Singleton
@ -214,15 +214,15 @@ Item
Action Action
{ {
id: marketplaceMaterialsAction id: marketplaceMaterialsAction
text: catalog.i18nc("@action:inmenu", "Add more materials from Marketplace") text: catalog.i18nc("@action:inmenu Marketplace is a brand name of Ultimaker's, so don't translate.", "Add more materials from Marketplace")
} }
Action Action
{ {
id: updateProfileAction id: updateProfileAction
enabled: !Cura.MachineManager.stacksHaveErrors && Cura.MachineManager.hasUserSettings && Cura.MachineManager.activeQualityChangesGroup != null enabled: !Cura.MachineManager.stacksHaveErrors && Cura.MachineManager.hasUserSettings && Cura.MachineManager.activeQualityChangesGroup != null
text: catalog.i18nc("@action:inmenu menubar:profile","&Update profile with current settings/overrides") text: catalog.i18nc("@action:inmenu menubar:profile", "&Update profile with current settings/overrides");
onTriggered: Cura.ContainerManager.updateQualityChanges() onTriggered: Cura.ContainerManager.updateQualityChanges();
} }
Action Action
@ -479,7 +479,7 @@ Item
Action Action
{ {
id: browsePackagesAction id: browsePackagesAction
text: catalog.i18nc("@action:menu", "&Marketplace") text: "&Marketplace"
icon.name: "plugins_browse" icon.name: "plugins_browse"
} }
} }

View file

@ -5,7 +5,7 @@ import QtQuick 2.2
import QtQuick.Controls 2.9 import QtQuick.Controls 2.9
import QtQuick.Window 2.1 import QtQuick.Window 2.1
import UM 1.1 as UM import UM 1.5 as UM
UM.Dialog UM.Dialog
{ {
@ -89,81 +89,79 @@ UM.Dialog
anchors.topMargin: UM.Theme.getSize("default_margin").height anchors.topMargin: UM.Theme.getSize("default_margin").height
} }
ScrollView ListView
{ {
id: credits id: projectsList
anchors.top: creditsNotes.bottom anchors.top: creditsNotes.bottom
anchors.topMargin: UM.Theme.getSize("default_margin").height anchors.topMargin: UM.Theme.getSize("default_margin").height
width: parent.width width: parent.width
height: base.height - y - (2 * UM.Theme.getSize("default_margin").height + closeButton.height) height: base.height - y - (2 * UM.Theme.getSize("default_margin").height + closeButton.height)
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
ListView ScrollBar.vertical: UM.ScrollBar
{ {
id: projectsList id: projectsListScrollBar
}
width: parent.width delegate: Row
{
spacing: UM.Theme.getSize("narrow_margin").width
Label
{
text: "<a href='%1' title='%2'>%2</a>".arg(model.url).arg(model.name)
width: (projectsList.width * 0.25) | 0
elide: Text.ElideRight
onLinkActivated: Qt.openUrlExternally(link)
}
Label
{
text: model.description
elide: Text.ElideRight
width: ((projectsList.width * 0.6) | 0) - parent.spacing * 2 - projectsListScrollBar.width
}
Label
{
text: model.license
elide: Text.ElideRight
width: (projectsList.width * 0.15) | 0
}
}
model: ListModel
{
id: projectsModel
}
Component.onCompleted:
{
projectsModel.append({ name: "Cura", description: catalog.i18nc("@label", "Graphical user interface"), license: "LGPLv3", url: "https://github.com/Ultimaker/Cura" });
projectsModel.append({ name: "Uranium", description: catalog.i18nc("@label", "Application framework"), license: "LGPLv3", url: "https://github.com/Ultimaker/Uranium" });
projectsModel.append({ name: "CuraEngine", description: catalog.i18nc("@label", "G-code generator"), license: "AGPLv3", url: "https://github.com/Ultimaker/CuraEngine" });
projectsModel.append({ name: "libArcus", description: catalog.i18nc("@label", "Interprocess communication library"), license: "LGPLv3", url: "https://github.com/Ultimaker/libArcus" });
delegate: Row projectsModel.append({ name: "Python", description: catalog.i18nc("@label", "Programming language"), license: "Python", url: "http://python.org/" });
{ projectsModel.append({ name: "Qt5", description: catalog.i18nc("@label", "GUI framework"), license: "LGPLv3", url: "https://www.qt.io/" });
Label projectsModel.append({ name: "PyQt", description: catalog.i18nc("@label", "GUI framework bindings"), license: "GPL", url: "https://riverbankcomputing.com/software/pyqt" });
{ projectsModel.append({ name: "SIP", description: catalog.i18nc("@label", "C/C++ Binding library"), license: "GPL", url: "https://riverbankcomputing.com/software/sip" });
text: "<a href='%1' title='%2'>%2</a>".arg(model.url).arg(model.name) projectsModel.append({ name: "Protobuf", description: catalog.i18nc("@label", "Data interchange format"), license: "BSD", url: "https://developers.google.com/protocol-buffers" });
width: (projectsList.width * 0.25) | 0 projectsModel.append({ name: "SciPy", description: catalog.i18nc("@label", "Support library for scientific computing"), license: "BSD-new", url: "https://www.scipy.org/" });
elide: Text.ElideRight projectsModel.append({ name: "NumPy", description: catalog.i18nc("@label", "Support library for faster math"), license: "BSD", url: "http://www.numpy.org/" });
onLinkActivated: Qt.openUrlExternally(link) projectsModel.append({ name: "NumPy-STL", description: catalog.i18nc("@label", "Support library for handling STL files"), license: "BSD", url: "https://github.com/WoLpH/numpy-stl" });
} projectsModel.append({ name: "Trimesh", description: catalog.i18nc("@label", "Support library for handling triangular meshes"), license: "MIT", url: "https://trimsh.org" });
Label projectsModel.append({ name: "libSavitar", description: catalog.i18nc("@label", "Support library for handling 3MF files"), license: "LGPLv3", url: "https://github.com/ultimaker/libsavitar" });
{ projectsModel.append({ name: "libCharon", description: catalog.i18nc("@label", "Support library for file metadata and streaming"), license: "LGPLv3", url: "https://github.com/ultimaker/libcharon" });
text: model.description projectsModel.append({ name: "PySerial", description: catalog.i18nc("@label", "Serial communication library"), license: "Python", url: "http://pyserial.sourceforge.net/" });
elide: Text.ElideRight projectsModel.append({ name: "python-zeroconf", description: catalog.i18nc("@label", "ZeroConf discovery library"), license: "LGPL", url: "https://github.com/jstasiak/python-zeroconf" });
width: (projectsList.width * 0.6) | 0 projectsModel.append({ name: "Clipper", description: catalog.i18nc("@label", "Polygon clipping library"), license: "Boost", url: "http://www.angusj.com/delphi/clipper.php" });
} projectsModel.append({ name: "Pyclipper", description: catalog.i18nc("@label", "Python bindings for Clipper"), license: "MIT", url: "https://github.com/fonttools/pyclipper" });
Label projectsModel.append({ name: "mypy", description: catalog.i18nc("@Label", "Static type checker for Python"), license: "MIT", url: "http://mypy-lang.org/" });
{ projectsModel.append({ name: "certifi", description: catalog.i18nc("@Label", "Root Certificates for validating SSL trustworthiness"), license: "MPL", url: "https://github.com/certifi/python-certifi" });
text: model.license projectsModel.append({ name: "cryptography", description: catalog.i18nc("@Label", "Root Certificates for validating SSL trustworthiness"), license: "APACHE and BSD", url: "https://cryptography.io/" });
elide: Text.ElideRight projectsModel.append({ name: "Sentry", description: catalog.i18nc("@Label", "Python Error tracking library"), license: "BSD 2-Clause 'Simplified'", url: "https://sentry.io/for/python/" });
width: (projectsList.width * 0.15) | 0 projectsModel.append({ name: "libnest2d", description: catalog.i18nc("@label", "Polygon packing library, developed by Prusa Research"), license: "LGPL", url: "https://github.com/tamasmeszaros/libnest2d" });
} projectsModel.append({ name: "pynest2d", description: catalog.i18nc("@label", "Python bindings for libnest2d"), license: "LGPL", url: "https://github.com/Ultimaker/pynest2d" });
} projectsModel.append({ name: "keyring", description: catalog.i18nc("@label", "Support library for system keyring access"), license: "MIT", url: "https://github.com/jaraco/keyring" });
model: ListModel projectsModel.append({ name: "pywin32", description: catalog.i18nc("@label", "Python extensions for Microsoft Windows"), license: "PSF", url: "https://github.com/mhammond/pywin32" });
{ projectsModel.append({ name: "Noto Sans", description: catalog.i18nc("@label", "Font"), license: "Apache 2.0", url: "https://www.google.com/get/noto/" });
id: projectsModel projectsModel.append({ name: "Font-Awesome-SVG-PNG", description: catalog.i18nc("@label", "SVG icons"), license: "SIL OFL 1.1", url: "https://github.com/encharm/Font-Awesome-SVG-PNG" });
} projectsModel.append({ name: "AppImageKit", description: catalog.i18nc("@label", "Linux cross-distribution application deployment"), license: "MIT", url: "https://github.com/AppImage/AppImageKit" });
Component.onCompleted:
{
projectsModel.append({ name: "Cura", description: catalog.i18nc("@label", "Graphical user interface"), license: "LGPLv3", url: "https://github.com/Ultimaker/Cura" });
projectsModel.append({ name: "Uranium", description: catalog.i18nc("@label", "Application framework"), license: "LGPLv3", url: "https://github.com/Ultimaker/Uranium" });
projectsModel.append({ name: "CuraEngine", description: catalog.i18nc("@label", "G-code generator"), license: "AGPLv3", url: "https://github.com/Ultimaker/CuraEngine" });
projectsModel.append({ name: "libArcus", description: catalog.i18nc("@label", "Interprocess communication library"), license: "LGPLv3", url: "https://github.com/Ultimaker/libArcus" });
projectsModel.append({ name: "Python", description: catalog.i18nc("@label", "Programming language"), license: "Python", url: "http://python.org/" });
projectsModel.append({ name: "Qt5", description: catalog.i18nc("@label", "GUI framework"), license: "LGPLv3", url: "https://www.qt.io/" });
projectsModel.append({ name: "PyQt", description: catalog.i18nc("@label", "GUI framework bindings"), license: "GPL", url: "https://riverbankcomputing.com/software/pyqt" });
projectsModel.append({ name: "SIP", description: catalog.i18nc("@label", "C/C++ Binding library"), license: "GPL", url: "https://riverbankcomputing.com/software/sip" });
projectsModel.append({ name: "Protobuf", description: catalog.i18nc("@label", "Data interchange format"), license: "BSD", url: "https://developers.google.com/protocol-buffers" });
projectsModel.append({ name: "SciPy", description: catalog.i18nc("@label", "Support library for scientific computing"), license: "BSD-new", url: "https://www.scipy.org/" });
projectsModel.append({ name: "NumPy", description: catalog.i18nc("@label", "Support library for faster math"), license: "BSD", url: "http://www.numpy.org/" });
projectsModel.append({ name: "NumPy-STL", description: catalog.i18nc("@label", "Support library for handling STL files"), license: "BSD", url: "https://github.com/WoLpH/numpy-stl" });
projectsModel.append({ name: "Shapely", description: catalog.i18nc("@label", "Support library for handling planar objects"), license: "BSD", url: "https://github.com/Toblerity/Shapely" });
projectsModel.append({ name: "Trimesh", description: catalog.i18nc("@label", "Support library for handling triangular meshes"), license: "MIT", url: "https://trimsh.org" });
projectsModel.append({ name: "libSavitar", description: catalog.i18nc("@label", "Support library for handling 3MF files"), license: "LGPLv3", url: "https://github.com/ultimaker/libsavitar" });
projectsModel.append({ name: "libCharon", description: catalog.i18nc("@label", "Support library for file metadata and streaming"), license: "LGPLv3", url: "https://github.com/ultimaker/libcharon" });
projectsModel.append({ name: "PySerial", description: catalog.i18nc("@label", "Serial communication library"), license: "Python", url: "http://pyserial.sourceforge.net/" });
projectsModel.append({ name: "python-zeroconf", description: catalog.i18nc("@label", "ZeroConf discovery library"), license: "LGPL", url: "https://github.com/jstasiak/python-zeroconf" });
projectsModel.append({ name: "Clipper", description: catalog.i18nc("@label", "Polygon clipping library"), license: "Boost", url: "http://www.angusj.com/delphi/clipper.php" });
projectsModel.append({ name: "mypy", description: catalog.i18nc("@Label", "Static type checker for Python"), license: "MIT", url: "http://mypy-lang.org/" });
projectsModel.append({ name: "certifi", description: catalog.i18nc("@Label", "Root Certificates for validating SSL trustworthiness"), license: "MPL", url: "https://github.com/certifi/python-certifi" });
projectsModel.append({ name: "cryptography", description: catalog.i18nc("@Label", "Root Certificates for validating SSL trustworthiness"), license: "APACHE and BSD", url: "https://cryptography.io/" });
projectsModel.append({ name: "Sentry", description: catalog.i18nc("@Label", "Python Error tracking library"), license: "BSD 2-Clause 'Simplified'", url: "https://sentry.io/for/python/" });
projectsModel.append({ name: "libnest2d", description: catalog.i18nc("@label", "Polygon packing library, developed by Prusa Research"), license: "LGPL", url: "https://github.com/tamasmeszaros/libnest2d" });
projectsModel.append({ name: "pynest2d", description: catalog.i18nc("@label", "Python bindings for libnest2d"), license: "LGPL", url: "https://github.com/Ultimaker/pynest2d" });
projectsModel.append({ name: "keyring", description: catalog.i18nc("@label", "Support library for system keyring access"), license: "MIT", url: "https://github.com/jaraco/keyring" });
projectsModel.append({ name: "pywin32", description: catalog.i18nc("@label", "Python extensions for Microsoft Windows"), license: "PSF", url: "https://github.com/mhammond/pywin32" });
projectsModel.append({ name: "Noto Sans", description: catalog.i18nc("@label", "Font"), license: "Apache 2.0", url: "https://www.google.com/get/noto/" });
projectsModel.append({ name: "Font-Awesome-SVG-PNG", description: catalog.i18nc("@label", "SVG icons"), license: "SIL OFL 1.1", url: "https://github.com/encharm/Font-Awesome-SVG-PNG" });
projectsModel.append({ name: "AppImageKit", description: catalog.i18nc("@label", "Linux cross-distribution application deployment"), license: "MIT", url: "https://github.com/AppImage/AppImageKit" });
}
} }
} }

View file

@ -1,6 +1,7 @@
// Copyright (c) 2022 Ultimaker B.V. //Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. //Cura is released under the terms of the LGPLv3 or higher.
import Qt.labs.qmlmodels 1.0
import QtQuick 2.1 import QtQuick 2.1
import QtQuick.Controls 1.1 as OldControls import QtQuick.Controls 1.1 as OldControls
import QtQuick.Controls 2.15 import QtQuick.Controls 2.15
@ -8,7 +9,7 @@ import QtQuick.Dialogs 1.2
import QtQuick.Window 2.1 import QtQuick.Window 2.1
import UM 1.2 as UM import UM 1.2 as UM
import Cura 1.0 as Cura import Cura 1.6 as Cura
UM.Dialog UM.Dialog
{ {
@ -20,6 +21,8 @@ UM.Dialog
minimumWidth: UM.Theme.getSize("popup_dialog").width minimumWidth: UM.Theme.getSize("popup_dialog").width
minimumHeight: UM.Theme.getSize("popup_dialog").height minimumHeight: UM.Theme.getSize("popup_dialog").height
width: minimumWidth
height: minimumHeight
property var changesModel: Cura.UserChangesModel{ id: userChangesModel} property var changesModel: Cura.UserChangesModel{ id: userChangesModel}
onVisibilityChanged: onVisibilityChanged:
{ {
@ -70,72 +73,31 @@ UM.Dialog
anchors.bottom: optionRow.top anchors.bottom: optionRow.top
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
OldControls.TableView
Cura.TableView
{ {
anchors.fill: parent
height: base.height - 150
id: tableView id: tableView
Component anchors
{ {
id: labelDelegate top: parent.top
Label left: parent.left
{ right: parent.right
property var extruder_name: userChangesModel.getItem(styleData.row).extruder
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width
anchors.right: parent.right
elide: Text.ElideRight
font: UM.Theme.getFont("system")
text:
{
var result = styleData.value
if (extruder_name != "")
{
result += " (" + extruder_name + ")"
}
return result
}
}
} }
height: base.height - 150
Component columnHeaders: [
catalog.i18nc("@title:column", "Profile settings"),
Cura.MachineManager.activeQualityDisplayNameMap["main"],
catalog.i18nc("@title:column", "Current changes")
]
model: TableModel
{ {
id: defaultDelegate TableModelColumn { display: "label" }
Label TableModelColumn { display: "original_value" }
{ TableModelColumn { display: "user_value" }
text: styleData.value rows: userChangesModel.items
font: UM.Theme.getFont("system")
}
} }
sectionRole: "category"
OldControls.TableViewColumn
{
role: "label"
title: catalog.i18nc("@title:column", "Profile settings")
delegate: labelDelegate
width: (tableView.width * 0.4) | 0
}
OldControls.TableViewColumn
{
role: "original_value"
title: Cura.MachineManager.activeQualityDisplayNameMap["main"]
width: (tableView.width * 0.3) | 0
delegate: defaultDelegate
}
OldControls.TableViewColumn
{
role: "user_value"
title: catalog.i18nc("@title:column", "Current changes")
width: (tableView.width * 0.3) | 0
}
section.property: "category"
section.delegate: Label
{
text: section
font.bold: true
}
model: userChangesModel
} }
} }

View file

@ -1,4 +1,4 @@
// Copyright (c) 2021 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10 import QtQuick 2.10
@ -6,7 +6,7 @@ import QtQuick.Controls 2.9
import QtQuick.Layouts 1.3 import QtQuick.Layouts 1.3
import QtQuick.Window 2.2 import QtQuick.Window 2.2
import UM 1.2 as UM import UM 1.5 as UM
import Cura 1.0 as Cura import Cura 1.0 as Cura
UM.Dialog UM.Dialog
@ -81,6 +81,19 @@ UM.Dialog
bottom: controls.top bottom: controls.top
bottomMargin: UM.Theme.getSize("default_margin").height bottomMargin: UM.Theme.getSize("default_margin").height
} }
ScrollBar.vertical: UM.ScrollBar
{
parent: scroll
anchors
{
top: parent.top
right: parent.right
bottom: parent.bottom
}
}
clip: true
ColumnLayout ColumnLayout
{ {
spacing: UM.Theme.getSize("default_margin").height spacing: UM.Theme.getSize("default_margin").height

View file

@ -1,11 +1,11 @@
// Copyright (c) 2020 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10 import QtQuick 2.10
import QtQuick.Controls 2.3 import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3 import QtQuick.Layouts 1.3
import UM 1.3 as UM import UM 1.5 as UM
import Cura 1.1 as Cura import Cura 1.1 as Cura
@ -45,7 +45,7 @@ UM.TooltipArea
renderType: Text.NativeRendering renderType: Text.NativeRendering
} }
ScrollView Flickable
{ {
anchors.top: titleLabel.bottom anchors.top: titleLabel.bottom
anchors.topMargin: UM.Theme.getSize("default_margin").height anchors.topMargin: UM.Theme.getSize("default_margin").height
@ -53,26 +53,9 @@ UM.TooltipArea
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
background: Rectangle ScrollBar.vertical: UM.ScrollBar {}
{
color: UM.Theme.getColor("main_background")
anchors.fill: parent
border.color: TextArea.flickable: TextArea
{
if (!gcodeTextArea.enabled)
{
return UM.Theme.getColor("setting_control_disabled_border")
}
if (gcodeTextArea.hovered || gcodeTextArea.activeFocus)
{
return UM.Theme.getColor("setting_control_border_highlight")
}
return UM.Theme.getColor("setting_control_border")
}
}
TextArea
{ {
id: gcodeTextArea id: gcodeTextArea
@ -92,6 +75,27 @@ UM.TooltipArea
propertyProvider.setPropertyValue("value", text) propertyProvider.setPropertyValue("value", text)
} }
} }
background: Rectangle
{
color: UM.Theme.getColor("main_background")
anchors.fill: parent
anchors.margins: -border.width //Wrap the border around the parent.
border.color:
{
if (!gcodeTextArea.enabled)
{
return UM.Theme.getColor("setting_control_disabled_border")
}
if (gcodeTextArea.hovered || gcodeTextArea.activeFocus)
{
return UM.Theme.getColor("setting_control_border_highlight")
}
return UM.Theme.getColor("setting_control_border")
}
border.width: UM.Theme.getSize("default_lining").width
}
} }
} }
} }

View file

@ -1,10 +1,10 @@
// Copyright (c) 2018 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.7 import QtQuick 2.7
import QtQuick.Controls 2.3 import QtQuick.Controls 2.3
import UM 1.4 as UM import UM 1.5 as UM
import Cura 1.0 as Cura import Cura 1.0 as Cura
Item Item
@ -67,18 +67,14 @@ Item
contentHeight: configurationList.height contentHeight: configurationList.height
clip: true clip: true
ScrollBar.vertical.policy: (configurationList.height > maximumHeight) ? ScrollBar.AlwaysOn : ScrollBar.AlwaysOff //The AsNeeded policy also hides it when the cursor is away, and we don't want that. ScrollBar.vertical: UM.ScrollBar {
ScrollBar.vertical.background: Rectangle parent: container
{ anchors
implicitWidth: UM.Theme.getSize("scrollbar").width {
radius: width / 2 top: parent.top
color: UM.Theme.getColor("scrollbar_background") right: parent.right
} bottom: parent.bottom
ScrollBar.vertical.contentItem: Rectangle }
{
implicitWidth: UM.Theme.getSize("scrollbar").width
radius: width / 2
color: UM.Theme.getColor(parent.pressed ? "scrollbar_handle_down" : parent.hovered ? "scrollbar_handle_hover" : "scrollbar_handle")
} }
ButtonGroup ButtonGroup

View file

@ -1,5 +1,5 @@
// Copyright (c) 2022 Ultimaker B.V. //Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. //Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.6 import QtQuick 2.6
import QtQuick.Controls 2.0 import QtQuick.Controls 2.0
@ -94,6 +94,7 @@ Item
model: extrudersModel model: extrudersModel
delegate: UM.TabRowButton delegate: UM.TabRowButton
{ {
checked: model.index == 0
contentItem: Item contentItem: Item
{ {
Cura.ExtruderIcon Cura.ExtruderIcon

View file

@ -25,6 +25,7 @@ Cura.Menu
id: openMenu id: openMenu
action: Cura.Actions.open action: Cura.Actions.open
visible: base.fileProviderModel.count == 1 visible: base.fileProviderModel.count == 1
enabled: base.fileProviderModel.count == 1
} }
OpenFilesMenu OpenFilesMenu
@ -42,7 +43,7 @@ Cura.Menu
shortcut: StandardKey.Save shortcut: StandardKey.Save
text: catalog.i18nc("@title:menu menubar:file", "&Save Project...") text: catalog.i18nc("@title:menu menubar:file", "&Save Project...")
visible: saveProjectMenu.model.count == 1 visible: saveProjectMenu.model.count == 1
enabled: UM.WorkspaceFileHandler.enabled enabled: UM.WorkspaceFileHandler.enabled && saveProjectMenu.model.count == 1
onTriggered: onTriggered:
{ {
var args = { "filter_by_machine": false, "file_type": "workspace", "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml" }; var args = { "filter_by_machine": false, "file_type": "workspace", "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml" };

View file

@ -40,9 +40,8 @@ Cura.Menu
UM.OutputDeviceManager.requestWriteToDevice(model.id, PrintInformation.jobName, args) UM.OutputDeviceManager.requestWriteToDevice(model.id, PrintInformation.jobName, args)
} }
} }
// Unassign the shortcuts when the submenu is invisible (i.e. when there is only one project output device) to avoid ambiguous shortcuts. shortcut: model.shortcut
// When there is only the LocalFileOutputDevice, the Ctrl+S shortcut is assigned to the saveWorkspaceMenu MenuItem enabled: saveProjectMenu.shouldBeVisible
shortcut: saveProjectMenu.visible ? model.shortcut : ""
} }
onObjectAdded: saveProjectMenu.insertItem(index, object) onObjectAdded: saveProjectMenu.insertItem(index, object)
onObjectRemoved: saveProjectMenu.removeItem(object) onObjectRemoved: saveProjectMenu.removeItem(object)

View file

@ -1,4 +1,4 @@
// Copyright (c) 2020 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10 import QtQuick 2.10
@ -76,7 +76,7 @@ Item
id: contents id: contents
width: parent.width width: parent.width
visible: objectSelector.opened visible: objectSelector.opened
height: visible ? listView.height : 0 height: visible ? listView.height + border.width * 2 : 0
color: UM.Theme.getColor("main_background") color: UM.Theme.getColor("main_background")
border.width: UM.Theme.getSize("default_lining").width border.width: UM.Theme.getSize("default_lining").width
border.color: UM.Theme.getColor("lining") border.color: UM.Theme.getColor("lining")
@ -99,23 +99,22 @@ Item
ListView ListView
{ {
id: listView id: listView
clip: true
anchors anchors
{ {
left: parent.left left: parent.left
right: parent.right right: parent.right
top: parent.top
margins: UM.Theme.getSize("default_lining").width margins: UM.Theme.getSize("default_lining").width
} }
ScrollBar.vertical: ScrollBar
{
hoverEnabled: true
}
property real maximumHeight: UM.Theme.getSize("objects_menu_size").height property real maximumHeight: UM.Theme.getSize("objects_menu_size").height
height: Math.min(contentHeight, maximumHeight) height: Math.min(contentHeight, maximumHeight)
ScrollBar.vertical: UM.ScrollBar
{
id: scrollBar
}
clip: true
model: Cura.ObjectsModel {} model: Cura.ObjectsModel {}
delegate: ObjectItemButton delegate: ObjectItemButton
@ -128,7 +127,7 @@ Item
value: model.selected value: model.selected
} }
text: model.name text: model.name
width: listView.width width: listView.width - scrollBar.width
property bool outsideBuildArea: model.outside_build_area property bool outsideBuildArea: model.outside_build_area
property int perObjectSettingsCount: model.per_object_settings_count property int perObjectSettingsCount: model.per_object_settings_count
property string meshType: model.mesh_type property string meshType: model.mesh_type

View file

@ -1,12 +1,11 @@
// Copyright (c) 2020 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10 import QtQuick 2.10
import QtQuick.Controls 1.1 as OldControls import QtQuick.Controls 2.15
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
import UM 1.1 as UM import UM 1.5 as UM
import Cura 1.1 as Cura import Cura 1.1 as Cura
UM.PreferencesPage UM.PreferencesPage
@ -15,6 +14,8 @@ UM.PreferencesPage
title: catalog.i18nc("@title:tab", "General") title: catalog.i18nc("@title:tab", "General")
id: generalPreferencesPage id: generalPreferencesPage
width: parent.width
function setDefaultLanguage(languageCode) function setDefaultLanguage(languageCode)
{ {
//loops through the languageList and sets the language using the languageCode //loops through the languageList and sets the language using the languageCode
@ -124,16 +125,28 @@ UM.PreferencesPage
pluginNotificationsUpdateCheckbox.checked = boolCheck(UM.Preferences.getValue("info/automatic_plugin_update_check")) pluginNotificationsUpdateCheckbox.checked = boolCheck(UM.Preferences.getValue("info/automatic_plugin_update_check"))
} }
OldControls.ScrollView ScrollView
{ {
id: preferencesScrollView
width: parent.width width: parent.width
height: parent.height height: parent.height
ScrollBar.vertical: UM.ScrollBar
{
id: preferencesScrollBar
parent: preferencesScrollView
anchors
{
top: parent.top
bottom: parent.bottom
right: parent.right
}
}
Column Column
{ {
//: Language selection label
UM.I18nCatalog{id: catalog; name: "cura"} UM.I18nCatalog{id: catalog; name: "cura"}
width: preferencesScrollView.width - preferencesScrollBar.width
Label Label
{ {
@ -160,16 +173,14 @@ UM.PreferencesPage
Component.onCompleted: Component.onCompleted:
{ {
append({ text: "English", code: "en_US" }) append({ text: "English", code: "en_US" })
// append({ text: "Čeština", code: "cs_CZ" }) append({ text: "Čeština", code: "cs_CZ" })
append({ text: "Deutsch", code: "de_DE" }) append({ text: "Deutsch", code: "de_DE" })
append({ text: "Español", code: "es_ES" }) append({ text: "Español", code: "es_ES" })
//Finnish is disabled for being incomplete: append({ text: "Suomi", code: "fi_FI" })
append({ text: "Français", code: "fr_FR" }) append({ text: "Français", code: "fr_FR" })
append({ text: "Italiano", code: "it_IT" }) append({ text: "Italiano", code: "it_IT" })
append({ text: "日本語", code: "ja_JP" }) append({ text: "日本語", code: "ja_JP" })
append({ text: "한국어", code: "ko_KR" }) append({ text: "한국어", code: "ko_KR" })
append({ text: "Nederlands", code: "nl_NL" }) append({ text: "Nederlands", code: "nl_NL" })
//Polish is disabled for being incomplete: append({ text: "Polski", code: "pl_PL" })
append({ text: "Português do Brasil", code: "pt_BR" }) append({ text: "Português do Brasil", code: "pt_BR" })
append({ text: "Português", code: "pt_PT" }) append({ text: "Português", code: "pt_PT" })
append({ text: "Русский", code: "ru_RU" }) append({ text: "Русский", code: "ru_RU" })
@ -182,6 +193,12 @@ UM.PreferencesPage
{ {
append({ text: "Pirate", code: "en_7S" }) append({ text: "Pirate", code: "en_7S" })
} }
// incomplete and/or abandoned
append({ text: catalog.i18nc("@heading", "-- incomplete --"), code: "" })
append({ text: "Magyar", code: "hu_HU" })
append({ text: "Suomi", code: "fi_FI" })
append({ text: "Polski", code: "pl_PL" })
} }
} }
@ -193,8 +210,7 @@ UM.PreferencesPage
model: languageList model: languageList
Layout.fillWidth: true Layout.fillWidth: true
currentIndex: function setCurrentIndex() {
{
var code = UM.Preferences.getValue("general/language"); var code = UM.Preferences.getValue("general/language");
for(var i = 0; i < languageList.count; ++i) for(var i = 0; i < languageList.count; ++i)
{ {
@ -204,13 +220,23 @@ UM.PreferencesPage
} }
} }
} }
onActivated: UM.Preferences.setValue("general/language", model.get(index).code)
currentIndex: setCurrentIndex()
onActivated: if (model.get(index).code != "")
{
UM.Preferences.setValue("general/language", model.get(index).code);
}
else
{
currentIndex = setCurrentIndex();
}
} }
Label Label
{ {
id: currencyLabel id: currencyLabel
text: catalog.i18nc("@label","Currency:") text: catalog.i18nc("@label", "Currency:")
} }
TextField TextField

View file

@ -1,13 +1,12 @@
// Copyright (c) 2021 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.7 import QtQuick 2.7
import QtQuick.Controls 1.4 as OldControls import QtQuick.Controls 2.15
import QtQuick.Controls 2.1
import QtQuick.Layouts 1.3 import QtQuick.Layouts 1.3
import QtQuick.Dialogs 1.2 import QtQuick.Dialogs 1.2
import UM 1.2 as UM import UM 1.5 as UM
import Cura 1.5 as Cura import Cura 1.5 as Cura
Item Item
@ -208,7 +207,8 @@ Item
} }
} }
Item { Item
{
id: contentsItem id: contentsItem
anchors anchors
{ {
@ -262,7 +262,7 @@ Item
elide: Text.ElideRight elide: Text.ElideRight
} }
OldControls.ScrollView ScrollView
{ {
id: materialScrollView id: materialScrollView
anchors anchors
@ -272,22 +272,26 @@ Item
bottom: parent.bottom bottom: parent.bottom
left: parent.left left: parent.left
} }
Rectangle
{
parent: viewport
anchors.fill: parent
color: palette.light
}
width: (parent.width * 0.4) | 0 width: (parent.width * 0.4) | 0
frameVisible: true
horizontalScrollBarPolicy: Qt.ScrollBarAlwaysOff clip: true
ScrollBar.vertical: UM.ScrollBar
{
id: materialScrollBar
parent: materialScrollView
anchors
{
top: parent.top
right: parent.right
bottom: parent.bottom
}
}
contentHeight: materialListView.height //For some reason, this is not determined automatically with this ScrollView. Very weird!
MaterialsList MaterialsList
{ {
id: materialListView id: materialListView
width: materialScrollView.viewport.width width: materialScrollView.width - materialScrollBar.width
} }
} }

View file

@ -1,4 +1,4 @@
//Copyright (c) 2021 Ultimaker B.V. //Copyright (c) 2022 Ultimaker B.V.
//Cura is released under the terms of the LGPLv3 or higher. //Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.15 import QtQuick 2.15
@ -253,204 +253,202 @@ Window
onClicked: Qt.openUrlExternally("https://support.ultimaker.com/hc/en-us/articles/360012019239?utm_source=cura&utm_medium=software&utm_campaign=sync-material-wizard-troubleshoot-cloud-printer") onClicked: Qt.openUrlExternally("https://support.ultimaker.com/hc/en-us/articles/360012019239?utm_source=cura&utm_medium=software&utm_campaign=sync-material-wizard-troubleshoot-cloud-printer")
} }
} }
ScrollView ListView
{ {
id: printerListScrollView id: printerList
width: parent.width width: parent.width
Layout.preferredWidth: width Layout.preferredWidth: width
Layout.fillHeight: true Layout.fillHeight: true
clip: true clip: true
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff ScrollBar.vertical: UM.ScrollBar
ListView
{ {
id: printerList id: printerListScrollBar
width: parent.width }
spacing: UM.Theme.getSize("default_margin").height spacing: UM.Theme.getSize("default_margin").height
model: cloudPrinterList model: cloudPrinterList
delegate: Rectangle delegate: Rectangle
{
id: delegateContainer
color: "transparent"
border.color: UM.Theme.getColor("lining")
border.width: UM.Theme.getSize("default_lining").width
width: printerList.width - printerListScrollBar.width
height: UM.Theme.getSize("card").height
property string syncStatus:
{ {
id: delegateContainer var printer_id = model.metadata["host_guid"]
color: "transparent" if(syncModel.printerStatus[printer_id] === undefined) //No status information available. Could be added after we started syncing.
border.color: UM.Theme.getColor("lining")
border.width: UM.Theme.getSize("default_lining").width
width: printerListScrollView.width
height: UM.Theme.getSize("card").height
property string syncStatus:
{ {
var printer_id = model.metadata["host_guid"] return "idle";
if(syncModel.printerStatus[printer_id] === undefined) //No status information available. Could be added after we started syncing. }
{ return syncModel.printerStatus[printer_id];
return "idle"; }
}
return syncModel.printerStatus[printer_id]; Cura.IconWithText
{
anchors
{
verticalCenter: parent.verticalCenter
left: parent.left
leftMargin: Math.round(parent.height - height) / 2 //Equal margin on the left as above and below.
right: parent.right
rightMargin: Math.round(parent.height - height) / 2
} }
Cura.IconWithText text: model.name
{ font: UM.Theme.getFont("medium")
anchors
{
verticalCenter: parent.verticalCenter
left: parent.left
leftMargin: Math.round(parent.height - height) / 2 //Equal margin on the left as above and below.
right: parent.right
rightMargin: Math.round(parent.height - height) / 2
}
text: model.name source: UM.Theme.getIcon("Printer", "medium")
font: UM.Theme.getFont("medium") iconColor: UM.Theme.getColor("machine_selector_printer_icon")
iconSize: UM.Theme.getSize("machine_selector_icon").width
source: UM.Theme.getIcon("Printer", "medium")
iconColor: UM.Theme.getColor("machine_selector_printer_icon")
iconSize: UM.Theme.getSize("machine_selector_icon").width
//Printer status badge (always cloud, but whether it's online or offline).
UM.RecolorImage
{
width: UM.Theme.getSize("printer_status_icon").width
height: UM.Theme.getSize("printer_status_icon").height
anchors
{
bottom: parent.bottom
bottomMargin: -Math.round(height / 6)
left: parent.left
leftMargin: parent.iconSize - Math.round(width * 5 / 6)
}
source: UM.Theme.getIcon("CloudBadge", "low")
color: UM.Theme.getColor("primary")
//Make a themeable circle in the background so we can change it in other themes.
Rectangle
{
anchors.centerIn: parent
width: parent.width - 1.5 //1.5 pixels smaller (at least sqrt(2), regardless of pixel scale) so that the circle doesn't show up behind the icon due to anti-aliasing.
height: parent.height - 1.5
radius: width / 2
color: UM.Theme.getColor("connection_badge_background")
z: parent.z - 1
}
}
}
//Printer status badge (always cloud, but whether it's online or offline).
UM.RecolorImage UM.RecolorImage
{ {
id: printerSpinner width: UM.Theme.getSize("printer_status_icon").width
width: UM.Theme.getSize("section_icon").width height: UM.Theme.getSize("printer_status_icon").height
height: width anchors
anchors.verticalCenter: parent.verticalCenter {
anchors.right: parent.right bottom: parent.bottom
anchors.rightMargin: Math.round((parent.height - height) / 2) //Same margin on the right as above and below. bottomMargin: -Math.round(height / 6)
left: parent.left
leftMargin: parent.iconSize - Math.round(width * 5 / 6)
}
visible: delegateContainer.syncStatus === "uploading" source: UM.Theme.getIcon("CloudBadge", "low")
source: UM.Theme.getIcon("ArrowDoubleCircleRight")
color: UM.Theme.getColor("primary") color: UM.Theme.getColor("primary")
RotationAnimator //Make a themeable circle in the background so we can change it in other themes.
Rectangle
{ {
target: printerSpinner anchors.centerIn: parent
from: 0 width: parent.width - 1.5 //1.5 pixels smaller (at least sqrt(2), regardless of pixel scale) so that the circle doesn't show up behind the icon due to anti-aliasing.
to: 360 height: parent.height - 1.5
duration: 1000 radius: width / 2
loops: Animation.Infinite color: UM.Theme.getColor("connection_badge_background")
running: true z: parent.z - 1
} }
} }
UM.StatusIcon
{
width: UM.Theme.getSize("section_icon").width
height: width
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
anchors.rightMargin: Math.round((parent.height - height) / 2) //Same margin on the right as above and below.
visible: delegateContainer.syncStatus === "failed" || delegateContainer.syncStatus === "success"
status: delegateContainer.syncStatus === "success" ? UM.StatusIcon.Status.POSITIVE : UM.StatusIcon.Status.ERROR
}
} }
footer: Item UM.RecolorImage
{ {
width: printerListScrollView.width id: printerSpinner
height: { width: UM.Theme.getSize("section_icon").width
if(!visible) height: width
{ anchors.verticalCenter: parent.verticalCenter
return 0; anchors.right: parent.right
} anchors.rightMargin: Math.round((parent.height - height) / 2) //Same margin on the right as above and below.
let h = UM.Theme.getSize("card").height + printerListTroubleshooting.height + UM.Theme.getSize("default_margin").height * 2; //1 margin between content and footer, 1 for troubleshooting link.
return h; visible: delegateContainer.syncStatus === "uploading"
} source: UM.Theme.getIcon("ArrowDoubleCircleRight")
visible: includeOfflinePrinterList.count - cloudPrinterList.count > 0 && typeof syncModel !== "undefined" && syncModel.exportUploadStatus === "idle" color: UM.Theme.getColor("primary")
Rectangle
RotationAnimator
{ {
anchors.fill: parent target: printerSpinner
anchors.topMargin: UM.Theme.getSize("default_margin").height from: 0
to: 360
duration: 1000
loops: Animation.Infinite
running: true
}
}
UM.StatusIcon
{
width: UM.Theme.getSize("section_icon").width
height: width
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
anchors.rightMargin: Math.round((parent.height - height) / 2) //Same margin on the right as above and below.
border.color: UM.Theme.getColor("lining") visible: delegateContainer.syncStatus === "failed" || delegateContainer.syncStatus === "success"
border.width: UM.Theme.getSize("default_lining").width status: delegateContainer.syncStatus === "success" ? UM.StatusIcon.Status.POSITIVE : UM.StatusIcon.Status.ERROR
color: "transparent" }
}
Row footer: Item
{
width: printerList.width - printerListScrollBar
height: {
if(!visible)
{
return 0;
}
let h = UM.Theme.getSize("card").height + printerListTroubleshooting.height + UM.Theme.getSize("default_margin").height * 2; //1 margin between content and footer, 1 for troubleshooting link.
return h;
}
visible: includeOfflinePrinterList.count - cloudPrinterList.count > 0 && typeof syncModel !== "undefined" && syncModel.exportUploadStatus === "idle"
Rectangle
{
anchors.fill: parent
anchors.topMargin: UM.Theme.getSize("default_margin").height
border.color: UM.Theme.getColor("lining")
border.width: UM.Theme.getSize("default_lining").width
color: "transparent"
Row
{
anchors
{ {
anchors fill: parent
margins: Math.round(UM.Theme.getSize("card").height - UM.Theme.getSize("machine_selector_icon").width) / 2 //Same margin as in other cards.
}
spacing: UM.Theme.getSize("default_margin").width
UM.StatusIcon
{
id: infoIcon
width: UM.Theme.getSize("section_icon").width
height: width
//Fake anchor.verticalCenter: printersMissingText.verticalCenter, since we can't anchor to things that aren't siblings.
anchors.top: parent.top
anchors.topMargin: Math.round(printersMissingText.height / 2 - height / 2)
status: UM.StatusIcon.Status.WARNING
}
Column
{
//Fill the total width. Can't use layouts because we need the anchors for vertical alignment.
width: parent.width - infoIcon.width - refreshListButton.width - parent.spacing * 2
spacing: UM.Theme.getSize("default_margin").height
UM.Label
{ {
fill: parent id: printersMissingText
margins: Math.round(UM.Theme.getSize("card").height - UM.Theme.getSize("machine_selector_icon").width) / 2 //Same margin as in other cards. text: catalog.i18nc("@text Asking the user whether printers are missing in a list.", "Printers missing?")
+ "\n"
+ catalog.i18nc("@text", "Make sure all your printers are turned ON and connected to Digital Factory.")
font: UM.Theme.getFont("medium")
elide: Text.ElideRight
} }
spacing: UM.Theme.getSize("default_margin").width Cura.TertiaryButton
UM.StatusIcon
{ {
id: infoIcon id: printerListTroubleshooting
width: UM.Theme.getSize("section_icon").width leftPadding: 0 //Want to visually align this to the text.
height: width
//Fake anchor.verticalCenter: printersMissingText.verticalCenter, since we can't anchor to things that aren't siblings.
anchors.top: parent.top
anchors.topMargin: Math.round(printersMissingText.height / 2 - height / 2)
status: UM.StatusIcon.Status.WARNING text: catalog.i18nc("@button", "Troubleshooting")
iconSource: UM.Theme.getIcon("LinkExternal")
onClicked: Qt.openUrlExternally("https://support.ultimaker.com/hc/en-us/articles/360012019239?utm_source=cura&utm_medium=software&utm_campaign=sync-material-wizard-troubleshoot-cloud-printer")
} }
}
Column Cura.SecondaryButton
{ {
//Fill the total width. Can't use layouts because we need the anchors for vertical alignment. id: refreshListButton
width: parent.width - infoIcon.width - refreshListButton.width - parent.spacing * 2 //Fake anchor.verticalCenter: printersMissingText.verticalCenter, since we can't anchor to things that aren't siblings.
anchors.top: parent.top
anchors.topMargin: Math.round(printersMissingText.height / 2 - height / 2)
spacing: UM.Theme.getSize("default_margin").height text: catalog.i18nc("@button", "Refresh List")
iconSource: UM.Theme.getIcon("ArrowDoubleCircleRight")
UM.Label onClicked: Cura.API.account.sync(true)
{
id: printersMissingText
text: catalog.i18nc("@text Asking the user whether printers are missing in a list.", "Printers missing?")
+ "\n"
+ catalog.i18nc("@text", "Make sure all your printers are turned ON and connected to Digital Factory.")
font: UM.Theme.getFont("medium")
elide: Text.ElideRight
}
Cura.TertiaryButton
{
id: printerListTroubleshooting
leftPadding: 0 //Want to visually align this to the text.
text: catalog.i18nc("@button", "Troubleshooting")
iconSource: UM.Theme.getIcon("LinkExternal")
onClicked: Qt.openUrlExternally("https://support.ultimaker.com/hc/en-us/articles/360012019239?utm_source=cura&utm_medium=software&utm_campaign=sync-material-wizard-troubleshoot-cloud-printer")
}
}
Cura.SecondaryButton
{
id: refreshListButton
//Fake anchor.verticalCenter: printersMissingText.verticalCenter, since we can't anchor to things that aren't siblings.
anchors.top: parent.top
anchors.topMargin: Math.round(printersMissingText.height / 2 - height / 2)
text: catalog.i18nc("@button", "Refresh List")
iconSource: UM.Theme.getIcon("ArrowDoubleCircleRight")
onClicked: Cura.API.account.sync(true)
}
} }
} }
} }

View file

@ -2,16 +2,16 @@
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.7 import QtQuick 2.7
import QtQuick.Controls 2.1 import QtQuick.Controls 2.15
import QtQuick.Controls 1.4 as OldControls import QtQuick.Controls 1.4 as OldControls
import QtQuick.Dialogs 1.2 import QtQuick.Dialogs 1.2
import UM 1.2 as UM import UM 1.5 as UM
import Cura 1.0 as Cura import Cura 1.0 as Cura
import ".." // Access to ReadOnlyTextArea.qml import ".." // Access to ReadOnlyTextArea.qml
OldControls.TabView Item
{ {
id: base id: base
@ -68,437 +68,457 @@ OldControls.TabView
} }
} }
OldControls.Tab UM.TabRow
{ {
title: catalog.i18nc("@title", "Information") id: pageSelectorTabRow
UM.TabRowButton
anchors.margins: UM.Theme.getSize("default_margin").width
OldControls.ScrollView
{ {
id: scrollView text: catalog.i18nc("@title", "Information")
anchors.fill: parent property string activeView: "information" //To determine which page gets displayed.
horizontalScrollBarPolicy: Qt.ScrollBarAlwaysOff }
flickableItem.flickableDirection: Flickable.VerticalFlick UM.TabRowButton
frameVisible: true {
text: catalog.i18nc("@label", "Print settings")
property real columnWidth: (viewport.width * 0.5 - UM.Theme.getSize("default_margin").width) | 0 property string activeView: "settings"
Flow
{
id: containerGrid
x: UM.Theme.getSize("default_margin").width
y: UM.Theme.getSize("default_lining").height
width: base.width
property real rowHeight: brandTextField.height + UM.Theme.getSize("default_lining").height
MessageDialog
{
id: confirmDiameterChangeDialog
icon: StandardIcon.Question;
title: catalog.i18nc("@title:window", "Confirm Diameter Change")
text: catalog.i18nc("@label (%1 is a number)", "The new filament diameter is set to %1 mm, which is not compatible with the current extruder. Do you wish to continue?".arg(new_diameter_value))
standardButtons: StandardButton.Yes | StandardButton.No
modality: Qt.ApplicationModal
property var new_diameter_value: null;
property var old_diameter_value: null;
property var old_approximate_diameter_value: null;
onYes:
{
base.setMetaDataEntry("approximate_diameter", old_approximate_diameter_value, getApproximateDiameter(new_diameter_value).toString());
base.setMetaDataEntry("properties/diameter", properties.diameter, new_diameter_value);
// CURA-6868 Make sure to update the extruder to user a diameter-compatible material.
Cura.MachineManager.updateMaterialWithVariant()
base.resetSelectedMaterial()
}
onNo:
{
base.properties.diameter = old_diameter_value;
diameterSpinBox.value = Qt.binding(function() { return base.properties.diameter })
}
onRejected: no()
}
Label { width: scrollView.columnWidth; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Display Name") }
ReadOnlyTextField
{
id: displayNameTextField;
width: scrollView.columnWidth;
text: properties.name;
readOnly: !base.editingEnabled;
onEditingFinished: base.updateMaterialDisplayName(properties.name, text)
}
Label { width: scrollView.columnWidth; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Brand") }
ReadOnlyTextField
{
id: brandTextField;
width: scrollView.columnWidth;
text: properties.brand;
readOnly: !base.editingEnabled;
onEditingFinished: base.updateMaterialBrand(properties.brand, text)
}
Label { width: scrollView.columnWidth; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Material Type") }
ReadOnlyTextField
{
id: materialTypeField;
width: scrollView.columnWidth;
text: properties.material;
readOnly: !base.editingEnabled;
onEditingFinished: base.updateMaterialType(properties.material, text)
}
Label { width: scrollView.columnWidth; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Color") }
Row
{
width: scrollView.columnWidth
height: parent.rowHeight
spacing: Math.round(UM.Theme.getSize("default_margin").width / 2)
// color indicator square
Rectangle
{
id: colorSelector
color: properties.color_code
width: Math.round(colorLabel.height * 0.75)
height: Math.round(colorLabel.height * 0.75)
border.width: UM.Theme.getSize("default_lining").height
anchors.verticalCenter: parent.verticalCenter
// open the color selection dialog on click
MouseArea
{
anchors.fill: parent
onClicked: colorDialog.open()
enabled: base.editingEnabled
}
}
// pretty color name text field
ReadOnlyTextField
{
id: colorLabel;
width: parent.width - colorSelector.width - parent.spacing
text: properties.color_name;
readOnly: !base.editingEnabled
onEditingFinished: base.setMetaDataEntry("color_name", properties.color_name, text)
}
// popup dialog to select a new color
// if successful it sets the properties.color_code value to the new color
ColorDialog
{
id: colorDialog
color: properties.color_code
onAccepted: base.setMetaDataEntry("color_code", properties.color_code, color)
}
}
Item { width: parent.width; height: UM.Theme.getSize("default_margin").height }
Label { width: parent.width; height: parent.rowHeight; font.bold: true; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Properties") }
Label { width: scrollView.columnWidth; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Density") }
ReadOnlySpinBox
{
id: densitySpinBox
width: scrollView.columnWidth
value: properties.density
decimals: 2
suffix: " g/cm³"
stepSize: 0.01
readOnly: !base.editingEnabled
onEditingFinished: base.setMetaDataEntry("properties/density", properties.density, value)
onValueChanged: updateCostPerMeter()
}
Label { width: scrollView.columnWidth; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Diameter") }
ReadOnlySpinBox
{
id: diameterSpinBox
width: scrollView.columnWidth
value: properties.diameter
decimals: 2
suffix: " mm"
stepSize: 0.01
readOnly: !base.editingEnabled
onEditingFinished:
{
// This does not use a SettingPropertyProvider, because we need to make the change to all containers
// which derive from the same base_file
var old_diameter = Cura.ContainerManager.getContainerMetaDataEntry(base.containerId, "properties/diameter");
var old_approximate_diameter = Cura.ContainerManager.getContainerMetaDataEntry(base.containerId, "approximate_diameter");
var new_approximate_diameter = getApproximateDiameter(value);
if (new_approximate_diameter != Cura.ExtruderManager.getActiveExtruderStack().approximateMaterialDiameter)
{
confirmDiameterChangeDialog.old_diameter_value = old_diameter;
confirmDiameterChangeDialog.new_diameter_value = value;
confirmDiameterChangeDialog.old_approximate_diameter_value = old_approximate_diameter;
confirmDiameterChangeDialog.open()
}
else {
base.setMetaDataEntry("approximate_diameter", old_approximate_diameter, getApproximateDiameter(value).toString());
base.setMetaDataEntry("properties/diameter", properties.diameter, value);
}
}
onValueChanged: updateCostPerMeter()
}
Label { width: scrollView.columnWidth; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Filament Cost") }
SpinBox
{
id: spoolCostSpinBox
width: scrollView.columnWidth
value: base.getMaterialPreferenceValue(properties.guid, "spool_cost")
to: 100000000
editable: true
contentItem: TextField
{
text: spoolCostSpinBox.textFromValue(spoolCostSpinBox.value, spoolCostSpinBox.locale)
selectByMouse: true
background: Item {}
validator: RegExpValidator { regExp: new RegExp("^" + base.currency + " ([0-9]+[.]?[0-9]*)?$") }
}
property int decimals: 2
valueFromText: function(text) {
// remove all non-number tokens from input string so value can be parsed correctly
var value = Number(text.replace(",", ".").replace(/[^0-9.]+/g, ""));
var precision = Math.pow(10, spoolCostSpinBox.decimals);
return Math.round(value * precision) / precision;
}
textFromValue: function(value) {
return base.currency + " " + value.toFixed(spoolCostSpinBox.decimals)
}
onValueChanged:
{
base.setMaterialPreferenceValue(properties.guid, "spool_cost", parseFloat(value, decimals))
updateCostPerMeter()
}
}
Label { width: scrollView.columnWidth; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Filament weight") }
SpinBox
{
id: spoolWeightSpinBox
width: scrollView.columnWidth
value: base.getMaterialPreferenceValue(properties.guid, "spool_weight", Cura.ContainerManager.getContainerMetaDataEntry(properties.container_id, "properties/weight"))
stepSize: 100
to: 10000
editable: true
contentItem: TextField
{
text: spoolWeightSpinBox.textFromValue(spoolWeightSpinBox.value, spoolWeightSpinBox.locale)
selectByMouse: true
background: Item {}
validator: RegExpValidator { regExp: new RegExp("^([0-9]+[.]?[0-9]*)? g$") }
}
valueFromText: function(text, locale) {
// remove all non-number tokens from input string so value can be parsed correctly
var value = Number(text.replace(",", ".").replace(/[^0-9.]+/g, ""));
return Math.round(value);
}
textFromValue: function(value, locale) {
return value + " g"
}
onValueChanged:
{
base.setMaterialPreferenceValue(properties.guid, "spool_weight", parseFloat(value))
updateCostPerMeter()
}
}
Label { width: scrollView.columnWidth; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Filament length") }
Label
{
width: scrollView.columnWidth
text: "~ %1 m".arg(Math.round(base.spoolLength))
verticalAlignment: Qt.AlignVCenter
height: parent.rowHeight
}
Label { width: scrollView.columnWidth; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Cost per Meter") }
Label
{
width: scrollView.columnWidth
text: "~ %1 %2/m".arg(base.costPerMeter.toFixed(2)).arg(base.currency)
verticalAlignment: Qt.AlignVCenter
height: parent.rowHeight
}
Item { width: parent.width; height: UM.Theme.getSize("default_margin").height; visible: unlinkMaterialButton.visible }
Label
{
width: 2 * scrollView.columnWidth
verticalAlignment: Qt.AlignVCenter
text: catalog.i18nc("@label", "This material is linked to %1 and shares some of its properties.").arg(base.linkedMaterialNames)
wrapMode: Text.WordWrap
visible: unlinkMaterialButton.visible
}
Button
{
id: unlinkMaterialButton
text: catalog.i18nc("@label", "Unlink Material")
visible: base.linkedMaterialNames != ""
onClicked:
{
Cura.ContainerManager.unlinkMaterial(base.currentMaterialNode)
base.reevaluateLinkedMaterials = true
}
}
Item { width: parent.width; height: UM.Theme.getSize("default_margin").height }
Label { width: parent.width; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Description") }
ReadOnlyTextArea
{
text: properties.description;
width: 2 * scrollView.columnWidth
wrapMode: Text.WordWrap
readOnly: !base.editingEnabled;
onEditingFinished: base.setMetaDataEntry("description", properties.description, text)
}
Label { width: parent.width; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Adhesion Information") }
ReadOnlyTextArea
{
text: properties.adhesion_info;
width: 2 * scrollView.columnWidth
wrapMode: Text.WordWrap
readOnly: !base.editingEnabled;
onEditingFinished: base.setMetaDataEntry("adhesion_info", properties.adhesion_info, text)
}
Item { width: parent.width; height: UM.Theme.getSize("default_margin").height }
}
function updateCostPerMeter()
{
base.spoolLength = calculateSpoolLength(diameterSpinBox.value, densitySpinBox.value, spoolWeightSpinBox.value);
base.costPerMeter = calculateCostPerMeter(spoolCostSpinBox.value);
}
} }
} }
OldControls.Tab ScrollView
{ {
title: catalog.i18nc("@label", "Print settings") id: informationPage
anchors anchors
{ {
leftMargin: UM.Theme.getSize("default_margin").width top: pageSelectorTabRow.bottom
topMargin: UM.Theme.getSize("default_margin").height left: parent.left
bottomMargin: UM.Theme.getSize("default_margin").height right: parent.right
rightMargin: 0 bottom: parent.bottom
} }
OldControls.ScrollView ScrollBar.vertical: UM.ScrollBar
{ {
anchors.fill: parent; parent: informationPage
anchors
ListView
{ {
model: UM.SettingDefinitionsModel top: parent.top
right: parent.right
bottom: parent.bottom
}
}
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
clip: true
visible: pageSelectorTabRow.currentItem.activeView === "information"
property real columnWidth: (width * 0.5 - UM.Theme.getSize("default_margin").width) | 0
Flow
{
id: containerGrid
x: UM.Theme.getSize("default_margin").width
y: UM.Theme.getSize("default_lining").height
width: base.width
property real rowHeight: brandTextField.height + UM.Theme.getSize("default_lining").height
MessageDialog
{
id: confirmDiameterChangeDialog
icon: StandardIcon.Question;
title: catalog.i18nc("@title:window", "Confirm Diameter Change")
text: catalog.i18nc("@label (%1 is a number)", "The new filament diameter is set to %1 mm, which is not compatible with the current extruder. Do you wish to continue?".arg(new_diameter_value))
standardButtons: StandardButton.Yes | StandardButton.No
modality: Qt.ApplicationModal
property var new_diameter_value: null;
property var old_diameter_value: null;
property var old_approximate_diameter_value: null;
onYes:
{ {
containerId: Cura.MachineManager.activeMachine != null ? Cura.MachineManager.activeMachine.definition.id: "" base.setMetaDataEntry("approximate_diameter", old_approximate_diameter_value, getApproximateDiameter(new_diameter_value).toString());
visibilityHandler: Cura.MaterialSettingsVisibilityHandler { } base.setMetaDataEntry("properties/diameter", properties.diameter, new_diameter_value);
expanded: ["*"] // CURA-6868 Make sure to update the extruder to user a diameter-compatible material.
Cura.MachineManager.updateMaterialWithVariant()
base.resetSelectedMaterial()
} }
delegate: UM.TooltipArea onNo:
{ {
width: childrenRect.width base.properties.diameter = old_diameter_value;
height: childrenRect.height diameterSpinBox.value = Qt.binding(function() { return base.properties.diameter })
text: model.description }
Label
{
id: label
width: base.firstColumnWidth;
height: spinBox.height + UM.Theme.getSize("default_lining").height
text: model.label
elide: Text.ElideRight
verticalAlignment: Qt.AlignVCenter
}
ReadOnlySpinBox
{
id: spinBox
anchors.left: label.right
value:
{
// In case the setting is not in the material...
if (!isNaN(parseFloat(materialPropertyProvider.properties.value)))
{
return parseFloat(materialPropertyProvider.properties.value);
}
// ... we search in the variant, and if it is not there...
if (!isNaN(parseFloat(variantPropertyProvider.properties.value)))
{
return parseFloat(variantPropertyProvider.properties.value);
}
// ... then look in the definition container.
if (!isNaN(parseFloat(machinePropertyProvider.properties.value)))
{
return parseFloat(machinePropertyProvider.properties.value);
}
return 0;
}
width: base.secondColumnWidth
readOnly: !base.editingEnabled
suffix: " " + model.unit
maximumValue: 99999
decimals: model.unit == "mm" ? 2 : 0
onEditingFinished: materialPropertyProvider.setPropertyValue("value", value) onRejected: no()
} }
UM.ContainerPropertyProvider Label { width: informationPage.columnWidth; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Display Name") }
ReadOnlyTextField
{
id: displayNameTextField;
width: informationPage.columnWidth;
text: properties.name;
readOnly: !base.editingEnabled;
onEditingFinished: base.updateMaterialDisplayName(properties.name, text)
}
Label { width: informationPage.columnWidth; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Brand") }
ReadOnlyTextField
{
id: brandTextField;
width: informationPage.columnWidth;
text: properties.brand;
readOnly: !base.editingEnabled;
onEditingFinished: base.updateMaterialBrand(properties.brand, text)
}
Label { width: informationPage.columnWidth; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Material Type") }
ReadOnlyTextField
{
id: materialTypeField;
width: informationPage.columnWidth;
text: properties.material;
readOnly: !base.editingEnabled;
onEditingFinished: base.updateMaterialType(properties.material, text)
}
Label { width: informationPage.columnWidth; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Color") }
Row
{
width: informationPage.columnWidth
height: parent.rowHeight
spacing: Math.round(UM.Theme.getSize("default_margin").width / 2)
// color indicator square
Rectangle
{
id: colorSelector
color: properties.color_code
width: Math.round(colorLabel.height * 0.75)
height: Math.round(colorLabel.height * 0.75)
border.width: UM.Theme.getSize("default_lining").height
anchors.verticalCenter: parent.verticalCenter
// open the color selection dialog on click
MouseArea
{ {
id: materialPropertyProvider anchors.fill: parent
containerId: base.containerId onClicked: colorDialog.open()
watchedProperties: [ "value" ] enabled: base.editingEnabled
key: model.key
}
UM.ContainerPropertyProvider
{
id: variantPropertyProvider
containerId: Cura.MachineManager.activeStack.variant.id
watchedProperties: [ "value" ]
key: model.key
}
UM.ContainerPropertyProvider
{
id: machinePropertyProvider
containerId: Cura.MachineManager.activeMachine != null ? Cura.MachineManager.activeMachine.definition.id: ""
watchedProperties: [ "value" ]
key: model.key
} }
} }
// pretty color name text field
ReadOnlyTextField
{
id: colorLabel;
width: parent.width - colorSelector.width - parent.spacing
text: properties.color_name;
readOnly: !base.editingEnabled
onEditingFinished: base.setMetaDataEntry("color_name", properties.color_name, text)
}
// popup dialog to select a new color
// if successful it sets the properties.color_code value to the new color
ColorDialog
{
id: colorDialog
color: properties.color_code
onAccepted: base.setMetaDataEntry("color_code", properties.color_code, color)
}
}
Item { width: parent.width; height: UM.Theme.getSize("default_margin").height }
Label { width: parent.width; height: parent.rowHeight; font.bold: true; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Properties") }
Label { width: informationPage.columnWidth; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Density") }
ReadOnlySpinBox
{
id: densitySpinBox
width: informationPage.columnWidth
value: properties.density
decimals: 2
suffix: " g/cm³"
stepSize: 0.01
readOnly: !base.editingEnabled
onEditingFinished: base.setMetaDataEntry("properties/density", properties.density, value)
onValueChanged: updateCostPerMeter()
}
Label { width: informationPage.columnWidth; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Diameter") }
ReadOnlySpinBox
{
id: diameterSpinBox
width: informationPage.columnWidth
value: properties.diameter
decimals: 2
suffix: " mm"
stepSize: 0.01
readOnly: !base.editingEnabled
onEditingFinished:
{
// This does not use a SettingPropertyProvider, because we need to make the change to all containers
// which derive from the same base_file
var old_diameter = Cura.ContainerManager.getContainerMetaDataEntry(base.containerId, "properties/diameter");
var old_approximate_diameter = Cura.ContainerManager.getContainerMetaDataEntry(base.containerId, "approximate_diameter");
var new_approximate_diameter = getApproximateDiameter(value);
if (new_approximate_diameter != Cura.ExtruderManager.getActiveExtruderStack().approximateMaterialDiameter)
{
confirmDiameterChangeDialog.old_diameter_value = old_diameter;
confirmDiameterChangeDialog.new_diameter_value = value;
confirmDiameterChangeDialog.old_approximate_diameter_value = old_approximate_diameter;
confirmDiameterChangeDialog.open()
}
else {
base.setMetaDataEntry("approximate_diameter", old_approximate_diameter, getApproximateDiameter(value).toString());
base.setMetaDataEntry("properties/diameter", properties.diameter, value);
}
}
onValueChanged: updateCostPerMeter()
}
Label { width: informationPage.columnWidth; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Filament Cost") }
SpinBox
{
id: spoolCostSpinBox
width: informationPage.columnWidth
value: base.getMaterialPreferenceValue(properties.guid, "spool_cost")
to: 100000000
editable: true
contentItem: TextField
{
text: spoolCostSpinBox.textFromValue(spoolCostSpinBox.value, spoolCostSpinBox.locale)
selectByMouse: true
background: Item {}
validator: RegExpValidator { regExp: new RegExp("^" + base.currency + " ([0-9]+[.]?[0-9]*)?$") }
}
property int decimals: 2
valueFromText: function(text) {
// remove all non-number tokens from input string so value can be parsed correctly
var value = Number(text.replace(",", ".").replace(/[^0-9.]+/g, ""));
var precision = Math.pow(10, spoolCostSpinBox.decimals);
return Math.round(value * precision) / precision;
}
textFromValue: function(value) {
return base.currency + " " + value.toFixed(spoolCostSpinBox.decimals)
}
onValueChanged:
{
base.setMaterialPreferenceValue(properties.guid, "spool_cost", parseFloat(value, decimals))
updateCostPerMeter()
}
}
Label { width: informationPage.columnWidth; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Filament weight") }
SpinBox
{
id: spoolWeightSpinBox
width: informationPage.columnWidth
value: base.getMaterialPreferenceValue(properties.guid, "spool_weight", Cura.ContainerManager.getContainerMetaDataEntry(properties.container_id, "properties/weight"))
suffix: " g"
stepSize: 100
to: 10000
editable: true
contentItem: TextField
{
text: spoolWeightSpinBox.textFromValue(spoolWeightSpinBox.value, spoolWeightSpinBox.locale)
selectByMouse: true
background: Item {}
validator: RegExpValidator { regExp: new RegExp("^([0-9]+[.]?[0-9]*)? g$") }
}
valueFromText: function(text, locale) {
// remove all non-number tokens from input string so value can be parsed correctly
var value = Number(text.replace(",", ".").replace(/[^0-9.]+/g, ""));
return Math.round(value);
}
textFromValue: function(value, locale) {
return value + " g"
}
onValueChanged:
{
base.setMaterialPreferenceValue(properties.guid, "spool_weight", parseFloat(value))
updateCostPerMeter()
}
}
Label { width: informationPage.columnWidth; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Filament length") }
Label
{
width: informationPage.columnWidth
text: "~ %1 m".arg(Math.round(base.spoolLength))
verticalAlignment: Qt.AlignVCenter
height: parent.rowHeight
}
Label { width: informationPage.columnWidth; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Cost per Meter") }
Label
{
width: informationPage.columnWidth
text: "~ %1 %2/m".arg(base.costPerMeter.toFixed(2)).arg(base.currency)
verticalAlignment: Qt.AlignVCenter
height: parent.rowHeight
}
Item { width: parent.width; height: UM.Theme.getSize("default_margin").height; visible: unlinkMaterialButton.visible }
Label
{
width: 2 * informationPage.columnWidth
verticalAlignment: Qt.AlignVCenter
text: catalog.i18nc("@label", "This material is linked to %1 and shares some of its properties.").arg(base.linkedMaterialNames)
wrapMode: Text.WordWrap
visible: unlinkMaterialButton.visible
}
Button
{
id: unlinkMaterialButton
text: catalog.i18nc("@label", "Unlink Material")
visible: base.linkedMaterialNames != ""
onClicked:
{
Cura.ContainerManager.unlinkMaterial(base.currentMaterialNode)
base.reevaluateLinkedMaterials = true
}
}
Item { width: parent.width; height: UM.Theme.getSize("default_margin").height }
Label { width: parent.width; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Description") }
ReadOnlyTextArea
{
text: properties.description;
width: 2 * informationPage.columnWidth
wrapMode: Text.WordWrap
readOnly: !base.editingEnabled;
onEditingFinished: base.setMetaDataEntry("description", properties.description, text)
}
Label { width: parent.width; height: parent.rowHeight; verticalAlignment: Qt.AlignVCenter; text: catalog.i18nc("@label", "Adhesion Information") }
ReadOnlyTextArea
{
text: properties.adhesion_info;
width: 2 * informationPage.columnWidth
wrapMode: Text.WordWrap
readOnly: !base.editingEnabled;
onEditingFinished: base.setMetaDataEntry("adhesion_info", properties.adhesion_info, text)
}
Item { width: parent.width; height: UM.Theme.getSize("default_margin").height }
}
function updateCostPerMeter()
{
base.spoolLength = calculateSpoolLength(diameterSpinBox.value, densitySpinBox.value, spoolWeightSpinBox.value);
base.costPerMeter = calculateCostPerMeter(spoolCostSpinBox.value);
}
}
ListView
{
anchors
{
top: pageSelectorTabRow.bottom
left: parent.left
right: parent.right
bottom: parent.bottom
}
model: UM.SettingDefinitionsModel
{
containerId: Cura.MachineManager.activeMachine != null ? Cura.MachineManager.activeMachine.definition.id: ""
visibilityHandler: Cura.MaterialSettingsVisibilityHandler { }
expanded: ["*"]
}
ScrollBar.vertical: UM.ScrollBar {}
clip: true
visible: pageSelectorTabRow.currentItem.activeView === "settings"
delegate: UM.TooltipArea
{
width: childrenRect.width
height: childrenRect.height
text: model.description
Label
{
id: label
width: base.firstColumnWidth;
height: spinBox.height + UM.Theme.getSize("default_lining").height
text: model.label
elide: Text.ElideRight
verticalAlignment: Qt.AlignVCenter
}
ReadOnlySpinBox
{
id: spinBox
anchors.left: label.right
value:
{
// In case the setting is not in the material...
if (!isNaN(parseFloat(materialPropertyProvider.properties.value)))
{
return parseFloat(materialPropertyProvider.properties.value);
}
// ... we search in the variant, and if it is not there...
if (!isNaN(parseFloat(variantPropertyProvider.properties.value)))
{
return parseFloat(variantPropertyProvider.properties.value);
}
// ... then look in the definition container.
if (!isNaN(parseFloat(machinePropertyProvider.properties.value)))
{
return parseFloat(machinePropertyProvider.properties.value);
}
return 0;
}
width: base.secondColumnWidth
readOnly: !base.editingEnabled
suffix: " " + model.unit
maximumValue: 99999
decimals: model.unit == "mm" ? 2 : 0
onEditingFinished: materialPropertyProvider.setPropertyValue("value", value)
}
UM.ContainerPropertyProvider
{
id: materialPropertyProvider
containerId: base.containerId
watchedProperties: [ "value" ]
key: model.key
}
UM.ContainerPropertyProvider
{
id: variantPropertyProvider
containerId: Cura.MachineManager.activeStack.variant.id
watchedProperties: [ "value" ]
key: model.key
}
UM.ContainerPropertyProvider
{
id: machinePropertyProvider
containerId: Cura.MachineManager.activeMachine != null ? Cura.MachineManager.activeMachine.definition.id: ""
watchedProperties: [ "value" ]
key: model.key
} }
} }
} }

View file

@ -1,118 +0,0 @@
// Copyright (c) 2018 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.7
import QtQuick.Controls 1.4
import UM 1.2 as UM
import Cura 1.0 as Cura
Tab
{
id: base
property int extruderPosition: -1 //Denotes the global stack.
property var qualityItem: null
property bool isQualityItemCurrentlyActivated:
{
if (qualityItem == null)
{
return false;
}
return qualityItem.name == Cura.MachineManager.activeQualityOrQualityChangesName;
}
TableView
{
anchors.fill: parent
anchors.margins: UM.Theme.getSize("default_margin").width
id: profileSettingsView
Component
{
id: itemDelegate
UM.TooltipArea
{
property var setting: qualitySettings.getItem(styleData.row)
height: childrenRect.height
width: (parent != null) ? parent.width : 0
text:
{
if (styleData.value === undefined)
{
return ""
}
return (styleData.value.substr(0,1) == "=") ? styleData.value : ""
}
Label
{
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width
anchors.right: parent.right
text:
{
if (styleData.value === undefined)
{
return ""
}
return (styleData.value.substr(0,1) == "=") ? catalog.i18nc("@info:status", "Calculated") : styleData.value
}
font.strikeout: styleData.column == 1 && setting.user_value != "" && base.isQualityItemCurrentlyActivated
font.italic: setting.profile_value_source == "quality_changes" || (setting.user_value != "" && base.isQualityItemCurrentlyActivated)
opacity: font.strikeout ? 0.5 : 1
color: styleData.textColor
elide: Text.ElideRight
}
}
}
TableViewColumn
{
role: "label"
title: catalog.i18nc("@title:column", "Setting")
width: (parent.width * 0.4) | 0
delegate: itemDelegate
}
TableViewColumn
{
role: "profile_value"
title: catalog.i18nc("@title:column", "Profile")
width: (parent.width * 0.18) | 0
delegate: itemDelegate
}
TableViewColumn
{
role: "user_value"
title: catalog.i18nc("@title:column", "Current");
visible: base.isQualityItemCurrentlyActivated
width: (parent.width * 0.18) | 0
delegate: itemDelegate
}
TableViewColumn
{
role: "unit"
title: catalog.i18nc("@title:column", "Unit")
width: (parent.width * 0.14) | 0
delegate: itemDelegate
}
section.property: "category"
section.delegate: Label
{
text: section
font.bold: true
}
model: Cura.QualitySettingsModel
{
id: qualitySettings
selectedPosition: base.extruderPosition
selectedQualityItem: base.qualityItem == null ? {} : base.qualityItem
}
SystemPalette { id: palette }
}
}

View file

@ -1,13 +1,13 @@
// Copyright (c) 2019 Ultimaker B.V. //Copyright (c) 2022 Ultimaker B.V.
// Uranium is released under the terms of the LGPLv3 or higher. //Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.7 import QtQuick 2.7
import QtQuick.Controls 1.4 as OldControls import QtQuick.Controls 1.4 as OldControls
import QtQuick.Controls 2.1 import QtQuick.Controls 2.15
import QtQuick.Layouts 1.3 import QtQuick.Layouts 1.3
import QtQuick.Dialogs 1.2 import QtQuick.Dialogs 1.2
import UM 1.2 as UM import UM 1.5 as UM
import Cura 1.6 as Cura import Cura 1.6 as Cura
@ -398,13 +398,13 @@ Item
} }
visible: text != "" visible: text != ""
text: catalog.i18nc("@label %1 is printer name", "Printer: %1").arg(Cura.MachineManager.activeMachine.name) text: catalog.i18nc("@label %1 is printer name", "Printer: %1").arg(Cura.MachineManager.activeMachine.name)
width: profileScrollView.width width: profileBackground.width
elide: Text.ElideRight elide: Text.ElideRight
} }
OldControls.ScrollView Rectangle
{ {
id: profileScrollView id: profileBackground
anchors anchors
{ {
top: captionLabel.visible ? captionLabel.bottom : parent.top top: captionLabel.visible ? captionLabel.bottom : parent.top
@ -412,22 +412,20 @@ Item
bottom: parent.bottom bottom: parent.bottom
left: parent.left left: parent.left
} }
width: (parent.width * 0.4) | 0
Rectangle color: palette.light
{
parent: viewport
anchors.fill: parent
color: palette.light
}
width: true ? (parent.width * 0.4) | 0 : parent.width
frameVisible: true
clip: true
ListView ListView
{ {
id: qualityListView id: qualityListView
anchors.fill: parent
ScrollBar.vertical: UM.ScrollBar
{
id: profileScrollBar
}
clip: true
model: base.qualityManagementModel model: base.qualityManagementModel
Component.onCompleted: Component.onCompleted:
@ -462,7 +460,7 @@ Item
delegate: Rectangle delegate: Rectangle
{ {
width: profileScrollView.width width: profileBackground.width - profileScrollBar.width
height: childrenRect.height height: childrenRect.height
// Added this property to identify custom profiles in automated system tests (Squish) // Added this property to identify custom profiles in automated system tests (Squish)
@ -514,16 +512,24 @@ Item
anchors anchors
{ {
left: profileScrollView.right left: profileBackground.right
leftMargin: UM.Theme.getSize("default_margin").width leftMargin: UM.Theme.getSize("default_margin").width
top: parent.top top: parent.top
bottom: parent.bottom bottom: parent.bottom
right: parent.right right: parent.right
} }
Item Column
{ {
anchors.fill: parent id: detailsPanelHeaderColumn
anchors
{
left: parent.left
right: parent.right
top: parent.top
}
spacing: UM.Theme.getSize("default_margin").height
visible: base.currentItem != null visible: base.currentItem != null
Item // Profile title Label Item // Profile title Label
@ -547,16 +553,14 @@ Item
Flow Flow
{ {
id: currentSettingsActions id: currentSettingsActions
width: parent.width
visible: base.hasCurrentItem && base.currentItem.name == Cura.MachineManager.activeQualityOrQualityChangesName && base.currentItem.intent_category == Cura.MachineManager.activeIntentCategory visible: base.hasCurrentItem && base.currentItem.name == Cura.MachineManager.activeQualityOrQualityChangesName && base.currentItem.intent_category == Cura.MachineManager.activeIntentCategory
anchors.left: parent.left
anchors.right: parent.right
anchors.top: profileName.bottom
anchors.topMargin: UM.Theme.getSize("default_margin").height
Button Button
{ {
text: catalog.i18nc("@action:button", "Update profile with current settings/overrides") text: catalog.i18nc("@action:button", "Update profile with current settings/overrides")
enabled: Cura.MachineManager.hasUserSettings && !base.currentItem.is_read_only enabled: Cura.MachineManager.hasUserSettings && qualityListView.currentItem && !qualityListView.currentItem.is_read_only
onClicked: Cura.ContainerManager.updateQualityChanges() onClicked: Cura.ContainerManager.updateQualityChanges()
} }
@ -568,62 +572,57 @@ Item
} }
} }
Column Label
{ {
id: profileNotices id: defaultsMessage
anchors.top: currentSettingsActions.visible ? currentSettingsActions.bottom : currentSettingsActions.anchors.top visible: false
anchors.topMargin: UM.Theme.getSize("default_margin").height text: catalog.i18nc("@action:label", "This profile uses the defaults specified by the printer, so it has no settings/overrides in the list below.")
anchors.left: parent.left wrapMode: Text.WordWrap
anchors.right: parent.right width: parent.width
spacing: UM.Theme.getSize("default_margin").height }
Label
Label {
{ id: noCurrentSettingsMessage
id: defaultsMessage visible: base.isCurrentItemActivated && !Cura.MachineManager.hasUserSettings
visible: false text: catalog.i18nc("@action:label", "Your current settings match the selected profile.")
text: catalog.i18nc("@action:label", "This profile uses the defaults specified by the printer, so it has no settings/overrides in the list below.") wrapMode: Text.WordWrap
wrapMode: Text.WordWrap width: parent.width
width: parent.width
}
Label
{
id: noCurrentSettingsMessage
visible: base.isCurrentItemActivated && !Cura.MachineManager.hasUserSettings
text: catalog.i18nc("@action:label", "Your current settings match the selected profile.")
wrapMode: Text.WordWrap
width: parent.width
}
} }
OldControls.TabView UM.TabRow
{ {
anchors.left: parent.left id: profileExtruderTabs
anchors.top: profileNotices.visible ? profileNotices.bottom : profileNotices.anchors.top UM.TabRowButton //One extra tab for the global settings.
anchors.topMargin: UM.Theme.getSize("default_margin").height
anchors.right: parent.right
anchors.bottom: parent.bottom
currentIndex: 0
ProfileTab
{ {
title: catalog.i18nc("@title:tab", "Global Settings") text: catalog.i18nc("@title:tab", "Global Settings")
qualityItem: base.currentItem
} }
Repeater Repeater
{ {
model: base.extrudersModel model: base.extrudersModel
ProfileTab UM.TabRowButton
{ {
title: model.name text: model.name
extruderPosition: model.index
qualityItem: base.currentItem
} }
} }
} }
} }
Cura.ProfileOverview
{
anchors
{
top: detailsPanelHeaderColumn.bottom
left: parent.left
right: parent.right
bottom: parent.bottom
}
visible: detailsPanelHeaderColumn.visible
qualityItem: base.currentItem
extruderPosition: profileExtruderTabs.currentIndex - 1
}
} }
} }
} }

View file

@ -1,13 +1,11 @@
// Copyright (c) 2016 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.1 import QtQuick 2.1
import QtQuick.Controls 1.1 import QtQuick.Controls 2.15
import QtQuick.Controls.Styles 1.1 import QtQuick.Controls 1.1 as OldControls
import QtQuick.Controls 2.3 as NewControls import UM 1.5 as UM
import UM 1.2 as UM
import Cura 1.0 as Cura import Cura 1.0 as Cura
@ -36,7 +34,7 @@ UM.PreferencesPage
id: base; id: base;
anchors.fill: parent; anchors.fill: parent;
CheckBox OldControls.CheckBox
{ {
id: toggleVisibleSettings id: toggleVisibleSettings
anchors anchors
@ -98,7 +96,7 @@ UM.PreferencesPage
onTextChanged: definitionsModel.filter = {"i18n_label|i18n_description": "*" + text} onTextChanged: definitionsModel.filter = {"i18n_label|i18n_description": "*" + text}
} }
NewControls.ComboBox ComboBox
{ {
id: visibilityPreset id: visibilityPreset
width: 150 * screenScaleFactor width: 150 * screenScaleFactor
@ -106,7 +104,7 @@ UM.PreferencesPage
{ {
top: parent.top top: parent.top
right: parent.right right: parent.right
bottom: scrollView.top bottom: settingsListView.top
} }
model: settingVisibilityPresetsModel.items model: settingVisibilityPresetsModel.items
@ -133,12 +131,9 @@ UM.PreferencesPage
} }
} }
ScrollView ListView
{ {
id: scrollView id: settingsListView
frameVisible: true
anchors anchors
{ {
top: filter.bottom; top: filter.bottom;
@ -147,42 +142,41 @@ UM.PreferencesPage
right: parent.right; right: parent.right;
bottom: parent.bottom; bottom: parent.bottom;
} }
ListView
clip: true
ScrollBar.vertical: UM.ScrollBar {}
model: UM.SettingDefinitionsModel
{ {
id: settingsListView id: definitionsModel
containerId: Cura.MachineManager.activeMachine != null ? Cura.MachineManager.activeMachine.definition.id: ""
showAll: true
exclude: ["machine_settings", "command_line_settings"]
showAncestors: true
expanded: ["*"]
visibilityHandler: UM.SettingPreferenceVisibilityHandler {}
}
model: UM.SettingDefinitionsModel delegate: Loader
{
id: loader
width: settingsListView.width
height: model.type != undefined ? UM.Theme.getSize("section").height : 0
property var definition: model
property var settingDefinitionsModel: definitionsModel
asynchronous: true
active: model.type != undefined
sourceComponent:
{ {
id: definitionsModel switch(model.type)
containerId: Cura.MachineManager.activeMachine != null ? Cura.MachineManager.activeMachine.definition.id: ""
showAll: true
exclude: ["machine_settings", "command_line_settings"]
showAncestors: true
expanded: ["*"]
visibilityHandler: UM.SettingPreferenceVisibilityHandler {}
}
delegate: Loader
{
id: loader
width: settingsListView.width
height: model.type != undefined ? UM.Theme.getSize("section").height : 0
property var definition: model
property var settingDefinitionsModel: definitionsModel
asynchronous: true
active: model.type != undefined
sourceComponent:
{ {
switch(model.type) case "category":
{ return settingVisibilityCategory
case "category": default:
return settingVisibilityCategory return settingVisibilityItem
default:
return settingVisibilityItem
}
} }
} }
} }

View file

@ -1,5 +1,5 @@
// Copyright (c) 2018 Ultimaker B.V. //Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. //Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10 import QtQuick 2.10
import QtQuick.Controls 2.3 import QtQuick.Controls 2.3
@ -213,6 +213,7 @@ Item
model: extrudersModel model: extrudersModel
delegate: UM.TabRowButton delegate: UM.TabRowButton
{ {
checked: model.index == 0
contentItem: Item contentItem: Item
{ {
Cura.ExtruderIcon Cura.ExtruderIcon

View file

@ -1,4 +1,4 @@
// Copyright (c) 2020 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10 import QtQuick 2.10
@ -43,17 +43,29 @@ Popup
// This repeater adds the intent labels // This repeater adds the intent labels
ScrollView ScrollView
{ {
id: qualityListScrollView
property real maximumHeight: screenScaleFactor * 400 property real maximumHeight: screenScaleFactor * 400
contentHeight: dataColumn.height contentHeight: dataColumn.height
height: Math.min(contentHeight, maximumHeight) height: Math.min(contentHeight, maximumHeight)
clip: true width: parent.width
ScrollBar.vertical.policy: height == maximumHeight ? ScrollBar.AlwaysOn: ScrollBar.AlwaysOff clip: true
ScrollBar.vertical: UM.ScrollBar
{
id: qualityListScrollBar
parent: qualityListScrollView
anchors
{
top: parent.top
right: parent.right
bottom: parent.bottom
}
}
Column Column
{ {
id: dataColumn id: dataColumn
width: parent.width width: qualityListScrollView.width - qualityListScrollBar.width
Repeater Repeater
{ {
model: dataModel model: dataModel
@ -64,7 +76,7 @@ Popup
property variant subItemModel: model.qualities property variant subItemModel: model.qualities
height: childrenRect.height height: childrenRect.height
width: popup.contentWidth width: dataColumn.width
UM.Label UM.Label
{ {
@ -137,7 +149,7 @@ Popup
Item Item
{ {
height: childrenRect.height height: childrenRect.height
width: popup.contentWidth width: dataColumn.width
UM.Label UM.Label
{ {

View file

@ -1,9 +1,9 @@
// Copyright (c) 2020 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10 import QtQuick 2.10
import QtQuick.Controls 1.4 import QtQuick.Controls 1.4 as OldControls
import QtQuick.Controls 2.3 as Controls2 import QtQuick.Controls 2.3
import UM 1.5 as UM import UM 1.5 as UM
import Cura 1.0 as Cura import Cura 1.0 as Cura
@ -73,7 +73,7 @@ Item
} }
} }
Controls2.ComboBox ComboBox
{ {
id: supportExtruderCombobox id: supportExtruderCombobox
@ -200,7 +200,7 @@ Item
} }
} }
contentItem:UM.Label contentItem: UM.Label
{ {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left anchors.left: parent.left
@ -229,7 +229,7 @@ Item
} }
} }
popup: Controls2.Popup popup: Popup
{ {
y: supportExtruderCombobox.height - UM.Theme.getSize("default_lining").height y: supportExtruderCombobox.height - UM.Theme.getSize("default_lining").height
width: supportExtruderCombobox.width width: supportExtruderCombobox.width
@ -238,12 +238,12 @@ Item
contentItem: ListView contentItem: ListView
{ {
clip: true
implicitHeight: contentHeight implicitHeight: contentHeight
ScrollBar.vertical: UM.ScrollBar {}
clip: true
model: supportExtruderCombobox.popup.visible ? supportExtruderCombobox.delegateModel : null model: supportExtruderCombobox.popup.visible ? supportExtruderCombobox.delegateModel : null
currentIndex: supportExtruderCombobox.highlightedIndex currentIndex: supportExtruderCombobox.highlightedIndex
Controls2.ScrollIndicator.vertical: Controls2.ScrollIndicator { }
} }
background: Rectangle background: Rectangle
@ -253,7 +253,7 @@ Item
} }
} }
delegate: Controls2.ItemDelegate delegate: ItemDelegate
{ {
width: supportExtruderCombobox.width - 2 * UM.Theme.getSize("default_lining").width width: supportExtruderCombobox.width - 2 * UM.Theme.getSize("default_lining").width
height: supportExtruderCombobox.height height: supportExtruderCombobox.height

View file

@ -1,10 +1,10 @@
// Copyright (c) 2018 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.7 import QtQuick 2.7
import QtQuick.Controls 2.3 import QtQuick.Controls 2.3
import UM 1.2 as UM import UM 1.5 as UM
import Cura 1.1 as Cura import Cura 1.1 as Cura
Cura.ExpandablePopup Cura.ExpandablePopup
@ -193,42 +193,27 @@ Cura.ExpandablePopup
{ {
id: popup id: popup
width: UM.Theme.getSize("machine_selector_widget_content").width width: UM.Theme.getSize("machine_selector_widget_content").width
height: Math.min(machineSelectorList.contentHeight + separator.height + buttonRow.height, UM.Theme.getSize("machine_selector_widget_content").height) //Maximum height is the theme entry.
ScrollView MachineSelectorList
{ {
id: scroll id: machineSelectorList
width: parent.width anchors
clip: true
leftPadding: UM.Theme.getSize("default_lining").width
rightPadding: UM.Theme.getSize("default_lining").width
MachineSelectorList
{ {
id: machineSelectorList left: parent.left
// Can't use parent.width since the parent is the flickable component and not the ScrollView leftMargin: UM.Theme.getSize("default_lining").width
width: scroll.width - scroll.leftPadding - scroll.rightPadding right: parent.right
property real maximumHeight: UM.Theme.getSize("machine_selector_widget_content").height - buttonRow.height rightMargin: UM.Theme.getSize("default_lining").width
top: parent.top
// We use an extra property here, since we only want to to be informed about the content size changes. bottom: separator.top
onContentHeightChanged:
{
scroll.height = Math.min(contentHeight, maximumHeight)
popup.height = scroll.height + buttonRow.height
}
Component.onCompleted:
{
scroll.height = Math.min(contentHeight, maximumHeight)
popup.height = scroll.height + buttonRow.height
}
} }
clip: true
} }
Rectangle Rectangle
{ {
id: separator id: separator
anchors.bottom: buttonRow.top
anchors.top: scroll.bottom
width: parent.width width: parent.width
height: UM.Theme.getSize("default_lining").height height: UM.Theme.getSize("default_lining").height
color: UM.Theme.getColor("lining") color: UM.Theme.getColor("lining")
@ -238,8 +223,7 @@ Cura.ExpandablePopup
{ {
id: buttonRow id: buttonRow
// The separator is inside the buttonRow. This is to avoid some weird behaviours with the scroll bar. anchors.bottom: parent.bottom
anchors.top: separator.top
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
padding: UM.Theme.getSize("default_margin").width padding: UM.Theme.getSize("default_margin").width
spacing: UM.Theme.getSize("default_margin").width spacing: UM.Theme.getSize("default_margin").width

View file

@ -14,10 +14,15 @@ ListView
section.property: "hasRemoteConnection" section.property: "hasRemoteConnection"
property real contentHeight: childrenRect.height property real contentHeight: childrenRect.height
ScrollBar.vertical: UM.ScrollBar
{
id: scrollBar
}
section.delegate: UM.Label section.delegate: UM.Label
{ {
text: section == "true" ? catalog.i18nc("@label", "Connected printers") : catalog.i18nc("@label", "Preset printers") text: section == "true" ? catalog.i18nc("@label", "Connected printers") : catalog.i18nc("@label", "Preset printers")
width: parent.width width: parent.width - scrollBar.width
height: UM.Theme.getSize("action_button").height height: UM.Theme.getSize("action_button").height
leftPadding: UM.Theme.getSize("default_margin").width leftPadding: UM.Theme.getSize("default_margin").width
font: UM.Theme.getFont("medium") font: UM.Theme.getFont("medium")
@ -27,7 +32,7 @@ ListView
delegate: MachineSelectorButton delegate: MachineSelectorButton
{ {
text: model.name ? model.name : "" text: model.name ? model.name : ""
width: listView.width width: listView.width - scrollBar.width
outputDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null outputDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null
checked: Cura.MachineManager.activeMachine ? Cura.MachineManager.activeMachine.id == model.id : false checked: Cura.MachineManager.activeMachine ? Cura.MachineManager.activeMachine.id == model.id : false

View file

@ -0,0 +1,42 @@
//Copyright (c) 2022 Ultimaker B.V.
//Cura is released under the terms of the LGPLv3 or higher.
import Qt.labs.qmlmodels 1.0
import QtQuick 2.7
import QtQuick.Controls 1.4 as OldControls
import QtQuick.Controls 2.15
import UM 1.5 as UM
import Cura 1.6 as Cura
Cura.TableView
{
id: profileOverview
property var qualityItem //The quality profile to display here.
property int extruderPosition: -1 //The extruder to display. -1 denotes the global stack.
property bool isQualityItemCurrentlyActivated: qualityItem != null && qualityItem.name == Cura.MachineManager.activeQualityOrQualityChangesName
Cura.QualitySettingsModel
{
id: qualitySettings
selectedPosition: profileOverview.extruderPosition
selectedQualityItem: profileOverview.qualityItem == null ? {} : profileOverview.qualityItem
}
columnHeaders: [
catalog.i18nc("@title:column", "Setting"),
catalog.i18nc("@title:column", "Profile"),
catalog.i18nc("@title:column", "Current"),
catalog.i18nc("@title:column Unit of measurement", "Unit")
]
model: TableModel
{
TableModelColumn { display: "label" }
TableModelColumn { display: "profile_value" }
TableModelColumn { display: "user_value" }
TableModelColumn { display: "unit" }
rows: qualitySettings.items
}
sectionRole: "category"
}

View file

@ -1,4 +1,4 @@
// Copyright (c) 2016 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Uranium is released under the terms of the LGPLv3 or higher. // Uranium is released under the terms of the LGPLv3 or higher.
import QtQuick 2.7 import QtQuick 2.7
@ -178,12 +178,12 @@ SettingItem
contentItem: ListView contentItem: ListView
{ {
clip: true
implicitHeight: contentHeight implicitHeight: contentHeight
ScrollBar.vertical: UM.ScrollBar {}
clip: true
model: control.popup.visible ? control.delegateModel : null model: control.popup.visible ? control.delegateModel : null
currentIndex: control.highlightedIndex currentIndex: control.highlightedIndex
ScrollIndicator.vertical: ScrollIndicator { }
} }
background: Rectangle background: Rectangle

View file

@ -1,4 +1,4 @@
// Copyright (c) 2018 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.7 import QtQuick 2.7
@ -181,12 +181,12 @@ SettingItem
contentItem: ListView contentItem: ListView
{ {
clip: true
implicitHeight: contentHeight implicitHeight: contentHeight
ScrollBar.vertical: UM.ScrollBar {}
clip: true
model: control.popup.visible ? control.delegateModel : null model: control.popup.visible ? control.delegateModel : null
currentIndex: control.highlightedIndex currentIndex: control.highlightedIndex
ScrollIndicator.vertical: ScrollIndicator { }
} }
background: Rectangle { background: Rectangle {

View file

@ -1,4 +1,4 @@
// Copyright (c) 2021 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.7 import QtQuick 2.7
@ -191,6 +191,7 @@ Item
} }
clip: true clip: true
cacheBuffer: 1000000 // Set a large cache to effectively just cache every list item. cacheBuffer: 1000000 // Set a large cache to effectively just cache every list item.
ScrollBar.vertical: UM.ScrollBar {}
model: UM.SettingDefinitionsModel model: UM.SettingDefinitionsModel
{ {

View file

@ -1,67 +1,217 @@
// Copyright (C) 2021 Ultimaker B.V. //Copyright (C) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. //Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10 import Qt.labs.qmlmodels 1.0
import QtQuick.Controls 1.4 as OldControls // TableView doesn't exist in the QtQuick Controls 2.x in 5.10, so use the old one import QtQuick 2.15
import QtQuick.Controls 2.3 import QtQuick.Controls 2.15
import QtQuick.Controls.Styles 1.4
import UM 1.5 as UM import UM 1.5 as UM
/*
OldControls.TableView * A re-sizeable table of data.
*
* This table combines a list of headers with a TableView to show certain roles in a table.
* The columns of the table can be resized.
* When the table becomes too big, you can scroll through the table. When a column becomes too small, the contents of
* the table are elided.
* The table gets Cura's themeing.
*/
Item
{ {
itemDelegate: Item id: tableBase
{
height: tableCellLabel.implicitHeight
UM.Label required property var columnHeaders //The text to show in the headers of each column.
property alias model: tableView.model //A TableModel to display in this table. To use a ListModel for the rows, use "rows: listModel.items"
property int currentRow: -1 //The selected row index.
property var onDoubleClicked: function(row) {} //Something to execute when double clicked. Accepts one argument: The index of the row that was clicked on.
property bool allowSelection: true //Whether to allow the user to select items.
property string sectionRole: ""
Row
{
id: headerBar
Repeater
{ {
id: tableCellLabel id: headerRepeater
color: styleData.selected ? UM.Theme.getColor("primary_button_text") : UM.Theme.getColor("text") model: columnHeaders
elide: Text.ElideRight Rectangle
text: styleData.value {
anchors.fill: parent width: Math.max(1, Math.round(tableBase.width / headerRepeater.count))
anchors.leftMargin: 10 * screenScaleFactor height: UM.Theme.getSize("section").height
color: UM.Theme.getColor("secondary")
Label
{
id: contentText
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("narrow_margin").width
anchors.right: parent.right
anchors.rightMargin: UM.Theme.getSize("narrow_margin").width
text: modelData
font: UM.Theme.getFont("medium_bold")
color: UM.Theme.getColor("text")
elide: Text.ElideRight
}
Rectangle //Resize handle.
{
anchors
{
right: parent.right
top: parent.top
bottom: parent.bottom
}
width: UM.Theme.getSize("thick_lining").width
color: UM.Theme.getColor("thick_lining")
MouseArea
{
anchors.fill: parent
cursorShape: Qt.SizeHorCursor
drag
{
target: parent
axis: Drag.XAxis
}
onMouseXChanged:
{
if(drag.active)
{
let new_width = parent.parent.width + mouseX;
let sum_widths = mouseX;
for(let i = 0; i < headerBar.children.length; ++i)
{
sum_widths += headerBar.children[i].width;
}
if(sum_widths > tableBase.width)
{
new_width -= sum_widths - tableBase.width; //Limit the total width to not exceed the view.
}
let width_fraction = new_width / tableBase.width; //Scale with the same fraction along with the total width, if the table is resized.
parent.parent.width = Qt.binding(function() { return tableBase.width * width_fraction });
}
}
}
}
onWidthChanged:
{
tableView.forceLayout(); //Rescale table cells underneath as well.
}
}
} }
} }
rowDelegate: Rectangle TableView
{ {
color: styleData.selected ? UM.Theme.getColor("primary_button") : UM.Theme.getColor("main_background") id: tableView
height: UM.Theme.getSize("table_row").height anchors
{
top: headerBar.bottom
left: parent.left
right: parent.right
bottom: parent.bottom
}
clip: true
ScrollBar.vertical: UM.ScrollBar {}
columnWidthProvider: function(column)
{
return headerBar.children[column].width; //Cells get the same width as their column header.
}
delegate: Rectangle
{
implicitHeight: Math.max(1, cellContent.height)
color: UM.Theme.getColor((tableBase.currentRow == row) ? "primary" : ((row % 2 == 0) ? "main_background" : "viewport_background"))
Label
{
id: cellContent
width: parent.width
text: display
verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight
font: UM.Theme.getFont("default")
color: UM.Theme.getColor("text")
}
TextMetrics
{
id: cellTextMetrics
text: cellContent.text
font: cellContent.font
elide: cellContent.elide
elideWidth: cellContent.width
}
UM.TooltipArea
{
anchors.fill: parent
text: (cellTextMetrics.elidedText == cellContent.text) ? "" : cellContent.text //Show full text in tooltip if it was elided.
onClicked:
{
if(tableBase.allowSelection)
{
tableBase.currentRow = row; //Select this row.
}
}
onDoubleClicked:
{
tableBase.onDoubleClicked(row);
}
}
}
Connections
{
target: model
function onRowCountChanged()
{
tableView.contentY = 0; //When the number of rows is reduced, make sure to scroll back to the start.
}
}
} }
// Use the old styling technique since it's the only way to make the scrollbars themed in the TableView Connections
style: TableViewStyle
{ {
backgroundColor: UM.Theme.getColor("main_background") target: model
function onRowsChanged()
handle: Rectangle
{ {
// Both implicit width and height have to be set, since the handle is used by both the horizontal and the vertical scrollbars let first_column = model.columns[0].display;
implicitWidth: UM.Theme.getSize("scrollbar").width if(model.rows.length > 0 && model.rows[0][first_column].startsWith("<b>")) //First item is already a section header.
implicitHeight: UM.Theme.getSize("scrollbar").width {
radius: width / 2 return; //Assume we already added section headers. Prevent infinite recursion.
color: UM.Theme.getColor(styleData.pressed ? "scrollbar_handle_down" : (styleData.hovered ? "scrollbar_handle_hover" : "scrollbar_handle")) }
} if(sectionRole === "" || model.rows.length == 0) //No section headers, or no items at all.
{
tableView.model.rows = model.rows;
return;
}
scrollBarBackground: Rectangle //Insert section headers in the rows.
{ let last_section = "";
// Both implicit width and height have to be set, since the handle is used by both the horizontal and the vertical scrollbars let new_rows = [];
implicitWidth: UM.Theme.getSize("scrollbar").width for(let i = 0; i < model.rows.length; ++i)
implicitHeight: UM.Theme.getSize("scrollbar").width {
color: UM.Theme.getColor("main_background") let item_section = model.rows[i][sectionRole];
if(item_section !== last_section) //Starting a new section.
{
let section_header = {};
for(let key in model.rows[i])
{
section_header[key] = (key === first_column) ? "<b>" + item_section + "</b>" : ""; //Put the section header in the first column.
}
new_rows.push(section_header); //Add a row representing a section header.
last_section = item_section;
}
new_rows.push(model.rows[i]);
}
tableView.model.rows = new_rows;
} }
// The little rectangle between the vertical and horizontal scrollbars
corner: Rectangle
{
color: UM.Theme.getColor("main_background")
}
// Override the control arrows
incrementControl: Item { }
decrementControl: Item { }
} }
} }

View file

@ -1,11 +1,11 @@
// Copyright (c) 2019 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10 import QtQuick 2.10
import QtQuick.Controls 2.3 import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3 import QtQuick.Layouts 1.3
import UM 1.3 as UM import UM 1.5 as UM
import Cura 1.7 as Cura import Cura 1.7 as Cura
@ -22,7 +22,7 @@ Item
property bool searchingForCloudPrinters: true property bool searchingForCloudPrinters: true
property var discoveredCloudPrintersModel: CuraApplication.getDiscoveredCloudPrintersModel() property var discoveredCloudPrintersModel: CuraApplication.getDiscoveredCloudPrintersModel()
// The area where either the discoveredCloudPrintersScrollView or the busyIndicator will be displayed // The area where either the discoveredCloudPrintersList or the busyIndicator will be displayed
Item Item
{ {
id: cloudPrintersContent id: cloudPrintersContent
@ -126,14 +126,9 @@ Item
// The scrollView that contains the list of newly discovered Ultimaker Cloud printers. Visible only when // The scrollView that contains the list of newly discovered Ultimaker Cloud printers. Visible only when
// there is at least a new cloud printer. // there is at least a new cloud printer.
ScrollView ListView
{ {
id: discoveredCloudPrintersScrollView id: discoveredCloudPrintersList
width: parent.width
clip : true
ScrollBar.horizontal.policy: ScrollBar.AsNeeded
ScrollBar.vertical.policy: ScrollBar.AsNeeded
visible: discoveredCloudPrintersModel.count > 0
anchors anchors
{ {
top: cloudPrintersAddedTitle.bottom top: cloudPrintersAddedTitle.bottom
@ -144,52 +139,47 @@ Item
bottom: parent.bottom bottom: parent.bottom
} }
Column ScrollBar.vertical: UM.ScrollBar {}
clip : true
visible: discoveredCloudPrintersModel.count > 0
spacing: UM.Theme.getSize("wide_margin").height
model: discoveredCloudPrintersModel
delegate: Item
{ {
id: discoveredPrintersColumn width: discoveredCloudPrintersList.width
spacing: 2 * UM.Theme.getSize("default_margin").height height: contentColumn.height
Repeater Column
{ {
id: discoveredCloudPrintersRepeater id: contentColumn
model: discoveredCloudPrintersModel Label
delegate: Item
{ {
width: discoveredCloudPrintersScrollView.width id: cloudPrinterNameLabel
height: contentColumn.height leftPadding: UM.Theme.getSize("default_margin").width
text: model.name ? model.name : ""
Column font: UM.Theme.getFont("large_bold")
{ color: UM.Theme.getColor("text")
id: contentColumn elide: Text.ElideRight
Label }
{ Label
id: cloudPrinterNameLabel {
leftPadding: UM.Theme.getSize("default_margin").width id: cloudPrinterTypeLabel
text: model.name leftPadding: 2 * UM.Theme.getSize("default_margin").width
font: UM.Theme.getFont("large_bold") topPadding: UM.Theme.getSize("thin_margin").height
color: UM.Theme.getColor("text") text: {"Type: " + model.machine_type}
elide: Text.ElideRight font: UM.Theme.getFont("medium")
} color: UM.Theme.getColor("text")
Label elide: Text.ElideRight
{ }
id: cloudPrinterTypeLabel Label
leftPadding: 2 * UM.Theme.getSize("default_margin").width {
topPadding: UM.Theme.getSize("thin_margin").height id: cloudPrinterFirmwareVersionLabel
text: {"Type: " + model.machine_type} leftPadding: 2 * UM.Theme.getSize("default_margin").width
font: UM.Theme.getFont("medium") text: {"Firmware version: " + model.firmware_version}
color: UM.Theme.getColor("text") font: UM.Theme.getFont("medium")
elide: Text.ElideRight color: UM.Theme.getColor("text")
} elide: Text.ElideRight
Label
{
id: cloudPrinterFirmwareVersionLabel
leftPadding: 2 * UM.Theme.getSize("default_margin").width
text: {"Firmware version: " + model.firmware_version}
font: UM.Theme.getFont("medium")
color: UM.Theme.getColor("text")
elide: Text.ElideRight
}
}
} }
} }
} }

View file

@ -1,4 +1,4 @@
// Copyright (c) 2019 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10 import QtQuick 2.10
@ -74,118 +74,93 @@ Item
Row Row
{ {
id: localPrinterSelectionItem id: localPrinterSelectionItem
anchors.left: parent.left anchors.fill: parent
anchors.right: parent.right
anchors.top: parent.top
// ScrollView + ListView for selecting a local printer to add //Selecting a local printer to add from this list.
Cura.ScrollView ListView
{ {
id: scrollView id: machineList
height: childrenHeight
width: Math.floor(parent.width * 0.48) width: Math.floor(parent.width * 0.48)
height: parent.height
ListView clip: true
ScrollBar.vertical: UM.ScrollBar {}
model: UM.DefinitionContainersModel
{ {
id: machineList id: machineDefinitionsModel
filter: { "visible": true }
// CURA-6793 sectionProperty: "manufacturer"
// Enabling the buffer seems to cause the blank items issue. When buffer is enabled, if the ListView's preferredSections: preferredCategories
// individual item has a dynamic change on its visibility, the ListView doesn't redraw itself.
// The default value of cacheBuffer is platform-dependent, so we explicitly disable it here.
cacheBuffer: 0
boundsBehavior: Flickable.StopAtBounds
flickDeceleration: 20000 // To prevent the flicking behavior.
model: UM.DefinitionContainersModel
{
id: machineDefinitionsModel
filter: { "visible": true }
sectionProperty: "manufacturer"
preferredSections: preferredCategories
}
section.property: "section"
section.delegate: sectionHeader
delegate: machineButton
} }
Component section.property: "section"
section.delegate: Button
{ {
id: sectionHeader id: button
width: machineList.width
height: UM.Theme.getSize("action_button").height
text: section
Button property bool isActive: base.currentSection == section
background: Rectangle
{ {
id: button anchors.fill: parent
width: ListView.view.width color: isActive ? UM.Theme.getColor("setting_control_highlight") : "transparent"
}
contentItem: Item
{
width: childrenRect.width
height: UM.Theme.getSize("action_button").height height: UM.Theme.getSize("action_button").height
text: section
property bool isActive: base.currentSection == section UM.RecolorImage
background: Rectangle
{ {
anchors.fill: parent id: arrow
color: isActive ? UM.Theme.getColor("setting_control_highlight") : "transparent" anchors.left: parent.left
width: UM.Theme.getSize("standard_arrow").width
height: UM.Theme.getSize("standard_arrow").height
sourceSize.width: width
sourceSize.height: height
color: UM.Theme.getColor("text")
source: base.currentSection == section ? UM.Theme.getIcon("ChevronSingleDown") : UM.Theme.getIcon("ChevronSingleRight")
} }
contentItem: Item UM.Label
{ {
width: childrenRect.width id: label
height: UM.Theme.getSize("action_button").height anchors.left: arrow.right
anchors.leftMargin: UM.Theme.getSize("default_margin").width
UM.RecolorImage text: button.text
{ font: UM.Theme.getFont("default_bold")
id: arrow
anchors.left: parent.left
width: UM.Theme.getSize("standard_arrow").width
height: UM.Theme.getSize("standard_arrow").height
sourceSize.width: width
sourceSize.height: height
color: UM.Theme.getColor("text")
source: base.currentSection == section ? UM.Theme.getIcon("ChevronSingleDown") : UM.Theme.getIcon("ChevronSingleRight")
}
UM.Label
{
id: label
anchors.left: arrow.right
anchors.leftMargin: UM.Theme.getSize("default_margin").width
text: button.text
font: UM.Theme.getFont("default_bold")
}
} }
}
onClicked: onClicked:
{ {
base.currentSection = section base.currentSection = section
base.updateCurrentItemUponSectionChange() base.updateCurrentItemUponSectionChange()
}
} }
} }
Component delegate: Cura.RadioButton
{ {
id: machineButton id: radioButton
anchors
Cura.RadioButton
{ {
id: radioButton left: parent !== null ? parent.left : undefined
anchors leftMargin: UM.Theme.getSize("standard_list_lineheight").width
{
left: parent !== null ? parent.left: undefined
leftMargin: UM.Theme.getSize("standard_list_lineheight").width
right: parent !== null ? parent.right: undefined right: parent !== null ? parent.right : undefined
rightMargin: UM.Theme.getSize("default_margin").width rightMargin: UM.Theme.getSize("default_margin").width
}
height: visible ? UM.Theme.getSize("standard_list_lineheight").height : 0
checked: ListView.view.currentIndex == index
text: name
visible: base.currentSection == section
onClicked: ListView.view.currentIndex = index
} }
height: visible ? UM.Theme.getSize("standard_list_lineheight").height : 0 //This causes the scrollbar to vary in length due to QTBUG-76830.
checked: machineList.currentIndex == index
text: name
visible: base.currentSection.toLowerCase() === section.toLowerCase()
onClicked: machineList.currentIndex = index
} }
} }
@ -194,7 +169,7 @@ Item
{ {
id: verticalLine id: verticalLine
anchors.top: parent.top anchors.top: parent.top
height: childrenHeight - UM.Theme.getSize("default_lining").height height: parent.height - UM.Theme.getSize("default_lining").height
width: UM.Theme.getSize("default_lining").height width: UM.Theme.getSize("default_lining").height
color: UM.Theme.getColor("lining") color: UM.Theme.getColor("lining")
} }

View file

@ -1,4 +1,4 @@
// Copyright (c) 2019 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10 import QtQuick 2.10
@ -45,11 +45,9 @@ Item
} }
contentComponent: networkPrinterListComponent contentComponent: networkPrinterListComponent
Component Component
{ {
id: networkPrinterListComponent id: networkPrinterListComponent
AddNetworkPrinterScrollView AddNetworkPrinterScrollView
{ {
id: networkPrinterScrollView id: networkPrinterScrollView
@ -95,20 +93,13 @@ Item
} }
contentComponent: localPrinterListComponent contentComponent: localPrinterListComponent
Component Component
{ {
id: localPrinterListComponent id: localPrinterListComponent
AddLocalPrinterScrollView AddLocalPrinterScrollView
{ {
id: localPrinterView id: localPrinterView
property int childrenHeight: backButton.y - addLocalPrinterDropDown.y - UM.Theme.getSize("expandable_component_content_header").height - UM.Theme.getSize("default_margin").height height: backButton.y - addLocalPrinterDropDown.y - UM.Theme.getSize("expandable_component_content_header").height - UM.Theme.getSize("default_margin").height
onChildrenHeightChanged:
{
addLocalPrinterDropDown.children[1].height = childrenHeight
}
} }
} }
} }

View file

@ -1,4 +1,4 @@
// Copyright (c) 2021 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10 import QtQuick 2.10
@ -17,7 +17,7 @@ Item
id: base id: base
height: networkPrinterInfo.height + controlsRectangle.height height: networkPrinterInfo.height + controlsRectangle.height
property alias maxItemCountAtOnce: networkPrinterScrollView.maxItemCountAtOnce property alias maxItemCountAtOnce: networkPrinterListView.maxItemCountAtOnce
property var currentItem: (networkPrinterListView.currentIndex >= 0) property var currentItem: (networkPrinterListView.currentIndex >= 0)
? networkPrinterListView.model[networkPrinterListView.currentIndex] ? networkPrinterListView.model[networkPrinterListView.currentIndex]
: null : null
@ -29,7 +29,7 @@ Item
Item Item
{ {
id: networkPrinterInfo id: networkPrinterInfo
height: networkPrinterScrollView.visible ? networkPrinterScrollView.height : noPrinterLabel.height height: networkPrinterListView.visible ? networkPrinterListView.height : noPrinterLabel.height
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
anchors.top: parent.top anchors.top: parent.top
@ -44,104 +44,90 @@ Item
visible: networkPrinterListView.count == 0 // Do not show if there are discovered devices. visible: networkPrinterListView.count == 0 // Do not show if there are discovered devices.
} }
ScrollView ListView
{ {
id: networkPrinterScrollView id: networkPrinterListView
anchors.top: parent.top anchors.top: parent.top
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
ScrollBar.horizontal.policy: ScrollBar.AsNeeded
ScrollBar.vertical.policy: ScrollBar.AsNeeded
property int maxItemCountAtOnce: 8 // show at max 8 items at once, otherwise you need to scroll.
height: Math.min(contentHeight, (maxItemCountAtOnce * UM.Theme.getSize("action_button").height) - UM.Theme.getSize("default_margin").height) height: Math.min(contentHeight, (maxItemCountAtOnce * UM.Theme.getSize("action_button").height) - UM.Theme.getSize("default_margin").height)
ScrollBar.vertical: UM.ScrollBar
{
id: networkPrinterScrollBar
}
clip: true
property int maxItemCountAtOnce: 8 // show at max 8 items at once, otherwise you need to scroll.
visible: networkPrinterListView.count > 0 visible: networkPrinterListView.count > 0
clip: true model: contentLoader.enabled ? CuraApplication.getDiscoveredPrintersModel().discoveredPrinters: undefined
cacheBuffer: 1000000 // Set a large cache to effectively just cache every list item.
ListView section.property: "modelData.sectionName"
section.criteria: ViewSection.FullString
section.delegate: UM.Label
{ {
id: networkPrinterListView anchors.left: parent.left
anchors.fill: parent anchors.leftMargin: UM.Theme.getSize("default_margin").width
model: contentLoader.enabled ? CuraApplication.getDiscoveredPrintersModel().discoveredPrinters: undefined width: parent.width - networkPrinterScrollBar.width - UM.Theme.getSize("default_margin").width
height: UM.Theme.getSize("setting_control").height
text: section
color: UM.Theme.getColor("small_button_text")
}
section.property: "modelData.sectionName" Component.onCompleted:
section.criteria: ViewSection.FullString {
section.delegate: sectionHeading var toSelectIndex = -1
boundsBehavior: Flickable.StopAtBounds // Select the first one that's not "unknown" and is the host a group by default.
flickDeceleration: 20000 // To prevent the flicking behavior. for (var i = 0; i < count; i++)
cacheBuffer: 1000000 // Set a large cache to effectively just cache every list item.
Component.onCompleted:
{ {
var toSelectIndex = -1 if (!model[i].isUnknownMachineType && model[i].isHostOfGroup)
// Select the first one that's not "unknown" and is the host a group by default.
for (var i = 0; i < count; i++)
{ {
if (!model[i].isUnknownMachineType && model[i].isHostOfGroup) toSelectIndex = i
{ break
toSelectIndex = i
break
}
}
currentIndex = toSelectIndex
}
// CURA-6483 For some reason currentIndex can be reset to 0. This check is here to prevent automatically
// selecting an unknown or non-host printer.
onCurrentIndexChanged:
{
var item = model[currentIndex]
if (!item || item.isUnknownMachineType || !item.isHostOfGroup)
{
currentIndex = -1
} }
} }
currentIndex = toSelectIndex
}
Component // CURA-6483 For some reason currentIndex can be reset to 0. This check is here to prevent automatically
// selecting an unknown or non-host printer.
onCurrentIndexChanged:
{
var item = model[currentIndex]
if (!item || item.isUnknownMachineType || !item.isHostOfGroup)
{ {
id: sectionHeading currentIndex = -1
}
}
UM.Label delegate: Cura.MachineSelectorButton
{ {
anchors.left: parent.left text: modelData.device.name
anchors.leftMargin: UM.Theme.getSize("default_margin").width
height: UM.Theme.getSize("setting_control").height width: networkPrinterListView.width - networkPrinterScrollBar.width
text: section outputDevice: modelData.device
color: UM.Theme.getColor("small_button_text")
} enabled: !modelData.isUnknownMachineType && modelData.isHostOfGroup
printerTypeLabelAutoFit: true
// update printer types for all items in the list
updatePrinterTypesOnlyWhenChecked: false
updatePrinterTypesFunction: updateMachineTypes
// show printer type as it is
printerTypeLabelConversionFunction: function(value) { return value }
function updateMachineTypes()
{
printerTypesList = [ modelData.readableMachineType ]
} }
delegate: Cura.MachineSelectorButton checkable: false
selected: networkPrinterListView.currentIndex == model.index
onClicked:
{ {
text: modelData.device.name networkPrinterListView.currentIndex = index
width: networkPrinterListView.width
outputDevice: modelData.device
enabled: !modelData.isUnknownMachineType && modelData.isHostOfGroup
printerTypeLabelAutoFit: true
// update printer types for all items in the list
updatePrinterTypesOnlyWhenChecked: false
updatePrinterTypesFunction: updateMachineTypes
// show printer type as it is
printerTypeLabelConversionFunction: function(value) { return value }
function updateMachineTypes()
{
printerTypesList = [ modelData.readableMachineType ]
}
checkable: false
selected: ListView.view.currentIndex == model.index
onClicked:
{
ListView.view.currentIndex = index
}
} }
} }
} }

View file

@ -37,8 +37,6 @@ Item
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
textArea.text: CuraApplication.getTextManager().getChangeLogText() textArea.text: CuraApplication.getTextManager().getChangeLogText()
textArea.textFormat: Text.RichText textArea.textFormat: Text.RichText
textArea.wrapMode: Text.WordWrap textArea.wrapMode: Text.WordWrap

View file

@ -1,4 +1,4 @@
// Copyright (c) 2019 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10 import QtQuick 2.10
@ -61,7 +61,7 @@ Item
anchors.left: header.left anchors.left: header.left
anchors.right: header.right anchors.right: header.right
// Add 2x lining, because it needs a bit of space on the top and the bottom. // Add 2x lining, because it needs a bit of space on the top and the bottom.
height: contentLoader.item.height + 2 * UM.Theme.getSize("thick_lining").height height: contentLoader.item ? contentLoader.item.height + 2 * UM.Theme.getSize("thick_lining").height : 0
border.width: UM.Theme.getSize("default_lining").width border.width: UM.Theme.getSize("default_lining").width
border.color: UM.Theme.getColor("lining") border.color: UM.Theme.getColor("lining")

View file

@ -113,8 +113,6 @@ Item
right: subpageImage.right right: subpageImage.right
} }
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
back_color: UM.Theme.getColor("viewport_overlay") back_color: UM.Theme.getColor("viewport_overlay")
do_borders: false do_borders: false

View file

@ -1,4 +1,4 @@
// Copyright (c) 2019 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10 import QtQuick 2.10
@ -100,12 +100,12 @@ ComboBox
contentItem: ListView contentItem: ListView
{ {
clip: true
implicitHeight: contentHeight implicitHeight: contentHeight
ScrollBar.vertical: UM.ScrollBar {}
clip: true
model: control.popup.visible ? control.delegateModel : null model: control.popup.visible ? control.delegateModel : null
currentIndex: control.highlightedIndex currentIndex: control.highlightedIndex
ScrollIndicator.vertical: ScrollIndicator { }
} }
background: Rectangle background: Rectangle

View file

@ -1,46 +0,0 @@
// Copyright (c) 2020 Ultimaker B.V.
// Toolbox is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10
import QtQuick.Controls 2.3
import UM 1.1 as UM
ScrollView
{
clip: true
// Setting this property to false hides the scrollbar both when the scrollbar is not needed (child height < height)
// and when the scrollbar is not actively being hovered or pressed
property bool scrollAlwaysVisible: true
ScrollBar.vertical: ScrollBar
{
hoverEnabled: true
policy: parent.scrollAlwaysVisible ? ScrollBar.AlwaysOn : ScrollBar.AsNeeded
anchors.top: parent.top
anchors.right: parent.right
anchors.bottom: parent.bottom
contentItem: Rectangle
{
implicitWidth: UM.Theme.getSize("scrollbar").width
opacity: (parent.active || parent.parent.scrollAlwaysVisible) ? 1.0 : 0.0
radius: Math.round(width / 2)
color:
{
if (parent.pressed)
{
return UM.Theme.getColor("scrollbar_handle_down")
}
else if (parent.hovered)
{
return UM.Theme.getColor("scrollbar_handle_hover")
}
return UM.Theme.getColor("scrollbar_handle")
}
Behavior on color { ColorAnimation { duration: 100; } }
Behavior on opacity { NumberAnimation { duration: 100 } }
}
}
}

View file

@ -1,35 +1,39 @@
// Copyright (c) 2019 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10 import QtQuick 2.10
import QtQuick.Controls 2.3 import QtQuick.Controls 2.3
import UM 1.3 as UM import UM 1.5 as UM
import Cura 1.1 as Cura import Cura 1.1 as Cura
// //
// Cura-style TextArea with scrolls // Cura-style TextArea with scrolls
// //
ScrollView Flickable
{ {
property alias textArea: _textArea id: scrollableTextAreaBase
property bool do_borders: true
property var back_color: UM.Theme.getColor("main_background") property var back_color: UM.Theme.getColor("main_background")
property var do_borders: true property alias textArea: flickableTextArea
clip: true ScrollBar.vertical: UM.ScrollBar {}
background: Rectangle // Border TextArea.flickable: TextArea
{ {
color: back_color id: flickableTextArea
border.color: UM.Theme.getColor("thick_lining")
border.width: do_borders ? UM.Theme.getSize("default_lining").width : 0 background: Rectangle //Providing the background color and border.
} {
anchors.fill: parent
anchors.margins: -border.width
color: scrollableTextAreaBase.back_color
border.color: UM.Theme.getColor("thick_lining")
border.width: scrollableTextAreaBase.do_borders ? UM.Theme.getSize("default_lining").width : 0
}
TextArea
{
id: _textArea
font: UM.Theme.getFont("default") font: UM.Theme.getFont("default")
color: UM.Theme.getColor("text") color: UM.Theme.getColor("text")
textFormat: TextEdit.PlainText textFormat: TextEdit.PlainText
@ -37,4 +41,4 @@ ScrollView
wrapMode: Text.Wrap wrapMode: Text.Wrap
selectByMouse: true selectByMouse: true
} }
} }

View file

@ -4,6 +4,7 @@ MachineSelector 1.0 MachineSelector.qml
MachineSelectorButton 1.0 MachineSelectorButton.qml MachineSelectorButton 1.0 MachineSelectorButton.qml
CustomConfigurationSelector 1.0 CustomConfigurationSelector.qml CustomConfigurationSelector 1.0 CustomConfigurationSelector.qml
PrintSetupSelector 1.0 PrintSetupSelector.qml PrintSetupSelector 1.0 PrintSetupSelector.qml
ProfileOverview 1.6 ProfileOverview.qml
ActionButton 1.0 ActionButton.qml ActionButton 1.0 ActionButton.qml
MaterialMenu 1.0 MaterialMenu.qml MaterialMenu 1.0 MaterialMenu.qml
NozzleMenu 1.0 NozzleMenu.qml NozzleMenu 1.0 NozzleMenu.qml

View file

@ -289,6 +289,7 @@ support_mesh_drop_down
prime_blob_enable prime_blob_enable
adhesion_type adhesion_type
adhesion_extruder_nr adhesion_extruder_nr
raft_surface_extruder_nr
skirt_line_count skirt_line_count
skirt_gap skirt_gap
skirt_brim_minimal_length skirt_brim_minimal_length

View file

@ -1,8 +1,8 @@
[4.13] [4.13.0]
Beta <i>For an overview of the new features in Cura 4.13, please watch <a href="https://youtu.be/chvAuI6Eqto">our video</a>.</i>
* Sync material profiles * Sync material profiles
With Ultimaker Cura 4.13 beta, we give you access to a seamless material experience for Ultimaker Material Alliance materials with the ease of use youve come to expect from Ultimaker materials. You can easily synchronize your Material Alliance profiles with your S-line Ultimaker hardware, at the click of a button. With Ultimaker Cura 4.13, we give you access to a seamless material experience for Ultimaker Material Alliance materials with the ease of use youve come to expect from Ultimaker materials. You can easily synchronize your Material Alliance profiles with your S-line Ultimaker hardware, at the click of a button.
* New print profile * New print profile
A new print profile with 0.3mm layer height for PLA Tough PLA, PVA and BAM for Ultimaker S-line printers A new print profile with 0.3mm layer height for PLA Tough PLA, PVA and BAM for Ultimaker S-line printers
@ -11,26 +11,31 @@ A new print profile with 0.3mm layer height for PLA Tough PLA, PVA and BAM for U
Show the model in the thumbnail of a .3mf file, contributed by fieldOfView Show the model in the thumbnail of a .3mf file, contributed by fieldOfView
* Infill density * Infill density
When printing with a 100% infill the infill pattern will change to ZigzZag for all Ultimaker print profiles When printing with a 100% infill the infill pattern will change to ZigZag for all Ultimaker print profiles
* User login authentication * User login authentication
Weve streamlined the user login authentication by removing any restrictions, especially for strict enterprise-level IT requirements. Weve streamlined the user login authentication by removing any restrictions, especially for strict enterprise-level IT requirements.
* Other new features and improvements: * Other new features and improvements:
- TPU top layers - Improved TPU: top layers have large bridge distance
- Add warning icon to show which extruder is causing the configuration to be 'Not Supported', contributed by fieldOfView - Add warning icon to show which extruder is causing the configuration to be 'Not Supported', contributed by fieldOfView
- Show what's new pages with every Cura build - Show what's new pages with every Cura build
- Speed up loading of settings list - Speed up loading of settings list
- Re-use vertex buffer objects in rendering - Re-use vertex buffer objects in rendering
- Add Build Volume Temperature value to ChangeAtZ, contributed by legend069 - Add Build Volume Temperature value to ChangeAtZ, contributed by legend069
- Allow plugins to have multiple views, contributed by Tyronnosaurus - Allow plugins to have multiple views, contributed by Tyronnosaurus
- Reduced top/bottom speed for TPU
- Increased lined width for 0.3mm layer height profiles
- Improved logging to allow debugging in early start-up process
* Bug fixes: * Bug fixes:
- Fixed a bug with surface mode will not print all layers
- Fixed a bug where maximum retraction could cause a crash
- Reduced flow for 100% density parts - Reduced flow for 100% density parts
- Fixed a bug in Surface Mode where small line-segments were created - Fixed a bug in Surface Mode where small line-segments were created
- Changed the Russian translation for 'nozzle', contributed by mlapkin - Changed the Russian translation for 'nozzle', contributed by mlapkin
- Fixed a visualization bug where layer lines were renderend in weird directions - Fixed a visualization bug where layer lines were rendered in weird directions
- Fixed a crash when recieving incomplete cloud API responses - Fixed a crash when receiving incomplete cloud API responses
- Add SET_RPATH option to CMake, contributed by boomanaiden154 - Add SET_RPATH option to CMake, contributed by boomanaiden154
- Fixed initial layer bed and print head temperature for Snapmaker profile, contributed by prueker - Fixed initial layer bed and print head temperature for Snapmaker profile, contributed by prueker
- Fixed shader compilation on some GPUs, contributed by fieldOfView - Fixed shader compilation on some GPUs, contributed by fieldOfView
@ -51,6 +56,7 @@ Weve streamlined the user login authentication by removing any restrictions,
- Fixed a bug where support blockers were included in the bounding box after loading a project file - Fixed a bug where support blockers were included in the bounding box after loading a project file
- Fixed a bug where grouped models become unslicable if the first extruder was disabled - Fixed a bug where grouped models become unslicable if the first extruder was disabled
- Fixed a bug in Tree Support where the Z Distance was too big - Fixed a bug in Tree Support where the Z Distance was too big
- Prevented QT plug-ins from being loaded from an insecure directory if an environment variable is set
* Printer definitions, profiles and materials: * Printer definitions, profiles and materials:
- Add Eazao Zero printer definition, contributed by Hogan-Polaris - Add Eazao Zero printer definition, contributed by Hogan-Polaris

View file

@ -96,7 +96,12 @@ class TestCalculateBedAdhesionSize:
self.createAndSetGlobalStack(build_volume) self.createAndSetGlobalStack(build_volume)
patched_dictionary = self.setting_property_dict.copy() patched_dictionary = self.setting_property_dict.copy()
patched_dictionary.update(setting_dict) patched_dictionary.update(setting_dict)
patched_dictionary.update({"adhesion_extruder_nr": {"value": 0}}) patched_dictionary.update({
"skirt_brim_extruder_nr": {"value": 0},
"raft_base_extruder_nr": {"value": 0},
"raft_interface_extruder_nr": {"value": 0},
"raft_surface_extruder_nr": {"value": 0}
})
with patch.dict(self.setting_property_dict, patched_dictionary): with patch.dict(self.setting_property_dict, patched_dictionary):
assert build_volume._calculateBedAdhesionSize([]) == result assert build_volume._calculateBedAdhesionSize([]) == result