From b009a5355e7ceea477ea55eacba2149a9398b37e Mon Sep 17 00:00:00 2001 From: Kaalleen <36401965+kaalleen@users.noreply.github.com> Date: Sat, 19 Apr 2025 07:11:57 +0200 Subject: duplicate-consistant autoroute element selection (#3638) --- lib/extensions/redwork.py | 3 +++ lib/extensions/select_elements.py | 15 ++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) (limited to 'lib/extensions') diff --git a/lib/extensions/redwork.py b/lib/extensions/redwork.py index ee0ad141..53c6131c 100644 --- a/lib/extensions/redwork.py +++ b/lib/extensions/redwork.py @@ -162,9 +162,11 @@ class Redwork(InkstitchExtension): def _insert_element(self, index, path, group, style, transform, redwork=True): if redwork: path_id = self.svg.get_unique_id('redwork_') + path_type = 'redwork-top' label = _("Redwork") + f' {index}' else: path_id = self.svg.get_unique_id('underpath_') + path_type = 'redwork-underpath' label = _("Redwork Underpath") + f' {index}' element = PathElement( @@ -177,6 +179,7 @@ class Redwork(InkstitchExtension): element.label = label element.set('inkstitch:running_stitch_length_mm', self.options.redwork_running_stitch_length_mm) + element.set('inkstitch:path_type', path_type) if redwork: element.set('inkstitch:bean_stitch_repeats', self.options.redwork_bean_stitch_repeats) diff --git a/lib/extensions/select_elements.py b/lib/extensions/select_elements.py index 2b3cb142..be073ec6 100644 --- a/lib/extensions/select_elements.py +++ b/lib/extensions/select_elements.py @@ -163,9 +163,18 @@ class SelectElements(InkstitchExtension): element_id = element.node.get_id() or '' conditions = { 'all': True, - 'autorun-top': element_id.startswith('autorun') or element_id.startswith('redwork'), - 'autorun-underpath': element_id.startswith('underpath'), - 'autosatin-underpath': element_id.startswith('autosatinrun')} + 'autorun-top': ( + element_id.startswith('autorun') or # legacy search, doesn't work when paths have been duplicated within Inkscape + element_id.startswith('redwork') or # legacy search + element.node.get('inkstitch:path_type') == 'redwork-top' or + element.node.get('inkstitch:path_type') == 'autorun-top'), + 'autorun-underpath': ( + element_id.startswith('underpath') or # legacy search + element.node.get('inkstitch:path_type') == 'redwork-underpath' or + element.node.get('inkstitch:path_type') == 'autorun-underpath'), + 'autosatin-underpath': ( + element_id.startswith('autosatinrun') or # legacy search + element.node.get('inkstitch:path_type') == 'satin-underpath')} return conditions[self.options.running_stitch_condition] def _bean_stitch_repeats(self, element): -- cgit v1.2.3