From b174d04a9bd3f2a2e006bd10f5f3efda1662eee0 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 31 Aug 2017 12:28:31 +0200 Subject: [PATCH 01/10] Add SVG image for extruder button CURA-4211 --- .../themes/cura/icons/extruder_button.svg | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 resources/themes/cura/icons/extruder_button.svg diff --git a/resources/themes/cura/icons/extruder_button.svg b/resources/themes/cura/icons/extruder_button.svg new file mode 100644 index 0000000000..883e3caaf4 --- /dev/null +++ b/resources/themes/cura/icons/extruder_button.svg @@ -0,0 +1,70 @@ + + + + + + image/svg+xml + + Artboard 3 Copy + + + + + + Artboard 3 Copy + Created with Sketch. + + + + From 7de9ccefaa107ceded65e6f9d0da2c6c1dc309c9 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 31 Aug 2017 12:29:44 +0200 Subject: [PATCH 02/10] Change extruder button on the toolbar side CURA-4211 Change the extruder button on the toolbar side according to the new design. --- resources/qml/ExtruderButton.qml | 28 ++++++++++++++-------------- resources/themes/cura/theme.json | 3 +++ 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/resources/qml/ExtruderButton.qml b/resources/qml/ExtruderButton.qml index 296964448b..0037207e87 100644 --- a/resources/qml/ExtruderButton.qml +++ b/resources/qml/ExtruderButton.qml @@ -16,7 +16,7 @@ Button text: catalog.i18ncp("@label %1 is filled in with the name of an extruder", "Print Selected Model with %1", "Print Selected Models with %1", UM.Selection.selectionCount).arg(extruder.name) style: UM.Theme.styles.tool_button; - iconSource: checked ? UM.Theme.getIcon("material_selected") : UM.Theme.getIcon("material_not_selected"); + iconSource: UM.Theme.getIcon("extruder_button") checked: ExtruderManager.selectedObjectExtruders.indexOf(extruder.id) != -1 enabled: UM.Selection.hasSelection @@ -36,12 +36,7 @@ Button Item { - anchors - { - right: parent.right; - top: parent.top; - margins: UM.Theme.getSize("default_lining").width * 3 - } + anchors.centerIn: parent width: UM.Theme.getSize("default_margin").width height: UM.Theme.getSize("default_margin").height @@ -54,22 +49,27 @@ Button } } + // Material colour circle + // Only draw the filling colour of the material inside the SVG border. Rectangle { anchors { - left: parent.left; - top: parent.top; - margins: UM.Theme.getSize("default_lining").width * 3 + right: parent.right + top: parent.top + margins: UM.Theme.getSize("extruder_button_material_margin").width } color: model.color - width: UM.Theme.getSize("default_margin").width - height: UM.Theme.getSize("default_margin").height + width: UM.Theme.getSize("extruder_button_material_size").width + height: UM.Theme.getSize("extruder_button_material_size").height + radius: width / 2 - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("lining"); + border.width: 0 + border.color: "transparent" + + opacity: !base.enabled ? 0.2 : 1.0 } onClicked: diff --git a/resources/themes/cura/theme.json b/resources/themes/cura/theme.json index 7e5f6ae199..a81df76676 100644 --- a/resources/themes/cura/theme.json +++ b/resources/themes/cura/theme.json @@ -259,6 +259,9 @@ "default_arrow": [0.8, 0.8], "logo": [9.5, 2.0], + "extruder_button_material_margin": [0.875, 0.875], + "extruder_button_material_size": [0.68, 0.68], + "sidebar": [35.0, 10.0], "sidebar_header": [0.0, 4.0], "sidebar_header_highlight": [0.25, 0.25], From b75140973e107f1827b2ac743bc4f107e7d1b503 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 31 Aug 2017 15:56:07 +0200 Subject: [PATCH 03/10] Change extruder tab to use new button style CURA-4211 - Use new button style ("Extruder" text with an extruder icon) for extruder tabs - The "Extruder" text will disapear if the width is not enough --- resources/qml/SidebarHeader.qml | 114 ++++++++++++++++++++++---------- 1 file changed, 78 insertions(+), 36 deletions(-) diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index 840a7067ce..85929f016e 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -92,49 +92,26 @@ Column style: ButtonStyle { - background: Rectangle + background: Item { - border.width: UM.Theme.getSize("default_lining").width - 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 - visible: index > -1 - height: UM.Theme.getSize("setting_control").height / 2 - width: height - anchors.left: parent.left - anchors.leftMargin: (parent.height - height) / 2 - anchors.verticalCenter: parent.verticalCenter - - color: model.color + anchors.fill: parent border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("setting_control_border") + 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; } } } Text { + id: extruderStaticText anchors.verticalCenter: parent.verticalCenter - anchors.left: swatch.visible ? swatch.right : parent.left - anchors.leftMargin: swatch.visible ? UM.Theme.getSize("default_margin").width / 2 : UM.Theme.getSize("default_margin").width - anchors.right: parent.right + anchors.right: parent.horizontalCenter anchors.rightMargin: UM.Theme.getSize("default_margin").width / 2 color: control.checked ? UM.Theme.getColor("tab_checked_text") : @@ -142,11 +119,76 @@ Column control.hovered ? UM.Theme.getColor("tab_hovered_text") : UM.Theme.getColor("tab_unchecked_text") font: UM.Theme.getFont("default") - text: control.text + text: catalog.i18nc("@label", "Extruder") + visible: width < (control.width - UM.Theme.getSize("default_margin").width) / 2 elide: Text.ElideRight } + + Item + { + anchors.verticalCenter: parent.verticalCenter + anchors.left: !extruderStaticText.visible ? parent.left : parent.horizontalCenter + anchors.leftMargin: !extruderStaticText.visible ? (parent.width - width) / 2 : UM.Theme.getSize("default_margin").width / 2 + + property var sizeToUse: + { + var minimumWidth = control.width < UM.Theme.getSize("button").width ? control.width : UM.Theme.getSize("button").width; + var minimumHeight = control.height < UM.Theme.getSize("button").height ? control.height : UM.Theme.getSize("button").height; + var minimumSize = minimumWidth < minimumHeight ? minimumWidth : minimumHeight; + minimumSize -= UM.Theme.getSize("default_margin").width; + return minimumSize; + } + + width: sizeToUse + height: sizeToUse + + UM.RecolorImage { + id: mainCircle + anchors.fill: parent + + sourceSize.width: parent.width + sourceSize.height: parent.width + source: UM.Theme.getIcon("extruder_button") + + color: control.checked ? UM.Theme.getColor("setting_category_text") : UM.Theme.getColor("setting_control_disabled_text") + } + + Text + { + anchors.centerIn: parent + text: index + 1; + 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_bold") + } + + // Material colour circle + // Only draw the filling colour of the material inside the SVG border. + Rectangle + { + anchors + { + right: parent.right + top: parent.top + rightMargin: parent.sizeToUse * 0.04 + topMargin: parent.sizeToUse * 0.04 + } + + color: model.color + + width: parent.width * 0.27 + height: parent.height * 0.27 + radius: width / 2 + + border.width: 0 + border.color: "transparent" + + opacity: !control.checked ? 0.6 : 1.0 + } + } } - label: Item { } + label: Item {} } } } From c2645d00223c53e126f83deb25fb957b30c3a2ab Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 31 Aug 2017 17:14:38 +0200 Subject: [PATCH 04/10] Change extruder tabs to buttons CURA-4211 Change extruder tabs to buttons according to the new design. --- resources/qml/SidebarHeader.qml | 193 +++++++++++++++++++------------- 1 file changed, 114 insertions(+), 79 deletions(-) diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index 85929f016e..b4950a26bc 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -22,6 +22,30 @@ Column signal showTooltip(Item item, point location, string text) signal hideTooltip() + Item + { + height: UM.Theme.getSize("default_margin").height / 4 + width: height + visible: extruderSelectionRow.visible + } + + Label + { + id: extruderSelectionLabel + anchors + { + left: parent.left + leftMargin: UM.Theme.getSize("default_margin").width + right: parent.right + rightMargin: UM.Theme.getSize("default_margin").width + } + height: UM.Theme.getSize("sidebar_tabs").height / 3 + text: catalog.i18nc("@label", "Extruder configuration") + font: UM.Theme.getFont("default_bold") + color: UM.Theme.getColor("text") + visible: extruderSelectionRow.visible + } + Item { id: extruderSelectionRow @@ -29,16 +53,12 @@ Column height: UM.Theme.getSize("sidebar_tabs").height visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint - Rectangle + anchors { - id: extruderSeparator - visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint - - width: parent.width - height: parent.height - color: UM.Theme.getColor("sidebar_lining") - - anchors.top: extruderSelectionRow.top + left: parent.left + leftMargin: UM.Theme.getSize("default_margin").width + right: parent.right + rightMargin: UM.Theme.getSize("default_margin").width } ListView @@ -53,8 +73,10 @@ Column anchors { left: parent.left + leftMargin: UM.Theme.getSize("default_margin").width / 2 right: parent.right - bottom: extruderSelectionRow.bottom + rightMargin: UM.Theme.getSize("default_margin").width / 2 + verticalCenter: parent.verticalCenter } ExclusiveGroup { id: extruderMenuGroup; } @@ -98,93 +120,106 @@ Column { anchors.fill: parent border.width: UM.Theme.getSize("default_lining").width - 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") + 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; } } } - Text - { - id: extruderStaticText - anchors.verticalCenter: parent.verticalCenter - anchors.right: parent.horizontalCenter - anchors.rightMargin: UM.Theme.getSize("default_margin").width / 2 - - 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: catalog.i18nc("@label", "Extruder") - visible: width < (control.width - UM.Theme.getSize("default_margin").width) / 2 - elide: Text.ElideRight - } - Item { - anchors.verticalCenter: parent.verticalCenter - anchors.left: !extruderStaticText.visible ? parent.left : parent.horizontalCenter - anchors.leftMargin: !extruderStaticText.visible ? (parent.width - width) / 2 : UM.Theme.getSize("default_margin").width / 2 - - property var sizeToUse: - { - var minimumWidth = control.width < UM.Theme.getSize("button").width ? control.width : UM.Theme.getSize("button").width; - var minimumHeight = control.height < UM.Theme.getSize("button").height ? control.height : UM.Theme.getSize("button").height; - var minimumSize = minimumWidth < minimumHeight ? minimumWidth : minimumHeight; - minimumSize -= UM.Theme.getSize("default_margin").width; - return minimumSize; - } - - width: sizeToUse - height: sizeToUse - - UM.RecolorImage { - id: mainCircle - anchors.fill: parent - - sourceSize.width: parent.width - sourceSize.height: parent.width - source: UM.Theme.getIcon("extruder_button") - - color: control.checked ? UM.Theme.getColor("setting_category_text") : UM.Theme.getColor("setting_control_disabled_text") + id: extruderButtonFace + anchors.centerIn: parent + width: { + var extruderTextWidth = extruderStaticText.visible ? extruderStaticText.width : 0; + var iconWidth = extruderIconItem.width; + return extruderTextWidth + iconWidth + UM.Theme.getSize("default_margin").width / 4; } + // Static text "Extruder" Text { - anchors.centerIn: parent - text: index + 1; - 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_bold") + id: extruderStaticText + anchors.verticalCenter: parent.verticalCenter + anchors.left: parent.left + + 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: catalog.i18nc("@label", "Extruder") + visible: width < (control.width - extruderIconItem.width - UM.Theme.getSize("default_margin").width) + elide: Text.ElideRight } - // Material colour circle - // Only draw the filling colour of the material inside the SVG border. - Rectangle + // Everthing for the extruder icon + Item { - anchors + id: extruderIconItem + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + + property var sizeToUse: { - right: parent.right - top: parent.top - rightMargin: parent.sizeToUse * 0.04 - topMargin: parent.sizeToUse * 0.04 + var minimumWidth = control.width < UM.Theme.getSize("button").width ? control.width : UM.Theme.getSize("button").width; + var minimumHeight = control.height < UM.Theme.getSize("button").height ? control.height : UM.Theme.getSize("button").height; + var minimumSize = minimumWidth < minimumHeight ? minimumWidth : minimumHeight; + minimumSize -= UM.Theme.getSize("default_margin").width; + return minimumSize; } - color: model.color + width: sizeToUse + height: sizeToUse - width: parent.width * 0.27 - height: parent.height * 0.27 - radius: width / 2 + UM.RecolorImage { + id: mainCircle + anchors.fill: parent - border.width: 0 - border.color: "transparent" + sourceSize.width: parent.width + sourceSize.height: parent.width + source: UM.Theme.getIcon("extruder_button") - opacity: !control.checked ? 0.6 : 1.0 + color: extruderNumberText.color + } + + Text + { + id: extruderNumberText + anchors.centerIn: parent + text: index + 1; + 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_bold") + } + + // Material colour circle + // Only draw the filling colour of the material inside the SVG border. + Rectangle + { + anchors + { + right: parent.right + top: parent.top + rightMargin: parent.sizeToUse * 0.04 + topMargin: parent.sizeToUse * 0.04 + } + + color: model.color + + width: parent.width * 0.27 + height: parent.height * 0.27 + radius: width / 2 + + border.width: 0 + border.color: "transparent" + + opacity: !control.checked ? 0.6 : 1.0 + } } } } From aad628a46fd2850257204dc4c9c0d517b9eb80f9 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 31 Aug 2017 17:48:37 +0200 Subject: [PATCH 05/10] Change to new design for extruder number settings CURA-4211 --- resources/qml/Settings/SettingExtruder.qml | 36 ++++++++-------- .../qml/Settings/SettingOptionalExtruder.qml | 42 +++++++++---------- 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index 15496eaa8b..ac9f6a29eb 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -97,36 +97,36 @@ SettingItem } label: Item { + Label + { + id: extruderText + anchors.verticalCenter: parent.verticalCenter + + text: control.currentText + font: UM.Theme.getFont("default") + color: enabled ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") + + elide: Text.ElideLeft + verticalAlignment: Text.AlignVCenter + } Rectangle { id: swatch height: UM.Theme.getSize("setting_control").height / 2 width: height - anchors.verticalCenter: parent.verticalCenter - - border.width: UM.Theme.getSize("default_lining").width - border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border") - - color: control.color - } - Label - { anchors { - left: swatch.right; - right: arrow.left; + right: arrow.left verticalCenter: parent.verticalCenter - margins: UM.Theme.getSize("default_lining").width + margins: UM.Theme.getSize("default_margin").width / 4 } - width: parent.width - swatch.width; - text: control.currentText - font: UM.Theme.getFont("default") - color: enabled ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") + border.width: UM.Theme.getSize("default_lining").width * 2 + border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border") + radius: width / 2 - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter + color: control.color } UM.RecolorImage { diff --git a/resources/qml/Settings/SettingOptionalExtruder.qml b/resources/qml/Settings/SettingOptionalExtruder.qml index 0fd36564a1..4e49f0440e 100644 --- a/resources/qml/Settings/SettingOptionalExtruder.qml +++ b/resources/qml/Settings/SettingOptionalExtruder.qml @@ -116,29 +116,10 @@ SettingItem } label: Item { - Rectangle - { - id: swatch - height: UM.Theme.getSize("setting_control").height / 2 - width: height - - anchors.verticalCenter: parent.verticalCenter - - border.width: UM.Theme.getSize("default_lining").width - border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border") - - color: control.color - } Label { - anchors - { - left: swatch.right; - right: arrow.left; - verticalCenter: parent.verticalCenter - margins: UM.Theme.getSize("default_lining").width - } - width: parent.width - swatch.width; + anchors.verticalCenter: parent.verticalCenter + width: parent.width - swatch.width - arrow.width; text: control.currentText font: UM.Theme.getFont("default") @@ -147,6 +128,25 @@ SettingItem elide: Text.ElideRight verticalAlignment: Text.AlignVCenter } + Rectangle + { + id: swatch + height: UM.Theme.getSize("setting_control").height / 2 + width: height + + anchors + { + right: arrow.left; + verticalCenter: parent.verticalCenter + margins: UM.Theme.getSize("default_margin").width / 4 + } + + border.width: UM.Theme.getSize("default_lining").width * 2 + border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border") + radius: width / 2 + + color: control.color + } UM.RecolorImage { id: arrow From 002536976246878e04ed4a56bd8a2fd942367c82 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 4 Sep 2017 08:30:59 +0200 Subject: [PATCH 06/10] Remove old extruder material icons CURA-4211 --- .../icons/material_not_selected.svg | 77 ------------------ .../cura-light/icons/material_selected.svg | 78 ------------------- 2 files changed, 155 deletions(-) delete mode 100644 resources/themes/cura-light/icons/material_not_selected.svg delete mode 100644 resources/themes/cura-light/icons/material_selected.svg diff --git a/resources/themes/cura-light/icons/material_not_selected.svg b/resources/themes/cura-light/icons/material_not_selected.svg deleted file mode 100644 index 9b3cad88bd..0000000000 --- a/resources/themes/cura-light/icons/material_not_selected.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - image/svg+xml - - Artboard 3 - - - - - - Artboard 3 - Created with Sketch. - - - - - - - - - - diff --git a/resources/themes/cura-light/icons/material_selected.svg b/resources/themes/cura-light/icons/material_selected.svg deleted file mode 100644 index 6589eac416..0000000000 --- a/resources/themes/cura-light/icons/material_selected.svg +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - image/svg+xml - - Artboard 3 Copy - - - - - - Artboard 3 Copy - Created with Sketch. - - - - - - - - - - From 8e774dede46ff43652213b8cc12de8b118bfc5d1 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 4 Sep 2017 08:42:44 +0200 Subject: [PATCH 07/10] Change extruder combobox style for simple mode CURA-4211 --- resources/themes/cura-light/styles.qml | 35 +++++++++++++++----------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index 2d40a0e8d0..afc1df1d5b 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -612,24 +612,11 @@ QtObject { } label: Item { - Rectangle - { - id: swatch - height: UM.Theme.getSize("setting_control").height / 2 - width: height - anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("default_lining").width - anchors.verticalCenter: parent.verticalCenter - - color: if (control.color_override != "") {return control.color_override} else {return control.color;} - border.width: UM.Theme.getSize("default_lining").width - border.color: !enabled ? UM.Theme.getColor("setting_control_disabled_border") : UM.Theme.getColor("setting_control_border") - } Label { - anchors.left: swatch.right + anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("default_lining").width - anchors.right: downArrow.left + anchors.right: swatch.left anchors.rightMargin: UM.Theme.getSize("default_lining").width anchors.verticalCenter: parent.verticalCenter @@ -640,7 +627,25 @@ QtObject { elide: Text.ElideRight verticalAlignment: Text.AlignVCenter } + Rectangle + { + id: swatch + height: UM.Theme.getSize("setting_control").height / 2 + width: height + anchors + { + right: downArrow.left; + verticalCenter: parent.verticalCenter + margins: UM.Theme.getSize("default_margin").width / 4 + } + + border.width: UM.Theme.getSize("default_lining").width * 2 + border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border") + radius: width / 2 + + color: if (control.color_override != "") {return control.color_override} else {return control.color;} + } UM.RecolorImage { id: downArrow From 1b66eaea22837e317ef9641800652c10c60e30a2 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 4 Sep 2017 12:14:16 +0200 Subject: [PATCH 08/10] Move extruder button sizes to cura-light theme CURA-4211 --- resources/themes/cura-light/theme.json | 3 +++ resources/themes/cura/theme.json | 3 --- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index eb9fb72db6..c8a9faf2a2 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -261,6 +261,9 @@ "default_arrow": [0.8, 0.8], "logo": [9.5, 2.0], + "extruder_button_material_margin": [0.875, 0.875], + "extruder_button_material_size": [0.68, 0.68], + "sidebar": [35.0, 10.0], "sidebar_margin": [1.71, 1.43], "sidebar_margin_thin": [0.71, 0.71], diff --git a/resources/themes/cura/theme.json b/resources/themes/cura/theme.json index ce93c05568..3ef5366c9e 100644 --- a/resources/themes/cura/theme.json +++ b/resources/themes/cura/theme.json @@ -209,9 +209,6 @@ "default_arrow": [0.8, 0.8], "logo": [9.5, 2.0], - "extruder_button_material_margin": [0.875, 0.875], - "extruder_button_material_size": [0.68, 0.68], - "sidebar": [35.0, 10.0], "sidebar_header": [0.0, 4.0], "sidebar_header_highlight": [0.25, 0.25], From 7e60d459b4c1b7001e7faa50892857f15a53ab9c Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 4 Sep 2017 15:47:44 +0200 Subject: [PATCH 09/10] Prevent a possible memory leak while showing a stuck camera stream --- plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py index 96c511bccb..4eaaf4e412 100755 --- a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py +++ b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py @@ -326,6 +326,9 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): return True def _stopCamera(self): + self._stream_buffer = b"" + self._stream_buffer_start_index = -1 + if self._camera_timer.isActive(): self._camera_timer.stop() if self._image_reply: @@ -1165,6 +1168,12 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): return self._stream_buffer += self._image_reply.readAll() + if len(self._stream_buffer) > 2000000: # No single camera frame should be 2 Mb or larger + Logger.log("w", "MJPEG buffer exceeds reasonable size. Restarting stream...") + self._stopCamera() # resets stream buffer and start index + self._startCamera() + return + if self._stream_buffer_start_index == -1: self._stream_buffer_start_index = self._stream_buffer.indexOf(b'\xff\xd8') stream_buffer_end_index = self._stream_buffer.lastIndexOf(b'\xff\xd9') From 204e1ee834824070d2b26f12ed2efa2ea7ca9836 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 5 Sep 2017 11:41:30 +0200 Subject: [PATCH 10/10] PrintJobname is now only set when it was empty or if it's set to empty CURA-4276 fixes #2346 --- cura/PrintInformation.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cura/PrintInformation.py b/cura/PrintInformation.py index 47672a9823..6100b7a39e 100644 --- a/cura/PrintInformation.py +++ b/cura/PrintInformation.py @@ -227,7 +227,8 @@ class PrintInformation(QObject): # when a file is opened using the terminal; the filename comes from _onFileLoaded and still contains its # extension. This cuts the extension off if necessary. name = os.path.splitext(name)[0] - if self._job_name != name: + + if self._job_name != name and (self._job_name == "" or name == ""): self._job_name = name self.jobNameChanged.emit()