diff options
| author | Kaalleen <36401965+kaalleen@users.noreply.github.com> | 2025-10-22 18:04:41 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-22 18:04:41 +0200 |
| commit | f5a7a2b6358aa767ae65578ff622c9856d78589f (patch) | |
| tree | f2ba99deca3fbca79d78f9ce1401a42eb189d492 /lib/elements | |
| parent | 217c7853c88bc3d70d13a71bb72ed57c70881af5 (diff) | |
Gradient color: fix cache key error (#4007)
* use first stop color for non linear gradient fill objects
* fix bug in get_cache_key for gradient objects
Diffstat (limited to 'lib/elements')
| -rw-r--r-- | lib/elements/element.py | 6 | ||||
| -rw-r--r-- | lib/elements/fill_stitch.py | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/lib/elements/element.py b/lib/elements/element.py index 6b1ca47c..f1e6eb36 100644 --- a/lib/elements/element.py +++ b/lib/elements/element.py @@ -12,7 +12,7 @@ from typing import List, Optional import inkex import numpy as np -from inkex import BaseElement, bezier +from inkex import BaseElement, Color, bezier from shapely import Point as ShapelyPoint from shapely.ops import nearest_points @@ -599,6 +599,10 @@ class EmbroideryElement(object): stitch_plan_cache = get_stitch_plan_cache() cache_key = self.get_cache_key(previous_stitch, next_element) if cache_key not in stitch_plan_cache: + # fix up colors for cache + for stitch_group in stitch_groups: + if not isinstance(stitch_group.color, Color): + stitch_group.color = "black" stitch_plan_cache[cache_key] = stitch_groups if previous_stitch is not None: diff --git a/lib/elements/fill_stitch.py b/lib/elements/fill_stitch.py index 7ce3188a..3c871b8e 100644 --- a/lib/elements/fill_stitch.py +++ b/lib/elements/fill_stitch.py @@ -632,7 +632,11 @@ class FillStitch(EmbroideryElement): @property def color(self): - return self.fill_color + color = self.fill_color + # if color is a gradient, pick the first color + if isinstance(color, LinearGradient): + color = self._get_color(color.stops[0], "stop-color", "black") + return color @property def gradient(self): |
