From 42c769d635935ef824ca4ddd06f4f2140aa78a05 Mon Sep 17 00:00:00 2001 From: sliptonic Date: Wed, 17 Feb 2021 09:19:00 -0600 Subject: [PATCH] fix #4572 --- src/Mod/Path/PathScripts/PathPropertyBag.py | 16 ++++++++++++++++ src/Mod/Path/PathScripts/PathPropertyBagGui.py | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/Mod/Path/PathScripts/PathPropertyBag.py b/src/Mod/Path/PathScripts/PathPropertyBag.py index 2b21be2c6b..eefee2ed30 100644 --- a/src/Mod/Path/PathScripts/PathPropertyBag.py +++ b/src/Mod/Path/PathScripts/PathPropertyBag.py @@ -67,6 +67,18 @@ class PropertyBag(object): def __setstate__(self, state): return None + def __sanitizePropertyName(self, name): + if(len(name) == 0): + return + clean = name[0].lower() + for i in range(1, len(name)): + if (name[i] == ' '): + clean += name[i + 1].upper() + i += 1 + elif(name[i - 1] != ' '): + clean += name[i] + return clean + def onDocumentRestored(self, obj): self.obj = obj obj.setEditorMode(self.CustomPropertyGroups, 2) # hide @@ -82,10 +94,14 @@ class PropertyBag(object): if group is None: group = self.CustomPropertyGroupDefault groups = self.obj.CustomPropertyGroups + + name = self.__sanitizePropertyName(name) + if not group in groups: groups.append(group) self.obj.CustomPropertyGroups = groups self.obj.addProperty(propertyType, name, group, desc) + return name def refreshCustomPropertyGroups(self): '''refreshCustomPropertyGroups() ... removes empty property groups, should be called after deleting properties.''' diff --git a/src/Mod/Path/PathScripts/PathPropertyBagGui.py b/src/Mod/Path/PathScripts/PathPropertyBagGui.py index 6140e3540f..a0e1b03fb4 100644 --- a/src/Mod/Path/PathScripts/PathPropertyBagGui.py +++ b/src/Mod/Path/PathScripts/PathPropertyBagGui.py @@ -299,10 +299,10 @@ class TaskPanel(object): typ = dialog.propertyType() grp = dialog.propertyGroup() info = dialog.propertyInfo() - self.obj.Proxy.addCustomProperty(typ, name, grp, info) + propname = self.obj.Proxy.addCustomProperty(typ, name, grp, info) if dialog.propertyIsEnumeration(): setattr(self.obj, name, dialog.propertyEnumerations()) - return (name, info) + return (propname, info) def propertyAdd(self): PathLog.track()