jdxi_editor.ui.style.icons

Icon registry for JD-Xi Editor.

Provides centralized icon definitions and retrieval with fallback support.

Classes

WaveQTAIcon

Wave Icon

WaveSpec

Wave

JDXiUIIconRegistry

Centralized icon definitions and retrieval

Module Contents

class jdxi_editor.ui.style.icons.WaveQTAIcon[source]

Wave Icon

TRIANGLE = 'mdi.triangle-wave'[source]
SINE = 'mdi.sine-wave'[source]
SAW: str = 'mdi.sawtooth-wave'[source]
SQUARE: str = 'mdi.square-wave'[source]
RANDOM: str = 'mdi.wave'[source]
WAVEFORM: str = 'mdi.waveform'[source]
class jdxi_editor.ui.style.icons.WaveSpec[source]

Wave

Form: jdxi_editor.midi.data.digital.oscillator.WaveForm[source]
Icon: WaveQTAIcon[source]
class jdxi_editor.ui.style.icons.JDXiUIIconRegistry[source]

Centralized icon definitions and retrieval

MIXER = 'mdi.equalizer'[source]
WaveForm: JDXiUIIconRegistry.WaveForm[source]
Wave: WaveSpec[source]
FILTER = 'ri.filter-3-fill'[source]
POWER: str = 'mdi.power'[source]
AMPLIFIER = 'mdi.amplifier'[source]
CLEAR = 'ei.broom'[source]
RUN = 'msc.run'[source]
SAVE = 'fa5.save'[source]
DELETE = 'mdi.delete-empty-outline'[source]
REFRESH = 'ei.refresh'[source]
SETTINGS = 'msc.settings'[source]
EXPORT = 'fa5s.file-export'[source]
HELP = 'mdi.help-rhombus-outline'[source]
HELP_RHOMBUS = 'mdi6.help-rhombus-outline'[source]
QUIT = 'mdi6.exit-to-app'[source]
FOLDER = 'ph.folders-light'[source]
FOLDER_OPENED = 'msc.folder-opened'[source]
FOLDER_NOTCH_OPEN = 'ph.folder-notch-open-fill'[source]
FILE_TEXT = 'ph.file-text-light'[source]
FILE_TABLE1 = 'mdi.book-information-variant'[source]
FILE_DOCUMENT = 'mdi6.file-document-check-outline'[source]
EXCEL = 'mdi.microsoft-excel'[source]
FILE_MTZ = 'mdi.data-matrix-edit'[source]
FILE_MOLECULE = 'mdi.molecule'[source]
FLOPPY_DISK = 'ph.floppy-disk-fill'[source]
USB = 'ri.usb-line'[source]
MAGIC = 'mdi6.auto-fix'[source]
MIDI_PORT = 'mdi.midi-port'[source]
MUSIC = 'mdi.file-music-outline'[source]
MUSIC_NOTES = 'ph.music-notes-fill'[source]
KEYBOARD = 'mdi6.keyboard-settings-outline'[source]
PLAY = 'ri.play-line'[source]
STOP = 'ri.stop-line'[source]
PAUSE = 'ri.pause-line'[source]
SHUFFLE = 'mdi.shuffle'[source]
MUTE = 'msc.mute'[source]
PIANO = 'msc.piano'[source]
DRUM = 'fa5s.drum'[source]
DRUM_KIT = 'drum_kit.png'[source]
KICK_DRUM = 'kick_drum-icon.png'[source]
KICK_DRUM_2 = 'kick_drum2-icon.png'[source]
CYMBAL = 'cymbal-icon.png'[source]
DISTORTION = 'mdi6.signal-distance-variant'[source]
EFFECT = 'mdi.effect'[source]
DELAY = 'mdi.timer-outline'[source]
REVERB = 'mdi.wave'[source]
MICROPHONE = 'mdi.microphone'[source]
EQUALIZER = 'mdi.equalizer'[source]
TUNE = 'mdi.tune'[source]
CLOCK = 'mdi.clock-outline'[source]
MUSIC_NOTE = 'mdi.music-note'[source]
MUSIC_NOTE_MULTIPLE = 'fa5s.music'[source]
CODE_BRACES = 'mdi.code-braces'[source]
CIRCLE_OUTLINE = 'mdi.circle-outline'[source]
VOLUME_HIGH = 'mdi.volume-high'[source]
COG_OUTLINE = 'mdi.cog-outline'[source]
DOTS_HORIZONTAL = 'mdi.dots-horizontal'[source]
PAN_HORIZONTAL = 'mdi.pan-horizontal'[source]
SEARCH_WEB = 'mdi6.search-web'[source]
DATASET_PROCESSING = 'mdi.database'[source]
PROCESSED_DATASETS = 'mdi.database-check'[source]
MODELLED_STRUCTURES = 'mdi.molecule'[source]
RHOFIT_PIPELINE = 'mdi.pipe'[source]
BACK = 'ri.arrow-go-back-fill'[source]
FORWARD = 'ri.arrow-go-forward-fill'[source]
FORK = 'ei.fork'[source]
CPU = 'mdi6.cpu-64-bit'[source]
PANDA = 'mdi6.panda'[source]
DATASETS = 'mdi.image-edit-outline'[source]
DATABASE = 'mdi.database'[source]
SHIELD = 'mdi.shield-account'[source]
TRASH = 'mdi.delete'[source]
TRASH_FILL = 'ph.trash-fill'[source]
CLEANUP = 'mdi.broom'[source]
CANCEL = 'mdi.cancel'[source]
ADD = 'mdi.plus'[source]
PLUS_CIRCLE = 'ph.plus-circle-fill'[source]
PAUSE_ICON = 'mdi.pause'[source]
SERVER_PROCESS = 'msc.server-process'[source]
REPORT: str = 'msc.report'[source]
static get_icon(icon_name: str, color: str = None, size: int = None, fallback: str = None) PySide6.QtGui.QIcon[source]

