diff --git a/assembly.py b/assembly.py index ed750d4..c0b31ee 100644 --- a/assembly.py +++ b/assembly.py @@ -787,6 +787,7 @@ class AsmElement(AsmBase): class ViewProviderAsmElement(ViewProviderAsmOnTop): _iconName = 'Assembly_Assembly_Element.svg' + _iconDisabledName = 'Assembly_Assembly_ElementDetached.svg' def __init__(self,vobj): vobj.ShapeColor = self.getDefaultColor() @@ -824,6 +825,14 @@ class ViewProviderAsmElement(ViewProviderAsmOnTop): from . import mover return mover.movePart() + def getIcon(self): + return utils.getIcon(self.__class__, + getattr(self.ViewObject.Object,'Detach',False)) + + def updateData(self,_obj,prop): + if prop == 'Detach': + self.ViewObject.signalChangeIcon() + class AsmElementSketch(AsmElement): def __init__(self,obj,parent): diff --git a/utils.py b/utils.py index 47704f1..067ca60 100644 --- a/utils.py +++ b/utils.py @@ -34,11 +34,15 @@ def getIcon(obj,disabled=False,path=None): if not disabled: return obj._icon if not getattr(obj,'_iconDisabled',None): - pixmap = obj._icon.pixmap(*iconSize,mode=QIcon.Disabled) - icon = QIcon(pixmapDisabled) - icon.paint(QPainter(pixmap), - 0,0,iconSize[0],iconSize[1],Qt.AlignCenter) - obj._iconDisabled = QIcon(pixmap) + name = getattr(obj,'_iconDisabledName',None) + if name: + obj._iconDisabled = QIcon(os.path.join(path,name)) + else: + pixmap = obj._icon.pixmap(*iconSize,mode=QIcon.Disabled) + icon = QIcon(pixmapDisabled) + icon.paint(QPainter(pixmap), + 0,0,iconSize[0],iconSize[1],Qt.AlignCenter) + obj._iconDisabled = QIcon(pixmap) return obj._iconDisabled def addIconToFCAD(iconFile,path=None):