From 272ab6ff7224e111bbd856515fcd8c13fe19f1cd Mon Sep 17 00:00:00 2001 From: 0penBrain <48731257+0penBrain@users.noreply.github.com> Date: Wed, 18 May 2022 08:45:02 +0200 Subject: [PATCH] Draft: fix issues with grid spacing parameter --- src/Mod/Draft/draftguitools/gui_selectplane.py | 7 +++++-- src/Mod/Draft/draftguitools/gui_trackers.py | 5 ++++- src/Mod/Draft/draftutils/utils.py | 4 ++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/Mod/Draft/draftguitools/gui_selectplane.py b/src/Mod/Draft/draftguitools/gui_selectplane.py index 22d97e722d..a35571dd74 100644 --- a/src/Mod/Draft/draftguitools/gui_selectplane.py +++ b/src/Mod/Draft/draftguitools/gui_selectplane.py @@ -96,7 +96,10 @@ class Draft_SelectPlane: # Fill values self.taskd.form.checkCenter.setChecked(self.param.GetBool("CenterPlaneOnView", False)) - q = FreeCAD.Units.Quantity(self.param.GetFloat("gridSpacing", 1.0), FreeCAD.Units.Length) + try: + q = FreeCAD.Units.Quantity(self.param.GetString("gridSpacing", "1 mm")) + except ValueError: + q = FreeCAD.Units.Quantity("1 mm") self.taskd.form.fieldGridSpacing.setText(q.UserString) self.taskd.form.fieldGridMainLine.setValue(self.param.GetInt("gridEvery", 10)) self.taskd.form.fieldGridExtension.setValue(self.param.GetInt("gridSize", 100)) @@ -477,7 +480,7 @@ class Draft_SelectPlane: except Exception: pass else: - self.param.SetFloat("gridSpacing", q.Value) + self.param.SetString("gridSpacing", q.UserString) if hasattr(FreeCADGui, "Snapper"): FreeCADGui.Snapper.setGrid() diff --git a/src/Mod/Draft/draftguitools/gui_trackers.py b/src/Mod/Draft/draftguitools/gui_trackers.py index bcb055aa5e..c710566e0c 100644 --- a/src/Mod/Draft/draftguitools/gui_trackers.py +++ b/src/Mod/Draft/draftguitools/gui_trackers.py @@ -1210,7 +1210,10 @@ class gridTracker(Tracker): def reset(self): """Reset the grid according to preferences settings.""" - self.space = Draft.getParam("gridSpacing", 1) + try: + self.space = FreeCAD.Units.Quantity(Draft.getParam("gridSpacing", "1 mm")).Value + except ValueError: + self.space = 1 self.mainlines = Draft.getParam("gridEvery", 10) self.numlines = Draft.getParam("gridSize", 100) self.update() diff --git a/src/Mod/Draft/draftutils/utils.py b/src/Mod/Draft/draftutils/utils.py index d85adadc8a..8e8aa5890a 100644 --- a/src/Mod/Draft/draftutils/utils.py +++ b/src/Mod/Draft/draftutils/utils.py @@ -172,9 +172,9 @@ def get_param_type(param): elif param in ("constructiongroupname", "textfont", "patternFile", "template", "snapModes", "FontFile", "ClonePrefix", "overrideUnit", - "labeltype") or "inCommandShortcut" in param: + "labeltype", "gridSpacing") or "inCommandShortcut" in param: return "string" - elif param in ("textheight", "tolerance", "gridSpacing", + elif param in ("textheight", "tolerance", "arrowsize", "extlines", "dimspacing", "dimovershoot", "extovershoot", "HatchPatternSize"): return "float"