diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index 6546289a1..9fce6f8c6 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -1490,7 +1490,10 @@ class _ViewProviderDraft: def __init__(self, obj): obj.Proxy = self + obj.addProperty("App::PropertyEnumeration","DrawStyle","Base", + "The line style of this object") self.Object = obj.Object + obj.DrawStyle = ["solid","dashed","dotted","dashdot"] def attach(self, obj): self.Object = obj.Object @@ -1507,8 +1510,21 @@ class _ViewProviderDraft: return mode def onChanged(self, vp, prop): + if prop == "DrawStyle": + self.setStyle(vp) return + def setStyle(self,vobj): + ds = vobj.RootNode.getChild(2).getChild(0).getChild(0).getChild(1) + if vobj.DrawStyle == "solid": + ds.linePattern = 0xffff + elif vobj.DrawStyle == "dotted": + ds.linePattern = 0x0f0f + elif vobj.DrawStyle == "dashed": + ds.linePattern = 0xf00f + elif vobj.DrawStyle == "dashdot": + ds.linePattern = 0xff88 + def __getstate__(self): return None @@ -2100,6 +2116,8 @@ class _ViewProviderRectangle(_ViewProviderDraft): if self.texture: r.removeChild(self.texture) self.texture = None + elif prop == "DrawStyle": + self.setStyle(vp) return class _Circle: @@ -2266,6 +2284,8 @@ class _ViewProviderWire(_ViewProviderDraft): rn.addChild(self.pt) else: rn.removeChild(self.pt) + elif prop == "DrawStyle": + self.setStyle(vp) return def claimChildren(self): @@ -2426,6 +2446,8 @@ class _ViewProviderBSpline(_ViewProviderDraft): rn.addChild(self.pt) else: rn.removeChild(self.pt) + elif prop == "DrawStyle": + self.setStyle(vp) return class _Block: