diff --git a/freecad/kiconnect/bases/BaseObject.py b/freecad/kiconnect/bases/BaseObject.py index 922ca9e..5aa8fd5 100644 --- a/freecad/kiconnect/bases/BaseObject.py +++ b/freecad/kiconnect/bases/BaseObject.py @@ -2,6 +2,8 @@ class BaseObject: EXTENSIONS = [] TYPE = None + save_keys = [] + def __init__(self, feature): self.feature = feature @@ -62,5 +64,21 @@ class BaseObject: def sync_to(self): pass - def __getstate__(self): - return None + def dumps(self): + data = [ getattr(self, 'TYPE') ] + + if len(self.save_keys) > 0: + for key in self.save_keys: + try: + data.append(getattr(self, key)) + except Exception as e: + #XXX logging + print(e) + + return tuple(data) + + def loads(self, state): + self.Type = state[0] + + for idx, key in enumerate(self.save_keys): + setattr(self, key, state[idx + 1])