mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-22 06:03:57 -06:00
Merge branch 'master' of https://github.com/Ultimaker/Cura
This commit is contained in:
commit
c2a25b131e
16 changed files with 228 additions and 158 deletions
|
@ -69,13 +69,15 @@ class XmlMaterialProfile(UM.Settings.InstanceContainer):
|
||||||
|
|
||||||
self.addMetaDataEntry("properties", property_values)
|
self.addMetaDataEntry("properties", property_values)
|
||||||
|
|
||||||
|
self.setDefinition(UM.Settings.ContainerRegistry.getInstance().findDefinitionContainers(id = "fdmprinter")[0])
|
||||||
|
|
||||||
global_setting_values = {}
|
global_setting_values = {}
|
||||||
settings = data.iterfind("./um:settings/um:setting", self.__namespaces)
|
settings = data.iterfind("./um:settings/um:setting", self.__namespaces)
|
||||||
for entry in settings:
|
for entry in settings:
|
||||||
key = entry.get("key")
|
key = entry.get("key")
|
||||||
if key in self.__material_property_setting_map:
|
if key in self.__material_property_setting_map:
|
||||||
self.setProperty(self.__material_property_setting_map[key], "value", entry.text, self._definition)
|
self.setProperty(self.__material_property_setting_map[key], "value", entry.text, self._definition)
|
||||||
global_setting_values[key] = entry.text
|
global_setting_values[self.__material_property_setting_map[key]] = entry.text
|
||||||
|
|
||||||
machines = data.iterfind("./um:settings/um:machine", self.__namespaces)
|
machines = data.iterfind("./um:settings/um:machine", self.__namespaces)
|
||||||
for machine in machines:
|
for machine in machines:
|
||||||
|
|
|
@ -582,7 +582,7 @@ UM.MainWindow
|
||||||
onTriggered:
|
onTriggered:
|
||||||
{
|
{
|
||||||
UM.MachineManager.createProfile();
|
UM.MachineManager.createProfile();
|
||||||
preferences.setPage(4);
|
preferences.setPage(5);
|
||||||
preferences.show();
|
preferences.show();
|
||||||
|
|
||||||
// Show the renameDialog after a very short delay so the preference page has time to initiate
|
// Show the renameDialog after a very short delay so the preference page has time to initiate
|
||||||
|
@ -606,7 +606,7 @@ UM.MainWindow
|
||||||
onTriggered:
|
onTriggered:
|
||||||
{
|
{
|
||||||
preferences.visible = true;
|
preferences.visible = true;
|
||||||
preferences.setPage(4);
|
preferences.setPage(5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -89,7 +89,7 @@ Item {
|
||||||
{
|
{
|
||||||
id: revertButton;
|
id: revertButton;
|
||||||
|
|
||||||
visible: propertyProvider.properties.state == "InstanceState.User"
|
visible: propertyProvider.stackLevel == 0
|
||||||
|
|
||||||
height: parent.height;
|
height: parent.height;
|
||||||
width: height;
|
width: height;
|
||||||
|
@ -102,8 +102,8 @@ Item {
|
||||||
iconSource: UM.Theme.getIcon("reset")
|
iconSource: UM.Theme.getIcon("reset")
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
base.resetRequested()
|
revertButton.focus = true
|
||||||
controlContainer.notifyReset();
|
propertyProvider.removeFromContainer(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
onEntered: base.showTooltip(catalog.i18nc("@label", "This setting has a value that is different from the profile.\n\nClick to restore the value of the profile."))
|
onEntered: base.showTooltip(catalog.i18nc("@label", "This setting has a value that is different from the profile.\n\nClick to restore the value of the profile."))
|
||||||
|
@ -116,14 +116,14 @@ Item {
|
||||||
id: inheritButton;
|
id: inheritButton;
|
||||||
|
|
||||||
//visible: has_profile_value && base.has_inherit_function && base.is_enabled
|
//visible: has_profile_value && base.has_inherit_function && base.is_enabled
|
||||||
visible: propertyProvider.properties.state == "InstanceState.User"
|
visible: propertyProvider.properties.state == "InstanceState.User" && propertyProvider.stackLevel > 0
|
||||||
|
|
||||||
height: parent.height;
|
height: parent.height;
|
||||||
width: height;
|
width: height;
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
base.resetToDefaultRequested();
|
focus = true;
|
||||||
controlContainer.notifyReset();
|
propertyProvider.removeFromContainer(propertyProvider.stackLevel)
|
||||||
}
|
}
|
||||||
|
|
||||||
backgroundColor: UM.Theme.getColor("setting_control");
|
backgroundColor: UM.Theme.getColor("setting_control");
|
||||||
|
|
|
@ -38,18 +38,20 @@ ScrollView
|
||||||
id: delegate
|
id: delegate
|
||||||
|
|
||||||
width: UM.Theme.getSize("sidebar").width;
|
width: UM.Theme.getSize("sidebar").width;
|
||||||
height: provider.properties.enabled ? UM.Theme.getSize("section").height : 0
|
height: provider.properties.enabled == "True" ? UM.Theme.getSize("section").height : 0
|
||||||
Behavior on height { NumberAnimation { duration: 100 } }
|
Behavior on height { NumberAnimation { duration: 100 } }
|
||||||
opacity: provider.properties.enabled ? 1 : 0
|
opacity: provider.properties.enabled == "True" ? 1 : 0
|
||||||
Behavior on opacity { NumberAnimation { duration: 100 } }
|
Behavior on opacity { NumberAnimation { duration: 100 } }
|
||||||
enabled: provider.properties.enabled
|
enabled: provider.properties.enabled == "True"
|
||||||
|
|
||||||
property var definition: model
|
property var definition: model
|
||||||
property var settingDefinitionsModel: definitionsModel
|
property var settingDefinitionsModel: definitionsModel
|
||||||
property var propertyProvider: provider
|
property var propertyProvider: provider
|
||||||
|
|
||||||
//Qt5.4.2 and earlier has a bug where this causes a crash: https://bugreports.qt.io/browse/QTBUG-35989
|
//Qt5.4.2 and earlier has a bug where this causes a crash: https://bugreports.qt.io/browse/QTBUG-35989
|
||||||
asynchronous: QT_VERSION_STR.split(".")[1] >= 5
|
//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 differnt options. So disable asynchronous loading of enum type completely.
|
||||||
|
asynchronous: model.type != "enum"
|
||||||
|
|
||||||
source:
|
source:
|
||||||
{
|
{
|
||||||
|
|
|
@ -56,22 +56,13 @@ Rectangle
|
||||||
configureMachinesAction: base.configureMachinesAction;
|
configureMachinesAction: base.configureMachinesAction;
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
id: headerSeparator
|
|
||||||
width: parent.width
|
|
||||||
height: UM.Theme.getSize("sidebar_lining").height
|
|
||||||
color: UM.Theme.getColor("sidebar_lining")
|
|
||||||
anchors.top: header.bottom
|
|
||||||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
|
||||||
}
|
|
||||||
|
|
||||||
ProfileSetup {
|
ProfileSetup {
|
||||||
id: profileItem
|
id: profileItem
|
||||||
addProfileAction: base.addProfileAction
|
addProfileAction: base.addProfileAction
|
||||||
updateProfileAction: base.updateProfileAction
|
updateProfileAction: base.updateProfileAction
|
||||||
resetProfileAction: base.resetProfileAction
|
resetProfileAction: base.resetProfileAction
|
||||||
manageProfilesAction: base.manageProfilesAction
|
manageProfilesAction: base.manageProfilesAction
|
||||||
anchors.top: settingsModeSelection.bottom
|
anchors.top: header.bottom
|
||||||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: totalHeightProfileSetup
|
height: totalHeightProfileSetup
|
||||||
|
@ -80,6 +71,15 @@ Rectangle
|
||||||
onHideTooltip: base.hideTooltip()
|
onHideTooltip: base.hideTooltip()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: headerSeparator
|
||||||
|
width: parent.width
|
||||||
|
height: UM.Theme.getSize("sidebar_lining").height
|
||||||
|
color: UM.Theme.getColor("sidebar_lining")
|
||||||
|
anchors.top: profileItem.bottom
|
||||||
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
|
}
|
||||||
|
|
||||||
currentModeIndex:
|
currentModeIndex:
|
||||||
{
|
{
|
||||||
var index = parseInt(UM.Preferences.getValue("cura/active_mode"))
|
var index = parseInt(UM.Preferences.getValue("cura/active_mode"))
|
||||||
|
@ -172,7 +172,7 @@ Rectangle
|
||||||
id: sidebarContents
|
id: sidebarContents
|
||||||
|
|
||||||
anchors.bottom: footerSeparator.top
|
anchors.bottom: footerSeparator.top
|
||||||
anchors.top: profileItem.bottom
|
anchors.top: settingsModeSelection.bottom
|
||||||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
anchors.left: base.left
|
anchors.left: base.left
|
||||||
anchors.right: base.right
|
anchors.right: base.right
|
||||||
|
|
|
@ -16,6 +16,7 @@ Item
|
||||||
property Action configureMachinesAction;
|
property Action configureMachinesAction;
|
||||||
UM.I18nCatalog { id: catalog; name:"cura"}
|
UM.I18nCatalog { id: catalog; name:"cura"}
|
||||||
property int totalHeightHeader: childrenRect.height
|
property int totalHeightHeader: childrenRect.height
|
||||||
|
property int currentExtruderIndex;
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: sidebarTabRow
|
id: sidebarTabRow
|
||||||
|
@ -25,23 +26,11 @@ Item
|
||||||
color: UM.Theme.getColor("sidebar_header_bar")
|
color: UM.Theme.getColor("sidebar_header_bar")
|
||||||
}
|
}
|
||||||
|
|
||||||
Label{
|
|
||||||
id: printjobTabLabel
|
|
||||||
text: catalog.i18nc("@label:listbox","Print Job");
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.leftMargin: UM.Theme.getSize("default_margin").width;
|
|
||||||
anchors.top: sidebarTabRow.bottom
|
|
||||||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
|
||||||
width: parent.width/100*45
|
|
||||||
font: UM.Theme.getFont("large");
|
|
||||||
color: UM.Theme.getColor("text")
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: machineSelectionRow
|
id: machineSelectionRow
|
||||||
width: base.width
|
width: base.width
|
||||||
height: UM.Theme.getSize("sidebar_setup").height
|
height: UM.Theme.getSize("sidebar_setup").height
|
||||||
anchors.top: printjobTabLabel.bottom
|
anchors.top: sidebarTabRow.bottom
|
||||||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
|
||||||
|
@ -99,9 +88,89 @@ Item
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: variantRow
|
id: extruderSelection
|
||||||
|
width: parent.width/100*55
|
||||||
|
visible: machineExtruderCount.properties.value > 1
|
||||||
|
height: visible ? UM.Theme.getSize("sidebar_header_mode_toggle").height : 0
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.rightMargin: UM.Theme.getSize("default_margin").width
|
||||||
anchors.top: machineSelectionRow.bottom
|
anchors.top: machineSelectionRow.bottom
|
||||||
anchors.topMargin: visible ? UM.Theme.getSize("default_margin").height : 0
|
anchors.topMargin: visible ? UM.Theme.getSize("default_margin").height : 0
|
||||||
|
Component{
|
||||||
|
id: wizardDelegate
|
||||||
|
Button {
|
||||||
|
height: extruderSelection.height
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.leftMargin: model.index * (extruderSelection.width / machineExtruderCount.properties.value)
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
width: parent.width / machineExtruderCount.properties.value
|
||||||
|
text: model.text
|
||||||
|
exclusiveGroup: extruderMenuGroup;
|
||||||
|
checkable: true;
|
||||||
|
checked: base.currentExtruderIndex == index
|
||||||
|
onClicked: base.currentExtruderIndex = index
|
||||||
|
|
||||||
|
style: ButtonStyle {
|
||||||
|
background: Rectangle {
|
||||||
|
border.width: UM.Theme.getSize("default_lining").width
|
||||||
|
border.color: control.checked ? UM.Theme.getColor("toggle_checked_border") :
|
||||||
|
control.pressed ? UM.Theme.getColor("toggle_active_border") :
|
||||||
|
control.hovered ? UM.Theme.getColor("toggle_hovered_border") : UM.Theme.getColor("toggle_unchecked_border")
|
||||||
|
color: control.checked ? UM.Theme.getColor("toggle_checked") :
|
||||||
|
control.pressed ? UM.Theme.getColor("toggle_active") :
|
||||||
|
control.hovered ? UM.Theme.getColor("toggle_hovered") : UM.Theme.getColor("toggle_unchecked")
|
||||||
|
Behavior on color { ColorAnimation { duration: 50; } }
|
||||||
|
Label {
|
||||||
|
anchors.centerIn: parent
|
||||||
|
color: control.checked ? UM.Theme.getColor("toggle_checked_text") :
|
||||||
|
control.pressed ? UM.Theme.getColor("toggle_active_text") :
|
||||||
|
control.hovered ? UM.Theme.getColor("toggle_hovered_text") : UM.Theme.getColor("toggle_unchecked_text")
|
||||||
|
font: UM.Theme.getFont("default")
|
||||||
|
text: control.text;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
label: Item { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ExclusiveGroup { id: extruderMenuGroup; }
|
||||||
|
ListView{
|
||||||
|
id: extrudersList
|
||||||
|
property var index: 0
|
||||||
|
model: extrudersListModel
|
||||||
|
delegate: wizardDelegate
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.left: parent.left
|
||||||
|
width: parent.width
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ListModel
|
||||||
|
{
|
||||||
|
id: extrudersListModel
|
||||||
|
Component.onCompleted: populateExtruderModel()
|
||||||
|
}
|
||||||
|
Connections
|
||||||
|
{
|
||||||
|
id: machineChange
|
||||||
|
target: Cura.MachineManager
|
||||||
|
onGlobalContainerChanged: populateExtruderModel()
|
||||||
|
}
|
||||||
|
|
||||||
|
function populateExtruderModel()
|
||||||
|
{
|
||||||
|
extrudersListModel.clear();
|
||||||
|
for(var extruder = 0; extruder < machineExtruderCount.properties.value ; extruder++) {
|
||||||
|
extrudersListModel.append({
|
||||||
|
text: catalog.i18nc("@label", "Extruder %1").arg(extruder + 1)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: variantRow
|
||||||
|
anchors.top: extruderSelection.visible ? extruderSelection.bottom : machineSelectionRow.bottom
|
||||||
|
anchors.topMargin: visible ? UM.Theme.getSize("default_margin").height : 0
|
||||||
width: base.width
|
width: base.width
|
||||||
height: visible ? UM.Theme.getSize("sidebar_setup").height : 0
|
height: visible ? UM.Theme.getSize("sidebar_setup").height : 0
|
||||||
visible: Cura.MachineManager.hasVariants || Cura.MachineManager.hasMaterials
|
visible: Cura.MachineManager.hasVariants || Cura.MachineManager.hasMaterials
|
||||||
|
@ -226,4 +295,14 @@ Item
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UM.SettingPropertyProvider
|
||||||
|
{
|
||||||
|
id: machineExtruderCount
|
||||||
|
|
||||||
|
containerStackId: Cura.MachineManager.activeMachineId
|
||||||
|
key: "machine_extruder_count"
|
||||||
|
watchedProperties: [ "value" ]
|
||||||
|
storeIndex: 0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -175,38 +175,35 @@ Item
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: helpersCellLeft
|
id: helpersCell
|
||||||
anchors.top: infillCellRight.bottom
|
anchors.top: infillCellRight.bottom
|
||||||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
width: parent.width/100*35 - UM.Theme.getSize("default_margin").width
|
anchors.right: parent.right
|
||||||
height: childrenRect.height
|
height: childrenRect.height
|
||||||
|
|
||||||
Label{
|
Label{
|
||||||
|
id: adhesionHelperLabel
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||||
//: Helpers selection label
|
anchors.verticalCenter: brimCheckBox.verticalCenter
|
||||||
text: catalog.i18nc("@label:listbox","Helpers:");
|
width: parent.width/100*35 - 3 * UM.Theme.getSize("default_margin").width
|
||||||
|
//: Bed adhesion label
|
||||||
|
text: catalog.i18nc("@label:listbox","Bed Adhesion:");
|
||||||
font: UM.Theme.getFont("default");
|
font: UM.Theme.getFont("default");
|
||||||
color: UM.Theme.getColor("text");
|
color: UM.Theme.getColor("text");
|
||||||
}
|
}
|
||||||
}
|
|
||||||
Rectangle {
|
|
||||||
id: helpersCellRight
|
|
||||||
anchors.top: helpersCellLeft.top
|
|
||||||
anchors.left: helpersCellLeft.right
|
|
||||||
width: parent.width/100*65 - UM.Theme.getSize("default_margin").width
|
|
||||||
height: childrenRect.height
|
|
||||||
|
|
||||||
CheckBox{
|
CheckBox{
|
||||||
id: brimCheckBox
|
id: brimCheckBox
|
||||||
property bool hovered_ex: false
|
property bool hovered_ex: false
|
||||||
|
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.left: parent.left
|
anchors.left: adhesionHelperLabel.right
|
||||||
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||||
|
|
||||||
//: Setting enable skirt adhesion checkbox
|
//: Setting enable skirt adhesion checkbox
|
||||||
text: catalog.i18nc("@option:check","Generate Brim");
|
text: catalog.i18nc("@option:check","Print Brim");
|
||||||
style: UM.Theme.styles.checkbox;
|
style: UM.Theme.styles.checkbox;
|
||||||
|
|
||||||
checked: platformAdhesionType.properties.value == "brim"
|
checked: platformAdhesionType.properties.value == "brim"
|
||||||
|
@ -221,7 +218,7 @@ Item
|
||||||
onEntered:
|
onEntered:
|
||||||
{
|
{
|
||||||
parent.hovered_ex = true
|
parent.hovered_ex = true
|
||||||
base.showTooltip(brimCheckBox, Qt.point(-helpersCellRight.x, 0),
|
base.showTooltip(brimCheckBox, Qt.point(-brimCheckBox.x, 0),
|
||||||
catalog.i18nc("@label", "Enable printing a brim. This will add a single-layer-thick flat area around your object which is easy to cut off afterwards."));
|
catalog.i18nc("@label", "Enable printing a brim. This will add a single-layer-thick flat area around your object which is easy to cut off afterwards."));
|
||||||
}
|
}
|
||||||
onExited:
|
onExited:
|
||||||
|
@ -231,16 +228,31 @@ Item
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Label{
|
||||||
|
id: supportHelperLabel
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||||
|
anchors.verticalCenter: supportCheckBox.verticalCenter
|
||||||
|
width: parent.width/100*35 - 3 * UM.Theme.getSize("default_margin").width
|
||||||
|
//: Support label
|
||||||
|
text: catalog.i18nc("@label:listbox","Support:");
|
||||||
|
font: UM.Theme.getFont("default");
|
||||||
|
color: UM.Theme.getColor("text");
|
||||||
|
}
|
||||||
|
|
||||||
CheckBox{
|
CheckBox{
|
||||||
id: supportCheckBox
|
id: supportCheckBox
|
||||||
|
visible: machineExtruderCount.properties.value <= 1
|
||||||
property bool hovered_ex: false
|
property bool hovered_ex: false
|
||||||
|
|
||||||
anchors.top: brimCheckBox.bottom
|
anchors.top: brimCheckBox.bottom
|
||||||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
anchors.left: parent.left
|
anchors.left: supportHelperLabel.right
|
||||||
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||||
|
|
||||||
//: Setting enable support checkbox
|
//: Setting enable support checkbox
|
||||||
text: catalog.i18nc("@option:check","Generate Support Structure");
|
text: catalog.i18nc("@option:check","Print Support Structure");
|
||||||
style: UM.Theme.styles.checkbox;
|
style: UM.Theme.styles.checkbox;
|
||||||
|
|
||||||
checked: supportEnabled.properties.value == "True"
|
checked: supportEnabled.properties.value == "True"
|
||||||
|
@ -254,7 +266,7 @@ Item
|
||||||
onEntered:
|
onEntered:
|
||||||
{
|
{
|
||||||
parent.hovered_ex = true
|
parent.hovered_ex = true
|
||||||
base.showTooltip(supportCheckBox, Qt.point(-helpersCellRight.x, 0),
|
base.showTooltip(supportCheckBox, Qt.point(-supportCheckBox.x, 0),
|
||||||
catalog.i18nc("@label", "Enable printing support structures. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air."));
|
catalog.i18nc("@label", "Enable printing support structures. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air."));
|
||||||
}
|
}
|
||||||
onExited:
|
onExited:
|
||||||
|
@ -264,74 +276,45 @@ Item
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
function populateExtruderModel()
|
|
||||||
{
|
|
||||||
extruderModel.clear();
|
|
||||||
for(var extruder = 0; extruder < machineExtruderCount.properties.value ; extruder++) {
|
|
||||||
print(catalog.i18nc("@label", "Extruder %1").arg(extruder));
|
|
||||||
extruderModel.append({
|
|
||||||
text: catalog.i18nc("@label", "Extruder %1").arg(extruder)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
id: multiExtrusionCell
|
|
||||||
anchors.top: helpersCellRight.bottom
|
|
||||||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
|
||||||
anchors.left: parent.left
|
|
||||||
width: parent.width
|
|
||||||
height: childrenRect.height
|
|
||||||
visible: machineExtruderCount.properties.value > 1
|
|
||||||
|
|
||||||
Label {
|
|
||||||
id: mainExtruderLabel
|
|
||||||
text: catalog.i18nc("@label:listbox","Print object with:")
|
|
||||||
font: UM.Theme.getFont("default")
|
|
||||||
color: UM.Theme.getColor("text")
|
|
||||||
width: base.width/100* 35 - 2*UM.Theme.getSize("default_margin").width
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
|
||||||
anchors.verticalCenter: mainExtruderCombobox.verticalCenter
|
|
||||||
}
|
|
||||||
ComboBox {
|
|
||||||
id: mainExtruderCombobox
|
|
||||||
model: extruderModel
|
|
||||||
anchors.top: parent.top
|
|
||||||
anchors.left: supportExtruderLabel.right
|
|
||||||
style: UM.Theme.styles.combobox
|
|
||||||
currentIndex: mainExtruderNr.properties.value
|
|
||||||
onActivated: {
|
|
||||||
mainExtruderNr.setPropertyValue("value", index)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Label {
|
|
||||||
id: supportExtruderLabel
|
|
||||||
visible: supportCheckBox.checked
|
|
||||||
text: catalog.i18nc("@label:listbox","Print support with:")
|
|
||||||
font: UM.Theme.getFont("default")
|
|
||||||
color: UM.Theme.getColor("text")
|
|
||||||
width: base.width/100* 35 - 2*UM.Theme.getSize("default_margin").width
|
|
||||||
height: visible ? mainExtruderLabel.height : 0
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
|
||||||
anchors.verticalCenter: supportExtruderCombobox.verticalCenter
|
|
||||||
}
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
id: supportExtruderCombobox
|
id: supportExtruderCombobox
|
||||||
visible: supportCheckBox.checked
|
visible: machineExtruderCount.properties.value > 1
|
||||||
model: extruderModel
|
model: extruderModel
|
||||||
height: visible ? mainExtruderCombobox.height : 0
|
|
||||||
anchors.top: mainExtruderCombobox.bottom
|
anchors.top: brimCheckBox.bottom
|
||||||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
anchors.left: supportExtruderLabel.right
|
anchors.left: supportHelperLabel.right
|
||||||
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||||
|
width: parent.width/100*45
|
||||||
|
|
||||||
style: UM.Theme.styles.combobox
|
style: UM.Theme.styles.combobox
|
||||||
currentIndex: supportExtruderNr.properties.value
|
property bool hovered_ex: false
|
||||||
|
|
||||||
|
currentIndex: supportEnabled.properties.value == "True" ? parseFloat(supportExtruderNr.properties.value) + 1 : 0
|
||||||
onActivated: {
|
onActivated: {
|
||||||
supportExtruderNr.setPropertyValue("value", index)
|
if(index==0) {
|
||||||
|
supportEnabled.setPropertyValue("value", false);
|
||||||
|
} else {
|
||||||
|
supportEnabled.setPropertyValue("value", true);
|
||||||
|
supportExtruderNr.setPropertyValue("value", index - 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
hoverEnabled: true
|
||||||
|
acceptedButtons: Qt.NoButton
|
||||||
|
onEntered:
|
||||||
|
{
|
||||||
|
parent.hovered_ex = true
|
||||||
|
base.showTooltip(supportExtruderCombobox, Qt.point(-supportExtruderCombobox.x, 0),
|
||||||
|
catalog.i18nc("@label", "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air."));
|
||||||
|
}
|
||||||
|
onExited:
|
||||||
|
{
|
||||||
|
parent.hovered_ex = false
|
||||||
|
base.hideTooltip();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -339,17 +322,30 @@ Item
|
||||||
id: extruderModel
|
id: extruderModel
|
||||||
Component.onCompleted: populateExtruderModel()
|
Component.onCompleted: populateExtruderModel()
|
||||||
}
|
}
|
||||||
Connections
|
Connections
|
||||||
{
|
{
|
||||||
id: machineChange
|
id: machineChange
|
||||||
target: Cura.MachineManager
|
target: Cura.MachineManager
|
||||||
onGlobalContainerChanged: populateExtruderModel()
|
onGlobalContainerChanged: populateExtruderModel()
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function populateExtruderModel()
|
||||||
|
{
|
||||||
|
extruderModel.clear();
|
||||||
|
extruderModel.append({
|
||||||
|
text: catalog.i18nc("@label", "Don't print support")
|
||||||
|
})
|
||||||
|
for(var extruder = 0; extruder < machineExtruderCount.properties.value ; extruder++) {
|
||||||
|
extruderModel.append({
|
||||||
|
text: catalog.i18nc("@label", "Print using Extruder %1").arg(extruder + 1)
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: tipsCell
|
id: tipsCell
|
||||||
anchors.top: multiExtrusionCell.visible? multiExtrusionCell.bottom : helpersCellRight.bottom
|
anchors.top: helpersCell.bottom
|
||||||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
@ -420,13 +416,4 @@ Item
|
||||||
watchedProperties: [ "value" ]
|
watchedProperties: [ "value" ]
|
||||||
storeIndex: 0
|
storeIndex: 0
|
||||||
}
|
}
|
||||||
UM.SettingPropertyProvider
|
|
||||||
{
|
|
||||||
id: mainExtruderNr
|
|
||||||
|
|
||||||
containerStackId: Cura.MachineManager.activeMachineId
|
|
||||||
key: "extruder_nr"
|
|
||||||
watchedProperties: [ "value" ]
|
|
||||||
storeIndex: 0
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -286,11 +286,11 @@ QtObject {
|
||||||
implicitHeight: UM.Theme.getSize("setting_control").height;
|
implicitHeight: UM.Theme.getSize("setting_control").height;
|
||||||
implicitWidth: UM.Theme.getSize("setting_control").width;
|
implicitWidth: UM.Theme.getSize("setting_control").width;
|
||||||
|
|
||||||
color: control.hovered ? Theme.getColor("setting_control_highlight") : Theme.getColor("setting_control");
|
color: (control.hovered || control.hovered_ex) ? Theme.getColor("setting_control_highlight") : Theme.getColor("setting_control");
|
||||||
Behavior on color { ColorAnimation { duration: 50; } }
|
Behavior on color { ColorAnimation { duration: 50; } }
|
||||||
|
|
||||||
border.width: Theme.getSize("default_lining").width;
|
border.width: Theme.getSize("default_lining").width;
|
||||||
border.color: control.hovered ? Theme.getColor("setting_control_border_highlight") : Theme.getColor("setting_control_border");
|
border.color: (control.hovered || control.hovered_ex) ? Theme.getColor("setting_control_border_highlight") : Theme.getColor("setting_control_border");
|
||||||
}
|
}
|
||||||
label: Item {
|
label: Item {
|
||||||
Label {
|
Label {
|
||||||
|
|
|
@ -12,6 +12,6 @@ machine_nozzle_size = 0.25
|
||||||
machine_nozzle_tip_outer_diameter = 0.8
|
machine_nozzle_tip_outer_diameter = 0.8
|
||||||
coasting_volume = 0.1
|
coasting_volume = 0.1
|
||||||
coasting_min_volume = 0.17
|
coasting_min_volume = 0.17
|
||||||
speed_wall = round(speed_print / 1.2, 1)
|
speed_wall = =round(speed_print / 1.2, 1)
|
||||||
speed_wall_0 = 1 if speed_wall < 5 else (speed_wall - 5)
|
speed_wall_0 = =1 if speed_wall < 5 else (speed_wall - 5)
|
||||||
speed_topbottom = round(speed_print / 1.5, 1)
|
speed_topbottom = =round(speed_print / 1.5, 1)
|
||||||
|
|
|
@ -10,6 +10,6 @@ type = variant
|
||||||
[values]
|
[values]
|
||||||
machine_nozzle_size = 0.4
|
machine_nozzle_size = 0.4
|
||||||
machine_nozzle_tip_outer_diameter = 1.05
|
machine_nozzle_tip_outer_diameter = 1.05
|
||||||
speed_wall = round(speed_print / 1.25, 1)
|
speed_wall = =round(speed_print / 1.25, 1)
|
||||||
speed_wall_0 = 1 if speed_wall < 10 else (speed_wall - 10)
|
speed_wall_0 = =1 if speed_wall < 10 else (speed_wall - 10)
|
||||||
speed_topbottom = round(speed_print / 2.25, 1)
|
speed_topbottom = =round(speed_print / 2.25, 1)
|
||||||
|
|
|
@ -11,6 +11,6 @@ type = variant
|
||||||
machine_nozzle_size = 0.6
|
machine_nozzle_size = 0.6
|
||||||
machine_nozzle_tip_outer_diameter = 1.25
|
machine_nozzle_tip_outer_diameter = 1.25
|
||||||
coasting_volume = 1.36
|
coasting_volume = 1.36
|
||||||
speed_wall = round(speed_print * 4 / 3, 1)
|
speed_wall = =round(speed_print * 4 / 3, 1)
|
||||||
speed_wall_0 = 1 if speed_wall < 10 else (speed_wall - 10)
|
speed_wall_0 = =1 if speed_wall < 10 else (speed_wall - 10)
|
||||||
speed_topbottom = round(speed_print / 2, 1)
|
speed_topbottom = =round(speed_print / 2, 1)
|
||||||
|
|
|
@ -11,6 +11,6 @@ type = variant
|
||||||
machine_nozzle_size = 0.8
|
machine_nozzle_size = 0.8
|
||||||
machine_nozzle_tip_outer_diameter = 1.35
|
machine_nozzle_tip_outer_diameter = 1.35
|
||||||
coasting_volume = 3.22
|
coasting_volume = 3.22
|
||||||
speed_wall = round(speed_print * 4 / 3, 1)
|
speed_wall = =round(speed_print * 4 / 3, 1)
|
||||||
speed_wall_0 = 1 if speed_wall < 10 else (speed_wall - 10)
|
speed_wall_0 = =1 if speed_wall < 10 else (speed_wall - 10)
|
||||||
speed_topbottom = round(speed_print / 2, 1)
|
speed_topbottom = =round(speed_print / 2, 1)
|
||||||
|
|
|
@ -12,6 +12,6 @@ machine_nozzle_size = 0.25
|
||||||
machine_nozzle_tip_outer_diameter = 0.8
|
machine_nozzle_tip_outer_diameter = 0.8
|
||||||
coasting_volume = 0.1
|
coasting_volume = 0.1
|
||||||
coasting_min_volume = 0.17
|
coasting_min_volume = 0.17
|
||||||
speed_wall = round(speed_print / 1.2, 1)
|
speed_wall = =round(speed_print / 1.2, 1)
|
||||||
speed_wall_0 = 1 if speed_wall < 5 else (speed_wall - 5)
|
speed_wall_0 = =1 if speed_wall < 5 else (speed_wall - 5)
|
||||||
speed_topbottom = round(speed_print / 1.5, 1)
|
speed_topbottom = =round(speed_print / 1.5, 1)
|
||||||
|
|
|
@ -10,6 +10,6 @@ type = variant
|
||||||
[values]
|
[values]
|
||||||
machine_nozzle_size = 0.4
|
machine_nozzle_size = 0.4
|
||||||
machine_nozzle_tip_outer_diameter = 1.05
|
machine_nozzle_tip_outer_diameter = 1.05
|
||||||
speed_wall = round(speed_print / 1.25, 1)
|
speed_wall = =round(speed_print / 1.25, 1)
|
||||||
speed_wall_0 = 1 if speed_wall < 10 else (speed_wall - 10)
|
speed_wall_0 = =1 if speed_wall < 10 else (speed_wall - 10)
|
||||||
speed_topbottom = round(speed_print / 2.25, 1)
|
speed_topbottom = =round(speed_print / 2.25, 1)
|
||||||
|
|
|
@ -11,6 +11,6 @@ type = variant
|
||||||
machine_nozzle_size = 0.6
|
machine_nozzle_size = 0.6
|
||||||
machine_nozzle_tip_outer_diameter = 1.25
|
machine_nozzle_tip_outer_diameter = 1.25
|
||||||
coasting_volume = 1.36
|
coasting_volume = 1.36
|
||||||
speed_wall = round(speed_print * 4 / 3, 1)
|
speed_wall = =round(speed_print * 4 / 3, 1)
|
||||||
speed_wall_0 = 1 if speed_wall < 10 else (speed_wall - 10)
|
speed_wall_0 = =1 if speed_wall < 10 else (speed_wall - 10)
|
||||||
speed_topbottom = round(speed_print / 2, 1)
|
speed_topbottom = =round(speed_print / 2, 1)
|
||||||
|
|
|
@ -11,6 +11,6 @@ type = variant
|
||||||
machine_nozzle_size = 0.8
|
machine_nozzle_size = 0.8
|
||||||
machine_nozzle_tip_outer_diameter = 1.35
|
machine_nozzle_tip_outer_diameter = 1.35
|
||||||
coasting_volume = 3.22
|
coasting_volume = 3.22
|
||||||
speed_wall = round(speed_print * 4 / 3, 1)
|
speed_wall = =round(speed_print * 4 / 3, 1)
|
||||||
speed_wall_0 = 1 if speed_wall < 10 else (speed_wall - 10)
|
speed_wall_0 = =1 if speed_wall < 10 else (speed_wall - 10)
|
||||||
speed_topbottom = round(speed_print / 2, 1)
|
speed_topbottom = =round(speed_print / 2, 1)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue