Browse Source

Add preference to enable loading multiple objects into a single instance

fieldOfView 4 years ago
parent
commit
6367e07631
2 changed files with 23 additions and 2 deletions
  1. 5 2
      cura/SingleInstance.py
  2. 18 0
      resources/qml/Preferences/GeneralPage.qml

+ 5 - 2
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"))

+ 18 - 0
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