Fix icon extraction.

This commit is contained in:
Sergey Vartanov 2020-08-27 09:48:20 +03:00
parent 04f1376641
commit bae788fd1c
3 changed files with 9 additions and 9 deletions

View file

@ -55,18 +55,18 @@ class IconExtractor:
for sub_node in node.childNodes:
self.parse(sub_node)
def get_path(self, id_: str) -> (str, float, float):
def get_path(self, id_: str) -> (str, float, float, bool):
"""
Get SVG path of the icon.
:param id_: string icon ID
"""
if id_ in self.icons:
return self.icons[id_]
return list(self.icons[id_]) + [True]
else:
if id_ == "no":
return "M 4,4 L 4,10 10,10 10,4 z", 0, 0
return "M 4,4 L 4,10 10,10 10,4 z", 0, 0, False
if id_ == "small":
return "M 6,6 L 6,8 8,8 8,6 z", 0, 0
return "M 6,6 L 6,8 8,8 8,6 z", 0, 0, False
ui.error(f"no such icon ID {id_}")
return "M 4,4 L 4,10 10,10 10,4 z", 0, 0
return "M 4,4 L 4,10 10,10 10,4 z", 0, 0, False

View file

@ -375,11 +375,11 @@ class Painter:
name = [name]
if self.mode not in ["time", "user-coloring"]:
for one_name in name:
shape, xx, yy = self.icons.get_path(one_name)
shape, xx, yy, _ = self.icons.get_path(one_name)
self.draw_point_outline(
shape, x, y, fill, mode=self.mode, size=16, xx=xx, yy=yy)
for one_name in name:
shape, xx, yy = self.icons.get_path(one_name)
shape, xx, yy, _ = self.icons.get_path(one_name)
self.draw_point(shape, x, y, fill, size=16, xx=xx, yy=yy, tags=tags)
def draw_point(self, shape, x, y, fill, size=16, xx=0, yy=0, tags=None):

View file

@ -51,8 +51,8 @@ def test_icons():
for icons_to_draw in to_draw:
icon_set = {'icons': []}
for icon in icons_to_draw:
path, xx, yy = extracter.get_path(icon)
assert xx
path, xx, yy, is_shape = extracter.get_path(icon)
assert is_shape, icon
icon_set['icons'].append({'path': path,
'x': (- 8.0 - xx * 16),
'y': (- 8.0 - yy * 16)})