SubLink: remove dead properties if shape type changes

This commit is contained in:
DeepSOIC 2016-01-08 18:36:24 +03:00
parent 3365f06155
commit 045b7133f1

View File

@ -107,6 +107,9 @@ class LatticeSubLink:
App.Console.PrintError(selfobj.Name+": analyzeShape: "+err.message+"\n")
def analyzeShape(self,selfobj):
self.updatedProperties = set()
try:
sh = selfobj.Shape
self.assignProp(selfobj,"App::PropertyString","ShapeType",sh.ShapeType)
@ -164,12 +167,19 @@ class LatticeSubLink:
elif sh.ShapeType == "Vertex":
self.assignProp(selfobj,"App::PropertyVector","Position",sh.Point)
finally:
#remove properties that haven't been updated
for propname in selfobj.PropertiesList:
if selfobj.getGroupOfProperty(propname) == "info":
if not (propname in self.updatedProperties):
selfobj.removeProperty(propname)
def assignProp(self, selfobj, proptype, propname, propvalue):
if not hasattr(selfobj,propname):
selfobj.addProperty(proptype, propname,"info")
selfobj.setEditorMode(propname,1) #set read-only
setattr(selfobj,propname,propvalue)
self.updatedProperties.add(propname)
def transplant_all_attributes(self, selfobj, source, prefix):
for attrname in dir(source):