Source code for jdxi_editor.ui.editors.midi_player.helper

from typing import Callable

from PySide6.QtWidgets import QHBoxLayout, QLabel, QWidget

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


[docs] def create_widget_cell_with_button_spec( spec: ButtonSpec, button ) -> tuple[QWidget, QLabel]: """Create Widget With Button Spec""" widget = QWidget() layout = QHBoxLayout(widget) layout.setContentsMargins(0, 0, 0, 0) layout.setSpacing(4) layout.addWidget(button) icon_pixmap = JDXi.UI.Icon.get_icon_pixmap( spec.icon, color=JDXi.UI.Style.FOREGROUND, size=20 ) row_widget, label = create_jdxi_row(spec.label, icon_pixmap=icon_pixmap) layout.addWidget(row_widget) return widget, label
[docs] def build_panel(builder: Callable) -> QWidget: """build the appropriate panel""" panel_layout = builder() panel_widget = create_widget_with_layout(panel_layout) return panel_widget