This commit is contained in:
2022-09-01 13:29:57 +02:00
parent 1d818568f5
commit a54e580664
3 changed files with 121 additions and 49 deletions

View File

@@ -32,13 +32,13 @@ class MyJsonEncoder(json.JSONEncoder):
class AppCfg(QSettings):
GBL_FLD_SCR_SHOT="global/folder_screenshot"
GEO_OPT_CTR='geometry/opt_ctr'
GEO_PIX2POS='geometry/pix2pos'
GEO_BEAM_SZ="geometry/beam_size"
GEO_BEAM_POS="geometry/beam_pos"
GEO_CAM_PARAM="geometry/cam_param"
WINDOW_GEOMETRY="window/geometry"
WINDOW_SPLITTER="window/splitter"
@@ -147,19 +147,26 @@ class AppCfg(QSettings):
def setValue(self, key: str, val): #overload to debug
# only simple lists, str, int, float can not be serialized nicely
t=type(val)
if key in (AppCfg.GEO_PIX2POS):
if key in (AppCfg.GEO_PIX2POS,):
val=json.dumps(val, cls=MyJsonEncoder)
elif key in (AppCfg.GEO_CAM_PARAM,):
val=json.dumps(val, cls=MyJsonEncoder)
val=val.replace('"',"'")
elif key in (AppCfg.GEO_OPT_CTR,AppCfg.GEO_BEAM_SZ,AppCfg.GEO_BEAM_POS,):
val=val.tolist()
if type(val)==np.ndarray:
val=val.tolist()
elif type(val)==tuple:
val=list(val)
return super(AppCfg, self).setValue(key,val)
def value(self,key,*vargs,**kwargs): #overload to debug
val=super(AppCfg, self).value(key,*vargs,**kwargs)
if key in (AppCfg.GEO_PIX2POS):
if key in (AppCfg.GEO_PIX2POS,):
val=json.loads(val)#, object_hook=MyJsonDecoder)
val=(np.array(val[0]),np.array(val[1]))
if key in (AppCfg.GEO_CAM_PARAM,):
val=val.replace("'",'"')
val=json.loads(val) # , object_hook=MyJsonDecoder)
elif key in (AppCfg.GEO_BEAM_SZ,AppCfg.GEO_BEAM_POS,):
val=np.array(tuple(map(float, val)))/1000
elif key in (AppCfg.GEO_OPT_CTR):