Source code for jdxi_editor.ui.layout.helper

from PySide6.QtWidgets import QHBoxLayout, QPushButton

from jdxi_editor.core.jdxi import JDXi
from jdxi_editor.ui.editors.helpers.widgets import create_jdxi_button, create_jdxi_row
from picoui.specs.widgets import ButtonSpec


[docs] def add_round_button(icon_enum, text: str, slot, layout: QHBoxLayout): """Add a round button + icon/label row (Transport style). Returns the button.""" btn = create_jdxi_button("") if slot is not None: btn.clicked.connect(slot) layout.addWidget(btn) pixmap = JDXi.UI.Icon.get_icon_pixmap( icon_enum, color=JDXi.UI.Style.FOREGROUND, size=20 ) label_row, _ = create_jdxi_row(text, icon_pixmap=pixmap) layout.addWidget(label_row) return btn
[docs] def add_round_button_from_spec(spec: ButtonSpec) -> QPushButton: """Uses a Spec to add a round button + icon/label row (Transport style). Returns the button.""" return add_round_button( icon_enum=spec.icon, text=spec.label, slot=spec.slot, layout=spec.layout, )