kiconnect/freecad/kiconnect/bases/BaseViewProvider.py
Morgan 'ARR\!' Allen 34adb50b9f remove prints
2025-07-10 14:17:41 -07:00

68 lines
1.7 KiB
Python

import os
import FreeCADGui as Gui
from pivy import coin
from .. import settings
class BaseViewProvider:
ICON = None
TYPE = None
EXTENSIONS = []
save_keys = []
def __init__(self, viewprovider):
self.viewprovider = viewprovider
self.feature = viewprovider.Object.Proxy.feature
self.icon = ''
if self.ICON:
self.icon = os.path.join(settings.ICONPATH, self.ICON)
viewprovider.Proxy = self
self.setup_extensions()
def setup_extensions(self):
if hasattr(self, 'EXTENSIONS'):
for ext in self.EXTENSIONS:
self.feature.addExtension(ext)
def attach(self, vobj):
self.standard = coin.SoGroup()
vobj.addDisplayMode(self.standard, "Standard")
def doubleClicked(self, vobj):
Gui.activateWorkbench("KiConnect")
Gui.Selection.clearSelection()
def getIcon(self):
return self.icon
def getDisplayModes(self,obj):
'''Return a list of display modes.'''
return [ 'Standard' ]
def getDefaultDisplayMode(self):
'''Return the name of the default display mode. It must be defined in getDisplayModes.'''
return 'Standard'
def dumps(self):
data = [ getattr(self, 'icon') ]
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])