Draft: Update gui_setstyle.py and gui_utils.py (#8195)

This commit is contained in:
Roy-043
2023-01-14 20:07:59 +01:00
committed by GitHub
parent 27aa13dd00
commit b3189ccf2d
2 changed files with 42 additions and 68 deletions

View File

@@ -191,80 +191,59 @@ class Draft_SetStyle_TaskPanel:
def onApplyStyle(self):
for obj in FreeCADGui.Selection.getSelection():
vobj = obj.ViewObject
if vobj:
if "LineColor" in vobj.PropertiesList:
vobj.LineColor = self.form.LineColor.property("color").getRgbF()
if "LineWidth" in vobj.PropertiesList:
vobj.LineWidth = self.form.LineWidth.value()
if "PointColor" in vobj.PropertiesList:
vobj.PointColor = self.form.LineColor.property("color").getRgbF()
if "PointSize" in vobj.PropertiesList:
vobj.PointSize = self.form.LineWidth.value()
if "DrawStyle" in vobj.PropertiesList:
vobj.DrawStyle = ["Solid","Dashed","Dotted","Dashdot"][self.form.DrawStyle.currentIndex()]
if "DisplayMode" in vobj.PropertiesList:
dmodes = ["Flat Lines","Wireframe","Shaded","Points"]
dm = dmodes[self.form.DisplayMode.currentIndex()]
if dm in vobj.getEnumerationsOfProperty("DisplayMode"):
vobj.DisplayMode = dm
if "ShapeColor" in vobj.PropertiesList:
vobj.ShapeColor = self.form.ShapeColor.property("color").getRgbF()
if "Transparency" in vobj.PropertiesList:
vobj.Transparency = self.form.Transparency.value()
if "FontName" in vobj.PropertiesList:
vobj.FontName = self.form.TextFont.currentFont().family()
if "FontSize" in vobj.PropertiesList:
vobj.FontSize = FreeCAD.Units.Quantity(self.form.TextSize.text()).Value
if "TextColor" in vobj.PropertiesList:
vobj.TextColor = self.form.TextColor.property("color").getRgbF()
if "ArrowType" in vobj.PropertiesList:
vobj.ArrowType = ["Dot", "Circle", "Arrow", "Tick", "Tick-2"][self.form.ArrowStyle.currentIndex()]
if "ArrowSize" in vobj.PropertiesList:
vobj.ArrowSize = FreeCAD.Units.Quantity(self.form.ArrowSize.text()).Value
if "ShowUnit" in vobj.PropertiesList:
vobj.ShowUnit = self.form.ShowUnit.isChecked()
if "UnitOverride" in vobj.PropertiesList:
vobj.UnitOverride = self.form.UnitOverride.text()
if "TextSpacing" in vobj.PropertiesList:
vobj.TextSpacing = FreeCAD.Units.Quantity(self.form.TextSpacing.text()).Value
if "LineSpacing" in vobj.PropertiesList:
vobj.LineSpacing = self.form.LineSpacing.value()
self.apply_style_to_obj(obj)
def onApplyAnnot(self, index):
def onApplyAnnot(self):
import Draft
from draftutils import utils
objs = FreeCAD.ActiveDocument.Objects
dims = Draft.getObjectsOfType(objs, "LinearDimension")
dims += Draft.getObjectsOfType(objs, "Dimension")
dims += Draft.getObjectsOfType(objs, "AngularDimension")
texts = Draft.getObjectsOfType(objs, "Text")
texts += Draft.getObjectsOfType(objs, "DraftText")
labels = Draft.getObjectsOfType(objs, "Label")
typs = ["Dimension", "LinearDimension", "AngularDimension", "Text", "DraftText", "Label"]
for obj in objs:
if utils.get_type(obj) in typs:
self.apply_style_to_obj(obj)
for obj in dims + texts + labels:
vobj = obj.ViewObject
def apply_style_to_obj(self, obj):
vobj = obj.ViewObject
if not vobj:
return
properties = vobj.PropertiesList
if "LineColor" in properties:
vobj.LineColor = self.form.LineColor.property("color").getRgbF()
if "LineWidth" in properties:
vobj.LineWidth = self.form.LineWidth.value()
if "PointColor" in properties:
vobj.PointColor = self.form.LineColor.property("color").getRgbF()
if "PointSize" in properties:
vobj.PointSize = self.form.LineWidth.value()
if "DrawStyle" in properties:
vobj.DrawStyle = ["Solid", "Dashed", "Dotted", "Dashdot"][self.form.DrawStyle.currentIndex()]
if "DisplayMode" in properties:
dmodes = ["Flat Lines", "Wireframe", "Shaded", "Points"]
dm = dmodes[self.form.DisplayMode.currentIndex()]
if dm in vobj.getEnumerationsOfProperty("DisplayMode"):
vobj.DisplayMode = dm
if "ShapeColor" in properties:
vobj.ShapeColor = self.form.ShapeColor.property("color").getRgbF()
if "Transparency" in properties:
vobj.Transparency = self.form.Transparency.value()
if "FontName" in properties:
vobj.FontName = self.form.TextFont.currentFont().family()
if "FontSize" in properties:
vobj.FontSize = FreeCAD.Units.Quantity(self.form.TextSize.text()).Value
vobj.LineColor = self.form.TextColor.property("color").getRgbF()
if "TextColor" in properties:
vobj.TextColor = self.form.TextColor.property("color").getRgbF()
for obj in dims:
vobj = obj.ViewObject
if "ArrowType" in properties:
vobj.ArrowType = ["Dot", "Circle", "Arrow", "Tick", "Tick-2"][self.form.ArrowStyle.currentIndex()]
if "ArrowSize" in properties:
vobj.ArrowSize = FreeCAD.Units.Quantity(self.form.ArrowSize.text()).Value
if "ShowUnit" in properties:
vobj.ShowUnit = self.form.ShowUnit.isChecked()
if "UnitOverride" in properties:
vobj.UnitOverride = self.form.UnitOverride.text()
if "TextSpacing" in properties:
vobj.TextSpacing = FreeCAD.Units.Quantity(self.form.TextSpacing.text()).Value
for obj in texts:
vobj = obj.ViewObject
vobj.LineSpacing = self.form.LineSpacing.value()
for obj in labels:
vobj = obj.ViewObject
vobj.ArrowType = ["Dot", "Circle", "Arrow", "Tick", "Tick-2"][self.form.ArrowStyle.currentIndex()]
vobj.ArrowSize = FreeCAD.Units.Quantity(self.form.ArrowSize.text()).Value
if "LineSpacing" in properties:
vobj.LineSpacing = self.form.LineSpacing.value()
def onLoadStyle(self,index):

View File

@@ -405,12 +405,7 @@ def format_object(target, origin=None):
if "PointColor" in obrep.PropertiesList:
obrep.PointColor = lcol
if "LineColor" in obrep.PropertiesList:
if hasattr(obrep,"FontName"):
# Do not use lcol for annotations.
# ToDo: add line color preference for annotations.
obrep.LineColor = tcol
else:
obrep.LineColor = lcol
obrep.LineColor = lcol
if "ShapeColor" in obrep.PropertiesList:
obrep.ShapeColor = fcol
else: