77
88import structlog
99import ujson
10- from PIL import Image
10+ from PIL import (
11+ Image ,
12+ ImageQt ,
13+ )
14+ from PySide6 .QtGui import QPixmap
1115
1216logger = structlog .get_logger (__name__ )
1317
@@ -25,7 +29,10 @@ def __init__(self) -> None:
2529 if not ResourceManager ._initialized :
2630 with open (Path (__file__ ).parent / "resources.json" , encoding = "utf-8" ) as f :
2731 ResourceManager ._map = ujson .load (f )
28- logger .info ("resources registered" , count = len (ResourceManager ._map .items ()))
32+ logger .info (
33+ "[ResourceManager] Resources Registered:" ,
34+ count = len (ResourceManager ._map .items ()),
35+ )
2936 ResourceManager ._initialized = True
3037
3138 @staticmethod
@@ -76,12 +83,15 @@ def get(self, id: str) -> Any:
7683 elif res and res .get ("mode" ) == "pil" :
7784 data = Image .open (ResourceManager ._res_folder / "resources" / res .get ("path" ))
7885 return data
79- elif res .get ("mode" ) in ["qt" ]:
80- # TODO: Qt resource loading logic
81- pass
86+ elif res .get ("mode" ) in ["qpixmap" ]:
87+ data = Image .open (ResourceManager ._res_folder / "resources" / res .get ("path" ))
88+ qim = ImageQt .ImageQt (data )
89+ pixmap = QPixmap .fromImage (qim )
90+ ResourceManager ._cache [id ] = pixmap
91+ return pixmap
8292 except FileNotFoundError :
8393 path : Path = ResourceManager ._res_folder / "resources" / res .get ("path" )
84- logger .error ("[ResourceManager][ERROR]: Could not find resource: " , path )
94+ logger .error ("[ResourceManager][ERROR]: Could not find resource: " , path = path )
8595 return None
8696
8797 def __getattr__ (self , __name : str ) -> Any :
0 commit comments