Merge branch 'master' of github.com:Ultimaker/Cura

This commit is contained in:
Jaime van Kessel 2016-12-08 12:37:20 +01:00
commit 1752c56272
11 changed files with 294 additions and 152 deletions

View file

@ -140,8 +140,6 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel):
for extruder in manager.getMachineExtruders(global_container_stack.getId()):
extruder_name = extruder.getName()
material = extruder.findContainer({ "type": "material" })
if material and not self._simple_names:
extruder_name = "%s (%s)" % (material.getName(), extruder_name)
position = extruder.getMetaDataEntry("position", default = "0") # Get the position
try:
position = int(position)

View file

@ -447,9 +447,17 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
def _getContainerIdListFromSerialized(self, serialized):
parser = configparser.ConfigParser(interpolation=None, empty_lines_in_values=False)
parser.read_string(serialized)
container_ids = []
if "containers" in parser:
for index, container_id in parser.items("containers"):
container_ids.append(container_id)
elif parser.has_option("general", "containers"):
container_string = parser["general"].get("containers", "")
container_list = container_string.split(",")
return [container_id for container_id in container_list if container_id != ""]
container_ids = [container_id for container_id in container_list if container_id != ""]
return container_ids
def _getMachineNameFromSerializedStack(self, serialized):
parser = configparser.ConfigParser(interpolation=None, empty_lines_in_values=False)
@ -462,3 +470,4 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
for entry in metadata:
return entry.text
pass

View file

@ -1,7 +1,7 @@
{
"id": "ultimaker3_extended_extruder_left",
"version": 2,
"name": "Print core 1",
"name": "Extruder 1",
"inherits": "fdmextruder",
"metadata": {
"machine": "ultimaker3_extended",

View file

@ -1,7 +1,7 @@
{
"id": "ultimaker3_extended_extruder_right",
"version": 2,
"name": "Print core 2",
"name": "Extruder 2",
"inherits": "fdmextruder",
"metadata": {
"machine": "ultimaker3_extended",

View file

@ -1,7 +1,7 @@
{
"id": "ultimaker3_extruder_left",
"version": 2,
"name": "Print core 1",
"name": "Extruder 1",
"inherits": "fdmextruder",
"metadata": {
"machine": "ultimaker3",

View file

@ -1,7 +1,7 @@
{
"id": "ultimaker3_extruder_right",
"version": 2,
"name": "Print core 2",
"name": "Extruder 2",
"inherits": "fdmextruder",
"metadata": {
"machine": "ultimaker3",

View file

@ -8,6 +8,7 @@ import QtQuick.Layouts 1.1
import UM 1.2 as UM
import Cura 1.0 as Cura
import "Menus"
Rectangle
{
@ -30,9 +31,21 @@ Rectangle
property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0
property bool printerAcceptsCommands: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands
color: UM.Theme.getColor("sidebar");
color: UM.Theme.getColor("sidebar")
UM.I18nCatalog { id: catalog; name:"cura"}
Timer {
id: tooltipDelayTimer
interval: 500
repeat: false
property var item
property string text
onTriggered:
{
base.showTooltip(base, {x:1, y:item.y}, text);
}
}
function showTooltip(item, position, text)
{
@ -73,7 +86,7 @@ Rectangle
}
}
// Mode selection buttons for changing between Setting & Monitor print mode
// Printer selection and mode selection buttons for changing between Setting & Monitor print mode
Rectangle
{
id: sidebarHeaderBar
@ -85,25 +98,89 @@ Rectangle
Row
{
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width;
anchors.right: parent.right
anchors.rightMargin: UM.Theme.getSize("default_margin").width
spacing: UM.Theme.getSize("default_margin").width
ToolButton
{
id: machineSelection
text: Cura.MachineManager.activeMachineName
width: parent.width - (showSettings.width + showMonitor.width + 2 * UM.Theme.getSize("default_margin").width)
height: UM.Theme.getSize("sidebar_header").height
tooltip: Cura.MachineManager.activeMachineName
anchors.verticalCenter: parent.verticalCenter
style: ButtonStyle {
background: Rectangle {
color: control.hovered ? UM.Theme.getColor("button_hover") :
control.pressed ? UM.Theme.getColor("button_hover") : UM.Theme.getColor("sidebar_header_bar")
UM.RecolorImage {
id: downArrow
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
anchors.rightMargin: UM.Theme.getSize("default_margin").width
width: UM.Theme.getSize("standard_arrow").width
height: UM.Theme.getSize("standard_arrow").height
sourceSize.width: width
sourceSize.height: width
color: UM.Theme.getColor("text_reversed")
source: UM.Theme.getIcon("arrow_bottom")
}
Label {
id: sidebarComboBoxLabel
color: UM.Theme.getColor("text_reversed")
text: control.text;
elide: Text.ElideRight;
anchors.left: parent.left;
anchors.leftMargin: UM.Theme.getSize("default_margin").width
anchors.right: downArrow.left;
anchors.rightMargin: control.rightMargin;
anchors.verticalCenter: parent.verticalCenter;
font: UM.Theme.getFont("large")
}
}
label: Label{}
}
menu: PrinterMenu { }
}
Button
{
id: showSettings
width: (parent.width - UM.Theme.getSize("default_margin").width) / 2
width: height
height: UM.Theme.getSize("sidebar_header").height
onClicked: monitoringPrint = false
iconSource: UM.Theme.getIcon("tab_settings");
checkable: true
checked: !monitoringPrint
exclusiveGroup: sidebarHeaderBarGroup
property string tooltipText: catalog.i18nc("@tooltip", "<b>Print Setup</b><br/><br/>Edit or review the settings for the active print job.")
onHoveredChanged: {
if (hovered)
{
tooltipDelayTimer.item = showSettings
tooltipDelayTimer.text = tooltipText
tooltipDelayTimer.start();
}
else
{
tooltipDelayTimer.stop();
base.hideTooltip();
}
}
style: UM.Theme.styles.sidebar_header_tab
}
Button
{
id: showMonitor
width: (parent.width - UM.Theme.getSize("default_margin").width) / 2
width: height
height: UM.Theme.getSize("sidebar_header").height
onClicked: monitoringPrint = true
iconSource: {
@ -139,6 +216,21 @@ Rectangle
checkable: true
checked: monitoringPrint
exclusiveGroup: sidebarHeaderBarGroup
property string tooltipText: catalog.i18nc("@tooltip", "<b>Print Monitor</b><br/><br/>Monitor the state of the connected printer and the print job in progress.")
onHoveredChanged: {
if (hovered)
{
tooltipDelayTimer.item = showMonitor
tooltipDelayTimer.text = tooltipText
tooltipDelayTimer.start();
}
else
{
tooltipDelayTimer.stop();
base.hideTooltip();
}
}
style: UM.Theme.styles.sidebar_header_tab
}
@ -151,7 +243,6 @@ Rectangle
width: parent.width
anchors.top: sidebarHeaderBar.bottom
anchors.topMargin: UM.Theme.getSize("default_margin").height
onShowTooltip: base.showTooltip(item, location, text)
onHideTooltip: base.hideTooltip()
@ -160,10 +251,11 @@ Rectangle
Rectangle {
id: headerSeparator
width: parent.width
height: UM.Theme.getSize("sidebar_lining").height
visible: !monitoringPrint
height: visible ? UM.Theme.getSize("sidebar_lining").height : 0
color: UM.Theme.getColor("sidebar_lining")
anchors.top: header.bottom
anchors.topMargin: UM.Theme.getSize("default_margin").height
anchors.topMargin: visible ? UM.Theme.getSize("default_margin").height : 0
}
onCurrentModeIndexChanged:
@ -212,6 +304,20 @@ Rectangle
checked: base.currentModeIndex == index
onClicked: base.currentModeIndex = index
onHoveredChanged: {
if (hovered)
{
tooltipDelayTimer.item = settingsModeSelection
tooltipDelayTimer.text = model.tooltipText
tooltipDelayTimer.start();
}
else
{
tooltipDelayTimer.stop();
base.hideTooltip();
}
}
style: ButtonStyle {
background: Rectangle {
border.width: UM.Theme.getSize("default_lining").width
@ -408,8 +514,18 @@ Rectangle
Component.onCompleted:
{
modesListModel.append({ text: catalog.i18nc("@title:tab", "Recommended"), item: sidebarSimple, showFilterButton: false })
modesListModel.append({ text: catalog.i18nc("@title:tab", "Custom"), item: sidebarAdvanced, showFilterButton: true })
modesListModel.append({
text: catalog.i18nc("@title:tab", "Recommended"),
tooltipText: catalog.i18nc("@tooltip", "<b>Recommended Print Setup</b><br/><br/>Print with the recommended settings for the selected printer, material and quality."),
item: sidebarSimple,
showFilterButton: false
})
modesListModel.append({
text: catalog.i18nc("@title:tab", "Custom"),
tooltipText: catalog.i18nc("@tooltip", "<b>Custom Print Setup</b><br/><br/>Print with finegrained control over every last bit of the slicing process."),
item: sidebarAdvanced,
showFilterButton: true
})
sidebarContents.push({ "item": modesListModel.get(base.currentModeIndex).item, "immediate": true });
var index = parseInt(UM.Preferences.getValue("cura/active_mode"))

View file

@ -21,44 +21,23 @@ Column
signal showTooltip(Item item, point location, string text)
signal hideTooltip()
Row
Item
{
id: machineSelectionRow
height: UM.Theme.getSize("sidebar_setup").height
id: extruderSelectionRow
width: parent.width
height: UM.Theme.getSize("sidebar_tabs").height
visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint
anchors
Rectangle
{
left: parent.left
leftMargin: UM.Theme.getSize("default_margin").width
right: parent.right
rightMargin: UM.Theme.getSize("default_margin").width
}
id: extruderSeparator
visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint
Label
{
id: machineSelectionLabel
text: catalog.i18nc("@label:listbox", "Printer:");
anchors.verticalCenter: parent.verticalCenter
font: UM.Theme.getFont("default");
color: UM.Theme.getColor("text");
width: parent.width
height: parent.height
color: UM.Theme.getColor("sidebar_lining")
width: parent.width * 0.45 - UM.Theme.getSize("default_margin").width
}
ToolButton
{
id: machineSelection
text: Cura.MachineManager.activeMachineName;
height: UM.Theme.getSize("setting_control").height
tooltip: Cura.MachineManager.activeMachineName
anchors.verticalCenter: parent.verticalCenter
style: UM.Theme.styles.sidebar_header_button
width: parent.width * 0.55 + UM.Theme.getSize("default_margin").width
menu: PrinterMenu { }
}
anchors.top: extruderSelectionRow.top
}
ListView
@ -66,17 +45,15 @@ Column
id: extrudersList
property var index: 0
visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint
height: UM.Theme.getSize("sidebar_header_mode_toggle").height
height: UM.Theme.getSize("sidebar_header_mode_tabs").height
width: parent.width
boundsBehavior: Flickable.StopAtBounds
anchors
{
left: parent.left
leftMargin: UM.Theme.getSize("default_margin").width
right: parent.right
rightMargin: UM.Theme.getSize("default_margin").width
bottom: extruderSelectionRow.bottom
}
ExclusiveGroup { id: extruderMenuGroup; }
@ -117,14 +94,25 @@ Column
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")
border.color: control.checked ? UM.Theme.getColor("tab_checked_border") :
control.pressed ? UM.Theme.getColor("tab_active_border") :
control.hovered ? UM.Theme.getColor("tab_hovered_border") : UM.Theme.getColor("tab_unchecked_border")
color: control.checked ? UM.Theme.getColor("tab_checked") :
control.pressed ? UM.Theme.getColor("tab_active") :
control.hovered ? UM.Theme.getColor("tab_hovered") : UM.Theme.getColor("tab_unchecked")
Behavior on color { ColorAnimation { duration: 50; } }
Rectangle
{
id: highlight
visible: control.checked
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
height: UM.Theme.getSize("sidebar_header_highlight").height
color: UM.Theme.getColor("sidebar_header_bar")
}
Rectangle
{
id: swatch
@ -137,7 +125,7 @@ Column
color: model.color
border.width: UM.Theme.getSize("default_lining").width
border.color: UM.Theme.getColor("toggle_checked")
border.color: UM.Theme.getColor("setting_control_border")
}
Label
@ -148,9 +136,9 @@ Column
anchors.right: parent.right
anchors.rightMargin: UM.Theme.getSize("default_margin").width / 2
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")
color: control.checked ? UM.Theme.getColor("tab_checked_text") :
control.pressed ? UM.Theme.getColor("tab_active_text") :
control.hovered ? UM.Theme.getColor("tab_hovered_text") : UM.Theme.getColor("tab_unchecked_text")
font: UM.Theme.getFont("default")
text: control.text
@ -161,6 +149,15 @@ Column
}
}
}
}
Item
{
id: variantRowSpacer
height: UM.Theme.getSize("default_margin").height / 4
width: height
visible: !extruderSelectionRow.visible
}
Row
{

View file

@ -30,7 +30,7 @@ Item
id: infillCellLeft
anchors.top: parent.top
anchors.left: parent.left
width: base.width / 100 * 35 - UM.Theme.getSize("default_margin").width
width: base.width * .45 - UM.Theme.getSize("default_margin").width
height: childrenRect.height
Label
@ -52,7 +52,7 @@ Item
id: infillCellRight
height: childrenRect.height;
width: base.width / 100 * 65
width: base.width * .55
spacing: UM.Theme.getSize("default_margin").width
anchors.left: infillCellLeft.right
@ -231,7 +231,7 @@ Item
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width
anchors.verticalCenter: enableSupportCheckBox.verticalCenter
width: parent.width / 100 * 45 - 3 * UM.Theme.getSize("default_margin").width
width: parent.width * .45 - 3 * UM.Theme.getSize("default_margin").width
text: catalog.i18nc("@label", "Enable Support");
font: UM.Theme.getFont("default");
color: UM.Theme.getColor("text");
@ -279,7 +279,7 @@ Item
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width
anchors.verticalCenter: supportExtruderCombobox.verticalCenter
width: parent.width / 100 * 45 - 3 * UM.Theme.getSize("default_margin").width
width: parent.width * .45 - 3 * UM.Theme.getSize("default_margin").width
text: catalog.i18nc("@label", "Support Extruder");
font: UM.Theme.getFont("default");
color: UM.Theme.getColor("text");
@ -319,7 +319,7 @@ Item
}
anchors.left: supportExtruderLabel.right
anchors.leftMargin: UM.Theme.getSize("default_margin").width
width: parent.width / 100 * 55
width: parent.width * .55
height:
{
if ((supportEnabled.properties.value == "True") && (machineExtruderCount.properties.value > 1))
@ -332,6 +332,7 @@ Item
return 0;
}
}
Behavior on height { NumberAnimation { duration: 100 } }
style: UM.Theme.styles.combobox_color
enabled: base.settingsEnabled
@ -377,7 +378,7 @@ Item
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width
anchors.verticalCenter: adhesionCheckBox.verticalCenter
width: parent.width / 100 * 45 - 3 * UM.Theme.getSize("default_margin").width
width: parent.width * .45 - 3 * UM.Theme.getSize("default_margin").width
text: catalog.i18nc("@label", "Build Plate Adhesion");
font: UM.Theme.getFont("default");
color: UM.Theme.getColor("text");

View file

@ -29,6 +29,11 @@ UM.PointingRectangle {
} else {
x = position.x - base.width;
y = position.y - UM.Theme.getSize("tooltip_arrow_margins").height;
if(y < 0)
{
position.y += -y;
y = 0;
}
}
base.opacity = 1;
target = Qt.point(40 , position.y + UM.Theme.getSize("tooltip_arrow_margins").height / 2)

View file

@ -91,7 +91,21 @@
"toggle_hovered_text": [24, 41, 77, 255],
"toggle_active": [32, 166, 219, 255],
"toggle_active_border": [32, 166, 219, 255],
"toggle_active_text": [255, 255, 255, 255],
"toggle_active_text": [24, 41, 77, 255],
"tab_checked": [255, 255, 255, 255],
"tab_checked_border": [255, 255, 255, 255],
"tab_checked_text": [24, 41, 77, 255],
"tab_unchecked": [245, 245, 245, 255],
"tab_unchecked_border": [245, 245, 245, 255],
"tab_unchecked_text": [127, 127, 127, 255],
"tab_hovered": [245, 245, 245, 255],
"tab_hovered_border": [245, 245, 245, 255],
"tab_hovered_text": [32, 166, 219, 255],
"tab_active": [255, 255, 255, 255],
"tab_active_border": [255, 255, 255, 255],
"tab_active_text": [24, 41, 77, 255],
"tab_background": [245, 245, 245, 255],
"action_button": [255, 255, 255, 255],
"action_button_text": [24, 41, 77, 255],
@ -191,10 +205,12 @@
"sidebar": [35.0, 10.0],
"sidebar_header": [0.0, 4.0],
"sidebar_header_highlight": [0.5, 0.5],
"sidebar_header_highlight": [0.25, 0.25],
"sidebar_header_mode_toggle": [0.0, 2.0],
"sidebar_header_mode_tabs": [0.0, 3.0],
"sidebar_lining": [0.5, 0.5],
"sidebar_setup": [0.0, 2.0],
"sidebar_tabs": [0.0, 3.5],
"sidebar_inputfields": [0.0, 2.0],
"simple_mode_infill_caption": [0.0, 5.0],
"simple_mode_infill_height": [0.0, 8.0],