proxy: handle property type change
This commit is contained in:
parent
a2a5d69836
commit
9011ed7dea
24
proxy.py
24
proxy.py
|
@ -104,12 +104,24 @@ class ProxyType(type):
|
|||
oprops = obj.PropertiesList
|
||||
for key in props:
|
||||
prop = mcs.getPropertyInfo(key)
|
||||
if prop.Name not in oprops:
|
||||
obj.addProperty(prop.Type,prop.Name,prop.Group,prop.Doc)
|
||||
if prop.Enum:
|
||||
setattr(obj,prop.Name,prop.Enum)
|
||||
if prop.Default is not None:
|
||||
setattr(obj,prop.Name,prop.Default)
|
||||
value = None
|
||||
if prop.Name in oprops:
|
||||
if obj.getTypeIdOfProperty(prop.Name)==prop.Type:
|
||||
continue
|
||||
value = prop.get(obj)
|
||||
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))
|
||||
obj.ViewObject.signalChangeIcon()
|
||||
|
|
Loading…
Reference in New Issue
Block a user