diff --git a/freecad/kiconnect/bases/BaseObject.py b/freecad/kiconnect/bases/BaseObject.py index 5aa8fd5..7eb5766 100644 --- a/freecad/kiconnect/bases/BaseObject.py +++ b/freecad/kiconnect/bases/BaseObject.py @@ -17,9 +17,7 @@ class BaseObject: self.sync_from() def execute(self, feature): - # TODO this might not be the right move - print(self, 'BaseObject.execute') - #self.onDocumentRestored(feature) + pass def get_api(self): p = self.feature diff --git a/freecad/kiconnect/bases/BaseViewProvider.py b/freecad/kiconnect/bases/BaseViewProvider.py index 18affc4..4d5dfab 100644 --- a/freecad/kiconnect/bases/BaseViewProvider.py +++ b/freecad/kiconnect/bases/BaseViewProvider.py @@ -9,6 +9,8 @@ class BaseViewProvider: TYPE = None EXTENSIONS = [] + save_keys = [] + def __init__(self, viewprovider): self.viewprovider = viewprovider self.feature = viewprovider.Object.Proxy.feature @@ -16,6 +18,7 @@ class BaseViewProvider: self.icon = '' if self.ICON: + print('>', settings.ICONPATH, self.ICON, os.path.join(settings.ICONPATH, self.ICON)) self.icon = os.path.join(settings.ICONPATH, self.ICON) viewprovider.Proxy = self @@ -36,6 +39,7 @@ class BaseViewProvider: Gui.Selection.clearSelection() def getIcon(self): + print(self.icon) return self.icon def getDisplayModes(self,obj): @@ -46,11 +50,21 @@ class BaseViewProvider: '''Return the name of the default display mode. It must be defined in getDisplayModes.''' return 'Standard' - def __getstate__(self): - return { - 'icon': self.icon - } + def dumps(self): + data = [ getattr(self, 'icon') ] - def __setstate__(self, props): - for prop in props: - setattr(self, prop, props[prop]) + 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.icon = state[0] + + for idx, key in enumerate(self.save_keys): + setattr(self, key, state[idx + 1])