move TYPE/ICON declarations to Object/ViewObject classes

This commit is contained in:
Morgan 'ARR\!' Allen 2025-04-07 17:10:25 -07:00
parent a0941452ae
commit e5ec81b2dd
4 changed files with 30 additions and 13 deletions

View file

@ -7,6 +7,8 @@ from . import settings
from .bases import BaseObject, BaseViewProvider
class APIObject(BaseObject):
TYPE = 'KiConnect::API'
def __init__(self, parent, feature):
super(APIObject, self).__init__(parent, feature)
@ -19,9 +21,6 @@ class APIObject(BaseObject):
class APIViewProvider(BaseViewProvider):
pass
class API():
ICON = 'icon_footprint_browser.svg'
TYPE = 'KiConnect::API'
def __init__(self):
self.feature = App.ActiveDocument.addObject('App::FeaturePython', 'API')
@ -39,6 +38,25 @@ class API():
def ping_connection(self):
try:
self.kicad.ping()
self._connected = True
except:
self._connected = False
feature.Connected = True
except Exception as e:
print(e)
feature.Connected = False
pass
class APIViewProvider(BaseViewProvider):
ICON = 'icon_footprint_browser.svg'
TYPE = 'KiConnect::API'
def __init__(self, parent, viewprovider):
super(APIViewProvider, self).__init__(parent, viewprovider)
class API():
def __init__(self):
self.feature = App.ActiveDocument.addObject('App::FeaturePython', 'API')
self.object = APIObject(self, self.feature)
self.viewobject = APIViewProvider(self, self.feature.ViewObject)

View file

@ -5,6 +5,10 @@ from pivy import coin
from .. import settings
class BaseViewProvider:
ICON = None
TYPE = None
VIEWPROVIDER_EXTENSIONS = []
def __init__(self, parent, viewprovider):
self.parent = parent
self.viewprovider = viewprovider
@ -13,11 +17,6 @@ class BaseViewProvider:
viewprovider.Proxy = self
self.Type = ''
if hasattr(self, 'TYPE'):
self.Type = self.TYPE
self.setup_extensions()
def setup_extensions(self):

View file

@ -16,7 +16,7 @@ materials_manager = Materials.MaterialManager()
gold = materials_manager.Materials[gold_mat_uuid]
class CopperObject(BaseObject):
pass
TYPE = 'KiConnect::Copper'
class CopperViewProvider(BaseViewProvider):
ICON = 'show_all_copper_layers.svg'

View file

@ -13,7 +13,7 @@ from . import settings
from .bases import BaseObject, BaseViewProvider
class PartsObject(BaseObject):
pass
TYPE = 'KiConnect::Parts'
class PartsViewProvider(BaseViewProvider):
ICON = 'icon_footprint_browser.svg'