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() | ||||
| 
 | ||||
|     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 | ||||
|  |  | |||
|  | @ -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]) | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue