From f00b236dfb1c8521fbf4bc7e32afd2a757dcf6d4 Mon Sep 17 00:00:00 2001 From: Syres916 <46537884+Syres916@users.noreply.github.com> Date: Thu, 19 Sep 2024 08:03:33 +0100 Subject: [PATCH] =?UTF-8?q?[Draft]=20Improve=20the=20color=20activation=20?= =?UTF-8?q?and=20ability=20to=20change=E2=80=A6=20(#16603)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [Draft] Improve the color activation and ability to change size of the snap text * [Draft] Correct dimension text size calculation --- src/Mod/Draft/draftguitools/gui_trackers.py | 19 +++++++++++++++---- src/Mod/Draft/draftutils/params.py | 18 +++++++++++++++--- 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/src/Mod/Draft/draftguitools/gui_trackers.py b/src/Mod/Draft/draftguitools/gui_trackers.py index 4fe4d406c1..6da39c00be 100644 --- a/src/Mod/Draft/draftguitools/gui_trackers.py +++ b/src/Mod/Draft/draftguitools/gui_trackers.py @@ -1431,10 +1431,8 @@ class archDimTracker(Tracker): p2node = coin.SbVec3f([p2.x, p2.y, p2.z]) self.dimnode.pnts.setValues([p1node, p2node]) self.dimnode.lineWidth = 1 - color = utils.get_rgba_tuple(params.get_param("snapcolor"))[:3] - self.dimnode.textColor.setValue(coin.SbVec3f(color)) - self.dimnode.size = 11 - self.size_pixel = self.dimnode.size.getValue()*96/72 + self.setColor() + self.setSize() self.offset = 0.5 self.mode = mode self.matrix = self.transform.matrix @@ -1449,6 +1447,19 @@ class archDimTracker(Tracker): self.setString() super().__init__(children=[self.transform, self.dimnode], name="archDimTracker") + def setColor(self, color=None): + """Set the color.""" + if color is None: + self.color = utils.get_rgba_tuple(params.get_param("snapcolor"))[:3] + else: + self.color.rgb = color + self.dimnode.textColor.setValue(coin.SbVec3f(self.color)) + + def setSize(self): + """Set the text size.""" + self.dimnode.size = params.get_param_view("MarkerSize") * 2 + self.size_pixel = self.dimnode.size.getValue() * 96 / 72 + def setString(self, text=None): """Set the dim string to the given value or auto value.""" plane = self._get_wp() diff --git a/src/Mod/Draft/draftutils/params.py b/src/Mod/Draft/draftutils/params.py index cd98573d8f..9df76f5872 100644 --- a/src/Mod/Draft/draftutils/params.py +++ b/src/Mod/Draft/draftutils/params.py @@ -76,7 +76,9 @@ class ParamObserverView: if entry in ("DefaultShapeColor", "DefaultShapeLineColor", "DefaultShapeLineWidth"): _param_observer_callback_tray() return - + if entry == "MarkerSize": + _param_observer_callback_snaptextsize() + return def _param_observer_callback_tray(): if not hasattr(Gui, "draftToolBar"): @@ -144,8 +146,18 @@ def _param_observer_callback_snapstyle(): def _param_observer_callback_snapcolor(): if hasattr(Gui, "Snapper"): - for snap_track in Gui.Snapper.trackers[2]: - snap_track.setColor() + tracker_list = [2, 5, 6] + for each_tracker in tracker_list: + for snap_track in Gui.Snapper.trackers[each_tracker]: + snap_track.setColor() + + +def _param_observer_callback_snaptextsize(): + if hasattr(Gui, "Snapper"): + tracker_list = [5, 6] + for each_tracker in tracker_list: + for snap_track in Gui.Snapper.trackers[each_tracker]: + snap_track.setSize() def _param_observer_callback_svg_pattern():