job_status: change how metadata update is handled
This commit is contained in:
parent
07554250ad
commit
51da7cecc8
@ -48,7 +48,7 @@ class KlippyFiles:
|
|||||||
if len(self.callbacks) > 0 and (len(newfiles) > 0 or len(deletedfiles) > 0):
|
if len(self.callbacks) > 0 and (len(newfiles) > 0 or len(deletedfiles) > 0):
|
||||||
logger.debug("Running callbacks...")
|
logger.debug("Running callbacks...")
|
||||||
for cb in self.callbacks:
|
for cb in self.callbacks:
|
||||||
cb(newfiles, deletedfiles)
|
cb(newfiles, deletedfiles, [])
|
||||||
|
|
||||||
if len(deletedfiles) > 0:
|
if len(deletedfiles) > 0:
|
||||||
logger.debug("Deleted files: %s", deletedfiles)
|
logger.debug("Deleted files: %s", deletedfiles)
|
||||||
@ -76,10 +76,18 @@ class KlippyFiles:
|
|||||||
f.write(base64.b64decode(thumbnail['data']))
|
f.write(base64.b64decode(thumbnail['data']))
|
||||||
f.close()
|
f.close()
|
||||||
for cb in self.callbacks:
|
for cb in self.callbacks:
|
||||||
|
logger.debug("Running metadata callbacks")
|
||||||
cb([], [], [params['filename']])
|
cb([], [], [params['filename']])
|
||||||
|
|
||||||
def add_file_callback(self, callback):
|
def add_file_callback(self, callback):
|
||||||
self.callbacks.append(callback)
|
try:
|
||||||
|
self.callbacks.append(callback)
|
||||||
|
except:
|
||||||
|
logger.debug("Callback not found: %s" % callback)
|
||||||
|
|
||||||
|
def remove_file_callback(self, callback):
|
||||||
|
if callback in self.callbacks:
|
||||||
|
self.callbacks.pop(self.callbacks.index(callback))
|
||||||
|
|
||||||
def add_timeout(self):
|
def add_timeout(self):
|
||||||
if self.timeout == None:
|
if self.timeout == None:
|
||||||
|
@ -331,6 +331,11 @@ class JobStatusPanel(ScreenPanel):
|
|||||||
for arg in args:
|
for arg in args:
|
||||||
self.labels[arg].set_sensitive(False)
|
self.labels[arg].set_sensitive(False)
|
||||||
|
|
||||||
|
def _callback_metadata(self, newfiles, deletedfiles, modifiedfiles):
|
||||||
|
if self.file_metadata == None and self.filename in modifiedfiles:
|
||||||
|
self.update_file_metadata()
|
||||||
|
self._files.remove_file_callback(self._callback_metadata)
|
||||||
|
|
||||||
def process_update(self, action, data):
|
def process_update(self, action, data):
|
||||||
if action != "notify_status_update":
|
if action != "notify_status_update":
|
||||||
return
|
return
|
||||||
@ -399,11 +404,7 @@ class JobStatusPanel(ScreenPanel):
|
|||||||
file = "Unknown"
|
file = "Unknown"
|
||||||
self.update_text("file", "Unknown file")
|
self.update_text("file", "Unknown file")
|
||||||
|
|
||||||
if self.file_metadata == None:
|
if self.file_metadata != None:
|
||||||
if self._files.file_metadata_exists(self.filename):
|
|
||||||
self.update_file_metadata()
|
|
||||||
self.add_labels()
|
|
||||||
else:
|
|
||||||
if "gcode_start_byte" in self.file_metadata:
|
if "gcode_start_byte" in self.file_metadata:
|
||||||
progress = (max(vsd['file_position'] - self.file_metadata['gcode_start_byte'],0) /
|
progress = (max(vsd['file_position'] - self.file_metadata['gcode_start_byte'],0) /
|
||||||
(self.file_metadata['gcode_end_byte'] - self.file_metadata['gcode_start_byte']))
|
(self.file_metadata['gcode_end_byte'] - self.file_metadata['gcode_start_byte']))
|
||||||
@ -473,10 +474,18 @@ class JobStatusPanel(ScreenPanel):
|
|||||||
def update_file_metadata(self):
|
def update_file_metadata(self):
|
||||||
if self._files.file_metadata_exists(self.filename):
|
if self._files.file_metadata_exists(self.filename):
|
||||||
self.file_metadata = self._files.get_file_info(self.filename)
|
self.file_metadata = self._files.get_file_info(self.filename)
|
||||||
|
logger.debug("Parsing file metadata: %s" % list(self.file_metadata))
|
||||||
self.update_text("est_time","/ %s" % str(self._gtk.formatTimeString(self.file_metadata['estimated_time'])))
|
self.update_text("est_time","/ %s" % str(self._gtk.formatTimeString(self.file_metadata['estimated_time'])))
|
||||||
|
if "thumbnails" in self.file_metadata:
|
||||||
|
tmp = self.file_metadata['thumbnails'].copy()
|
||||||
|
for i in tmp:
|
||||||
|
i['data'] = ""
|
||||||
|
logger.debug("Thumbnails: %s" % list(tmp))
|
||||||
self.show_file_thumbnail()
|
self.show_file_thumbnail()
|
||||||
else:
|
else:
|
||||||
self.file_metadata = None
|
self.file_metadata = None
|
||||||
|
logger.debug("Cannot find file metadata. Listening for updated metadata")
|
||||||
|
self._screen.files.add_file_callback(self._callback_metadata)
|
||||||
|
|
||||||
def update_image_text(self, label, text):
|
def update_image_text(self, label, text):
|
||||||
if label in self.labels and 'l' in self.labels[label]:
|
if label in self.labels and 'l' in self.labels[label]:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user