job_status: Refactored layout in panel
This commit is contained in:
@@ -14,15 +14,16 @@ class KlippyFiles:
|
||||
callbacks = []
|
||||
filelist = []
|
||||
files = {}
|
||||
timeout = None
|
||||
metadata_timeout = {}
|
||||
timeout = None
|
||||
thumbnail_dir = "/tmp/.KS-thumbnails"
|
||||
|
||||
def __init__(self, screen):
|
||||
self._screen = screen
|
||||
self.add_timeout()
|
||||
|
||||
if not os.path.exists('/tmp/.KS-thumbnails'):
|
||||
os.makedirs('/tmp/.KS-thumbnails')
|
||||
if not os.path.exists(self.thumbnail_dir):
|
||||
os.makedirs(self.thumbnail_dir)
|
||||
GLib.idle_add(self.ret_files, False)
|
||||
|
||||
|
||||
@@ -71,7 +72,7 @@ class KlippyFiles:
|
||||
self.files[params['filename']]['thumbnails'].sort(key=lambda x: x['size'], reverse=True)
|
||||
|
||||
for thumbnail in self.files[params['filename']]['thumbnails']:
|
||||
f = open("/tmp/.KS-thumbnails/%s-%s" % (params['filename'], thumbnail['size']), "wb")
|
||||
f = open("%s/%s-%s" % (self.thumbnail_dir, params['filename'], thumbnail['size']), "wb")
|
||||
f.write(base64.b64decode(thumbnail['data']))
|
||||
f.close()
|
||||
for cb in self.callbacks:
|
||||
@@ -84,11 +85,33 @@ class KlippyFiles:
|
||||
if self.timeout == None:
|
||||
self.timeout = GLib.timeout_add(4000, self.ret_files)
|
||||
|
||||
def file_exists(self, filename):
|
||||
return True if filename in self.filelist else False
|
||||
|
||||
def file_metadata_exists(self, filename):
|
||||
if not self.file_exists(filename):
|
||||
return False
|
||||
if "slicer" in self.files[filename]:
|
||||
return True
|
||||
return False
|
||||
|
||||
def get_thumbnail_location(self, filename):
|
||||
if not self.has_thumbnail(filename):
|
||||
return None
|
||||
return "%s/%s-%s" % (self.thumbnail_dir, filename, self.files[filename]['thumbnails'][0]['size'])
|
||||
|
||||
def has_thumbnail(self, filename):
|
||||
if filename not in self.files:
|
||||
return False
|
||||
return "thumbnails" in self.files[filename] and len(self.files[filename]) > 0
|
||||
|
||||
def remove_timeout(self):
|
||||
if self.timeout != None:
|
||||
self.timeout = None
|
||||
|
||||
def request_metadata(self, filename):
|
||||
if filename not in self.filelist:
|
||||
return False
|
||||
if filename in self.metadata_timeout:
|
||||
GLib.source_remove(self.metadata_timeout[filename])
|
||||
self.metadata_timeout[filename] = GLib.timeout_add(
|
||||
|
@@ -15,6 +15,7 @@ class ScreenPanel:
|
||||
def __init__(self, screen, title, back=True):
|
||||
self._screen = screen
|
||||
self._config = screen._config
|
||||
self._files = screen.files
|
||||
self.lang = self._screen.lang
|
||||
self._printer = screen.printer
|
||||
self.labels = {}
|
||||
@@ -62,6 +63,11 @@ class ScreenPanel:
|
||||
def get(self):
|
||||
return self.layout
|
||||
|
||||
def get_file_image(self, filename, width=1.6, height=1.6):
|
||||
if not self._files.has_thumbnail(filename):
|
||||
return None
|
||||
return self._gtk.PixbufFromFile(self._files.get_thumbnail_location(filename), None, width, height)
|
||||
|
||||
def home(self, widget):
|
||||
self._screen._ws.klippy.gcode_script(KlippyGcodes.HOME)
|
||||
|
||||
@@ -83,6 +89,9 @@ class ScreenPanel:
|
||||
def set_title(self, title):
|
||||
self.title.set_label(title)
|
||||
|
||||
def show_all(self):
|
||||
self._screen.show_all()
|
||||
|
||||
def update_image_text(self, label, text):
|
||||
if label in self.labels and 'l' in self.labels[label]:
|
||||
self.labels[label]['l'].set_text(text)
|
||||
|
Reference in New Issue
Block a user