diff --git a/octoprint/gcodefiles.py b/octoprint/gcodefiles.py index b44f2a3..704a7b3 100644 --- a/octoprint/gcodefiles.py +++ b/octoprint/gcodefiles.py @@ -123,14 +123,15 @@ class GcodeManager: if absolutePath is None: return None - if file.filename in self._metadata.keys(): + basename = self._getBasicFilename(absolutePath) + if basename in self._metadata.keys(): # delete existing metadata entry, since the file is going to get overwritten - del self._metadata[file.filename] + del self._metadata[basename] self._metadataDirty = True self._saveMetadata() file.save(absolutePath) - self._metadataAnalyzer.addFileToQueue(os.path.basename(absolutePath)) - return self._getBasicFilename(absolutePath) + self._metadataAnalyzer.addFileToQueue(basename) + return basename def getFutureFilename(self, file): if not file: diff --git a/octoprint/printer.py b/octoprint/printer.py index fecc841..8844a6d 100644 --- a/octoprint/printer.py +++ b/octoprint/printer.py @@ -33,6 +33,7 @@ class Printer(): from collections import deque self._gcodeManager = gcodeManager + self._gcodeManager.registerCallback(self) # state self._temp = None @@ -132,6 +133,14 @@ class Printer(): try: callback.sendFeedbackCommandOutput(name, output) except: pass + #~~ callback from gcodemanager + + def sendUpdateTrigger(self, type): + if type == "gcodeFiles" and self._selectedFile: + self._setJobData(self._selectedFile["filename"], + self._selectedFile["filesize"], + self._selectedFile["sd"]) + #~~ printer commands def connect(self, port=None, baudrate=None): @@ -421,11 +430,6 @@ class Printer(): def mcFileTransferStarted(self, filename, filesize): self._sdStreaming = True - self._selectedFile = { - "filename": filename, - "filesize": filesize, - "sd": True - } self._setJobData(filename, filesize, True) self._setProgressData(0.0, 0, 0, None) @@ -433,7 +437,6 @@ class Printer(): def mcFileTransferDone(self): self._sdStreaming = False - self._selectedFile = None self._setCurrentZ(None) self._setJobData(None, None, None)