Display messages about saving and ejecting when saving to SD Card

This commit is contained in:
Arjen Hiemstra 2015-04-29 17:01:58 +02:00
parent bef998ba7f
commit 5917596ad7

View file

@ -11,6 +11,7 @@ from UM.Mesh.WriteMeshJob import WriteMeshJob
from UM.Mesh.ReadMeshJob import ReadMeshJob from UM.Mesh.ReadMeshJob import ReadMeshJob
from UM.Logger import Logger from UM.Logger import Logger
from UM.Preferences import Preferences from UM.Preferences import Preferences
from UM.Message import Message
from UM.Scene.BoxRenderer import BoxRenderer from UM.Scene.BoxRenderer import BoxRenderer
from UM.Scene.Selection import Selection from UM.Scene.Selection import Selection
@ -343,7 +344,9 @@ class PrinterApplication(QtApplication):
filename = os.path.join(path, node.getName()[0:node.getName().rfind('.')] + '.gcode') filename = os.path.join(path, node.getName()[0:node.getName().rfind('.')] + '.gcode')
job = WriteMeshJob(filename, node.getMeshData()) job = WriteMeshJob(filename, node.getMeshData())
job._sdcard = device
job.start() job.start()
job.finished.connect(self._onWriteToSDFinished)
return return
def _removableDrivesChanged(self): def _removableDrivesChanged(self):
@ -358,10 +361,14 @@ class PrinterApplication(QtApplication):
'priority': 1 'priority': 1
}) })
drives_to_remove = []
for device in self._output_devices: for device in self._output_devices:
if device not in drives: if device not in drives:
if self._output_devices[device]['function'] == self._writeToSD: if self._output_devices[device]['function'] == self._writeToSD:
self.removeOutputDevice(device) drives_to_remove.append(device)
for drive in drives_to_remove:
self.removeOutputDevice(drive)
def _onActiveMachineChanged(self): def _onActiveMachineChanged(self):
machine = self.getActiveMachine() machine = self.getActiveMachine()
@ -392,3 +399,14 @@ class PrinterApplication(QtApplication):
self._platform.setPosition(Vector(offset[0], offset[1], offset[2])) self._platform.setPosition(Vector(offset[0], offset[1], offset[2]))
else: else:
self._platform.setPosition(Vector(0.0, 0.0, 0.0)) self._platform.setPosition(Vector(0.0, 0.0, 0.0))
def _onWriteToSDFinished(self, job):
message = Message("Saved to SD Card {0} as {1}".format(job._sdcard, job.getFileName()))
message.addAction("Eject", "eject", "Eject SD Card {0}".format(job._sdcard))
message._sdcard = job._sdcard
message.actionTriggered.connect(self._onMessageActionTriggered)
message.show()
def _onMessageActionTriggered(self, message, action):
if action == "Eject":
self.getStorageDevice("LocalFileStorage").ejectRemovableDrive(message._sdcard)