From 903f724c888aea968e85b1e3f2817c66e64d7a02 Mon Sep 17 00:00:00 2001 From: George Steel Date: Sun, 11 Dec 2022 22:18:09 -0500 Subject: refine GUI for text-based random_seed parameter and add global param. --- lib/elements/element.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'lib/elements/element.py') diff --git a/lib/elements/element.py b/lib/elements/element.py index 84141d4f..b8b25b27 100644 --- a/lib/elements/element.py +++ b/lib/elements/element.py @@ -250,6 +250,22 @@ class EmbroideryElement(object): def force_lock_stitches(self): return self.get_boolean_param('force_lock_stitches', False) + @property + @param('random_seed', + _('Random seed'), + tooltip=_('Use a specific seed for randomized attributes. Uses the element ID if empty.'), + type='random_seed', + default='', + sort_index=100) + @cache + def random_seed(self) -> str: + seed = self.get_param('random_seed') + if not seed: + seed = self.node.get_id() or '' + # TODO(#1696): When inplementing grouped clones, join this with the IDs of any shadow roots, + # letting each instance without a specified seed get a different default. + return seed + @property def path(self): # A CSP is a "cubic superpath". -- cgit v1.2.3 From 54b0a3d6bf77b4c7b23f299ae1600399b80092df Mon Sep 17 00:00:00 2001 From: George Steel Date: Sun, 11 Dec 2022 22:29:29 -0500 Subject: add comment on set_param --- lib/elements/element.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'lib/elements/element.py') diff --git a/lib/elements/element.py b/lib/elements/element.py index b8b25b27..bf87d517 100644 --- a/lib/elements/element.py +++ b/lib/elements/element.py @@ -163,6 +163,8 @@ class EmbroideryElement(object): return self.get_split_float_param(param, default) * PIXELS_PER_MM def set_param(self, name, value): + # Sets a param on the node backing this element. Used by params dialog. + # After calling, this element is invalid due to caching and must be re-created to use the new value. param = INKSTITCH_ATTRIBS[name] self.node.set(param, str(value)) -- cgit v1.2.3 From b63f19b2d0747769c60c8a2a52489ee30fa02a07 Mon Sep 17 00:00:00 2001 From: George Steel Date: Mon, 26 Dec 2022 20:10:10 -0500 Subject: fix seed param and error messages --- lib/elements/element.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/elements/element.py') diff --git a/lib/elements/element.py b/lib/elements/element.py index e7eb4dea..75f9fc10 100644 --- a/lib/elements/element.py +++ b/lib/elements/element.py @@ -261,7 +261,7 @@ class EmbroideryElement(object): sort_index=100) @cache def random_seed(self) -> str: - seed = self.get_param('random_seed') + seed = self.get_param('random_seed', '') if not seed: seed = self.node.get_id() or '' # TODO(#1696): When inplementing grouped clones, join this with the IDs of any shadow roots, -- cgit v1.2.3