add save_keys functionality to BaseViewProvider (mixin?) and fixed icon loading
This commit is contained in:
parent
417a7065de
commit
b191a28a0a
2 changed files with 22 additions and 10 deletions
|
@ -17,9 +17,7 @@ class BaseObject:
|
||||||
self.sync_from()
|
self.sync_from()
|
||||||
|
|
||||||
def execute(self, feature):
|
def execute(self, feature):
|
||||||
# TODO this might not be the right move
|
pass
|
||||||
print(self, 'BaseObject.execute')
|
|
||||||
#self.onDocumentRestored(feature)
|
|
||||||
|
|
||||||
def get_api(self):
|
def get_api(self):
|
||||||
p = self.feature
|
p = self.feature
|
||||||
|
|
|
@ -9,6 +9,8 @@ class BaseViewProvider:
|
||||||
TYPE = None
|
TYPE = None
|
||||||
EXTENSIONS = []
|
EXTENSIONS = []
|
||||||
|
|
||||||
|
save_keys = []
|
||||||
|
|
||||||
def __init__(self, viewprovider):
|
def __init__(self, viewprovider):
|
||||||
self.viewprovider = viewprovider
|
self.viewprovider = viewprovider
|
||||||
self.feature = viewprovider.Object.Proxy.feature
|
self.feature = viewprovider.Object.Proxy.feature
|
||||||
|
@ -16,6 +18,7 @@ class BaseViewProvider:
|
||||||
self.icon = ''
|
self.icon = ''
|
||||||
|
|
||||||
if 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)
|
self.icon = os.path.join(settings.ICONPATH, self.ICON)
|
||||||
|
|
||||||
viewprovider.Proxy = self
|
viewprovider.Proxy = self
|
||||||
|
@ -36,6 +39,7 @@ class BaseViewProvider:
|
||||||
Gui.Selection.clearSelection()
|
Gui.Selection.clearSelection()
|
||||||
|
|
||||||
def getIcon(self):
|
def getIcon(self):
|
||||||
|
print(self.icon)
|
||||||
return self.icon
|
return self.icon
|
||||||
|
|
||||||
def getDisplayModes(self,obj):
|
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 the name of the default display mode. It must be defined in getDisplayModes.'''
|
||||||
return 'Standard'
|
return 'Standard'
|
||||||
|
|
||||||
def __getstate__(self):
|
def dumps(self):
|
||||||
return {
|
data = [ getattr(self, 'icon') ]
|
||||||
'icon': self.icon
|
|
||||||
}
|
|
||||||
|
|
||||||
def __setstate__(self, props):
|
if len(self.save_keys) > 0:
|
||||||
for prop in props:
|
for key in self.save_keys:
|
||||||
setattr(self, prop, props[prop])
|
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])
|
||||||
|
|
Loading…
Add table
Reference in a new issue