From 9011ed7dea1cd43bc9f86afb68e624e73cad17ae Mon Sep 17 00:00:00 2001 From: "Zheng, Lei" Date: Wed, 15 Aug 2018 10:52:27 +0800 Subject: [PATCH] proxy: handle property type change --- proxy.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/proxy.py b/proxy.py index f282677..2de3db0 100644 --- a/proxy.py +++ b/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()