Browse Source

Properly retrieve snapshot (now made on slice).

Circumvents the snapshot/thumbnail not working when the focus is not on the main window, even if the thread is main. This was an issue when writing a file to Digital Factory becasue that workflow uses a modal window.

Thanks for the idea Jelle!
Remco Burema 4 years ago
parent
commit
f4ef3b44e3
2 changed files with 3 additions and 6 deletions
  1. 1 1
      plugins/CuraEngineBackend/CuraEngineBackend.py
  2. 2 5
      plugins/UFPWriter/UFPWriter.py

+ 1 - 1
plugins/CuraEngineBackend/CuraEngineBackend.py

@@ -257,7 +257,7 @@ class CuraEngineBackend(QObject, Backend):
             Logger.logException("w", "Failed to create snapshot image")
             self._snapshot = None  # Failing to create thumbnail should not fail creation of UFP
 
-    def getLatestSnapShot(self) -> Optional[QImage]:
+    def getLatestSnapshot(self) -> Optional[QImage]:
         return self._snapshot
 
     def slice(self) -> None:

+ 2 - 5
plugins/UFPWriter/UFPWriter.py

@@ -62,12 +62,9 @@ class UFPWriter(MeshWriter):
         gcode.write(gcode_textio.getvalue().encode("UTF-8"))
         archive.addRelation(virtual_path = "/3D/model.gcode", relation_type = "http://schemas.ultimaker.org/package/2018/relationships/gcode")
 
-        snapshot = None
+        # Attempt to store the thumbnail, if any:
         backend = CuraApplication.getInstance().getBackend()
-        if isinstance(backend, CuraEngineBackend):
-            snapshot = backend.getLatestSnapshot()
-
-        # Store the thumbnail.
+        snapshot = None if getattr(backend, "getLatestSnapshot", None) is None else backend.getLatestSnapshot()
         if snapshot:
             archive.addContentType(extension = "png", mime_type = "image/png")
             thumbnail = archive.getStream("/Metadata/thumbnail.png")