diff --git a/lib/client/dashboard_window.py b/lib/client/dashboard_window.py index d537eaa..a4699c7 100644 --- a/lib/client/dashboard_window.py +++ b/lib/client/dashboard_window.py @@ -14,7 +14,7 @@ from lib.server.server_proxy import RenderServerProxy sys.path.append("../") from lib.server.zeroconf_server import ZeroconfServer - +logger = logging.getLogger() def sort_column(tree, col, reverse=False): @@ -32,8 +32,8 @@ def make_sortable(tree): class DashboardWindow: lib_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) - image_path = os.path.join(lib_path, 'server', 'static', 'images', 'desktop.png') - default_image = Image.open(image_path) + image_path = os.path.join(lib_path, 'server', 'static', 'images') + default_image = Image.open(os.path.join(image_path, 'desktop.png')) def __init__(self): @@ -183,15 +183,22 @@ class DashboardWindow: job_id = self.selected_job_id() if job_id: # update thumb - response = self.server_proxy.request(f'job/{job_id}/thumbnail?size=big') - if response.ok: - try: - import io - image_data = response.content - image = Image.open(io.BytesIO(image_data)) - self.set_image(image) - except Exception as e: - print(f"error getting image: {e}") + def fetch_preview(): + hostname = self.server_proxy.hostname + response = self.server_proxy.request(f'job/{job_id}/thumbnail?size=big') + if response.ok: + try: + import io + image_data = response.content + image = Image.open(io.BytesIO(image_data)) + if self.server_proxy.hostname == hostname: + self.set_image(image) + except Exception as e: + logger.error(f"error fetching image: {e}") + + fetch_thread = threading.Thread(target=fetch_preview) + fetch_thread.daemon = True + fetch_thread.start() else: self.set_image(self.default_image)