From c81689d23361af8d8a86bba129e0336112baf819 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Fri, 11 Jan 2019 17:40:36 +0100 Subject: [PATCH 1/4] Prevent a recurring qml warning Note that the connect_group metadata is also queried for non-connected printers; the model is not filtered, but non-connected printers are set to be invisible. --- resources/qml/Menus/NetworkPrinterMenu.qml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/resources/qml/Menus/NetworkPrinterMenu.qml b/resources/qml/Menus/NetworkPrinterMenu.qml index 3cb0aae016..41f3054e92 100644 --- a/resources/qml/Menus/NetworkPrinterMenu.qml +++ b/resources/qml/Menus/NetworkPrinterMenu.qml @@ -12,10 +12,18 @@ Instantiator model: Cura.GlobalStacksModel {} MenuItem { - text: model.metadata["connect_group_name"] + property string connectGroupName: + { + if("connect_group_name" in model.metadata) + { + return model.metadata["connect_group_name"] + } + return "" + } + text: connectGroupName checkable: true visible: model.hasRemoteConnection - checked: Cura.MachineManager.activeMachineNetworkGroupName == model.metadata["connect_group_name"] + checked: Cura.MachineManager.activeMachineNetworkGroupName == connectGroupName exclusiveGroup: group onTriggered: Cura.MachineManager.setActiveMachine(model.id) } From c6fa47e584a38998809916d6d5ff694afe21f75a Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Fri, 11 Jan 2019 17:52:28 +0100 Subject: [PATCH 2/4] Mark PrinterOutputDevice without printer type as invalid Since self._printer_type was defined as an empty string and the setter only accepts strings, it could never be None --- cura/PrinterOutput/ConfigurationModel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/PrinterOutput/ConfigurationModel.py b/cura/PrinterOutput/ConfigurationModel.py index 89e609c913..f9d0c7e36b 100644 --- a/cura/PrinterOutput/ConfigurationModel.py +++ b/cura/PrinterOutput/ConfigurationModel.py @@ -54,7 +54,7 @@ class ConfigurationModel(QObject): for configuration in self._extruder_configurations: if configuration is None: return False - return self._printer_type is not None + return self._printer_type != "" def __str__(self): message_chunks = [] From d03ec22dee514c305edc8e4482b9e43584f2c7b0 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Fri, 11 Jan 2019 17:55:06 +0100 Subject: [PATCH 3/4] Hide empty abbreviated machinename Connected printers that are not Cura Connect printers may not have a connect_group_name. --- resources/qml/PrinterSelector/MachineSelector.qml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index 9f0d3b4ac6..0a2e304efc 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -26,7 +26,14 @@ Cura.ExpandablePopup headerItem: Cura.IconWithText { - text: isNetworkPrinter ? Cura.MachineManager.activeMachineNetworkGroupName : Cura.MachineManager.activeMachineName + text: + { + if (isNetworkPrinter && Cura.MachineManager.activeMachineNetworkGroupName != "") + { + Cura.MachineManager.activeMachineNetworkGroupName + } + return Cura.MachineManager.activeMachineName + } source: { if (isNetworkPrinter) From f8bfca6079569835550a80f4eba2095d97cc53a3 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Fri, 11 Jan 2019 18:27:44 +0100 Subject: [PATCH 4/4] Don't show auto configuration selection when there are no configurations --- resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index 7d09f4be38..86cb7f9acf 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -136,9 +136,9 @@ Cura.ExpandablePopup onVisibleChanged: { - is_connected = Cura.MachineManager.activeMachineHasRemoteConnection && Cura.MachineManager.printerConnected //Re-evaluate. + is_connected = Cura.MachineManager.activeMachineHasRemoteConnection && Cura.MachineManager.printerConnected && Cura.MachineManager.printerOutputDevices[0].uniqueConfigurations.length > 0 //Re-evaluate. - // If the printer is not connected, we switch always to the custom mode. If is connected instead, the auto mode + // If the printer is not connected or does not have configurations, we switch always to the custom mode. If is connected instead, the auto mode // or the previous state is selected configuration_method = is_connected ? (manual_selected_method == -1 ? ConfigurationMenu.ConfigurationMethod.Auto : manual_selected_method) : ConfigurationMenu.ConfigurationMethod.Custom }