Get icon with fallback support.

Parameters:
  • icon_name – Icon identifier (e.g., “msc.run”)

  • color – Optional color string (e.g., “#FF0000” or JDXiStyle.FOREGROUND)

  • size – Optional size in pixels (defaults to JDXiStyle.ICON_SIZE)

  • fallback – Fallback icon if primary fails

Returns:

QIcon or None if both fail

static get_icon_from_resource(filename: str, size: int = None) PySide6.QtGui.QIcon | None[source]

Load an icon from the resources directory (e.g. cymbal-icon.png).

Parameters:
  • filename – Basename of the file in resources/ (e.g. “cymbal-icon.png”)

  • size – Optional size to scale the pixmap (width and height)

Returns:

QIcon or None if file not found or load fails

static get_icon_pixmap(icon_name: str, color: str = None, size: int = None, fallback: str = None)[source]

Get icon as QPixmap with fallback support.

Parameters:
  • icon_name – Icon identifier

  • color – Optional color string

  • size – Optional size in pixels (defaults to JDXiStyle.ICON_SIZE)

  • fallback – Fallback icon if primary fails

Returns:

QPixmap or None if all fail

static get_icon_safe(icon_name: str, color: str = None, size: int = None, fallback: str = None) PySide6.QtGui.QIcon[source]

Get icon with fallback support, returns empty QIcon if all fail.

This version always returns a QIcon object (may be empty).

Parameters:
  • icon_name – Icon identifier

  • color – Optional color string

  • size – Optional size in pixels (unused, kept for compatibility)

  • fallback – Fallback icon if primary fails

Returns:

QIcon (may be empty if all fail)

static create_adsr_icons_row() PySide6.QtWidgets.QHBoxLayout[source]

Create ADSR icons row

static create_oscillator_icons_row() PySide6.QtWidgets.QHBoxLayout[source]

Create oscillator/waveform icons row for oscillator sections

static create_generic_musical_icon_row() PySide6.QtWidgets.QHBoxLayout[source]
classmethod get_icon_by_qta_name(name, color, scale_factor=1)[source]

get icon by qta name

classmethod get_generated_icon(name: Literal['adsr', 'upsaw', 'square', 'pwsqu', 'triangle', 'sine', 'saw', 'spsaw', 'pcm', 'noise', 'lpf_filter', 'hpf_filter', 'bypass_filter', 'bpf_filter', 'filter_sine'])[source]

get generated icon

static generate_waveform_icon_by_name(icon: PySide6.QtGui.QIcon | None, icon_name_str: Any | None) PySide6.QtGui.QIcon[source]

generate waveform Icon by name

classmethod icon_for_synth(synth) PySide6.QtGui.QIcon[source]