From 6367e0763166d7a1d4ed968811bb464cf4d2d6c3 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 23 Mar 2021 22:27:10 +0100 Subject: [PATCH] Add preference to enable loading multiple objects into a single instance --- cura/SingleInstance.py | 7 +++++-- resources/qml/Preferences/GeneralPage.qml | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/cura/SingleInstance.py b/cura/SingleInstance.py index 6fcf0da6cf..2be1f36e13 100644 --- a/cura/SingleInstance.py +++ b/cura/SingleInstance.py @@ -18,6 +18,8 @@ class SingleInstance: self._single_instance_server = None + self._application.getPreferences().addPreference("cura/single_instance_clear_before_load", True) + # Starts a client that checks for a single instance server and sends the files that need to opened if the server # exists. Returns True if the single instance server is found, otherwise False. def startClient(self) -> bool: @@ -42,8 +44,9 @@ class SingleInstance: # "command" field is required and holds the name of the command to execute. # Other fields depend on the command. - payload = {"command": "clear-all"} - single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding = "ascii")) + if self._application.getPreferences().getValue("cura/single_instance_clear_before_load"): + payload = {"command": "clear-all"} + single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding = "ascii")) payload = {"command": "focus"} single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding = "ascii")) diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index c0c443eec2..0c9fd9361a 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -74,6 +74,8 @@ UM.PreferencesPage UM.Preferences.resetPreference("cura/single_instance") singleInstanceCheckbox.checked = boolCheck(UM.Preferences.getValue("cura/single_instance")) + UM.Preferences.resetPreference("cura/single_instance_clear_before_load") + singleInstanceClearBeforeLoadCheckbox.checked = boolCheck(UM.Preferences.getValue("cura/single_instance_clear_before_load")) UM.Preferences.resetPreference("physics/automatic_push_free") pushFreeCheckbox.checked = boolCheck(UM.Preferences.getValue("physics/automatic_push_free")) @@ -578,6 +580,22 @@ UM.PreferencesPage } } + UM.TooltipArea + { + width: childrenRect.width + height: childrenRect.height + text: catalog.i18nc("@info:tooltip","Should the build plate be cleared before loading a new model in the single instance of Cura?") + enabled: singleInstanceCheckbox.checked + + CheckBox + { + id: singleInstanceClearBeforeLoadCheckbox + text: catalog.i18nc("@option:check","Clear buildplate before loading model into the single instance") + checked: boolCheck(UM.Preferences.getValue("cura/single_instance_clear_before_load")) + onCheckedChanged: UM.Preferences.setValue("cura/single_instance_clear_before_load", checked) + } + } + UM.TooltipArea { width: childrenRect.width