jdxi_editor.ui.style.icons ========================== .. py:module:: jdxi_editor.ui.style.icons .. autoapi-nested-parse:: Icon registry for JD-Xi Editor. Provides centralized icon definitions and retrieval with fallback support. Classes ------- .. autoapisummary:: jdxi_editor.ui.style.icons.WaveQTAIcon jdxi_editor.ui.style.icons.WaveSpec jdxi_editor.ui.style.icons.JDXiUIIconRegistry Module Contents --------------- .. py:class:: WaveQTAIcon Wave Icon .. py:attribute:: TRIANGLE :value: 'mdi.triangle-wave' .. py:attribute:: SINE :value: 'mdi.sine-wave' .. py:attribute:: SAW :type: str :value: 'mdi.sawtooth-wave' .. py:attribute:: SQUARE :type: str :value: 'mdi.square-wave' .. py:attribute:: RANDOM :type: str :value: 'mdi.wave' .. py:attribute:: WAVEFORM :type: str :value: 'mdi.waveform' .. py:class:: WaveSpec Wave .. py:attribute:: Form :type: jdxi_editor.midi.data.digital.oscillator.WaveForm .. py:attribute:: Icon :type: WaveQTAIcon .. py:class:: JDXiUIIconRegistry Centralized icon definitions and retrieval .. py:attribute:: MIXER :value: 'mdi.equalizer' .. py:attribute:: WaveForm :type: JDXiUIIconRegistry.WaveForm .. py:attribute:: Wave :type: WaveSpec .. py:attribute:: FILTER :value: 'ri.filter-3-fill' .. py:attribute:: POWER :type: str :value: 'mdi.power' .. py:attribute:: AMPLIFIER :value: 'mdi.amplifier' .. py:attribute:: CLEAR :value: 'ei.broom' .. py:attribute:: RUN :value: 'msc.run' .. py:attribute:: SAVE :value: 'fa5.save' .. py:attribute:: DELETE :value: 'mdi.delete-empty-outline' .. py:attribute:: REFRESH :value: 'ei.refresh' .. py:attribute:: SETTINGS :value: 'msc.settings' .. py:attribute:: EXPORT :value: 'fa5s.file-export' .. py:attribute:: HELP :value: 'mdi.help-rhombus-outline' .. py:attribute:: HELP_RHOMBUS :value: 'mdi6.help-rhombus-outline' .. py:attribute:: QUIT :value: 'mdi6.exit-to-app' .. py:attribute:: FOLDER :value: 'ph.folders-light' .. py:attribute:: FOLDER_OPENED :value: 'msc.folder-opened' .. py:attribute:: FOLDER_NOTCH_OPEN :value: 'ph.folder-notch-open-fill' .. py:attribute:: FILE_TEXT :value: 'ph.file-text-light' .. py:attribute:: FILE_TABLE1 :value: 'mdi.book-information-variant' .. py:attribute:: FILE_DOCUMENT :value: 'mdi6.file-document-check-outline' .. py:attribute:: FILE_SEARCH :value: 'ph.file-search' .. py:attribute:: EXCEL :value: 'mdi.microsoft-excel' .. py:attribute:: FILE_MTZ :value: 'mdi.data-matrix-edit' .. py:attribute:: FILE_MOLECULE :value: 'mdi.molecule' .. py:attribute:: FLOPPY_DISK :value: 'ph.floppy-disk-fill' .. py:attribute:: USB :value: 'ri.usb-line' .. py:attribute:: MAGIC :value: 'mdi6.auto-fix' .. py:attribute:: MIDI_PORT :value: 'mdi.midi-port' .. py:attribute:: MUSIC :value: 'mdi.file-music-outline' .. py:attribute:: MUSIC_NOTES :value: 'ph.music-notes-fill' .. py:attribute:: KEYBOARD :value: 'mdi6.keyboard-settings-outline' .. py:attribute:: PLAY :value: 'ri.play-line' .. py:attribute:: STOP :value: 'ri.stop-line' .. py:attribute:: PAUSE :value: 'ri.pause-line' .. py:attribute:: SHUFFLE :value: 'mdi.shuffle' .. py:attribute:: MUTE :value: 'msc.mute' .. py:attribute:: PIANO :value: 'msc.piano' .. py:attribute:: DRUM :value: 'fa5s.drum' .. py:attribute:: DRUM_KIT :value: 'drum_kit.png' .. py:attribute:: KICK_DRUM :value: 'kick_drum-icon.png' .. py:attribute:: KICK_DRUM_2 :value: 'kick_drum2-icon.png' .. py:attribute:: CYMBAL :value: 'cymbal-icon.png' .. py:attribute:: DISTORTION :value: 'mdi6.signal-distance-variant' .. py:attribute:: EFFECT :value: 'mdi.effect' .. py:attribute:: DELAY :value: 'mdi.timer-outline' .. py:attribute:: REVERB :value: 'mdi.wave' .. py:attribute:: MICROPHONE :value: 'mdi.microphone' .. py:attribute:: EQUALIZER :value: 'mdi.equalizer' .. py:attribute:: TUNE :value: 'mdi.tune' .. py:attribute:: CLOCK :value: 'mdi.clock-outline' .. py:attribute:: MUSIC_NOTE :value: 'mdi.music-note' .. py:attribute:: MUSIC_NOTE_MULTIPLE :value: 'fa5s.music' .. py:attribute:: CODE_BRACES :value: 'mdi.code-braces' .. py:attribute:: CIRCLE_OUTLINE :value: 'mdi.circle-outline' .. py:attribute:: VOLUME_HIGH :value: 'mdi.volume-high' .. py:attribute:: COG_OUTLINE :value: 'mdi.cog-outline' .. py:attribute:: DOTS_HORIZONTAL :value: 'mdi.dots-horizontal' .. py:attribute:: PAN_HORIZONTAL :value: 'mdi.pan-horizontal' .. py:attribute:: SEARCH_WEB :value: 'mdi6.search-web' .. py:attribute:: DATASET_PROCESSING :value: 'mdi.database' .. py:attribute:: PROCESSED_DATASETS :value: 'mdi.database-check' .. py:attribute:: MODELLED_STRUCTURES :value: 'mdi.molecule' .. py:attribute:: RHOFIT_PIPELINE :value: 'mdi.pipe' .. py:attribute:: BACK :value: 'ri.arrow-go-back-fill' .. py:attribute:: FORWARD :value: 'ri.arrow-go-forward-fill' .. py:attribute:: FORK :value: 'ei.fork' .. py:attribute:: CPU :value: 'mdi6.cpu-64-bit' .. py:attribute:: PANDA :value: 'mdi6.panda' .. py:attribute:: DATASETS :value: 'mdi.image-edit-outline' .. py:attribute:: DATABASE :value: 'mdi.database' .. py:attribute:: SHIELD :value: 'mdi.shield-account' .. py:attribute:: TRASH :value: 'mdi.delete' .. py:attribute:: TRASH_FILL :value: 'ph.trash-fill' .. py:attribute:: CLEANUP :value: 'mdi.broom' .. py:attribute:: CANCEL :value: 'mdi.cancel' .. py:attribute:: ADD :value: 'mdi.plus' .. py:attribute:: PLUS_CIRCLE :value: 'ph.plus-circle-fill' .. py:attribute:: PAUSE_ICON :value: 'mdi.pause' .. py:attribute:: SERVER_PROCESS :value: 'msc.server-process' .. py:attribute:: REPORT :type: str :value: 'msc.report' .. py:method:: get_icon(icon_name: str, color: str = None, size: int = None, fallback: str = None) -> PySide6.QtGui.QIcon :staticmethod: Get icon with fallback support. :param icon_name: Icon identifier (e.g., "msc.run") :param color: Optional color string (e.g., "#FF0000" or JDXiStyle.FOREGROUND) :param size: Optional size in pixels (defaults to JDXiStyle.ICON_SIZE) :param fallback: Fallback icon if primary fails :return: QIcon or None if both fail .. py:method:: get_icon_from_resource(filename: str, size: int = None) -> PySide6.QtGui.QIcon | None :staticmethod: Load an icon from the resources directory (e.g. cymbal-icon.png). :param filename: Basename of the file in resources/ (e.g. "cymbal-icon.png") :param size: Optional size to scale the pixmap (width and height) :return: QIcon or None if file not found or load fails .. py:method:: get_icon_pixmap(icon_name: str, color: str = None, size: int = None, fallback: str = None) :staticmethod: Get icon as QPixmap with fallback support. :param icon_name: Icon identifier :param color: Optional color string :param size: Optional size in pixels (defaults to JDXiStyle.ICON_SIZE) :param fallback: Fallback icon if primary fails :return: QPixmap or None if all fail .. py:method:: get_icon_safe(icon_name: str, color: str = None, size: int = None, fallback: str = None) -> PySide6.QtGui.QIcon :staticmethod: Get icon with fallback support, returns empty QIcon if all fail. This version always returns a QIcon object (may be empty). :param icon_name: Icon identifier :param color: Optional color string :param size: Optional size in pixels (unused, kept for compatibility) :param fallback: Fallback icon if primary fails :return: QIcon (may be empty if all fail) .. py:method:: create_adsr_icons_row() -> PySide6.QtWidgets.QHBoxLayout :staticmethod: Create ADSR icons row .. py:method:: create_oscillator_icons_row() -> PySide6.QtWidgets.QHBoxLayout :staticmethod: Create oscillator/waveform icons row for oscillator sections .. py:method:: create_generic_musical_icon_row() -> PySide6.QtWidgets.QHBoxLayout :staticmethod: .. py:method:: get_icon_by_qta_name(name, color, scale_factor=1) :classmethod: get icon by qta name .. py:method:: 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']) :classmethod: get generated icon .. py:method:: generate_waveform_icon_by_name(icon: PySide6.QtGui.QIcon | None, icon_name_str: Any | None) -> PySide6.QtGui.QIcon :staticmethod: generate waveform Icon by name .. py:method:: icon_for_synth(synth) -> PySide6.QtGui.QIcon :classmethod: