From a5f0f87af0066bf05f82865b1eafe51d09c04440 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Mon, 12 Sep 2016 15:48:30 +0200 Subject: [PATCH 1/6] Fix updating resolved values when changing material. Contributes to CURA-2159 --- resources/qml/Settings/SettingTextField.qml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index 9121fbd1c3..924696abba 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -107,7 +107,14 @@ SettingItem target: input property: "text" value: { - if ((propertyProvider.properties.resolve != "None") && (stackLevel != 0) && (stackLevel != 1)) { + // Stacklevels + // 0: user -> unsaved change + // 1: quality changes -> saved change + // 2: quality + // 3: material -> user changed material in materialspage + // 4: variant + // 5: machine + if ((propertyProvider.properties.resolve != "None") && (stackLevel != 0) && (stackLevel != 1) && (stackLevel != 3)) { // We have a resolve function. Indicates that the setting is not settable per extruder and that // we have to choose between the resolved value (default) and the global value // (if user has explicitly set this). From c25e2d4a60672a9cb4b4e55032eac8f87c0a9866 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Mon, 12 Sep 2016 16:16:02 +0200 Subject: [PATCH 2/6] Undo material edit update resolve. Contributes to CURA-2159 --- resources/qml/Settings/SettingTextField.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index 924696abba..e4c93d9b8c 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -114,7 +114,7 @@ SettingItem // 3: material -> user changed material in materialspage // 4: variant // 5: machine - if ((propertyProvider.properties.resolve != "None") && (stackLevel != 0) && (stackLevel != 1) && (stackLevel != 3)) { + if ((propertyProvider.properties.resolve != "None") && (stackLevel != 0) && (stackLevel != 1)) { // We have a resolve function. Indicates that the setting is not settable per extruder and that // we have to choose between the resolved value (default) and the global value // (if user has explicitly set this). From c38b2dcbd38de286e8e0ff89546eb4bc7e835a71 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 12 Sep 2016 17:05:05 +0200 Subject: [PATCH 3/6] Tool panel switching now properly triggers focus change CURA-2197 --- resources/qml/Toolbar.qml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/resources/qml/Toolbar.qml b/resources/qml/Toolbar.qml index c09c79b779..60fc6fd723 100644 --- a/resources/qml/Toolbar.qml +++ b/resources/qml/Toolbar.qml @@ -48,7 +48,15 @@ Item { MouseArea { anchors.fill: parent; onClicked: { - parent.checked ? UM.Controller.setActiveTool(null) : UM.Controller.setActiveTool(model.id); + forceActiveFocus() //First grab focus, so all the text fields are updated + if(parent.checked) + { + UM.Controller.setActiveTool(null) + } + else + { + UM.Controller.setActiveTool(model.id); + } } } } From 411a7bdb847623e13b148a94ab65d6aa7f207b98 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 12 Sep 2016 16:41:24 +0200 Subject: [PATCH 4/6] Update i18n context for consistency --- resources/qml/PrintMonitor.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index c766b2d947..27b0e532d4 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -18,7 +18,7 @@ Column Label { - text: printerConnected ? connectedPrinter.connectionText : catalog.i18nc("@label", "The printer is not connected.") + text: printerConnected ? connectedPrinter.connectionText : catalog.i18nc("@info:status", "The printer is not connected.") color: printerConnected && printerAcceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") font: UM.Theme.getFont("default") wrapMode: Text.WordWrap From a90ed439f0f22ab2471e85672a1523beaff1ed44 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 12 Sep 2016 16:49:22 +0200 Subject: [PATCH 5/6] Show printer state on Printers preference pane CURA-2276 --- resources/qml/Preferences/MachinesPage.qml | 58 +++++++++++++++++++++- 1 file changed, 56 insertions(+), 2 deletions(-) diff --git a/resources/qml/Preferences/MachinesPage.qml b/resources/qml/Preferences/MachinesPage.qml index 12ff53d9ca..8c1e061026 100644 --- a/resources/qml/Preferences/MachinesPage.qml +++ b/resources/qml/Preferences/MachinesPage.qml @@ -123,7 +123,7 @@ UM.ManagementPage } } - Row + Grid { id: machineInfo @@ -132,17 +132,71 @@ UM.ManagementPage anchors.left: parent.left anchors.right: parent.right spacing: UM.Theme.getSize("default_margin").height + rowSpacing: UM.Theme.getSize("default_lining").height + columns: 2 visible: base.currentItem + property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0 + property var connectedPrinter: printerConnected ? Cura.MachineManager.printerOutputDevices[0] : null + property bool printerAcceptsCommands: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands + Label { - text: catalog.i18nc("@label", "Type") + text: catalog.i18nc("@label", "Printer type:") visible: base.currentItem && "definition_name" in base.currentItem.metadata } Label { text: (base.currentItem && "definition_name" in base.currentItem.metadata) ? base.currentItem.metadata.definition_name : "" } + Label + { + text: catalog.i18nc("@label", "Connection:") + visible: base.currentItem && base.currentItem.id == Cura.MachineManager.activeMachineId + } + Label { + width: parent.width * 0.7 + text: machineInfo.printerConnected ? machineInfo.connectedPrinter.connectionText : catalog.i18nc("@info:status", "The printer is not connected.") + visible: base.currentItem && base.currentItem.id == Cura.MachineManager.activeMachineId + wrapMode: Text.WordWrap + } + Label + { + text: catalog.i18nc("@label", "State:") + visible: base.currentItem && base.currentItem.id == Cura.MachineManager.activeMachineId && machineInfo.printerAcceptsCommands + } + Label { + width: parent.width * 0.7 + text: + { + if(!machineInfo.printerConnected || !machineInfo.printerAcceptsCommands) { + return ""; + } + + switch(Cura.MachineManager.printerOutputDevices[0].jobState) + { + case "printing": + return catalog.i18nc("@label:MonitorStatus", "Printing..."); + case "paused": + return catalog.i18nc("@label:MonitorStatus", "Paused"); + case "pre_print": + return catalog.i18nc("@label:MonitorStatus", "Preparing..."); + case "wait_cleanup": + return catalog.i18nc("@label:MonitorStatus", "Waiting for someone to clear the build plate"); + case "error": + return printerOutputDevice.errorText; + case "maintenance": // note sure if this jobState actually occurs in the wild + return catalog.i18nc("@label:MonitorStatus", "Busy; please check the printer"); + case "abort": // note sure if this jobState actually occurs in the wild + return catalog.i18nc("@label:MonitorStatus", "Aborting print..."); + case "ready": // ready to print or getting ready + case "": // ready to print or getting ready + return catalog.i18nc("@label:MonitorStatus", "Waiting for a printjob"); + } + } + visible: base.currentItem && base.currentItem.id == Cura.MachineManager.activeMachineId && machineInfo.printerAcceptsCommands + wrapMode: Text.WordWrap + } } Column { From f306bb93d3f396bb78b5b2890953cae0a5966dab Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 12 Sep 2016 16:53:59 +0200 Subject: [PATCH 6/6] Move sidebar action button style into styles.qml --- resources/qml/MonitorButton.qml | 106 +------------------------------ resources/themes/cura/styles.qml | 55 ++++++++++++++++ 2 files changed, 57 insertions(+), 104 deletions(-) diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index f9f6cd5f5d..9c433cda5f 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -226,58 +226,7 @@ Rectangle } } - style: ButtonStyle - { - background: Rectangle - { - border.width: UM.Theme.getSize("default_lining").width - border.color: - { - if(!control.enabled) - return UM.Theme.getColor("action_button_disabled_border"); - else if(control.pressed) - return UM.Theme.getColor("action_button_active_border"); - else if(control.hovered) - return UM.Theme.getColor("action_button_hovered_border"); - else - return UM.Theme.getColor("action_button_border"); - } - color: - { - if(!control.enabled) - return UM.Theme.getColor("action_button_disabled"); - else if(control.pressed) - return UM.Theme.getColor("action_button_active"); - else if(control.hovered) - return UM.Theme.getColor("action_button_hovered"); - else - return UM.Theme.getColor("action_button"); - } - Behavior on color { ColorAnimation { duration: 50; } } - - implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("default_margin").width * 2) - - Label - { - id: actualLabel - anchors.centerIn: parent - color: - { - if(!control.enabled) - return UM.Theme.getColor("action_button_disabled_text"); - else if(control.pressed) - return UM.Theme.getColor("action_button_active_text"); - else if(control.hovered) - return UM.Theme.getColor("action_button_hovered_text"); - else - return UM.Theme.getColor("action_button_text"); - } - font: UM.Theme.getFont("action_button") - text: control.text - } - } - label: Item { } - } + style: UM.Theme.styles.sidebar_action_button } Button @@ -293,58 +242,7 @@ Rectangle text: catalog.i18nc("@label:", "Abort Print") onClicked: confirmationDialog.visible = true - style: ButtonStyle - { - background: Rectangle - { - border.width: UM.Theme.getSize("default_lining").width - border.color: - { - if(!control.enabled) - return UM.Theme.getColor("action_button_disabled_border"); - else if(control.pressed) - return UM.Theme.getColor("action_button_active_border"); - else if(control.hovered) - return UM.Theme.getColor("action_button_hovered_border"); - else - return UM.Theme.getColor("action_button_border"); - } - color: - { - if(!control.enabled) - return UM.Theme.getColor("action_button_disabled"); - else if(control.pressed) - return UM.Theme.getColor("action_button_active"); - else if(control.hovered) - return UM.Theme.getColor("action_button_hovered"); - else - return UM.Theme.getColor("action_button"); - } - Behavior on color { ColorAnimation { duration: 50; } } - - implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("default_margin").width * 2) - - Label - { - id: actualLabel - anchors.centerIn: parent - color: - { - if(!control.enabled) - return UM.Theme.getColor("action_button_disabled_text"); - else if(control.pressed) - return UM.Theme.getColor("action_button_active_text"); - else if(control.hovered) - return UM.Theme.getColor("action_button_hovered_text"); - else - return UM.Theme.getColor("action_button_text"); - } - font: UM.Theme.getFont("action_button") - text: control.text; - } - } - label: Item { } - } + style: UM.Theme.styles.sidebar_action_button } MessageDialog diff --git a/resources/themes/cura/styles.qml b/resources/themes/cura/styles.qml index 96bbf03a45..354aa15165 100644 --- a/resources/themes/cura/styles.qml +++ b/resources/themes/cura/styles.qml @@ -506,4 +506,59 @@ QtObject { } } } + + property Component sidebar_action_button: Component { + ButtonStyle + { + background: Rectangle + { + border.width: UM.Theme.getSize("default_lining").width + border.color: + { + if(!control.enabled) + return UM.Theme.getColor("action_button_disabled_border"); + else if(control.pressed) + return UM.Theme.getColor("action_button_active_border"); + else if(control.hovered) + return UM.Theme.getColor("action_button_hovered_border"); + else + return UM.Theme.getColor("action_button_border"); + } + color: + { + if(!control.enabled) + return UM.Theme.getColor("action_button_disabled"); + else if(control.pressed) + return UM.Theme.getColor("action_button_active"); + else if(control.hovered) + return UM.Theme.getColor("action_button_hovered"); + else + return UM.Theme.getColor("action_button"); + } + Behavior on color { ColorAnimation { duration: 50; } } + + implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("default_margin").width * 2) + + Label + { + id: actualLabel + anchors.centerIn: parent + color: + { + if(!control.enabled) + return UM.Theme.getColor("action_button_disabled_text"); + else if(control.pressed) + return UM.Theme.getColor("action_button_active_text"); + else if(control.hovered) + return UM.Theme.getColor("action_button_hovered_text"); + else + return UM.Theme.getColor("action_button_text"); + } + font: UM.Theme.getFont("action_button") + text: control.text + } + } + label: Item { } + } + } }