From 7497a582840fa94415b56a8b45df593328d644ca Mon Sep 17 00:00:00 2001 From: Claudine Peyrat <88194877+claudinepeyrat06@users.noreply.github.com> Date: Sat, 26 Apr 2025 08:52:31 +0200 Subject: Claudine/fix font sample (#3684) * twist monicha * Update lettering_font_sample.py * better use default value * and leave Monicha alone in this branch * ensure command and marker symbols --------- Co-authored-by: Kaalleen --- lib/marker.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'lib/marker.py') diff --git a/lib/marker.py b/lib/marker.py index 9765fbfb..a2b0965a 100644 --- a/lib/marker.py +++ b/lib/marker.py @@ -15,7 +15,10 @@ from .utils import cache, get_bundled_dir MARKER = ['anchor-line', 'pattern', 'guide-line'] +@cache def ensure_marker(svg, marker): + """Make sure a marker symbol is defined in the svg""" + marker_path = ".//*[@id='inkstitch-%s-marker']" % marker if svg.defs.find(marker_path) is None: marker = deepcopy(_marker_svg().defs.find(marker_path)) @@ -23,6 +26,18 @@ def ensure_marker(svg, marker): svg.defs.append(marker) +def ensure_marker_symbols(group): + """Make sure all marker symbols of an svg group is defined in the svg""" + + for marker in MARKER: + xpath = ".//*[contains(@style, 'marker-start:url(#inkstitch-%s-marker')]" % marker + marked_elements = group.xpath(xpath, namespaces=NSS) + if marked_elements: + ensure_marker(group.getroottree().getroot(), marker) + for element in marked_elements: + element.style['marker-start'] = "url(#inkstitch-%s-marker)" % marker + + @cache def _marker_svg(): marker_path = path.join(get_bundled_dir("symbols"), "marker.svg") -- cgit v1.2.3