Implement pin color output
Small issue: GraphViz warning ``` Warning: table size too small for content ```
This commit is contained in:
parent
331c34084d
commit
2e47299570
@ -2,10 +2,11 @@
|
|||||||
|
|
||||||
import re
|
import re
|
||||||
from itertools import zip_longest
|
from itertools import zip_longest
|
||||||
from typing import Any, List, Union
|
from typing import Any, List, Optional, Union
|
||||||
|
|
||||||
from wireviz import APP_NAME, APP_URL, __version__
|
from wireviz import APP_NAME, APP_URL, __version__
|
||||||
from wireviz.wv_bom import partnumbers_to_list
|
from wireviz.wv_bom import partnumbers_to_list
|
||||||
|
from wireviz.wv_colors import MultiColor
|
||||||
from wireviz.wv_dataclasses import (
|
from wireviz.wv_dataclasses import (
|
||||||
ArrowDirection,
|
ArrowDirection,
|
||||||
ArrowWeight,
|
ArrowWeight,
|
||||||
@ -221,16 +222,13 @@ def gv_pin_table(component) -> Table:
|
|||||||
|
|
||||||
def gv_pin_row(pin, connector) -> Tr:
|
def gv_pin_row(pin, connector) -> Tr:
|
||||||
# ports in GraphViz are 1-indexed for more natural maping to pin/wire numbers
|
# ports in GraphViz are 1-indexed for more natural maping to pin/wire numbers
|
||||||
cell_pin_left = Td(pin.id, port=f"p{pin.index+1}l")
|
has_pincolors = any([_pin.color for _pin in connector.pin_objects.values()])
|
||||||
cell_pin_label = Td(pin.label, delete_if_empty=True)
|
|
||||||
cell_pin_color = Td(str(pin.color), delete_if_empty=True)
|
|
||||||
cell_pin_right = Td(pin.id, port=f"p{pin.index+1}r")
|
|
||||||
|
|
||||||
cells = [
|
cells = [
|
||||||
cell_pin_left if connector.ports_left else None,
|
Td(pin.id, port=f"p{pin.index+1}l") if connector.ports_left else None,
|
||||||
cell_pin_label,
|
Td(pin.label, delete_if_empty=True),
|
||||||
cell_pin_color, # TODO: generate proper color mini-table too
|
Td(str(pin.color) if pin.color else "", sides="TBL") if has_pincolors else None,
|
||||||
cell_pin_right if connector.ports_right else None,
|
Td(color_minitable(pin.color), sides="TBR") if has_pincolors else None,
|
||||||
|
Td(pin.id, port=f"p{pin.index+1}r") if connector.ports_right else None,
|
||||||
]
|
]
|
||||||
return Tr(cells)
|
return Tr(cells)
|
||||||
|
|
||||||
@ -455,6 +453,30 @@ def colorbar_cell(color) -> Td:
|
|||||||
return Td("", bgcolor=color.html, width=4)
|
return Td("", bgcolor=color.html, width=4)
|
||||||
|
|
||||||
|
|
||||||
|
def color_minitable(color: Optional[MultiColor]) -> Union[Table, str]:
|
||||||
|
if color is None or len(color) == 0:
|
||||||
|
return ""
|
||||||
|
cells = [
|
||||||
|
Td(
|
||||||
|
"",
|
||||||
|
bgcolor=subcolor.html,
|
||||||
|
height=8,
|
||||||
|
width=8,
|
||||||
|
fixedsize="true",
|
||||||
|
)
|
||||||
|
for subcolor in color.colors
|
||||||
|
]
|
||||||
|
return Table(
|
||||||
|
Tr(cells),
|
||||||
|
border=1,
|
||||||
|
cellborder=0,
|
||||||
|
cellspacing=0,
|
||||||
|
height=8,
|
||||||
|
width=8 * len(cells) + 2,
|
||||||
|
fixedsize="true",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def image_and_caption_cells(component: Component) -> (Td, Td):
|
def image_and_caption_cells(component: Component) -> (Td, Td):
|
||||||
if not component.image:
|
if not component.image:
|
||||||
return (None, None)
|
return (None, None)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user