Draft: Introduce DefaultAnnoScaleMultiplier parameter
This parameter replaces DraftAnnotationScale. The parameter can be changed in the preferences and with the Draft_SetStyle command.
This commit is contained in:
@@ -126,7 +126,7 @@ def label_to_scale(label):
|
||||
elif "=" in label:
|
||||
f = label.split("=")
|
||||
else:
|
||||
return
|
||||
return None
|
||||
if len(f) == 2:
|
||||
try:
|
||||
num = App.Units.Quantity(f[0]).Value
|
||||
@@ -161,14 +161,16 @@ def _set_scale(action):
|
||||
scale = label_to_scale(custom_scale[0])
|
||||
if scale is None:
|
||||
return
|
||||
param.SetFloat("DraftAnnotationScale", scale)
|
||||
if scale <= 0:
|
||||
return
|
||||
param.SetFloat("DefaultAnnoScaleMultiplier", 1 / scale)
|
||||
cs = scale_to_label(scale)
|
||||
scale_widget.scaleLabel.setText(cs)
|
||||
else:
|
||||
text_scale = action.text()
|
||||
scale_widget.scaleLabel.setText(text_scale)
|
||||
scale = label_to_scale(text_scale)
|
||||
param.SetFloat("DraftAnnotationScale", scale)
|
||||
param.SetFloat("DefaultAnnoScaleMultiplier", 1 / scale)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# MAIN DRAFT STATUSBAR FUNCTIONS
|
||||
@@ -190,7 +192,8 @@ def init_draft_statusbar_scale():
|
||||
draft_scales = get_scales()
|
||||
|
||||
# get draft annotation scale
|
||||
draft_annotation_scale = param.GetFloat("DraftAnnotationScale", 1.0)
|
||||
scale_multiplier = param.GetFloat("DefaultAnnoScaleMultiplier", 1)
|
||||
annotation_scale = 1 / scale_multiplier if scale_multiplier > 0 else 1
|
||||
|
||||
# initializes scale widget
|
||||
scale_widget.draft_scales = draft_scales
|
||||
@@ -205,7 +208,7 @@ def init_draft_statusbar_scale():
|
||||
menu.addAction(a)
|
||||
scaleLabel.setMenu(menu)
|
||||
gUnits.triggered.connect(_set_scale)
|
||||
scale_label = scale_to_label(draft_annotation_scale)
|
||||
scale_label = scale_to_label(annotation_scale)
|
||||
scaleLabel.setText(scale_label)
|
||||
scaleLabel.setToolTip(translate("draft",
|
||||
"Set the scale used by draft annotation tools"))
|
||||
|
||||
@@ -35,38 +35,41 @@ from draftviewproviders import view_base
|
||||
|
||||
class ParamObserverDraft:
|
||||
|
||||
def slotParamChanged(self, param, tp, name, value):
|
||||
if name == "textheight":
|
||||
def slotParamChanged(self, param_grp, typ, entry, value):
|
||||
if entry == "textheight":
|
||||
_param_observer_callback_tray()
|
||||
return
|
||||
if name in ("gridBorder", "gridShowHuman", "coloredGridAxes", "gridEvery",
|
||||
if entry in ("gridBorder", "gridShowHuman", "coloredGridAxes", "gridEvery",
|
||||
"gridSpacing", "gridSize", "gridTransparency", "gridColor"):
|
||||
_param_observer_callback_grid()
|
||||
return
|
||||
if name == "SnapBarShowOnlyDuringCommands":
|
||||
if entry == "DefaultAnnoScaleMultiplier":
|
||||
_param_observer_callback_scalemultiplier(value)
|
||||
return
|
||||
if entry == "SnapBarShowOnlyDuringCommands":
|
||||
_param_observer_callback_snapbar(value)
|
||||
return
|
||||
if name == "DisplayStatusbarSnapWidget":
|
||||
if entry == "DisplayStatusbarSnapWidget":
|
||||
_param_observer_callback_snapwidget()
|
||||
return
|
||||
if name == "DisplayStatusbarScaleWidget":
|
||||
if entry == "DisplayStatusbarScaleWidget":
|
||||
_param_observer_callback_scalewidget()
|
||||
return
|
||||
if name == "snapStyle":
|
||||
if entry == "snapStyle":
|
||||
_param_observer_callback_snapstyle()
|
||||
return
|
||||
if name == "snapcolor":
|
||||
if entry == "snapcolor":
|
||||
_param_observer_callback_snapcolor()
|
||||
return
|
||||
if name == "patternFile":
|
||||
if entry == "patternFile":
|
||||
_param_observer_callback_svg_pattern()
|
||||
return
|
||||
|
||||
|
||||
class ParamObserverView:
|
||||
|
||||
def slotParamChanged(self, param, tp, name, value):
|
||||
if name in ("DefaultShapeColor", "DefaultShapeLineColor", "DefaultShapeLineWidth"):
|
||||
def slotParamChanged(self, param_grp, typ, entry, value):
|
||||
if entry in ("DefaultShapeColor", "DefaultShapeLineColor", "DefaultShapeLineWidth"):
|
||||
_param_observer_callback_tray()
|
||||
return
|
||||
|
||||
@@ -80,6 +83,18 @@ def _param_observer_callback_tray():
|
||||
Gui.draftToolBar.setStyleButton()
|
||||
|
||||
|
||||
def _param_observer_callback_scalemultiplier(value):
|
||||
value = float(value) # value is a string
|
||||
if value <= 0:
|
||||
return
|
||||
mw = Gui.getMainWindow()
|
||||
sb = mw.statusBar()
|
||||
scale_widget = sb.findChild(QtGui.QToolBar,"draft_scale_widget")
|
||||
if scale_widget is not None:
|
||||
scale_label = init_draft_statusbar.scale_to_label(1 / value)
|
||||
scale_widget.scaleLabel.setText(scale_label)
|
||||
|
||||
|
||||
def _param_observer_callback_grid():
|
||||
if hasattr(App, "draft_working_planes") and hasattr(Gui, "Snapper"):
|
||||
try:
|
||||
@@ -98,13 +113,12 @@ def _param_observer_callback_grid():
|
||||
|
||||
|
||||
def _param_observer_callback_snapbar(value):
|
||||
# value is a string: "0" or "1"
|
||||
if Gui.activeWorkbench().name() not in ("DraftWorkbench", "ArchWorkbench", "BIMWorkbench"):
|
||||
return
|
||||
if hasattr(Gui, "Snapper"):
|
||||
toolbar = Gui.Snapper.get_snap_toolbar()
|
||||
if toolbar is not None:
|
||||
toolbar.setVisible(value == "0")
|
||||
toolbar.setVisible(value == "0") # value is a string: "0" or "1"
|
||||
|
||||
|
||||
def _param_observer_callback_snapwidget():
|
||||
@@ -183,9 +197,9 @@ def _param_observer_start():
|
||||
_param_observer_start_view()
|
||||
|
||||
|
||||
def _param_observer_start_draft(param = App.ParamGet("User parameter:BaseApp/Preferences/Mod/Draft")):
|
||||
param.AttachManager(ParamObserverDraft())
|
||||
def _param_observer_start_draft(param_grp = App.ParamGet("User parameter:BaseApp/Preferences/Mod/Draft")):
|
||||
param_grp.AttachManager(ParamObserverDraft())
|
||||
|
||||
|
||||
def _param_observer_start_view(param = App.ParamGet("User parameter:BaseApp/Preferences/View")):
|
||||
param.AttachManager(ParamObserverView())
|
||||
def _param_observer_start_view(param_grp = App.ParamGet("User parameter:BaseApp/Preferences/View")):
|
||||
param_grp.AttachManager(ParamObserverView())
|
||||
|
||||
@@ -62,8 +62,6 @@ arrowtypes = ARROW_TYPES
|
||||
|
||||
def get_default_annotation_style():
|
||||
param = App.ParamGet("User parameter:BaseApp/Preferences/Mod/Draft")
|
||||
anno_scale = param.GetFloat("DraftAnnotationScale", 1)
|
||||
scale_mult = 1 / anno_scale if anno_scale > 0 else 1
|
||||
arrow_type_index = param.GetInt("dimsymbol", 0)
|
||||
return {
|
||||
"ArrowSize": ("float", param.GetFloat("arrowsize", 1)),
|
||||
@@ -77,7 +75,7 @@ def get_default_annotation_style():
|
||||
"LineColor": ("color", param.GetUnsigned("DefaultAnnoLineColor", 255)),
|
||||
"LineSpacing": ("float", param.GetFloat("LineSpacing", 1)),
|
||||
"LineWidth": ("int", param.GetInt("DefaultAnnoLineWidth", 2)),
|
||||
"ScaleMultiplier": ("float", scale_mult),
|
||||
"ScaleMultiplier": ("float", param.GetFloat("DefaultAnnoScaleMultiplier", 1)),
|
||||
"ShowLine": ("bool", param.GetBool("DimShowLine", True)),
|
||||
"ShowUnit": ("bool", param.GetBool("showUnit", True)),
|
||||
"TextColor": ("color", param.GetUnsigned("DefaultTextColor", 255)),
|
||||
@@ -205,7 +203,7 @@ def get_param_type(param):
|
||||
return "string"
|
||||
elif param in ("textheight", "arrowsize", "extlines", "dimspacing",
|
||||
"dimovershoot", "extovershoot", "HatchPatternSize",
|
||||
"LineSpacing"):
|
||||
"LineSpacing", "DefaultAnnoScaleMultiplier"):
|
||||
return "float"
|
||||
elif param in ("selectBaseObjects", "alwaysSnap", "grid",
|
||||
"fillmode", "DimShowLine",
|
||||
|
||||
Reference in New Issue
Block a user