From a65a81e60b63244062b7424824b38df2b7f3f453 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Tue, 6 Dec 2016 14:14:24 +0100 Subject: [PATCH 01/16] colours --- resources/qml/SidebarHeader.qml | 20 ++++++++++---------- resources/themes/cura/theme.json | 15 ++++++++++++++- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index e894392b06..5053aa7ff1 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -117,12 +117,12 @@ 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 @@ -137,7 +137,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("tab_checked_border") } Label @@ -148,9 +148,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 diff --git a/resources/themes/cura/theme.json b/resources/themes/cura/theme.json index a29aefa143..c352ca64e9 100644 --- a/resources/themes/cura/theme.json +++ b/resources/themes/cura/theme.json @@ -91,7 +91,20 @@ "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": [24, 41, 77, 255], + "tab_checked_text": [24, 41, 77, 255], + "tab_unchecked": [224, 224, 224, 255], + "tab_unchecked_border": [224, 224, 224, 255], + "tab_unchecked_text": [24, 41, 77, 255], + "tab_hovered": [240, 240, 240, 255], + "tab_hovered_border": [128, 128, 128, 255], + "tab_hovered_text": [24, 41, 77, 255], + "tab_active": [255, 255, 255, 255], + "tab_active_border": [24, 41, 77, 255], + "tab_active_text": [24, 41, 77, 255], "action_button": [255, 255, 255, 255], "action_button_text": [24, 41, 77, 255], From 30a74fb2c160ac10f9fef3e98ae3fd17fbdeb1c5 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Tue, 6 Dec 2016 15:49:34 +0100 Subject: [PATCH 02/16] Layout changes, extruders are now displayed as extruder tabs. CURA-2763 --- resources/qml/SidebarHeader.qml | 174 +++++++++++++++++-------------- resources/themes/cura/theme.json | 13 ++- 2 files changed, 105 insertions(+), 82 deletions(-) diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index 5053aa7ff1..6f9a8781d7 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -61,103 +61,123 @@ Column } } - ListView + Row { - id: extrudersList - property var index: 0 - - visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint - height: UM.Theme.getSize("sidebar_header_mode_toggle").height - - boundsBehavior: Flickable.StopAtBounds + id: extruderSelectionRow + height: UM.Theme.getSize("sidebar_tabs").height anchors { left: parent.left - leftMargin: UM.Theme.getSize("default_margin").width right: parent.right - rightMargin: UM.Theme.getSize("default_margin").width } - ExclusiveGroup { id: extruderMenuGroup; } - - orientation: ListView.Horizontal - - model: Cura.ExtrudersModel { id: extrudersModel; addGlobal: false } - - Connections + Rectangle { - target: Cura.MachineManager - onGlobalContainerChanged: - { - forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. - var extruder_index = (machineExtruderCount.properties.value == 1) ? -1 : 0 - ExtruderManager.setActiveExtruderIndex(extruder_index); - } + anchors.verticalCenter: parent.verticalCenter + + width: parent.width + height: parent.height + color: UM.Theme.getColor("tab_background") } - delegate: Button + ListView { - height: ListView.view.height - width: ListView.view.width / extrudersModel.rowCount() + id: extrudersList + property var index: 0 - text: model.name - tooltip: model.name - exclusiveGroup: extruderMenuGroup - checked: base.currentExtruderIndex == index + visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint + height: UM.Theme.getSize("sidebar_header_mode_tabs").height - onClicked: + boundsBehavior: Flickable.StopAtBounds + + anchors { - forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. - ExtruderManager.setActiveExtruderIndex(index); + left: parent.left + right: parent.right + bottom: parent.bottom } - style: ButtonStyle + ExclusiveGroup { id: extruderMenuGroup; } + + orientation: ListView.Horizontal + + model: Cura.ExtrudersModel { id: extrudersModel; addGlobal: false } + + Connections { - background: Rectangle + target: Cura.MachineManager + onGlobalContainerChanged: { - 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: 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 - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("tab_checked_border") - } - - Label - { - 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.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: control.text - elide: Text.ElideRight - } + forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. + var extruder_index = (machineExtruderCount.properties.value == 1) ? -1 : 0 + ExtruderManager.setActiveExtruderIndex(extruder_index); + } + } + + delegate: Button + { + height: ListView.view.height + width: ListView.view.width / extrudersModel.rowCount() + + text: model.name + tooltip: model.name + exclusiveGroup: extruderMenuGroup + checked: base.currentExtruderIndex == index + + onClicked: + { + forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. + ExtruderManager.setActiveExtruderIndex(index); + } + + style: ButtonStyle + { + background: Rectangle + { + 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: 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 + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("setting_control_border") + } + + Label + { + 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.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: control.text + elide: Text.ElideRight + } + } + label: Item { } } - label: Item { } } } } diff --git a/resources/themes/cura/theme.json b/resources/themes/cura/theme.json index c352ca64e9..fab5466a07 100644 --- a/resources/themes/cura/theme.json +++ b/resources/themes/cura/theme.json @@ -94,17 +94,18 @@ "toggle_active_text": [24, 41, 77, 255], "tab_checked": [255, 255, 255, 255], - "tab_checked_border": [24, 41, 77, 255], + "tab_checked_border": [255, 255, 255, 255], "tab_checked_text": [24, 41, 77, 255], "tab_unchecked": [224, 224, 224, 255], "tab_unchecked_border": [224, 224, 224, 255], - "tab_unchecked_text": [24, 41, 77, 255], + "tab_unchecked_text": [152, 152, 152, 255], "tab_hovered": [240, 240, 240, 255], - "tab_hovered_border": [128, 128, 128, 255], - "tab_hovered_text": [24, 41, 77, 255], + "tab_hovered_border": [240, 240, 240, 255], + "tab_hovered_text": [32, 166, 219, 255], "tab_active": [255, 255, 255, 255], - "tab_active_border": [24, 41, 77, 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], @@ -206,8 +207,10 @@ "sidebar_header": [0.0, 4.0], "sidebar_header_highlight": [0.5, 0.5], "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, 4.0], "sidebar_inputfields": [0.0, 2.0], "simple_mode_infill_caption": [0.0, 5.0], "simple_mode_infill_height": [0.0, 8.0], From b120cba148a0f34aee81ca86032b6ed52e903020 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Tue, 6 Dec 2016 15:56:20 +0100 Subject: [PATCH 03/16] Better colors. CURA-2763 --- resources/themes/cura/theme.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/themes/cura/theme.json b/resources/themes/cura/theme.json index fab5466a07..03c5ecbcc6 100644 --- a/resources/themes/cura/theme.json +++ b/resources/themes/cura/theme.json @@ -96,11 +96,11 @@ "tab_checked": [255, 255, 255, 255], "tab_checked_border": [255, 255, 255, 255], "tab_checked_text": [24, 41, 77, 255], - "tab_unchecked": [224, 224, 224, 255], - "tab_unchecked_border": [224, 224, 224, 255], + "tab_unchecked": [245, 245, 245, 255], + "tab_unchecked_border": [245, 245, 245, 255], "tab_unchecked_text": [152, 152, 152, 255], - "tab_hovered": [240, 240, 240, 255], - "tab_hovered_border": [240, 240, 240, 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], From 3efc5d63ef951a82a58103f1d0d78c30dcc1d85f Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Tue, 6 Dec 2016 16:11:08 +0100 Subject: [PATCH 04/16] Improved layout, removed material name from extruder name. CURA-2763 --- cura/Settings/ExtrudersModel.py | 2 -- resources/extruders/ultimaker3_extended_extruder_left.def.json | 2 +- resources/extruders/ultimaker3_extended_extruder_right.def.json | 2 +- resources/extruders/ultimaker3_extruder_left.def.json | 2 +- resources/extruders/ultimaker3_extruder_right.def.json | 2 +- resources/qml/SidebarHeader.qml | 2 +- resources/themes/cura/theme.json | 2 +- 7 files changed, 6 insertions(+), 8 deletions(-) diff --git a/cura/Settings/ExtrudersModel.py b/cura/Settings/ExtrudersModel.py index 7e06b95100..af3cb62406 100644 --- a/cura/Settings/ExtrudersModel.py +++ b/cura/Settings/ExtrudersModel.py @@ -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) diff --git a/resources/extruders/ultimaker3_extended_extruder_left.def.json b/resources/extruders/ultimaker3_extended_extruder_left.def.json index 202272b096..3335e85ae3 100644 --- a/resources/extruders/ultimaker3_extended_extruder_left.def.json +++ b/resources/extruders/ultimaker3_extended_extruder_left.def.json @@ -1,7 +1,7 @@ { "id": "ultimaker3_extended_extruder_left", "version": 2, - "name": "Print core 1", + "name": "Extruder 1", "inherits": "fdmextruder", "metadata": { "machine": "ultimaker3_extended", diff --git a/resources/extruders/ultimaker3_extended_extruder_right.def.json b/resources/extruders/ultimaker3_extended_extruder_right.def.json index 0f85b2dd09..2e072753b1 100644 --- a/resources/extruders/ultimaker3_extended_extruder_right.def.json +++ b/resources/extruders/ultimaker3_extended_extruder_right.def.json @@ -1,7 +1,7 @@ { "id": "ultimaker3_extended_extruder_right", "version": 2, - "name": "Print core 2", + "name": "Extruder 2", "inherits": "fdmextruder", "metadata": { "machine": "ultimaker3_extended", diff --git a/resources/extruders/ultimaker3_extruder_left.def.json b/resources/extruders/ultimaker3_extruder_left.def.json index 83efa25dbb..141fd2f80c 100644 --- a/resources/extruders/ultimaker3_extruder_left.def.json +++ b/resources/extruders/ultimaker3_extruder_left.def.json @@ -1,7 +1,7 @@ { "id": "ultimaker3_extruder_left", "version": 2, - "name": "Print core 1", + "name": "Extruder 1", "inherits": "fdmextruder", "metadata": { "machine": "ultimaker3", diff --git a/resources/extruders/ultimaker3_extruder_right.def.json b/resources/extruders/ultimaker3_extruder_right.def.json index 4a75059c40..50a369e3ed 100644 --- a/resources/extruders/ultimaker3_extruder_right.def.json +++ b/resources/extruders/ultimaker3_extruder_right.def.json @@ -1,7 +1,7 @@ { "id": "ultimaker3_extruder_right", "version": 2, - "name": "Print core 2", + "name": "Extruder 2", "inherits": "fdmextruder", "metadata": { "machine": "ultimaker3", diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index 6f9a8781d7..105431c3ee 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -65,6 +65,7 @@ Column { id: extruderSelectionRow height: UM.Theme.getSize("sidebar_tabs").height + visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint anchors { @@ -86,7 +87,6 @@ Column id: extrudersList property var index: 0 - visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint height: UM.Theme.getSize("sidebar_header_mode_tabs").height boundsBehavior: Flickable.StopAtBounds diff --git a/resources/themes/cura/theme.json b/resources/themes/cura/theme.json index 03c5ecbcc6..f7aff957f3 100644 --- a/resources/themes/cura/theme.json +++ b/resources/themes/cura/theme.json @@ -210,7 +210,7 @@ "sidebar_header_mode_tabs": [0.0, 3.0], "sidebar_lining": [0.5, 0.5], "sidebar_setup": [0.0, 2.0], - "sidebar_tabs": [0.0, 4.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], From f916c9b4cfc47e8fa99c7a9888b0d12f118503af Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Tue, 6 Dec 2016 16:32:34 +0100 Subject: [PATCH 05/16] Show extruder tabs only in custom mode. CURA-2763 --- resources/qml/Sidebar.qml | 5 +++-- resources/qml/SidebarHeader.qml | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index 77e82b5f92..afb5e77b8d 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -149,6 +149,7 @@ Rectangle SidebarHeader { id: header width: parent.width + property bool showExtruderTabs: modesListModel.get(base.currentModeIndex).showExtruderTabs anchors.top: sidebarHeaderBar.bottom anchors.topMargin: UM.Theme.getSize("default_margin").height @@ -408,8 +409,8 @@ 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"), item: sidebarSimple, showFilterButton: false, showExtruderTabs: false }) + modesListModel.append({ text: catalog.i18nc("@title:tab", "Custom"), item: sidebarAdvanced, showFilterButton: true, showExtruderTabs: true }) sidebarContents.push({ "item": modesListModel.get(base.currentModeIndex).item, "immediate": true }); var index = parseInt(UM.Preferences.getValue("cura/active_mode")) diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index 105431c3ee..58261bf7e6 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -65,7 +65,7 @@ Column { id: extruderSelectionRow height: UM.Theme.getSize("sidebar_tabs").height - visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint + visible: showExtruderTabs && machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint anchors { From 67f1afb9ce2b41e104741cc2ba8878a2a94e8565 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Wed, 7 Dec 2016 14:32:40 +0100 Subject: [PATCH 06/16] Revert "Show extruder tabs only in custom mode. CURA-2763" This reverts commit f916c9b4cfc47e8fa99c7a9888b0d12f118503af. --- resources/qml/Sidebar.qml | 5 ++--- resources/qml/SidebarHeader.qml | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index afb5e77b8d..77e82b5f92 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -149,7 +149,6 @@ Rectangle SidebarHeader { id: header width: parent.width - property bool showExtruderTabs: modesListModel.get(base.currentModeIndex).showExtruderTabs anchors.top: sidebarHeaderBar.bottom anchors.topMargin: UM.Theme.getSize("default_margin").height @@ -409,8 +408,8 @@ Rectangle Component.onCompleted: { - modesListModel.append({ text: catalog.i18nc("@title:tab", "Recommended"), item: sidebarSimple, showFilterButton: false, showExtruderTabs: false }) - modesListModel.append({ text: catalog.i18nc("@title:tab", "Custom"), item: sidebarAdvanced, showFilterButton: true, showExtruderTabs: true }) + modesListModel.append({ text: catalog.i18nc("@title:tab", "Recommended"), item: sidebarSimple, showFilterButton: false }) + modesListModel.append({ text: catalog.i18nc("@title:tab", "Custom"), item: sidebarAdvanced, showFilterButton: true }) sidebarContents.push({ "item": modesListModel.get(base.currentModeIndex).item, "immediate": true }); var index = parseInt(UM.Preferences.getValue("cura/active_mode")) diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index 58261bf7e6..105431c3ee 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -65,7 +65,7 @@ Column { id: extruderSelectionRow height: UM.Theme.getSize("sidebar_tabs").height - visible: showExtruderTabs && machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint + visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint anchors { From 4ecd1a0fe30e6804c541b4b00578d66b3f6061c4 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Wed, 7 Dec 2016 15:16:47 +0100 Subject: [PATCH 07/16] Simplifying layout by removing unneeded elements. CURA-2763 --- resources/qml/SidebarHeader.qml | 175 +++++++++++++++----------------- 1 file changed, 82 insertions(+), 93 deletions(-) diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index 105431c3ee..b0b2527357 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -61,11 +61,25 @@ Column } } - Row + /*Rectangle { - id: extruderSelectionRow - height: UM.Theme.getSize("sidebar_tabs").height - visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint + id: extruderSeparator + // anchors.verticalCenter: parent.verticalCenter + // anchors.top: machineSelectionRow.bottom + + width: parent.width + height: UM.Theme.getSize("sidebar_lining").height + color: UM.Theme.getColor("sidebar_lining") + }*/ + + ListView + { + id: extrudersList + property var index: 0 + + height: UM.Theme.getSize("sidebar_header_mode_tabs").height + + boundsBehavior: Flickable.StopAtBounds anchors { @@ -73,111 +87,85 @@ Column right: parent.right } - Rectangle - { - anchors.verticalCenter: parent.verticalCenter + ExclusiveGroup { id: extruderMenuGroup; } - width: parent.width - height: parent.height - color: UM.Theme.getColor("tab_background") + orientation: ListView.Horizontal + + model: Cura.ExtrudersModel { id: extrudersModel; addGlobal: false } + + Connections + { + target: Cura.MachineManager + onGlobalContainerChanged: + { + forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. + var extruder_index = (machineExtruderCount.properties.value == 1) ? -1 : 0 + ExtruderManager.setActiveExtruderIndex(extruder_index); + } } - ListView + delegate: Button { - id: extrudersList - property var index: 0 + height: ListView.view.height + width: ListView.view.width / extrudersModel.rowCount() - height: UM.Theme.getSize("sidebar_header_mode_tabs").height + text: model.name + tooltip: model.name + exclusiveGroup: extruderMenuGroup + checked: base.currentExtruderIndex == index - boundsBehavior: Flickable.StopAtBounds - - anchors + onClicked: { - left: parent.left - right: parent.right - bottom: parent.bottom + forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. + ExtruderManager.setActiveExtruderIndex(index); } - ExclusiveGroup { id: extruderMenuGroup; } - - orientation: ListView.Horizontal - - model: Cura.ExtrudersModel { id: extrudersModel; addGlobal: false } - - Connections + style: ButtonStyle { - target: Cura.MachineManager - onGlobalContainerChanged: + background: Rectangle { - forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. - var extruder_index = (machineExtruderCount.properties.value == 1) ? -1 : 0 - ExtruderManager.setActiveExtruderIndex(extruder_index); - } - } + 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; } } - delegate: Button - { - height: ListView.view.height - width: ListView.view.width / extrudersModel.rowCount() - - text: model.name - tooltip: model.name - exclusiveGroup: extruderMenuGroup - checked: base.currentExtruderIndex == index - - onClicked: - { - forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. - ExtruderManager.setActiveExtruderIndex(index); - } - - style: ButtonStyle - { - background: Rectangle + 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 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: 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 - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("setting_control_border") - } - - Label - { - 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.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: control.text - elide: Text.ElideRight - } + border.color: UM.Theme.getColor("setting_control_border") + } + + Label + { + 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.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: control.text + elide: Text.ElideRight } - label: Item { } } + label: Item { } } } } @@ -195,6 +183,7 @@ Column leftMargin: UM.Theme.getSize("default_margin").width right: parent.right rightMargin: UM.Theme.getSize("default_margin").width + top: extrudersList.bottom } Label From 7694b8f128eae8c485a840e72a8b7377c1b85bfe Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Wed, 7 Dec 2016 15:40:25 +0100 Subject: [PATCH 08/16] Cannot do it simpler. CURA-2763 --- resources/qml/SidebarHeader.qml | 194 +++++++++++++++++--------------- 1 file changed, 101 insertions(+), 93 deletions(-) diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index b0b2527357..77d45cae26 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -61,111 +61,120 @@ Column } } - /*Rectangle + Row { - id: extruderSeparator - // anchors.verticalCenter: parent.verticalCenter - // anchors.top: machineSelectionRow.bottom - + id: extruderSelectionRow width: parent.width - height: UM.Theme.getSize("sidebar_lining").height - color: UM.Theme.getColor("sidebar_lining") - }*/ + height: UM.Theme.getSize("sidebar_tabs").height + visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint - ListView - { - id: extrudersList - property var index: 0 - - height: UM.Theme.getSize("sidebar_header_mode_tabs").height - - boundsBehavior: Flickable.StopAtBounds - - anchors + Rectangle { - left: parent.left - right: parent.right + 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 } - ExclusiveGroup { id: extruderMenuGroup; } - - orientation: ListView.Horizontal - - model: Cura.ExtrudersModel { id: extrudersModel; addGlobal: false } - - Connections + ListView { - target: Cura.MachineManager - onGlobalContainerChanged: + id: extrudersList + property var index: 0 + + height: UM.Theme.getSize("sidebar_header_mode_tabs").height + boundsBehavior: Flickable.StopAtBounds + + anchors { - forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. - var extruder_index = (machineExtruderCount.properties.value == 1) ? -1 : 0 - ExtruderManager.setActiveExtruderIndex(extruder_index); - } - } - - delegate: Button - { - height: ListView.view.height - width: ListView.view.width / extrudersModel.rowCount() - - text: model.name - tooltip: model.name - exclusiveGroup: extruderMenuGroup - checked: base.currentExtruderIndex == index - - onClicked: - { - forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. - ExtruderManager.setActiveExtruderIndex(index); + left: parent.left + right: parent.right + bottom: extruderSelectionRow.bottom } - style: ButtonStyle + ExclusiveGroup { id: extruderMenuGroup; } + + orientation: ListView.Horizontal + + model: Cura.ExtrudersModel { id: extrudersModel; addGlobal: false } + + Connections { - background: Rectangle + target: Cura.MachineManager + onGlobalContainerChanged: { - 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: 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 - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("setting_control_border") - } - - Label - { - 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.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: control.text - elide: Text.ElideRight - } + forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. + var extruder_index = (machineExtruderCount.properties.value == 1) ? -1 : 0 + ExtruderManager.setActiveExtruderIndex(extruder_index); + } + } + + delegate: Button + { + height: ListView.view.height + width: ListView.view.width / extrudersModel.rowCount() + + text: model.name + tooltip: model.name + exclusiveGroup: extruderMenuGroup + checked: base.currentExtruderIndex == index + + onClicked: + { + forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. + ExtruderManager.setActiveExtruderIndex(index); + } + + style: ButtonStyle + { + background: Rectangle + { + 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: 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 + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("setting_control_border") + } + + Label + { + 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.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: control.text + elide: Text.ElideRight + } + } + label: Item { } } - label: Item { } } } } @@ -183,7 +192,6 @@ Column leftMargin: UM.Theme.getSize("default_margin").width right: parent.right rightMargin: UM.Theme.getSize("default_margin").width - top: extrudersList.bottom } Label From e642b4ebe95a66d392d0411e371354a39a30eae7 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 7 Dec 2016 17:41:04 +0100 Subject: [PATCH 09/16] Tweak 2.4 sidebar changes * Make extruder-tabs more clear on badly calibrated displays * Make infill selection same width as other "Recommended" controls * Move printer selection to the top bar * Add animation to support extruder selection combobox --- resources/qml/Sidebar.qml | 62 ++++++++++++++++++++++++++++---- resources/qml/SidebarHeader.qml | 60 +++++++++++-------------------- resources/qml/SidebarSimple.qml | 13 +++---- resources/themes/cura/theme.json | 2 +- 4 files changed, 84 insertions(+), 53 deletions(-) diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index 77e82b5f92..be08083a16 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -8,6 +8,7 @@ import QtQuick.Layouts 1.1 import UM 1.2 as UM import Cura 1.0 as Cura +import "Menus" Rectangle { @@ -85,12 +86,60 @@ Rectangle Row { anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("default_margin").width; + 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 + + height: UM.Theme.getSize("setting_control").height + tooltip: Cura.MachineManager.activeMachineName + anchors.verticalCenter: parent.verticalCenter + style: ButtonStyle { + background: Rectangle { + color: 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("setting_unit_margin").width + anchors.right: downArrow.left; + anchors.rightMargin: control.rightMargin; + anchors.verticalCenter: parent.verticalCenter; + font: UM.Theme.getFont("large") + } + } + label: Label{} + } + + width: parent.width - (showSettings.width + showMonitor.width + 2 * UM.Theme.getSize("default_margin").width) + + 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"); @@ -100,10 +149,11 @@ Rectangle 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: { @@ -151,7 +201,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 +209,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: diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index 77d45cae26..3e8f09c807 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -21,46 +21,6 @@ Column signal showTooltip(Item item, point location, string text) signal hideTooltip() - Row - { - id: machineSelectionRow - height: UM.Theme.getSize("sidebar_setup").height - - anchors - { - left: parent.left - leftMargin: UM.Theme.getSize("default_margin").width - right: parent.right - rightMargin: UM.Theme.getSize("default_margin").width - } - - 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 * 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 { } - } - } - Row { id: extruderSelectionRow @@ -86,6 +46,7 @@ Column property var index: 0 height: UM.Theme.getSize("sidebar_header_mode_tabs").height + width: parent.width boundsBehavior: Flickable.StopAtBounds anchors @@ -141,6 +102,17 @@ Column 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 @@ -179,6 +151,14 @@ Column } } + Item + { + id: variantRowSpacer + height: UM.Theme.getSize("default_margin").height / 4 + width: height + visible: !extruderSelectionRow.visible + } + Row { id: variantRow diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index c7da237648..499125a6f9 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -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"); diff --git a/resources/themes/cura/theme.json b/resources/themes/cura/theme.json index f7aff957f3..c86236ea5d 100644 --- a/resources/themes/cura/theme.json +++ b/resources/themes/cura/theme.json @@ -205,7 +205,7 @@ "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], From 18fb379fbe23d8ff125c6ad60e066646b5bcde39 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 7 Dec 2016 19:40:33 +0100 Subject: [PATCH 10/16] Add tooltips for Setup/Monitor and Recommended/Custom tabs --- resources/qml/Sidebar.qml | 70 +++++++++++++++++++++++++++++++- resources/qml/SidebarTooltip.qml | 5 +++ 2 files changed, 73 insertions(+), 2 deletions(-) diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index be08083a16..e314ab80c2 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -34,6 +34,18 @@ Rectangle color: UM.Theme.getColor("sidebar"); UM.I18nCatalog { id: catalog; name:"cura"} + Timer { + id: hoverTimer + 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) { @@ -146,6 +158,21 @@ Rectangle checkable: true checked: !monitoringPrint exclusiveGroup: sidebarHeaderBarGroup + property string tooltipText: catalog.i18nc("@tooltip", "Print Setup

Edit or review the settings for the active print job.") + + onHoveredChanged: { + if (hovered) + { + hoverTimer.item = showSettings + hoverTimer.text = tooltipText + hoverTimer.start(); + } + else + { + hoverTimer.stop(); + base.hideTooltip(); + } + } style: UM.Theme.styles.sidebar_header_tab } @@ -189,6 +216,21 @@ Rectangle checkable: true checked: monitoringPrint exclusiveGroup: sidebarHeaderBarGroup + property string tooltipText: catalog.i18nc("@tooltip", "Print Monitor

Monitor the state of the connected printer and the print job in progress.") + + onHoveredChanged: { + if (hovered) + { + hoverTimer.item = showMonitor + hoverTimer.text = tooltipText + hoverTimer.start(); + } + else + { + hoverTimer.stop(); + base.hideTooltip(); + } + } style: UM.Theme.styles.sidebar_header_tab } @@ -262,6 +304,20 @@ Rectangle checked: base.currentModeIndex == index onClicked: base.currentModeIndex = index + onHoveredChanged: { + if (hovered) + { + hoverTimer.item = settingsModeSelection + hoverTimer.text = model.tooltipText + hoverTimer.start(); + } + else + { + hoverTimer.stop(); + base.hideTooltip(); + } + } + style: ButtonStyle { background: Rectangle { border.width: UM.Theme.getSize("default_lining").width @@ -458,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", "Recommended Print Setup

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", "Custom Print Setup

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")) diff --git a/resources/qml/SidebarTooltip.qml b/resources/qml/SidebarTooltip.qml index 5cb7ff1f0b..7344834c7e 100644 --- a/resources/qml/SidebarTooltip.qml +++ b/resources/qml/SidebarTooltip.qml @@ -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) From bd4cac53b42fb705d4ac7c6fa9d8f510b409bede Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 7 Dec 2016 22:10:22 +0100 Subject: [PATCH 11/16] Fix colors to adhere to hig --- resources/themes/cura/theme.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/themes/cura/theme.json b/resources/themes/cura/theme.json index c86236ea5d..d5a95a7104 100644 --- a/resources/themes/cura/theme.json +++ b/resources/themes/cura/theme.json @@ -98,7 +98,7 @@ "tab_checked_text": [24, 41, 77, 255], "tab_unchecked": [245, 245, 245, 255], "tab_unchecked_border": [245, 245, 245, 255], - "tab_unchecked_text": [152, 152, 152, 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], From d67395b42bd58ad6d055a1d2c475615bdb844d1b Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 7 Dec 2016 22:23:06 +0100 Subject: [PATCH 12/16] Codestyle & documentation update --- resources/qml/Sidebar.qml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index e314ab80c2..7144c35fd6 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -31,11 +31,11 @@ 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: hoverTimer + id: tooltipDelayTimer interval: 500 repeat: false property var item @@ -86,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 @@ -163,13 +163,13 @@ Rectangle onHoveredChanged: { if (hovered) { - hoverTimer.item = showSettings - hoverTimer.text = tooltipText - hoverTimer.start(); + tooltipDelayTimer.item = showSettings + tooltipDelayTimer.text = tooltipText + tooltipDelayTimer.start(); } else { - hoverTimer.stop(); + tooltipDelayTimer.stop(); base.hideTooltip(); } } @@ -221,13 +221,13 @@ Rectangle onHoveredChanged: { if (hovered) { - hoverTimer.item = showMonitor - hoverTimer.text = tooltipText - hoverTimer.start(); + tooltipDelayTimer.item = showMonitor + tooltipDelayTimer.text = tooltipText + tooltipDelayTimer.start(); } else { - hoverTimer.stop(); + tooltipDelayTimer.stop(); base.hideTooltip(); } } @@ -307,13 +307,13 @@ Rectangle onHoveredChanged: { if (hovered) { - hoverTimer.item = settingsModeSelection - hoverTimer.text = model.tooltipText - hoverTimer.start(); + tooltipDelayTimer.item = settingsModeSelection + tooltipDelayTimer.text = model.tooltipText + tooltipDelayTimer.start(); } else { - hoverTimer.stop(); + tooltipDelayTimer.stop(); base.hideTooltip(); } } From ace4bfba1058276d4269176d8757daa83611e0d2 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 7 Dec 2016 22:30:31 +0100 Subject: [PATCH 13/16] Fix QML error about use of anchors in a row --- resources/qml/SidebarHeader.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index 3e8f09c807..d997f6a3f8 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -21,7 +21,7 @@ Column signal showTooltip(Item item, point location, string text) signal hideTooltip() - Row + Item { id: extruderSelectionRow width: parent.width From 054e73383dc67baa628a88bacc19a1b89af6a7bc Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 8 Dec 2016 11:12:48 +0100 Subject: [PATCH 14/16] Added hover color for machine selection. CURA-2763 --- resources/qml/Sidebar.qml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index 7144c35fd6..543ca0c26e 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -98,7 +98,6 @@ 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 @@ -108,12 +107,15 @@ Rectangle id: machineSelection text: Cura.MachineManager.activeMachineName - height: UM.Theme.getSize("setting_control").height + 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: UM.Theme.getColor("sidebar_header_bar") + 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 @@ -133,7 +135,7 @@ Rectangle text: control.text; elide: Text.ElideRight; anchors.left: parent.left; - anchors.leftMargin: UM.Theme.getSize("setting_unit_margin").width + anchors.leftMargin: UM.Theme.getSize("default_margin").width anchors.right: downArrow.left; anchors.rightMargin: control.rightMargin; anchors.verticalCenter: parent.verticalCenter; @@ -143,8 +145,6 @@ Rectangle label: Label{} } - width: parent.width - (showSettings.width + showMonitor.width + 2 * UM.Theme.getSize("default_margin").width) - menu: PrinterMenu { } } From 0d023a196e1615a3d0dbea8b001cc435d868dd99 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Thu, 8 Dec 2016 11:21:30 +0100 Subject: [PATCH 15/16] Code layout. CURA-2763 --- resources/qml/SidebarHeader.qml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index d997f6a3f8..78bde0c437 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -95,11 +95,11 @@ Column { 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") + 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") + 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 @@ -137,8 +137,8 @@ Column 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") + 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 From 3449108d59d8b0a6a58b61f039dce9b0b9392767 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Thu, 8 Dec 2016 11:48:34 +0100 Subject: [PATCH 16/16] Update 3MFWorkspaceReader to handle the new format of ContainerStack Contributes to CURA-3098 --- plugins/3MFReader/ThreeMFWorkspaceReader.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index 86fe56ff66..aafbe325b9 100644 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -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_string = parser["general"].get("containers", "") - container_list = container_string.split(",") - return [container_id for container_id in container_list if container_id != ""] + + 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(",") + 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) @@ -461,4 +469,5 @@ class ThreeMFWorkspaceReader(WorkspaceReader): metadata = data.iterfind("./um:metadata/um:name/um:label", {"um": "http://www.ultimaker.com/material"}) for entry in metadata: return entry.text - pass \ No newline at end of file + pass +