From ccdbf99341866ab65e3ee6e56c9208940892eea8 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 1/2] 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"
From 4474db7f50d7aa4f30ef5b7dbd8dc1c61e91bde6 Mon Sep 17 00:00:00 2001
From: 0penBrain <48731257+0penBrain@users.noreply.github.com>
Date: Wed, 25 May 2022 09:54:34 +0200
Subject: [PATCH 2/2] Draft: force length unit in grid spacing in SelectPlane
---
src/Mod/Draft/Resources/ui/TaskSelectPlane.ui | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Mod/Draft/Resources/ui/TaskSelectPlane.ui b/src/Mod/Draft/Resources/ui/TaskSelectPlane.ui
index 2d70caeff4..d515617690 100644
--- a/src/Mod/Draft/Resources/ui/TaskSelectPlane.ui
+++ b/src/Mod/Draft/Resources/ui/TaskSelectPlane.ui
@@ -171,7 +171,7 @@ will be moved to the center of the view
The spacing between the smaller grid lines
-
+ mm