Merge branch 'cura4.0_header' into CURA-5829-Add-preview-stage

This commit is contained in:
Diego Prado Gesto 2018-11-06 17:01:18 +01:00
commit 2c59419dbb
28 changed files with 245 additions and 333 deletions

View File

@ -17,6 +17,7 @@ if(CURA_DEBUGMODE)
set(_cura_debugmode "ON")
endif()
set(CURA_APP_DISPLAY_NAME "Ultimaker Cura" CACHE STRING "Display name of Cura")
set(CURA_VERSION "master" CACHE STRING "Version name of Cura")
set(CURA_BUILDTYPE "" CACHE STRING "Build type of Cura, eg. 'PPA'")
set(CURA_SDK_VERSION "" CACHE STRING "SDK version of Cura")

View File

@ -128,8 +128,9 @@ if TYPE_CHECKING:
numpy.seterr(all = "ignore")
try:
from cura.CuraVersion import CuraVersion, CuraBuildType, CuraDebugMode, CuraSDKVersion
from cura.CuraVersion import CuraAppDisplayName, CuraVersion, CuraBuildType, CuraDebugMode, CuraSDKVersion # type: ignore
except ImportError:
CuraAppDisplayName = "Ultimaker Cura"
CuraVersion = "master" # [CodeStyle: Reflecting imported value]
CuraBuildType = ""
CuraDebugMode = False
@ -161,6 +162,7 @@ class CuraApplication(QtApplication):
def __init__(self, *args, **kwargs):
super().__init__(name = "cura",
app_display_name = CuraAppDisplayName,
version = CuraVersion,
buildtype = CuraBuildType,
is_debug_mode = CuraDebugMode,

View File

@ -1,6 +1,7 @@
# Copyright (c) 2015 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
CuraAppDisplayName = "@CURA_APP_DISPLAY_NAME@"
CuraVersion = "@CURA_VERSION@"
CuraBuildType = "@CURA_BUILDTYPE@"
CuraDebugMode = True if "@_cura_debugmode@" == "ON" else False

View File

@ -21,6 +21,7 @@ from .VariantType import VariantType
if TYPE_CHECKING:
from UM.Settings.DefinitionContainer import DefinitionContainer
from UM.Settings.InstanceContainer import InstanceContainer
from cura.Settings.GlobalStack import GlobalStack
from cura.Settings.ExtruderStack import ExtruderStack
@ -298,7 +299,7 @@ class MaterialManager(QObject):
def getRootMaterialIDWithoutDiameter(self, root_material_id: str) -> str:
return self._diameter_material_map.get(root_material_id, "")
def getMaterialGroupListByGUID(self, guid: str) -> Optional[list]:
def getMaterialGroupListByGUID(self, guid: str) -> Optional[List[MaterialGroup]]:
return self._guid_material_groups_map.get(guid)
#
@ -446,6 +447,28 @@ class MaterialManager(QObject):
material_diameter, root_material_id)
return node
# There are 2 ways to get fallback materials;
# - A fallback by type (@sa getFallbackMaterialIdByMaterialType), which adds the generic version of this material
# - A fallback by GUID; If a material has been duplicated, it should also check if the original materials do have
# a GUID. This should only be done if the material itself does not have a quality just yet.
def getFallBackMaterialIdsByMaterial(self, material: "InstanceContainer") -> List[str]:
results = [] # type: List[str]
material_groups = self.getMaterialGroupListByGUID(material.getMetaDataEntry("GUID"))
for material_group in material_groups: # type: ignore
if material_group.name != material.getId():
# If the material in the group is read only, put it at the front of the list (since that is the most
# likely one to get a result)
if material_group.is_read_only:
results.insert(0, material_group.name)
else:
results.append(material_group.name)
fallback = self.getFallbackMaterialIdByMaterialType(material.getMetaDataEntry("material"))
if fallback is not None:
results.append(fallback)
return results
#
# Used by QualityManager. Built-in quality profiles may be based on generic material IDs such as "generic_pla".
# For materials such as ultimaker_pla_orange, no quality profiles may be found, so we should fall back to use
@ -602,7 +625,6 @@ class MaterialManager(QObject):
container_to_add.setDirty(True)
self._container_registry.addContainer(container_to_add)
# if the duplicated material was favorite then the new material should also be added to favorite.
if root_material_id in self.getFavorites():
self.addFavorite(new_base_id)

View File

@ -140,7 +140,7 @@ class SettingVisibilityPresetsModel(QObject):
item_to_set = self._active_preset_item
if matching_preset_item is None:
# The new visibility setup is "custom" should be custom
if self._active_preset_item.presetId == "custom":
if self._active_preset_item is None or self._active_preset_item.presetId == "custom":
# We are already in custom, just save the settings
self._preferences.setValue("cura/custom_visible_settings", visibility_string)
else:

View File

@ -1,7 +1,7 @@
# Copyright (c) 2018 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
from typing import TYPE_CHECKING, Optional, cast, Dict, List
from typing import TYPE_CHECKING, Optional, cast, Dict, List, Set
from PyQt5.QtCore import QObject, QTimer, pyqtSignal, pyqtSlot
@ -259,11 +259,15 @@ class QualityManager(QObject):
root_material_id = self._material_manager.getRootMaterialIDWithoutDiameter(root_material_id)
root_material_id_list.append(root_material_id)
# Also try to get the fallback material
material_type = extruder.material.getMetaDataEntry("material")
fallback_root_material_id = self._material_manager.getFallbackMaterialIdByMaterialType(material_type)
if fallback_root_material_id:
root_material_id_list.append(fallback_root_material_id)
# Also try to get the fallback materials
fallback_ids = self._material_manager.getFallBackMaterialIdsByMaterial(extruder.material)
if fallback_ids:
root_material_id_list.extend(fallback_ids)
# Weed out duplicates while preserving the order.
seen = set() # type: Set[str]
root_material_id_list = [x for x in root_material_id_list if x not in seen and not seen.add(x)] # type: ignore
# Here we construct a list of nodes we want to look for qualities with the highest priority first.
# The use case is that, when we look for qualities for a machine, we first want to search in the following

View File

@ -120,7 +120,7 @@ class AuthorizationService:
"redirect_uri": self._settings.CALLBACK_URL,
"scope": self._settings.CLIENT_SCOPES,
"response_type": "code",
"state": "CuraDriveIsAwesome",
"state": "(.Y.)",
"code_challenge": challenge_code,
"code_challenge_method": "S512"
})

