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

Method _show_svg

SLiCAP/schematic/model_dialog.py:294–314  ·  view source on GitHub ↗
(self, svg_bytes: bytes)

Source from the content-addressed store, hash-verified

292 self._ok_btn.setEnabled(False)
293
294 def _show_svg(self, svg_bytes: bytes) -> None:
295 from PySide6.QtSvg import QSvgRenderer
296 from PySide6.QtCore import QByteArray
297 renderer = QSvgRenderer(QByteArray(svg_bytes))
298 if not renderer.isValid():
299 self._preview_lbl.setText("(invalid SVG)")
300 return
301 vb = renderer.viewBoxF()
302 sw = vb.width() if vb.width() > 0 else renderer.defaultSize().width()
303 sh = vb.height() if vb.height() > 0 else renderer.defaultSize().height()
304 if sw <= 0 or sh <= 0:
305 self._preview_lbl.setText("(empty SVG)")
306 return
307 scale = min(self._PREVIEW_MAX_W / sw, self._PREVIEW_MAX_H / sh, 3.0)
308 pw, ph = max(1, int(sw * scale)), max(1, int(sh * scale))
309 px = QPixmap(pw, ph)
310 px.fill(Qt.white)
311 p = QPainter(px)
312 renderer.render(p)
313 p.end()
314 self._preview_lbl.setPixmap(px)
315
316 def _compute_natural_size(self, svg_bytes: bytes) -> None:
317 from PySide6.QtSvg import QSvgRenderer

Callers 2

__init__Method · 0.95
_renderMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected