Draft: make default anno style non-global

Additionally:
* Added the DimShowLine preference. Layout of the tab will be updated later.
* Improved handling of DraftAnnotationScale preference: catch division by zero and use it for the default anno style.
This commit is contained in:
Roy-043
2023-11-22 19:55:20 +01:00
committed by Yorik van Havre
parent 0fdbf9726f
commit b5adfff293
6 changed files with 81 additions and 57 deletions

View File

@@ -56,28 +56,31 @@ if App.GuiUp:
ARROW_TYPES = ["Dot", "Circle", "Arrow", "Tick", "Tick-2"]
arrowtypes = ARROW_TYPES
param_draft = App.ParamGet("User parameter:BaseApp/Preferences/Mod/Draft")
param_view = App.ParamGet("User parameter:BaseApp/Preferences/View")
ANNOTATION_STYLE = {
"ArrowSize": ("float", param_draft.GetFloat("arrowsize", 20)),
"ArrowType": ("index", param_draft.GetInt("dimsymbol", 0)),
"Decimals": ("int", param_draft.GetInt("dimPrecision", 2)),
"DimOvershoot": ("float", param_draft.GetFloat("dimovershoot", 20)),
"ExtLines": ("float", param_draft.GetFloat("extlines", 300)),
"ExtOvershoot": ("float", param_draft.GetFloat("extovershoot", 20)),
"FontName": ("font", param_draft.GetString("textfont", "Sans")),
"FontSize": ("float", param_draft.GetFloat("textheight", 100)),
"LineColor": ("color", param_view.GetUnsigned("DefaultShapeLineColor", 255)),
"LineSpacing": ("float", param_draft.GetFloat("LineSpacing", 1)),
"LineWidth": ("int", param_view.GetInt("DefaultShapeLineWidth", 1)),
"ScaleMultiplier": ("float", 1),
"ShowLine": ("bool", True),
"ShowUnit": ("bool", param_draft.GetBool("showUnit", True)),
"TextColor": ("color", param_draft.GetUnsigned("DefaultTextColor", 255)),
"TextSpacing": ("float", param_draft.GetFloat("dimspacing", 20)),
"UnitOverride": ("str", param_draft.GetString("overrideUnit", "")),
}
def get_default_annotation_style():
param_draft = App.ParamGet("User parameter:BaseApp/Preferences/Mod/Draft")
param_view = App.ParamGet("User parameter:BaseApp/Preferences/View")
anno_scale = param_draft.GetFloat("DraftAnnotationScale", 1)
scale_mult = 1 / anno_scale if anno_scale > 0 else 1
return {
"ArrowSize": ("float", param_draft.GetFloat("arrowsize", 20)),
"ArrowType": ("index", param_draft.GetInt("dimsymbol", 0)),
"Decimals": ("int", param_draft.GetInt("dimPrecision", 2)),
"DimOvershoot": ("float", param_draft.GetFloat("dimovershoot", 20)),
"ExtLines": ("float", param_draft.GetFloat("extlines", 300)),
"ExtOvershoot": ("float", param_draft.GetFloat("extovershoot", 20)),
"FontName": ("font", param_draft.GetString("textfont", "Sans")),
"FontSize": ("float", param_draft.GetFloat("textheight", 100)),
"LineColor": ("color", param_view.GetUnsigned("DefaultShapeLineColor", 255)),
"LineSpacing": ("float", param_draft.GetFloat("LineSpacing", 1)),
"LineWidth": ("int", param_view.GetInt("DefaultShapeLineWidth", 1)),
"ScaleMultiplier": ("float", scale_mult),
"ShowLine": ("bool", param_draft.GetBool("DimShowLine", True)),
"ShowUnit": ("bool", param_draft.GetBool("showUnit", True)),
"TextColor": ("color", param_draft.GetUnsigned("DefaultTextColor", 255)),
"TextSpacing": ("float", param_draft.GetFloat("dimspacing", 20)),
"UnitOverride": ("str", param_draft.GetString("overrideUnit", "")),
}
def string_encode_coin(ustr):
@@ -181,7 +184,7 @@ def get_param_type(param):
"dimovershoot", "extovershoot", "HatchPatternSize"):
return "float"
elif param in ("selectBaseObjects", "alwaysSnap", "grid",
"fillmode", "maxSnap",
"fillmode", "maxSnap", "DimShowLine",
"SvgLinesBlack", "dxfStdSize", "showSnapBar",
"hideSnapBar", "alwaysShowGrid", "renderPolylineWidth",
"showPlaneTracker", "UsePartPrimitives",