View File

@ -369,6 +369,11 @@ class PrintInformation(QObject):
else:
self._base_name = ""
# Strip the old "curaproject" extension from the name
OLD_CURA_PROJECT_EXT = ".curaproject"
if self._base_name.endswith(OLD_CURA_PROJECT_EXT):
self._base_name = self._base_name[:len(self._base_name) - len(OLD_CURA_PROJECT_EXT)]
self._updateJobName()
@pyqtProperty(str, fset = setBaseName, notify = baseNameChanged)

View File

@ -142,6 +142,12 @@ class ConvexHullDecorator(SceneNodeDecorator):
controller = Application.getInstance().getController()
root = controller.getScene().getRoot()
if self._node is None or controller.isToolOperationActive() or not self.__isDescendant(root, self._node):
# If the tool operation is still active, we need to compute the convex hull later after the controller is
# no longer active.
if controller.isToolOperationActive():
self.recomputeConvexHullDelayed()
return
if self._convex_hull_node:
self._convex_hull_node.setParent(None)
self._convex_hull_node = None

View File

@ -1,156 +0,0 @@
!ifndef VERSION
!define VERSION '15.09.80'
!endif
; The name of the installer
Name "Cura ${VERSION}"
; The file to write
OutFile "Cura_${VERSION}.exe"
; The default installation directory
InstallDir $PROGRAMFILES\Cura_${VERSION}
; Registry key to check for directory (so if you install again, it will
; overwrite the old one automatically)
InstallDirRegKey HKLM "Software\Cura_${VERSION}" "Install_Dir"
; Request application privileges for Windows Vista
RequestExecutionLevel admin
; Set the LZMA compressor to reduce size.
SetCompressor /SOLID lzma
;--------------------------------
!include "MUI2.nsh"
!include "Library.nsh"
; !define MUI_ICON "dist/resources/cura.ico"
!define MUI_BGCOLOR FFFFFF
; Directory page defines
!define MUI_DIRECTORYPAGE_VERIFYONLEAVE
; Header
; Don't show the component description box
!define MUI_COMPONENTSPAGE_NODESC
;Do not leave (Un)Installer page automaticly
!define MUI_FINISHPAGE_NOAUTOCLOSE
!define MUI_UNFINISHPAGE_NOAUTOCLOSE
;Run Cura after installing
!define MUI_FINISHPAGE_RUN
!define MUI_FINISHPAGE_RUN_TEXT "Start Cura ${VERSION}"
!define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink"
;Add an option to show release notes
!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\plugins\ChangeLogPlugin\changelog.txt"
; Pages
;!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
; Languages
!insertmacro MUI_LANGUAGE "English"
; Reserve Files
!insertmacro MUI_RESERVEFILE_LANGDLL
ReserveFile '${NSISDIR}\Plugins\InstallOptions.dll'
;--------------------------------
; The stuff to install
Section "Cura ${VERSION}"
SectionIn RO
; Set output path to the installation directory.
SetOutPath $INSTDIR
; Put file there
File /r "dist\"
; Write the installation path into the registry
WriteRegStr HKLM "SOFTWARE\Cura_${VERSION}" "Install_Dir" "$INSTDIR"
; Write the uninstall keys for Windows
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cura_${VERSION}" "DisplayName" "Cura ${VERSION}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cura_${VERSION}" "UninstallString" '"$INSTDIR\uninstall.exe"'
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cura_${VERSION}" "NoModify" 1
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cura_${VERSION}" "NoRepair" 1
WriteUninstaller "uninstall.exe"
; Write start menu entries for all users
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\Cura ${VERSION}"
CreateShortCut "$SMPROGRAMS\Cura ${VERSION}\Uninstall Cura ${VERSION}.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
CreateShortCut "$SMPROGRAMS\Cura ${VERSION}\Cura ${VERSION}.lnk" "$INSTDIR\Cura.exe" '' "$INSTDIR\Cura.exe" 0
SectionEnd
Function LaunchLink
; Write start menu entries for all users
SetShellVarContext all
Exec '"$WINDIR\explorer.exe" "$SMPROGRAMS\Cura ${VERSION}\Cura ${VERSION}.lnk"'
FunctionEnd
Section "Install Visual Studio 2010 Redistributable"
SetOutPath "$INSTDIR"
File "vcredist_2010_20110908_x86.exe"
IfSilent +2
ExecWait '"$INSTDIR\vcredist_2010_20110908_x86.exe" /q /norestart'
SectionEnd
Section "Install Arduino Drivers"
; Set output path to the driver directory.
SetOutPath "$INSTDIR\drivers\"
File /r "drivers\"
${If} ${RunningX64}
IfSilent +2
ExecWait '"$INSTDIR\drivers\dpinst64.exe" /lm'
${Else}
IfSilent +2
ExecWait '"$INSTDIR\drivers\dpinst32.exe" /lm'
${EndIf}
SectionEnd
Section "Open STL files with Cura"
${registerExtension} "$INSTDIR\Cura.exe" ".stl" "STL_File"
SectionEnd
Section /o "Open OBJ files with Cura"
WriteRegStr HKCR .obj "" "Cura OBJ model file"
DeleteRegValue HKCR .obj "Content Type"
WriteRegStr HKCR "Cura OBJ model file\DefaultIcon" "" "$INSTDIR\Cura.exe,0"
WriteRegStr HKCR "Cura OBJ model file\shell" "" "open"
WriteRegStr HKCR "Cura OBJ model file\shell\open\command" "" '"$INSTDIR\Cura.exe" "%1"'
SectionEnd
;--------------------------------
; Uninstaller
Section "Uninstall"
; Remove registry keys
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cura_${VERSION}"
DeleteRegKey HKLM "SOFTWARE\Cura_${VERSION}"
; Write start menu entries for all users
SetShellVarContext all
; Remove directories used
RMDir /r "$SMPROGRAMS\Cura ${VERSION}"
RMDir /r "$INSTDIR"
SectionEnd

View File

@ -298,7 +298,8 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
values = parser["values"] if parser.has_section("values") else dict()
num_settings_overriden_by_quality_changes += len(values)
# Check if quality changes already exists.
quality_changes = self._container_registry.findInstanceContainers(id = container_id)
quality_changes = self._container_registry.findInstanceContainers(name = custom_quality_name,
type = "quality_changes")
if quality_changes:
containers_found_dict["quality_changes"] = True
# Check if there really is a conflict by comparing the values

View File

@ -45,6 +45,7 @@ Item
id: machineSelection
width: UM.Theme.getSize("machine_selector_widget").width - configSelection.width
height: prepareMenu.height
z: openFileButton.z - 1
}
Cura.QuickConfigurationSelector

View File

@ -296,6 +296,7 @@ Item {
verticalCenter: parent.verticalCenter;
}
color: UM.Theme.getColor("text");
font: UM.Theme.getFont("default");
text: catalog.i18nc("@label", "Configuration change");
}
@ -355,7 +356,7 @@ Item {
anchors.fill: parent;
elide: Text.ElideRight;
color: UM.Theme.getColor("text");
font: UM.Theme.getFont("large_nonbold");
font: UM.Theme.getFont("default");
text: {
if (!printJob || printJob.configurationChanges.length === 0) {
return "";
@ -398,6 +399,22 @@ Item {
bottom: parent.bottom;
left: parent.left;
}
background: Rectangle {
border {
color: UM.Theme.getColor("monitor_lining_heavy");
width: UM.Theme.getSize("default_lining").width;
}
color: parent.hovered ? UM.Theme.getColor("monitor_card_background_inactive") : UM.Theme.getColor("monitor_card_background");
implicitHeight: UM.Theme.getSize("default_margin").height * 3;
implicitWidth: UM.Theme.getSize("default_margin").height * 8;
}
contentItem: Label {
color: UM.Theme.getColor("text");
font: UM.Theme.getFont("medium");
horizontalAlignment: Text.AlignHCenter;
text: parent.text;
verticalAlignment: Text.AlignVCenter;
}
onClicked: {
overrideConfirmationDialog.visible = true;
}

View File

@ -4378,6 +4378,50 @@
}
}
},
"support_interface_offset":
{
"label": "Support Interface Offset",
"description": "Amount of offset applied to the support interface polygons.",
"unit": "mm",
"type": "float",
"minimum_value": "0",
"default_value": 0.0,
"limit_to_extruder": "support_interface_extruder_nr",
"enabled": "support_interface_enable and (support_enable or support_tree_enable)",
"settable_per_mesh": false,
"settable_per_extruder": true,
"children":
{
"support_roof_offset":
{
"label": "Support Roof Offset",
"description": "Amount of offset applied to the roofs of the support.",
"unit": "mm",
"type": "float",
"minimum_value": "0",
"default_value": 0.0,
"value": "extruderValue(support_roof_extruder_nr, 'support_interface_offset')",
"limit_to_extruder": "support_roof_extruder_nr",
"enabled": "support_roof_enable and (support_enable or support_tree_enable)",
"settable_per_mesh": false,
"settable_per_extruder": true
},
"support_bottom_offset":
{
"label": "Support Floor Offset",
"description": "Amount of offset applied to the floors of the support.",
"unit": "mm",
"type": "float",
"minimum_value": "0",
"default_value": 0.0,
"value": "extruderValue(support_bottom_extruder_nr, 'support_interface_offset')",
"limit_to_extruder": "support_bottom_extruder_nr",
"enabled": "support_bottom_enable and (support_enable or support_tree_enable)",
"settable_per_mesh": false,
"settable_per_extruder": true
}
}
},
"support_fan_enable":
{
"label": "Fan Speed Override",

View File

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Cura 3.6\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2018-10-29 15:01+0100\n"
"PO-Revision-Date: 2018-10-01 03:20-0300\n"
"PO-Revision-Date: 2018-11-06 02:20-0300\n"
"Last-Translator: Cláudio Sampaio <patola@makerlinux.com.br>\n"
"Language-Team: Cláudio Sampaio <patola@makerlinux.com.br>\n"
"Language: pt_BR\n"
@ -16,6 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 2.0.6\n"
#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:22
msgctxt "@action"
@ -48,7 +49,7 @@ msgstr "O GCodeWriter não suporta modo binário."
#: /home/ruben/Projects/Cura/plugins/GCodeWriter/GCodeWriter.py:89
msgctxt "@warning:status"
msgid "Please prepare G-code before exporting."
msgstr ""
msgstr "Por favor prepare o G-Code antes de exportar."
#: /home/ruben/Projects/Cura/plugins/ModelChecker/ModelChecker.py:30
msgctxt "@info:title"
@ -77,7 +78,7 @@ msgstr "Exibir registro de alterações"
#: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.py:25
msgctxt "@action"
msgid "Update Firmware"
msgstr ""
msgstr "Atualizar Firmware"
#: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:23
msgctxt "@item:inmenu"
@ -414,7 +415,7 @@ msgstr "Nenhum material carregado no slot {slot_number}"
#, python-brace-format
msgctxt "@label"
msgid "Different PrintCore (Cura: {cura_printcore_name}, Printer: {remote_printcore_name}) selected for extruder {extruder_id}"
msgstr "PrintCore Diferente (Cura: {cure_printcore_name}, Impressora: {remote_printcore_name}) selecionado para o extrusor {extruder_id}"
msgstr "PrintCore Diferente (Cura: {cura_printcore_name}, Impressora: {remote_printcore_name}) selecionado para o extrusor {extruder_id}"
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/src/LegacyUM3OutputDevice.py:361
#, python-brace-format
@ -821,7 +822,7 @@ msgstr "Arquivo pré-fatiado {0}"
#: /home/ruben/Projects/Cura/cura/API/Account.py:71
msgctxt "@info:title"
msgid "Login failed"
msgstr ""
msgstr "Login falhou"
#: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:201
#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:121
@ -895,32 +896,32 @@ msgstr "Falha ao importa perfil de <filename>{0}</filename>: <message>{1}</messa
#, python-brace-format
msgctxt "@info:status Don't translate the XML tags <filename>!"
msgid "No custom profile to import in file <filename>{0}</filename>"
msgstr ""
msgstr "Não há perfil personalizado a importar no arquivo <filename>{0}</filename>"
#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:194
#, python-brace-format
msgctxt "@info:status Don't translate the XML tags <filename>!"
msgid "Failed to import profile from <filename>{0}</filename>:"
msgstr ""
msgstr "Erro ao importar perfil de <filename>{0}</filename>:"
#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:218
#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:228
#, python-brace-format
msgctxt "@info:status Don't translate the XML tags <filename>!"
msgid "This profile <filename>{0}</filename> contains incorrect data, could not import it."
msgstr ""
msgstr "Este perfil <filename>{0}</filename> contém dados incorretos, não foi possível importá-lo."
#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:241
#, python-brace-format
msgctxt "@info:status Don't translate the XML tags <filename>!"
msgid "The machine defined in profile <filename>{0}</filename> ({1}) doesn't match with your current machine ({2}), could not import it."
msgstr ""
msgstr "A máquina definida no perfil <filename>{0}</filename> ({1}) não equivale à sua máquina atual ({2}), não foi possível importá-lo."
#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:312
#, python-brace-format
msgctxt "@info:status Don't translate the XML tags <filename> or <message>!"
msgid "Failed to import profile from <filename>{0}</filename>:"
msgstr ""
msgstr "Erro ao importar perfil de <filename>{0}</filename>:"
#: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:315
#, python-brace-format
@ -1407,7 +1408,7 @@ msgstr "Deslocamento Y do Bico"
#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:451
msgctxt "@label"
msgid "Cooling Fan Number"
msgstr ""
msgstr "Número da Ventoinha de Resfriamento"
#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:452
msgctxt "@label"
@ -1511,7 +1512,7 @@ msgstr "Voltar"
#: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:20
msgctxt "@title:window"
msgid "Confirm uninstall"
msgstr ""
msgstr "Confirme a desinstalação"
#: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:50
msgctxt "@text:window"
@ -1654,7 +1655,7 @@ msgstr "Fechar"
#: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:31
msgctxt "@title"
msgid "Update Firmware"
msgstr ""
msgstr "Atualizar Firmware"
#: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:39
msgctxt "@label"
@ -1679,12 +1680,12 @@ msgstr "Carregar Firmware personalizado"
#: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:83
msgctxt "@label"
msgid "Firmware can not be updated because there is no connection with the printer."
msgstr ""
msgstr "O firmware não pode ser atualizado porque não há conexão com a impressora."
#: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:91
msgctxt "@label"
msgid "Firmware can not be updated because the connection with the printer does not support upgrading firmware."
msgstr ""
msgstr "O firmware não pode ser atualizado porque a conexão com a impressora não suporta atualização de firmware."
#: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:98
msgctxt "@title:window"
@ -1919,62 +1920,62 @@ msgstr "Aguardando por: "
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:299
msgctxt "@label"
msgid "Configuration change"
msgstr ""
msgstr "Alteração de configuração"
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:365
msgctxt "@label"
msgid "The assigned printer, %1, requires the following configuration change(s):"
msgstr ""
msgstr "A impressora atribuída, %1, requer as seguintes alterações de configuração:"
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:367
msgctxt "@label"
msgid "The printer %1 is assigned, but the job contains an unknown material configuration."
msgstr ""
msgstr "A impressora %1 está atribuída, mas o trabalho contém configuração de material desconhecida."
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:375
msgctxt "@label"
msgid "Change material %1 from %2 to %3."
msgstr ""
msgstr "Alterar material %1 de %2 para %3."
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:378
msgctxt "@label"
msgid "Load %3 as material %1 (This cannot be overridden)."
msgstr ""
msgstr "Carregar %3 como material %1 (isto não pode ser sobreposto)."
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:381
msgctxt "@label"
msgid "Change print core %1 from %2 to %3."
msgstr ""
msgstr "Alterar núcleo de impressão %1 de %2 para %3."
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:384
msgctxt "@label"
msgid "Change build plate to %1 (This cannot be overridden)."
msgstr ""
msgstr "Alterar mesa de impressão para %1 (Isto não pode ser sobreposto)."
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:404
msgctxt "@label"
msgid "Override"
msgstr ""
msgstr "Sobrepôr"
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:432
msgctxt "@label"
msgid "Starting a print job with an incompatible configuration could damage your 3D printer. Are you sure you want to override the configuration and print %1?"
msgstr ""
msgstr "Iniciar um trabalho de impressão com configuração incompatível pode danificar sua impressora 3D. Voce tem certeza que quer sobrepôr a configuração e imprimir %1?"
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:435
msgctxt "@window:title"
msgid "Override configuration configuration and start print"
msgstr ""
msgstr "Sobrepôr configuração e iniciar impressão"
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:466
msgctxt "@label"
msgid "Glass"
msgstr ""
msgstr "Vidro"
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:469
msgctxt "@label"
msgid "Aluminum"
msgstr ""
msgstr "Alumínio"
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml:39
msgctxt "@label link to connect manager"
@ -2058,7 +2059,7 @@ msgstr "Abortar impressão"
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml:43
msgctxt "@info:tooltip"
msgid "Connect to a printer"
msgstr "Conecta a uma impressora."
msgstr "Conecta a uma impressora"
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml:121
msgctxt "@action:button"
@ -2602,7 +2603,7 @@ msgstr "Tudo está em ordem! A verificação terminou."
#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:119
msgctxt "@label:MonitorStatus"
msgid "Not connected to a printer"
msgstr "Não conectado a nenhuma impressora."
msgstr "Não conectado a nenhuma impressora"
#: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:123
msgctxt "@label:MonitorStatus"
@ -2980,7 +2981,7 @@ msgstr "Exibir seções pendentes"
#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:355
msgctxt "@info:tooltip"
msgid "Moves the camera so the model is in the center of the view when a model is selected"
msgstr "Move a câmera de modo que o modelo fique no centro da visão quando for selecionado."
msgstr "Move a câmera de modo que o modelo fique no centro da visão quando for selecionado"
#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:360
msgctxt "@action:button"
@ -3025,7 +3026,7 @@ msgstr "Os modelos devem ser movidos pra baixo pra se assentar na plataforma de
#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:418
msgctxt "@option:check"
msgid "Automatically drop models to the build plate"
msgstr "Automaticamente fazer os modelos caírem na mesa de impressão."
msgstr "Automaticamente fazer os modelos caírem na mesa de impressão"
#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:430
msgctxt "@info:tooltip"
@ -3110,7 +3111,7 @@ msgstr "Comportamento default ao abrir um arquivo de projeto"
#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:557
msgctxt "@window:text"
msgid "Default behavior when opening a project file: "
msgstr "Comportamento default ao abrir um arquivo de projeto"
msgstr "Comportamento default ao abrir um arquivo de projeto: "
#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:571
msgctxt "@option:openProject"
@ -3175,7 +3176,7 @@ msgstr "Dados anônimos sobre sua impressão podem ser enviados para a Ultimaker
#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:702
msgctxt "@option:check"
msgid "Send (anonymous) print information"
msgstr "Enviar informação (anônima) de impressão."
msgstr "Enviar informação (anônima) de impressão"
#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:711
msgctxt "@action:button"
@ -3562,7 +3563,7 @@ msgid ""
msgstr ""
"Alguns ajustes ocultados usam valores diferentes de seu valor calculado normal.\n"
"\n"
"Clique para tornar estes ajustes visíveis. "
"Clique para tornar estes ajustes visíveis."
#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:61
msgctxt "@label Header for list of settings."
@ -3582,7 +3583,7 @@ msgstr "Este ajuste é sempre compartilhado entre todos os extrusores. Modificá
#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:158
msgctxt "@label"
msgid "The value is resolved from per-extruder values "
msgstr "O valor é resolvido de valores específicos de cada extrusor"
msgstr "O valor é resolvido de valores específicos de cada extrusor "
#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:189
msgctxt "@label"
@ -3655,7 +3656,7 @@ msgstr "A temperatura-alvo do hotend. O hotend vai aquecer ou esfriar na direç
#: /home/ruben/Projects/Cura/resources/qml/PrinterOutput/ExtruderBox.qml:98
msgctxt "@tooltip"
msgid "The current temperature of this hotend."
msgstr "A temperatura atual deste hotend"
msgstr "A temperatura atual deste hotend."
#: /home/ruben/Projects/Cura/resources/qml/PrinterOutput/ExtruderBox.qml:172
msgctxt "@tooltip of temperature input"
@ -4403,7 +4404,7 @@ msgstr "Você modificou alguns ajustes de perfil. Se você quiser alterá-los, u
#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:541
msgctxt "@label"
msgid "Infill"
msgstr "Preenchimento:"
msgstr "Preenchimento"
#: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:777
msgctxt "@label"
@ -4495,7 +4496,7 @@ msgstr "Material"
#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:543
msgctxt "@label"
msgid "Use glue with this material combination"
msgstr "Use cola com esta combinação de materiais."
msgstr "Use cola com esta combinação de materiais"
#: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:575
msgctxt "@label"
@ -4845,7 +4846,7 @@ msgstr "Atualização de Versão de 2.7 para 3.0"
#: VersionUpgrade/VersionUpgrade34to35/plugin.json
msgctxt "description"
msgid "Upgrades configurations from Cura 3.4 to Cura 3.5."
msgstr "Atualiza configurações do Cura 3.4 para o Cura 3.5"
msgstr "Atualiza configurações do Cura 3.4 para o Cura 3.5."
#: VersionUpgrade/VersionUpgrade34to35/plugin.json
msgctxt "name"

View File

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Cura 3.6\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2018-10-29 15:01+0000\n"
"PO-Revision-Date: 2018-10-02 05:00-0300\n"
"PO-Revision-Date: 2018-11-06 04:00-0300\n"
"Last-Translator: Cláudio Sampaio <patola@makerlinux.com.br>\n"
"Language-Team: Cláudio Sampaio <patola@makerlinux.com.br>\n"
"Language: pt_BR\n"
@ -170,12 +170,12 @@ msgstr "A coordenada Z da posição onde o bico faz a purga no início da impres
#: fdmextruder.def.json
msgctxt "machine_extruder_cooling_fan_number label"
msgid "Extruder Print Cooling Fan"
msgstr ""
msgstr "Ventoinha de Refrigeração da Impressão"
#: fdmextruder.def.json
msgctxt "machine_extruder_cooling_fan_number description"
msgid "The number of the print cooling fan associated with this extruder. Only change this from the default value of 0 when you have a different print cooling fan for each extruder."
msgstr ""
msgstr "O número da ventoinha de refrigeração da impressão associada a este extrusor. Somente altere o valor default de 0 quando você tiver uma ventoinha diferente para cada extrusor."
#: fdmextruder.def.json
msgctxt "platform_adhesion label"

View File

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Cura 3.6\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2018-10-29 15:01+0000\n"
"PO-Revision-Date: 2018-10-02 06:30-0300\n"
"PO-Revision-Date: 2018-10-06 04:30-0300\n"
"Last-Translator: Cláudio Sampaio <patola@makerlinux.com.br>\n"
"Language-Team: Cláudio Sampaio <patola@makerlinux.com.br>\n"
"Language: pt_BR\n"
@ -16,6 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 2.0.6\n"
#: fdmprinter.def.json
msgctxt "machine_settings label"
@ -458,7 +459,7 @@ msgstr "ID do Bico"
#: fdmprinter.def.json
msgctxt "machine_nozzle_id description"
msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"."
msgstr "O identificador do bico para o carro extrusor, tais como \"AA 0.4\" ou \"BB 0.8\""
msgstr "O identificador do bico para o carro extrusor, tais como \"AA 0.4\" ou \"BB 0.8.\""
#: fdmprinter.def.json
msgctxt "machine_nozzle_size label"
@ -548,7 +549,7 @@ msgstr "Aceleração Máxima em X"
#: fdmprinter.def.json
msgctxt "machine_max_acceleration_x description"
msgid "Maximum acceleration for the motor of the X-direction"
msgstr "A aceleração máxima para o motor da impressora na direção X."
msgstr "A aceleração máxima para o motor da impressora na direção X"
#: fdmprinter.def.json
msgctxt "machine_max_acceleration_y label"
@ -598,7 +599,7 @@ msgstr "Jerk Default nos eixos X-Y"
#: fdmprinter.def.json
msgctxt "machine_max_jerk_xy description"
msgid "Default jerk for movement in the horizontal plane."
msgstr "O valor default de jerk para movimentos no plano horizontal"
msgstr "O valor default de jerk para movimentos no plano horizontal."
#: fdmprinter.def.json
msgctxt "machine_max_jerk_z label"
@ -1078,7 +1079,7 @@ msgstr "Conectar Polígonos do Topo e Base"
#: fdmprinter.def.json
msgctxt "connect_skin_polygons description"
msgid "Connect top/bottom skin paths where they run next to each other. For the concentric pattern enabling this setting greatly reduces the travel time, but because the connections can happen midway over infill this feature can reduce the top surface quality."
msgstr ""
msgstr "Conectar caminhos de contorno da base e topo quando estiverem próximos entre si. Para o padrão concêntrico, habilitar este ajuste reduzirá bastante o tempo de percurso, mas por as conexões poderem acontecer no meio do preenchimento, este recurso pode reduzir a qualidade da superfície superior."
#: fdmprinter.def.json
msgctxt "skin_angles label"
@ -1498,7 +1499,7 @@ msgstr "Padrão de Preenchimento"
#: fdmprinter.def.json
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."
msgstr ""
msgstr "O padrão do material de preenchimento da impressão. Os preenchimentos de linha e ziguezague mudam de direção em camadas alternadas, reduzindo o custo do material. Os padrões de grade, triângulo, tri-hexágono, cúbico, octeto, quarto cúbico, cruzado e concêntrico são impressos em totalidade a cada camada. Os padrões giróide, cúbico, quarto cúbico e octeto mudam a cada camada para prover uma distribuição mais igualitária de força em cada direção."
#: fdmprinter.def.json
msgctxt "infill_pattern option grid"
@ -1563,7 +1564,7 @@ msgstr "Cruzado 3D"
#: fdmprinter.def.json
msgctxt "infill_pattern option gyroid"
msgid "Gyroid"
msgstr ""
msgstr "Giróide"
#: fdmprinter.def.json
msgctxt "zig_zaggify_infill label"
@ -1867,7 +1868,7 @@ msgstr "Temperatura Default de Impressão"
#: fdmprinter.def.json
msgctxt "default_material_print_temperature description"
msgid "The default temperature used for printing. This should be the \"base\" temperature of a material. All other print temperatures should use offsets based on this value"
msgstr "A temperatura default usada para a impressão. Esta deve ser a temperatura \"base\" de um material. Todas as outras temperaturas de impressão devem usar diferenças baseadas neste valor."
msgstr "A temperatura default usada para a impressão. Esta deve ser a temperatura \"base\" de um material. Todas as outras temperaturas de impressão devem usar diferenças baseadas neste valor"
#: fdmprinter.def.json
msgctxt "material_print_temperature label"
@ -1957,7 +1958,7 @@ msgstr "Tendência à Aderência"
#: fdmprinter.def.json
msgctxt "material_adhesion_tendency description"
msgid "Surface adhesion tendency."
msgstr "Tendência de aderência da superfície"
msgstr "Tendência de aderência da superfície."
#: fdmprinter.def.json
msgctxt "material_surface_energy label"
@ -2007,7 +2008,7 @@ msgstr "Habilitar Retração"
#: fdmprinter.def.json
msgctxt "retraction_enable description"
msgid "Retract the filament when the nozzle is moving over a non-printed area. "
msgstr "Retrai o filamento quando o bico está se movendo sobre uma área não impressa."
msgstr "Retrai o filamento quando o bico está se movendo sobre uma área não impressa. "
#: fdmprinter.def.json
msgctxt "retract_at_layer_change label"
@ -3272,32 +3273,32 @@ msgstr "Orientação do padrão de preenchimento para suportes. O padrão de pre
#: fdmprinter.def.json
msgctxt "support_brim_enable label"
msgid "Enable Support Brim"
msgstr ""
msgstr "Habilitar Brim de Suporte"
#: fdmprinter.def.json
msgctxt "support_brim_enable description"
msgid "Generate a brim within the support infill regions of the first layer. This brim is printed underneath the support, not around it. Enabling this setting increases the adhesion of support to the build plate."
msgstr ""
msgstr "Gera o brim dentro das regiões de preenchimento de suporte da primeira camada. Este brim é impresso sob o suporte, não em volta dele. Habilitar este ajuste aumenta a aderência de suporte à mesa de impressão."
#: fdmprinter.def.json
msgctxt "support_brim_width label"
msgid "Support Brim Width"
msgstr ""
msgstr "Largura do Brim de Suporte"
#: fdmprinter.def.json
msgctxt "support_brim_width description"
msgid "The width of the brim to print underneath the support. A larger brim enhances adhesion to the build plate, at the cost of some extra material."
msgstr ""
msgstr "A largura do brim a ser impresso sob o suporte. Um brim mais largo melhora a aderência à mesa de impressão, ao custo de material extra."
#: fdmprinter.def.json
msgctxt "support_brim_line_count label"
msgid "Support Brim Line Count"
msgstr ""
msgstr "Número de Filetes do Brim de Suporte"
#: fdmprinter.def.json
msgctxt "support_brim_line_count description"
msgid "The number of lines used for the support brim. More brim lines enhance adhesion to the build plate, at the cost of some extra material."
msgstr ""
msgstr "O número de filetes usado para o brim de suporte. Mais filetes melhoram a aderência na mesa de impressão, ao custo de material extra."
#: fdmprinter.def.json
msgctxt "support_z_distance label"
@ -3547,7 +3548,7 @@ msgstr "Densidade da Base do Suporte"
#: fdmprinter.def.json
msgctxt "support_bottom_density description"
msgid "The density of the floors of the support structure. A higher value results in better adhesion of the support on top of the model."
msgstr "A densidade das bases da estrutura de suporte. Um valor maior resulta em melhor aderência do suporte no topo da superfície"
msgstr "A densidade das bases da estrutura de suporte. Um valor maior resulta em melhor aderência do suporte no topo da superfície."
#: fdmprinter.def.json
msgctxt "support_bottom_line_distance label"
@ -3672,7 +3673,7 @@ msgstr "Sobrepor Velocidade de Ventoinha"
#: fdmprinter.def.json
msgctxt "support_fan_enable description"
msgid "When enabled, the print cooling fan speed is altered for the skin regions immediately above the support."
msgstr "Quando habilitado, a velocidade da ventoinha de resfriamento é alterada para as regiões de contorno imediatamente acima do suporte"
msgstr "Quando habilitado, a velocidade da ventoinha de resfriamento é alterada para as regiões de contorno imediatamente acima do suporte."
#: fdmprinter.def.json
msgctxt "support_supported_skin_fan_speed label"
@ -3871,12 +3872,12 @@ msgstr "O número de linhas usada para o brim. Mais linhas de brim melhoram a ad
#: fdmprinter.def.json
msgctxt "brim_replaces_support label"
msgid "Brim Replaces Support"
msgstr ""
msgstr "Brim Substitui Suporte"
#: fdmprinter.def.json
msgctxt "brim_replaces_support description"
msgid "Enforce brim to be printed around the model even if that space would otherwise be occupied by support. This replaces some regions of the first layer of support by brim regions."
msgstr ""
msgstr "Força que o brim seja impresso em volta do modelo mesmo se este espaço fosse ser ocupado por suporte. Isto substitui algumas regiões da primeira camada de suporte por regiões de brim."
#: fdmprinter.def.json
msgctxt "brim_outside_only label"
@ -3946,7 +3947,7 @@ msgstr "Espessura da Camada Superior do Raft"
#: fdmprinter.def.json
msgctxt "raft_surface_thickness description"
msgid "Layer thickness of the top raft layers."
msgstr "Espessura de camada das camadas superiores do raft"
msgstr "Espessura de camada das camadas superiores do raft."
#: fdmprinter.def.json
msgctxt "raft_surface_line_width label"
@ -5116,7 +5117,7 @@ msgstr "A distância média entre os pontos aleatórios introduzidos em cada seg
#: fdmprinter.def.json
msgctxt "flow_rate_max_extrusion_offset label"
msgid "Flow rate compensation max extrusion offset"
msgstr "Deslocamento de extrusão máxima da compensação de taxa de fluxo."
msgstr "Deslocamento de extrusão máxima da compensação de taxa de fluxo"
#: fdmprinter.def.json
msgctxt "flow_rate_max_extrusion_offset description"

View File

@ -11,6 +11,7 @@ Column
{
property var profile: null
property var loggedIn: false
property var profileImage: ""
padding: 2 * UM.Theme.getSize("default_margin").height
spacing: 2 * UM.Theme.getSize("default_margin").height
@ -21,7 +22,18 @@ Column
width: UM.Theme.getSize("avatar_image").width
height: UM.Theme.getSize("avatar_image").height
anchors.horizontalCenter: parent.horizontalCenter
source: loggedIn ? profile["profile_image_url"] : UM.Theme.getImage("avatar_no_user")
source:
{
if(loggedIn)
{
if(profileImage)
{
return profileImage
}
return UM.Theme.getImage("avatar_no_user")
}
return UM.Theme.getImage("avatar_no_user")
}
outlineColor: loggedIn ? UM.Theme.getColor("account_widget_outline_active") : UM.Theme.getColor("lining")
}

View File

@ -25,7 +25,18 @@ Button
anchors.verticalCenter: accountWidget.verticalCenter
anchors.horizontalCenter: accountWidget.horizontalCenter
source: loggedIn ? profile["profile_image_url"] : UM.Theme.getImage("avatar_no_user")
source:
{
if(loggedIn)
{
if(profile["profile_image_url"])
{
return profile["profile_image_url"]
}
return UM.Theme.getImage("avatar_no_user")
}
return UM.Theme.getImage("avatar_no_user")
}
outlineColor: loggedIn ? UM.Theme.getColor("account_widget_outline_active") : UM.Theme.getColor("lining")
}
@ -45,6 +56,7 @@ Button
id: panel
profile: Cura.API.account.userProfile
loggedIn: Cura.API.account.isLoggedIn
profileImage: Cura.API.account.profileImageUrl
}
background: UM.PointingRectangle

View File

@ -24,6 +24,7 @@ Item
source: UM.Theme.getImage("avatar_default")
fillMode: Image.PreserveAspectCrop
visible: false
mipmap: true
}
Rectangle
@ -44,7 +45,10 @@ Item
UM.RecolorImage
{
id: profileImageOutline
anchors.fill: parent
anchors.centerIn: parent
// Make it a bit bigger than it has to, otherwise it sometimes shows a white border.
width: parent.width + 2
height: parent.height + 2
source: UM.Theme.getIcon("circle_outline")
sourceSize: Qt.size(parent.width, parent.height)
color: UM.Theme.getColor("account_widget_ouline_active")

View File

@ -37,7 +37,6 @@ Button
color: button.hovered ? button.textHoverColor : button.textColor
visible: source != ""
anchors.verticalCenter: parent.verticalCenter
Behavior on color { ColorAnimation { duration: 50 } }
}
Label
@ -59,7 +58,6 @@ Button
radius: UM.Theme.getSize("action_button_radius").width
border.width: UM.Theme.getSize("default_lining").width
border.color: button.enabled ? (button.hovered ? button.outlineHoverColor : button.outlineColor) : button.outlineDisabledColor
Behavior on color { ColorAnimation { duration: 50 } }
}
MouseArea

View File

@ -412,7 +412,7 @@ Item
Action
{
id: browsePackagesAction
text: catalog.i18nc("@action:menu", "Open Marketplace...")
text: catalog.i18nc("@action:menu", "&Marketplace")
iconName: "plugins_browse"
}
}

View File

@ -194,8 +194,9 @@ UM.MainWindow
visible: UM.Preferences.getValue("cura/use_multi_build_plate")
anchors
{
bottom: parent.bottom
left: parent.left
bottom: viewOrientationControls.top
left: toolbar.right
margins: UM.Theme.getSize("default_margin").width
}
}

View File

@ -25,7 +25,8 @@ UM.Dialog
width: minimumWidth
height: minimumHeight
flags: {
flags:
{
var window_flags = Qt.Dialog | Qt.CustomizeWindowHint | Qt.WindowTitleHint;
if (Cura.MachineManager.activeDefinitionId !== "") //Disallow closing the window if we have no active printer yet. You MUST add a printer.
{
@ -48,22 +49,28 @@ UM.Dialog
function getMachineName()
{
return machineList.model.getItem(machineList.currentIndex) != undefined ? machineList.model.getItem(machineList.currentIndex).name : "";
if (machineList.model.getItem(machineList.currentIndex) != undefined)
{
return machineList.model.getItem(machineList.currentIndex).name;
}
return "";
}
function getMachineMetaDataEntry(key)
{
var metadata = machineList.model.getItem(machineList.currentIndex) != undefined ? machineList.model.getItem(machineList.currentIndex).metadata : undefined;
if (metadata)
if (machineList.model.getItem(machineList.currentIndex) != undefined)
{
return metadata[key];
return machineList.model.getItem(machineList.currentIndex).metadata[key];
}
return undefined;
return "";
}
Label {
Label
{
id: titleLabel
anchors {
anchors
{
top: parent.top
left: parent.left
topMargin: UM.Theme.getSize("default_margin")
@ -102,7 +109,8 @@ UM.Dialog
width: Math.round(parent.width * 0.45)
frameVisible: true;
Rectangle {
Rectangle
{
parent: viewport
anchors.fill: parent
color: palette.light
@ -159,11 +167,14 @@ UM.Dialog
onClicked:
{
base.activeCategory = section;
if (machineList.model.getItem(machineList.currentIndex).section != section) {
if (machineList.model.getItem(machineList.currentIndex).section != section)
{
// Find the first machine from this section
for(var i = 0; i < machineList.model.rowCount(); i++) {
for(var i = 0; i < machineList.model.rowCount(); i++)
{
var item = machineList.model.getItem(i);
if (item.section == section) {
if (item.section == section)
{
machineList.currentIndex = i;
break;
}

View File

@ -83,7 +83,7 @@ Rectangle
}
leftPadding: UM.Theme.getSize("default_margin").width
rightPadding: UM.Theme.getSize("default_margin").width
text: catalog.i18nc("@action:button", "Toolbox")
text: catalog.i18nc("@action:button", "Marketplace")
height: Math.round(0.5 * UM.Theme.getSize("main_window_header").height)
color: UM.Theme.getColor("main_window_header_secondary_button_background_active")
hoverColor: UM.Theme.getColor("main_window_header_secondary_button_background_hovered")

View File

@ -106,10 +106,10 @@ Rectangle
model: modesListModel
width: Math.round(parent.width * 0.55)
height: UM.Theme.getSize("print_setup_mode_toggle").height
visible: !hideSettings
anchors.right: parent.right
anchors.rightMargin: UM.Theme.getSize("thick_margin").width
anchors.top: settingsModeLabel.top
ButtonGroup
@ -191,6 +191,8 @@ Rectangle
anchors.right: parent.right
height: UM.Theme.getSize("print_setup_widget").height
visible: !hideSettings
// We load both of them at once (instead of using a loader) because the advanced sidebar can take
// quite some time to load. So in this case we sacrifice memory for speed.
SidebarAdvanced

View File

@ -129,8 +129,6 @@ QtObject
return UM.Theme.getColor("main_window_header_button_background_inactive")
}
}
Behavior on color { ColorAnimation { duration: 50 } }
}
}

View File

@ -1,76 +0,0 @@
# Copyright (c) 2015 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
from distutils.core import setup
import py2exe
import UM
import UM.Qt #@UnusedImport
import cura #@UnusedImport
import os
import shutil
import site
# work around the limitation that shutil.copytree does not allow the target directory to exist
def copytree(src, dst, symlinks=False, ignore=None):
if not os.path.exists(dst):
os.makedirs(dst)
for item in os.listdir(src):
s = os.path.join(src, item)
d = os.path.join(dst, item)
if os.path.isdir(s):
copytree(s, d, symlinks, ignore)
else:
shutil.copy2(s, d)
includes = ["sip", "ctypes", "UM", "PyQt5.QtNetwork", "PyQt5._QOpenGLFunctions_2_0", "serial", "Arcus", "google", "google.protobuf", "google.protobuf.descriptor", "xml.etree", "xml.etree.ElementTree", "cura", "cura.OneAtATimeIterator"]
# Include all the UM modules in the includes. As py2exe fails to properly find all the dependencies due to the plugin architecture.
for dirpath, dirnames, filenames in os.walk(os.path.dirname(UM.__file__)):
if "__" in dirpath:
continue
module_path = dirpath.replace(os.path.dirname(UM.__file__), "UM")
module_path = module_path.split(os.path.sep)
module_name = ".".join(module_path)
if os.path.isfile(dirpath + "/__init__.py"):
includes += [module_name]
for filename in filenames:
if "__" in filename or not filename.endswith(".py"):
continue
includes += [module_name + "." + os.path.splitext(filename)[0]]
print("Removing previous distribution package")
shutil.rmtree("dist", True)
setup(name="Cura",
version="15.09.80",
author="Ultimaker",
author_email="a.hiemstra@ultimaker.com",
url="http://software.ultimaker.com/",
license="GNU LESSER GENERAL PUBLIC LICENSE (LGPL)",
scripts=["cura_app.py"],
windows=[{"script": "cura_app.py", "dest_name": "Cura", "icon_resources": [(1, "icons/cura.ico")]}],
#console=[{"script": "cura_app.py"}],
options={"py2exe": {"skip_archive": False, "includes": includes}})
print("Copying Cura plugins.")
shutil.copytree(os.path.dirname(UM.__file__) + "/../plugins", "dist/plugins", ignore = shutil.ignore_patterns("ConsoleLogger", "OBJWriter", "MLPWriter", "MLPReader"))
for path in os.listdir("plugins"):
copytree("plugins/" + path, "dist/plugins/" + path)
print("Copying resources.")
copytree(os.path.dirname(UM.__file__) + "/../resources", "dist/resources")
copytree("resources", "dist/resources")
print("Copying Uranium QML.")
shutil.copytree(os.path.dirname(UM.__file__) + "/Qt/qml/UM", "dist/qml/UM")
for site_package in site.getsitepackages():
qt_origin_path = os.path.join(site_package, "PyQt5")
if os.path.isdir(qt_origin_path):
print("Copying PyQt5 plugins from: %s" % qt_origin_path)
shutil.copytree(os.path.join(qt_origin_path, "plugins"), "dist/PyQt5/plugins")
print("Copying PyQt5 QtQuick from: %s" % qt_origin_path)
shutil.copytree(os.path.join(qt_origin_path, "qml/QtQuick"), "dist/qml/QtQuick")
shutil.copytree(os.path.join(qt_origin_path, "qml/QtQuick.2"), "dist/qml/QtQuick.2")
print("Copying PyQt5 svg library from: %s" % qt_origin_path)
shutil.copy(os.path.join(qt_origin_path, "Qt5Svg.dll"), "dist/Qt5Svg.dll")
print("Copying Angle libraries from %s" % qt_origin_path)
shutil.copy(os.path.join(qt_origin_path, "libEGL.dll"), "dist/libEGL.dll")
shutil.copy(os.path.join(qt_origin_path, "libGLESv2.dll"), "dist/libGLESv2.dll")
os.rename("dist/cura_app.exe", "dist/Cura.exe")