MCPcopy Create free account
hub / github.com/SLiCAP/SLiCAP_python / set_svg

Method set_svg

SLiCAP/schematic/component_item.py:332–360  ·  view source on GitHub ↗
(self, svg_bytes: bytes, prefix: str = "")

Source from the content-addressed store, hash-verified

330 self.prepareGeometryChange()
331
332 def set_svg(self, svg_bytes: bytes, prefix: str = "") -> None:
333 renderer = QSvgRenderer(QByteArray(svg_bytes))
334 if not renderer.isValid():
335 self._svg_renderer = None
336 self._svg_bytes = b""
337 return
338 vb = renderer.viewBoxF()
339 from .latex_label import svg_line_height
340 ref_h = svg_line_height()
341 target_h = _LABEL_SVG_HEIGHT if self.prop_key == "refdes" else _PARAM_SVG_HEIGHT
342 if ref_h and ref_h > 0:
343 scale = target_h / ref_h * 0.75
344 elif vb.height() > 0:
345 scale = target_h / vb.height() * 0.75
346 else:
347 scale = 1.0
348 svg_w = vb.width() * scale
349 svg_h = vb.height() * scale
350 font, _ = self._font_and_color()
351 fm = QFontMetricsF(font)
352 prefix_w = (fm.horizontalAdvance(prefix) + fm.horizontalAdvance(" ") * 0.25) if prefix else 0.0
353 # Bottom-aligned: y=0 is the bottom edge (matches text-mode baseline).
354 self._svg_renderer = renderer
355 self._svg_bytes = svg_bytes
356 self._svg_rect = QRectF(prefix_w, -svg_h, svg_w, svg_h)
357 self._prefix = prefix
358 self._prefix_w = prefix_w
359 self._text = ""
360 self.prepareGeometryChange()
361
362 # ── QGraphicsItem interface ───────────────────────────────────────────────
363

Callers 2

update_labelsMethod · 0.80
refresh_svg_labelsMethod · 0.80

Calls 2

_font_and_colorMethod · 0.95
svg_line_heightFunction · 0.85

Tested by

no test coverage detected