proxy: handle property type change

This commit is contained in:
Zheng, Lei 2018-08-15 10:52:27 +08:00
parent a2a5d69836
commit 9011ed7dea

View File

@ -104,12 +104,24 @@ class ProxyType(type):
oprops = obj.PropertiesList oprops = obj.PropertiesList
for key in props: for key in props:
prop = mcs.getPropertyInfo(key) prop = mcs.getPropertyInfo(key)
if prop.Name not in oprops: value = None
obj.addProperty(prop.Type,prop.Name,prop.Group,prop.Doc) if prop.Name in oprops:
if prop.Enum: if obj.getTypeIdOfProperty(prop.Name)==prop.Type:
setattr(obj,prop.Name,prop.Enum) continue
if prop.Default is not None: value = prop.get(obj)
setattr(obj,prop.Name,prop.Default) obj.removeProperty(prop.Name)
obj.addProperty(prop.Type,prop.Name,prop.Group,prop.Doc)
if prop.Enum:
setattr(obj,prop.Name,prop.Enum)
try:
if value is not None:
setattr(obj,prop.Name,value)
continue
except Exception:
pass
if prop.Default is not None:
setattr(obj,prop.Name,prop.Default)
setattr(obj.Proxy,mcs._proxyName,cls(obj)) setattr(obj.Proxy,mcs._proxyName,cls(obj))
obj.ViewObject.signalChangeIcon() obj.ViewObject.signalChangeIcon()