jdxi_editor.ui.style
Submodules
Classes
A class to store dimensions for the JD-Xi editor UI. |
|
Centralized icon definitions and retrieval |
|
Central style definitions for JD-Xi Manager |
|
Centralized theme management for JD-Xi Editor |
Functions
|
Get the singleton ThemeManager instance |
Package Contents
- class jdxi_editor.ui.style.JDXiUIDimensions[source]
Bases:
DimensionsA class to store dimensions for the JD-Xi editor UI.
- group
- patch
- slider_vertical
- slider_horizontal
- Icon: IconDimensions
- Combo: ComboBoxDimensions
- WaveformIcon: WaveformIconDimensions
- LFOIcon: LfoIconDimensions
- SPLASH: SplashScreenDimensions
- Config: MidiConfig
- INSTRUMENT: InstrumentDimensions
- EDITOR: EditorDimensions
- EDITOR_DIGITAL: DigitalEditorDimensions
- EDITOR_BASIC: BasicEditorDimensions
- EDITOR_ANALOG: AnalogEditorDimensions
- EDITOR_DRUM: DrumEditorDimensions
- ANALOG
- ARPEGGIATOR: ArpDimensions
- PWM_WIDGET: PWMWidgetDimensions
- BUTTON_ROUND: RoundButtonDimensions
- CHART: ChartMetrics
- DIGITAL_TITLE: DigitalTitleDimensions
- TITLE: TitleDimensions
- KEYBOARD: KeyboardDimensions
- SEQUENCER: SequencerDimensions
- SLIDER: SliderDimensions
- PARTS: PartsDimensions
- OCTAVE: OctaveButtonDimensions
- PROGRAM: ProgramButtonDimensions
- TONE: ToneButtonDimensions
- EFFECTS: EffectsButtonDimensions
- class jdxi_editor.ui.style.JDXiUIIconRegistry[source]
Centralized icon definitions and retrieval
- MIXER = 'mdi.equalizer'
- WaveForm: JDXiUIIconRegistry.WaveForm
- FILTER = 'ri.filter-3-fill'
- AMPLIFIER = 'mdi.amplifier'
- CLEAR = 'ei.broom'
- RUN = 'msc.run'
- SAVE = 'fa5.save'
- DELETE = 'mdi.delete-empty-outline'
- REFRESH = 'ei.refresh'
- SETTINGS = 'msc.settings'
- EXPORT = 'fa5s.file-export'
- HELP = 'mdi.help-rhombus-outline'
- HELP_RHOMBUS = 'mdi6.help-rhombus-outline'
- QUIT = 'mdi6.exit-to-app'
- FOLDER = 'ph.folders-light'
- FOLDER_OPENED = 'msc.folder-opened'
- FOLDER_NOTCH_OPEN = 'ph.folder-notch-open-fill'
- FILE_TEXT = 'ph.file-text-light'
- FILE_TABLE1 = 'mdi.book-information-variant'
- FILE_DOCUMENT = 'mdi6.file-document-check-outline'
- FILE_SEARCH = 'ph.file-search'
- EXCEL = 'mdi.microsoft-excel'
- FILE_MTZ = 'mdi.data-matrix-edit'
- FILE_MOLECULE = 'mdi.molecule'
- FLOPPY_DISK = 'ph.floppy-disk-fill'
- USB = 'ri.usb-line'
- MAGIC = 'mdi6.auto-fix'
- MIDI_PORT = 'mdi.midi-port'
- MUSIC = 'mdi.file-music-outline'
- MUSIC_NOTES = 'ph.music-notes-fill'
- KEYBOARD = 'mdi6.keyboard-settings-outline'
- PLAY = 'ri.play-line'
- STOP = 'ri.stop-line'
- PAUSE = 'ri.pause-line'
- SHUFFLE = 'mdi.shuffle'
- MUTE = 'msc.mute'
- PIANO = 'msc.piano'
- DRUM = 'fa5s.drum'
- DRUM_KIT = 'drum_kit.png'
- KICK_DRUM = 'kick_drum-icon.png'
- KICK_DRUM_2 = 'kick_drum2-icon.png'
- CYMBAL = 'cymbal-icon.png'
- DISTORTION = 'mdi6.signal-distance-variant'
- EFFECT = 'mdi.effect'
- DELAY = 'mdi.timer-outline'
- REVERB = 'mdi.wave'
- MICROPHONE = 'mdi.microphone'
- EQUALIZER = 'mdi.equalizer'
- TUNE = 'mdi.tune'
- CLOCK = 'mdi.clock-outline'
- MUSIC_NOTE = 'mdi.music-note'
- MUSIC_NOTE_MULTIPLE = 'fa5s.music'
- CODE_BRACES = 'mdi.code-braces'
- CIRCLE_OUTLINE = 'mdi.circle-outline'
- VOLUME_HIGH = 'mdi.volume-high'
- COG_OUTLINE = 'mdi.cog-outline'
- DOTS_HORIZONTAL = 'mdi.dots-horizontal'
- PAN_HORIZONTAL = 'mdi.pan-horizontal'
- SEARCH_WEB = 'mdi6.search-web'
- DATASET_PROCESSING = 'mdi.database'
- PROCESSED_DATASETS = 'mdi.database-check'
- MODELLED_STRUCTURES = 'mdi.molecule'
- RHOFIT_PIPELINE = 'mdi.pipe'
- BACK = 'ri.arrow-go-back-fill'
- FORWARD = 'ri.arrow-go-forward-fill'
- FORK = 'ei.fork'
- CPU = 'mdi6.cpu-64-bit'
- PANDA = 'mdi6.panda'
- DATASETS = 'mdi.image-edit-outline'
- DATABASE = 'mdi.database'
- SHIELD = 'mdi.shield-account'
- TRASH = 'mdi.delete'
- TRASH_FILL = 'ph.trash-fill'
- CLEANUP = 'mdi.broom'
- CANCEL = 'mdi.cancel'
- ADD = 'mdi.plus'
- PLUS_CIRCLE = 'ph.plus-circle-fill'
- PAUSE_ICON = 'mdi.pause'
- SERVER_PROCESS = 'msc.server-process'
- 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_oscillator_icons_row() PySide6.QtWidgets.QHBoxLayout[source]
Create oscillator/waveform icons row for oscillator sections
- 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
- class jdxi_editor.ui.style.JDXiUIStyle[source]
Central style definitions for JD-Xi Manager
- BUTTON_SEQUENCER_SMALL = 'QPushButton:checked { background-color: #cc0000; color: white; }'
- WHITE = '#FFFFFF'
- TRACK_LABEL_WIDTH = 70
- BUTTON_TRACK_WIDTH = 20
- TRACK_SPINBOX_WIDTH = 40
- PWM_WIDGET_HEIGHT = 200
- ADSR_PLOT_WIDTH = 300
- ADSR_PLOT_HEIGHT = 200
- INSTRUMENT_IMAGE_WIDTH = 350
- INSTRUMENT_IMAGE_HEIGHT = 200
- TITLE_TEXT = '#FFFFFF'
- BACKGROUND = '#000000'
- BACKGROUND_GRADIENT = 'qlineargradient(x1:0, y1:0, x2:1, y2:1, stop:0 #000000, stop:1 #1A1A1A)'
- BACKGROUND_PRESSED = '#666666'
- BUTTON_BACKGROUND = '#222222'
- BUTTON_BACKGROUND_PRESSED = '#333333'
- FOREGROUND = '#FFFFFF'
- PADDING = 10
- SPACING = 10
- ICON_PIXMAP_SIZE = 30
- TRACK_ICON_PIXMAP_SIZE = 50
- BUTTON_PADDING = 1
- BUTTON_WAVEFORM_RADIUS = 8
- BUTTON_WAVEFORM_BORDER_WIDTH = 2
- ACCENT = '#FF2200'
- ACCENT_HOVER = '#FF4400'
- ACCENT_ANALOG = '#00A0E9'
- ACCENT_ANALOG_HOVER = '#00C0FF'
- ACCENT_GLOW = '#FF6666'
- ACCENT_ANALOG_GLOW = '#66C0FF'
- BORDER = '#333333'
- SLIDER_HANDLE = '#000000'
- SLIDER_HANDLE_BORDER = '#666666'
- SLIDER_GROOVE = '#666666'
- SLIDER_NEON = '#ff1a1a'
- SLIDER_NEON_GRADIENT_STOP = '#660000'
- SLIDER_NEON_ANALOG = '#1a1aff'
- SLIDER_NEON_GRADIENT_STOP_ANALOG = '#000066'
- SLIDER_NEON_GRADIENT = 'qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #660000, stop:0.5 #ff1a1a, stop:1 #ff3333)'
- SLIDER_NEON_ANALOG_GRADIENT = 'qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #000066, stop:0.5 #1a1aff, stop:1 #3399ff)'
- ACCENT_PRESSED = '#FF6666'
- FONT_SIZE = '10'
- ACCENT_ANALOG_PRESSED = '#417ffa'
- BUTTON_ROUND_RADIUS = 15
- BUTTON_RECT_RADIUS = 6
- BUTTON_BORDER_WIDTH = 4
- BUTTON_BORDER_WIDTH_WAVEFORM = 2
- HANDLE_SIZE = '6px'
- GROOVE_WIDTH = '2px'
- ICON_SIZE = 20
- TAB_BUTTON_RECT_RADIUS = 6
- MAX_RULER_HEIGHT = 200
- TRACK_HEIGHT_MINIMUM = 40
- FONT_RED = '#d51e35'
- FONT_FAMILY = 'Segoe UI'
- FONT_FAMILY_MONOSPACE = 'Consolas'
- FONT_SIZE_MAIN_TABS = '14px'
- FONT_WEIGHT_BOLD = 'bold'
- FONT_WEIGHT_NORMAL = 'normal'
- GREY = '#666666'
- BUTTON_ROUND = Multiline-String
Show Value
""" QPushButton { font-family: Segoe UI; background-color: #000000; border: 4px solid #333333; border-radius: 15px; color: #FFFFFF; font-family: "Segoe UI"; font-size: 12px; padding: 4px; } QPushButton:hover { background-color: #FF4400; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #FF4400); border: 4px solid #FF4400; } QPushButton:border_pressed, QPushButton:checked { background-color: #666666; border: 4px solid #FF6666; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #330000, stop:1 #666666); } """
- BORDER_PRESSED = '#2D2D2D'
- BUTTON_ROUND_SELECTED = Multiline-String
Show Value
""" QPushButton { font-family: Segoe UI; background-color: #000000; border: 4px solid #333333; border-radius: 15px; color: #FFFFFF; font-family: "Segoe UI"; font-size: 12px; padding: 4px; } QPushButton:hover { background-color: #FF4400; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #FF4400); border: 4px solid #FF4400; } QPushButton:border_pressed, QPushButton:checked { background-color: #666666; border: 4px solid #FF6666; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #330000, stop:1 #666666); } """
- BUTTON_ROUND_ACTIVE = Multiline-String
Show Value
""" QPushButton { font-family: Segoe UI; background-color: #222222; border: 4px solid #FF4400; border-radius: 15px; color: #FFFFFF; font-family: "Segoe UI"; font-size: 12px; padding: 4px; } QPushButton:hover { background-color: #FF4400; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #FF4400); border: 4px solid #FF4400; } QPushButton:border_pressed, QPushButton:checked { background-color: #666666; border: 4px solid #FF6666; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #330000, stop:1 #666666); } """
- BUTTON_ROUND_SMALL = Multiline-String
Show Value
""" QPushButton { font-family: Segoe UI; background-color: #333333; border: 1px solid black; border-radius: 10px; color: #AAAAAA; font-family: "Segoe UI"; font-size: 10; padding: 1px; } QPushButton:hover { background-color: #FF4400; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #FF4400); border: 1px solid #FF4400; } QPushButton:border_pressed, QPushButton:checked { background-color: #666666; border: 1px solid #FF6666; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #330000, stop:1 #666666); } """
- BUTTON_RECT = Multiline-String
Show Value
""" QPushButton { font-family: Segoe UI; background-color: #000000; border: 4px solid #333333; border-radius: 6px; color: #FFFFFF; font-family: "Segoe UI"; font-size: 12px; padding: 4px; } QPushButton:hover { background-color: #FF4400; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #FF4400); border: 4px solid #FF4400; } QPushButton:border_pressed, QPushButton:checked { background-color: #666666; border: 4px solid #FF6666; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #330000, stop:1 #666666); } """
- BUTTON_RECT_ANALOG = generate_button_style(
BACKGROUND, BORDER, BUTTON_RECT_RADIUS, FOREGROUND, ACCENT_HOVER, ACCENT_PRESSED
)
- BUTTON_RECT_SELECTED = Multiline-String
Show Value
""" QPushButton { font-family: Segoe UI; background-color: #000000; border: 4px solid #333333; border-radius: 6px; color: #FFFFFF; font-family: "Segoe UI"; font-size: 12px; padding: 4px; } QPushButton:hover { background-color: #FF4400; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #FF4400); border: 4px solid #FF4400; } QPushButton:border_pressed, QPushButton:checked { background-color: #666666; border: 4px solid #FF6666; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #330000, stop:1 #666666); } """
- BUTTON_RECT_ACTIVE = Multiline-String
Show Value
""" QPushButton { font-family: Segoe UI; background-color: #222222; border: 4px solid #FF4400; border-radius: 6px; color: #FFFFFF; font-family: "Segoe UI"; font-size: 12px; padding: 4px; } QPushButton:hover { background-color: #FF4400; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #FF4400); border: 4px solid #FF4400; } QPushButton:border_pressed, QPushButton:checked { background-color: #666666; border: 4px solid #FF6666; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #330000, stop:1 #666666); } """
- STYLE_FOREGROUND = 'color: #FFFFFF;'
- BUTTON_RECT_ANALOG = Multiline-String
Show Value
""" QPushButton { font-family: Segoe UI; background-color: #000000; border: 4px solid #00A0E9; border-radius: 6px; color: #FFFFFF; font-family: "Segoe UI"; font-size: 12px; padding: 4px; } QPushButton:hover { background-color: #00C0FF; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #000066, stop:1 #00C0FF); border: 4px solid #00C0FF; } QPushButton:border_pressed, QPushButton:checked { background-color: #666666; border: 4px solid #FF6666; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #000033, stop:1 #666666); } """
- BUTTON_ANALOG_ACTIVE = Multiline-String
Show Value
""" QPushButton { font-family: Segoe UI; background-color: #222222; border: 4px solid #00A0E9; border-radius: 6px; color: #FFFFFF; font-family: "Segoe UI"; font-size: 12px; padding: 4px; } QPushButton:hover { background-color: #00C0FF; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #000066, stop:1 #00C0FF); border: 4px solid #00C0FF; } QPushButton:border_pressed, QPushButton:checked { background-color: #666666; border: 4px solid #417ffa; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #000033, stop:1 #666666); } """
- BUTTON_WAVEFORM = Multiline-String
Show Value
""" QPushButton { font-family: Segoe UI; background-color: #222222; border: 2px solid #666666; border-radius: 8px; color: #FFFFFF; font-family: "Segoe UI"; font-size: 10; padding: 1px; } QPushButton:hover { background-color: #FF4400; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #FF4400); border: 2px solid #FF4400; } QPushButton:border_pressed, QPushButton:checked { background-color: #333333; border: 2px solid #FF6666; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #330000, stop:1 #333333); } """
- BUTTON_WAVEFORM_ANALOG = Multiline-String
Show Value
""" QPushButton { font-family: Segoe UI; background-color: #222222; border: 2px solid #00A0E9; border-radius: 8px; color: #FFFFFF; font-family: "Segoe UI"; font-size: 10; padding: 1px; } QPushButton:hover { background-color: #00C0FF; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #000066, stop:1 #00C0FF); border: 2px solid #00C0FF; } QPushButton:border_pressed, QPushButton:checked { background-color: #333333; border: 2px solid #417ffa; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #000033, stop:1 #333333); } """
- CREDITS_LABEL_STYLE = Multiline-String
Show Value
""" /* QLabels */ QLabel { font-family: Segoe UI; color: 'black'; background: #FFFFFF; } """
- EDITOR = Multiline-String
Show Value
""" QWidget { font-family: Segoe UI; background-color: #000000; color: #FFFFFF; font-family: "Segoe UI"; font-size: 10; padding: 1px; } QGroupBox { font-family: Segoe UI; width: 200px; border: none; border-top: 1px solid #FF2200; margin: 1px; padding: 1px; } /* Groove (Track) */ QSlider::groove:vertical { font-family: Segoe UI; background: #111; /* Dark background */ width: 6px; border-radius: 3px; } /* Handle (Knob) */ QSlider::handle:vertical { background: black; border: 2px solid #ff1a1a; /* Neon red border */ width: 10px; /* More rectangular */ height: 10px; margin: -8px; margin-bottom: 2px; margin-top: 1px; border-radius: 5px; } /* Handle (Knob) */ QSlider::handle:vertical:disabled { background: black; border: 2px solid #333333; /* grey border */ width: 10px; /* More rectangular */ height: 10px; margin: -10px; border-radius: 5px; } /* greyed out groove */ QSlider::sub-page:vertical:disabled { background: #333333; border-radius: 3px; } /* Glowing effect when moving */ QSlider::sub-page:vertical { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #ff1a1a); border-radius: 3px; } /* Glowing effect when moving */ QSlider::sub-page:vertical:disabled:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #ff1a1a); border-radius: 3px; } /* Unfilled portion */ QSlider::add-page:vertical { font-family: Segoe UI; background: #222; border-radius: 3px; } /* Tick Marks (Small dashes on both sides) */ QSlider::tick-mark { background: #ff1a1a; width: 4px; height: 2px; border-radius: 1px; margin-left: -8px; margin-right: 8px; } QSlider::horizontal { margin-left: 6px; margin-right: 6x; } /* Handle Hover Effect */ QSlider::handle:vertical:hover { border: 2px solid #ff3333; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #ff1a1a); } /* Spin Box - upper bar only (JD-Xi style) */ QSpinBox, QDoubleSpinBox { background-color: #222; border: none; border-top: 2px solid #ff1a1a; border-radius: 0; padding: 1px; margin: -2px; color: #ff1a1a; } QGroupBox { font-family: Segoe UI; border: none; border-top: 1px solid #FF2200; border-radius: 3px; margin-top: 1px; width: 200px; padding: 10px; } QPushButton { width: 100px; } QGroupBox[adsr="true"] { min-height: 300px; /* Reduced height for horizontal layout */ width: 200px; } QSlider::handle:vertical { background: #000000; border: 2px solid #666666; margin: 1px 0; border-radius: 4px; } QSlider::handle:vertical:hover { border-color: #FF4400; } QGroupBox::title { subcontrol-origin: margin; subcontrol-position: top center; padding: 0 1px; color: #FFFFFF; font-weight: normal; } QPushButton { font-family: Segoe UI; background-color: #000000; border: 1px solid #FF2200; border-radius: 3px; padding: 1px; color: #FFFFFF; } QPushButton:hover, QPushButton:checked { background-color: #FF2200; color: #000000; } QComboBox { font-family: Segoe UI; background-color: #000000; border: none; border-top: 2px solid #FF2200; border-radius: 0; padding: 1px; color: #FFFFFF; width: 100px; } QComboBox:disabled { color: #333333; } QScrollBar { font-family: Segoe UI; background-color: #000000; border: 1px solid #FF2200; border-radius: 3px; padding: 1px; color: #FFFFFF; } QScrollBar::handle { background: #666666; border-radius: 3px; } QScrollBar::handle:hover { border: 2px solid #FF2200; } QSlider::groove:horizontal { background: #666666; height: 6px; border-radius: 2px; } QSlider::handle:horizontal{ background: #000000; border: 3px solid #ff1a1a; /* Neon red border */ width: 8px; /* More rectangular */ height: 2px; margin: -6px; padding: 1px; border-radius: 4px; } QSlider::handle:disabled{ background: #000000; border: 2px solid #333333; /* grey border */ width: 8px; /* More rectangular */ height: 2px; margin: -6px; padding: 1px; border-radius: 4px; } /* Unfilled portion */ QSlider::add-page:horizontal { background: #222; border-radius: 3px; } QSlider::handle:vertical { background: #000000; border: 2px solid #666666; width: 18px; height: 12px; margin: -9px 0; border-radius: 9px; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #ff1a1a); border-radius: 3px; } QSlider::handle:vertical:disabled{ background: #000000; border: 2px solid #333333; /* grey border */ width: 18px; /* More rectangular */ height: 12px; margin: -9px; border-radius: 4px; } /* Glowing effect when moving */ QSlider::sub-page:horizontal { background: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #660000, stop:1 #ff1a1a); border-radius: 3px; } /* Glowing effect when moving */ QSlider::sub-page:horizontal:disabled { background: #333333; border-radius: 3px; } /* Unfilled portion */ QSlider::add-page:horizontal { background: #222; border-radius: 3px; } /* QLabels */ QLabel { color: #FFFFFF; font-family: Segoe UI; } QSlider::horizontal { margin-left: 5px; margin-right: 5px; } QLabel { width: 100px; } """
- EDITOR_ANALOG = Multiline-String
Show Value
""" QWidget { font-family: Segoe UI; background-color: #000000; color: #FFFFFF; font-family: "Segoe UI"; font-size: 10; padding: 1px; } QGroupBox { font-family: Segoe UI; width: 200px; border: none; border-top: 1px solid #00A0E9; margin: 1px; padding: 1px; } /* Groove (Track) */ QSlider::groove:vertical { font-family: Segoe UI; background: #111; /* Dark background */ width: 6px; border-radius: 3px; } /* Handle (Knob) */ QSlider::handle:vertical { background: black; border: 2px solid #ff1a1a; /* Neon red border */ width: 10px; /* More rectangular */ height: 10px; margin: -8px; margin-bottom: 2px; margin-top: 1px; border-radius: 5px; } /* Handle (Knob) */ QSlider::handle:vertical:disabled { background: black; border: 2px solid #333333; /* grey border */ width: 10px; /* More rectangular */ height: 10px; margin: -10px; border-radius: 5px; } /* greyed out groove */ QSlider::sub-page:vertical:disabled { background: #333333; border-radius: 3px; } /* Glowing effect when moving */ QSlider::sub-page:vertical { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #ff1a1a); border-radius: 3px; } /* Glowing effect when moving */ QSlider::sub-page:vertical:disabled:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #ff1a1a); border-radius: 3px; } /* Unfilled portion */ QSlider::add-page:vertical { font-family: Segoe UI; background: #222; border-radius: 3px; } /* Tick Marks (Small dashes on both sides) */ QSlider::tick-mark { background: #ff1a1a; width: 4px; height: 2px; border-radius: 1px; margin-left: -8px; margin-right: 8px; } QSlider::horizontal { margin-left: 6px; margin-right: 6x; } /* Handle Hover Effect */ QSlider::handle:vertical:hover { border: 2px solid #ff3333; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #ff1a1a); } /* Spin Box - upper bar only (JD-Xi style) */ QSpinBox, QDoubleSpinBox { background-color: #222; border: none; border-top: 2px solid #ff1a1a; border-radius: 0; padding: 1px; margin: -2px; color: #ff1a1a; } QGroupBox { font-family: Segoe UI; border: none; border-top: 1px solid #00A0E9; border-radius: 3px; margin-top: 1px; width: 200px; padding: 10px; } QPushButton { width: 100px; } QGroupBox[adsr="true"] { min-height: 300px; /* Reduced height for horizontal layout */ width: 200px; } QSlider::handle:vertical { background: #000000; border: 2px solid #666666; margin: 1px 0; border-radius: 4px; } QSlider::handle:vertical:hover { border-color: #00C0FF; } QGroupBox::title { subcontrol-origin: margin; subcontrol-position: top center; padding: 0 1px; color: #FFFFFF; font-weight: normal; } QPushButton { font-family: Segoe UI; background-color: #000000; border: 1px solid #00A0E9; border-radius: 3px; padding: 1px; color: #FFFFFF; } QPushButton:hover, QPushButton:checked { background-color: #00A0E9; color: #000000; } QComboBox { font-family: Segoe UI; background-color: #000000; border: none; border-top: 2px solid #00A0E9; border-radius: 0; padding: 1px; color: #FFFFFF; width: 100px; } QComboBox:disabled { color: #333333; } QScrollBar { font-family: Segoe UI; background-color: #000000; border: 1px solid #00A0E9; border-radius: 3px; padding: 1px; color: #FFFFFF; } QScrollBar::handle { background: #666666; border-radius: 3px; } QScrollBar::handle:hover { border: 2px solid #00A0E9; } QSlider::groove:horizontal { background: #666666; height: 6px; border-radius: 2px; } QSlider::handle:horizontal{ background: #000000; border: 3px solid #1a1aff; /* Neon red border */ width: 8px; /* More rectangular */ height: 2px; margin: -6px; padding: 1px; border-radius: 4px; } QSlider::handle:disabled{ background: #000000; border: 2px solid #333333; /* grey border */ width: 8px; /* More rectangular */ height: 2px; margin: -6px; padding: 1px; border-radius: 4px; } /* Unfilled portion */ QSlider::add-page:horizontal { background: #222; border-radius: 3px; } QSlider::handle:vertical { background: #000000; border: 2px solid #666666; width: 18px; height: 12px; margin: -9px 0; border-radius: 9px; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #000066, stop:1 #1a1aff); border-radius: 3px; } QSlider::handle:vertical:disabled{ background: #000000; border: 2px solid #333333; /* grey border */ width: 18px; /* More rectangular */ height: 12px; margin: -9px; border-radius: 4px; } /* Glowing effect when moving */ QSlider::sub-page:horizontal { background: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #000066, stop:1 #1a1aff); border-radius: 3px; } /* Glowing effect when moving */ QSlider::sub-page:horizontal:disabled { background: #333333; border-radius: 3px; } /* Unfilled portion */ QSlider::add-page:horizontal { background: #222; border-radius: 3px; } /* QLabels */ QLabel { color: #FFFFFF; font-family: Segoe UI; } QSlider::horizontal { margin-left: 5px; margin-right: 5px; } QLabel { width: 100px; } """
- EDITOR_TITLE_LABEL = Multiline-String
Show Value
""" font-family: Segoe UI, sans-serif; font-size: 20px; font-weight: bold; letter-spacing: 2px; color: #FF2200; """
- ANALOG_SECTION_HEADER = Multiline-String
Show Value
""" font-family: Segoe UI, sans-serif; font-weight: bold; font-size: 18px; color: #00A0E9; letter-spacing: 1px; """
- DATABASE_TABLE_STYLE = Multiline-String
Show Value
""" QTableWidget { background-color: #1a1a1a; border: 1px solid #333333; border-radius: 8px; gridline-color: #2a2a2a; color: #ffffff; selection-background-color: #3a3a3a; selection-color: #ffffff; } QTableWidget::item { background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #2a2a2a, stop:0.5 #252525, stop:1 #1f1f1f); border: 1px solid #1a1a1a; border-radius: 4px; padding: 4px; color: #ffffff; } QTableWidget::item:selected { background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #3a3a3a, stop:0.5 #353535, stop:1 #2f2f2f); border: 1px solid #4a4a4a; } QTableWidget::item:hover { background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #323232, stop:0.5 #2d2d2d, stop:1 #282828); border: 1px solid #3a3a3a; } QTableWidget::item:focus { background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #3a3a3a, stop:0.5 #353535, stop:1 #2f2f2f); border: 1px solid #ff2200; } QHeaderView::section { background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #2a2a2a, stop:1 #1f1f1f); color: #ffffff; padding: 6px; border: 1px solid #1a1a1a; border-radius: 4px; font-weight: bold; } QHeaderView::section:hover { background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #323232, stop:1 #272727); } QTableCornerButton::section { background-color: #1a1a1a; border: 1px solid #333333; border-radius: 8px 0 0 0; } """
- DIGITAL_SECTION_HEADER = Multiline-String
Show Value
""" font-family: Segoe UI, sans-serif; font-weight: bold; font-size: 18px; color: #FF2200; letter-spacing: 1px; """
- INSTRUMENT = Multiline-String
Show Value
""" QMainWindow { background: qlineargradient(x1:0, y1:0, x2:1, y2:1, stop:0 #000000, stop:1 #1A1A1A); } QWidget { font-family: Segoe UI; margin: 0px; padding: 0px; background: qlineargradient(x1:0, y1:0, x2:1, y2:1, stop:0 #000000, stop:1 #1A1A1A); color: white; } QMenuBar { background-color: black; color: white; } QMenuBar::item:selected { background-color: #333333; } QMenu { background-color: black; color: white; } QMenu::item:selected { background-color: #333333; } QGroupBox { font-family: Segoe UI; border: none; border-top: 1px solid #333333; margin: 1px; padding: 1px; } QGroupBox::title { font-family: Segoe UI; subcontrol-origin: margin; subcontrol-position: top center; padding: 0 1px; background-color: black; } QLabel { background-color: transparent; color: white; } QStatusBar { background-color: black; color: "#FF2200"; } QSlider { margin-bottom: 2px; margin-top: 2px; } """
- INSTRUMENT_IMAGE_LABEL = Multiline-String
Show Value
""" QLabel { height: 150px; background-color: transparent; border: none; } """
- LOG_VIEWER = Multiline-String
Show Value
""" QMainWindow { background-color: #2E2E2E; } QWidget { background-color: #2E2E2E; color: #FFFFFF; font-family: 'Myriad Pro'; } QTextEdit { background-color: #1A1A1A; color: #FFFFFF; border: 1px solid #FF0000; border-radius: 3px; padding: 5px; font-family: 'Consolas'; } QPushButton { background-color: #3D3D3D; color: #FFFFFF; border: 1px solid #FF0000; border-radius: 3px; padding: 5px 15px; font-family: 'Myriad Pro'; } QPushButton:hover { background-color: #4D4D4D; border: 1px solid #FF3333; } QPushButton:pressed { background-color: #2D2D2D; } """
- WINDOW_MIDI_MESSAGE_MONITOR = Multiline-String
Show Value
""" QTextEdit { font-family: 'Consolas', 'Courier New', monospace; background-color: #1E1E1E; color: #FFCC00; border: none; border-top: 2px solid #FF2200; border-radius: 0; padding: 5px; font-size: 11px; } QTextEdit:focus { border: none; border-top: 2px solid #FF2200; background-color: #252525; } """
- MIXER_LABEL_ANALOG = Multiline-String
Show Value
""" font-size: 16px; font-weight: bold; color: #00A0E9; """
- MIXER_LABEL = Multiline-String
Show Value
""" QLabel { font-family: Segoe UI; font-size: 16px; font-weight: bold; color: #FF2200; } """
- PROGRAM_PRESET_GROUPS = Multiline-String
Show Value
""" QGroupBox { font-family: Segoe UI; width: 300px; border: none; border-top: 1px solid #FF2200; margin: 1px; padding: 1px; }"""
- PROGRAM_PRESET_GROUP_WIDTH = 300
- PROGRESS_BAR = Multiline-String
Show Value
""" QProgressBar { background-color: #333; color: white; font-family: 'Consolas'; border: 2px solid #444; border-radius: 10px; text-align: center; } QProgressBar::chunk { background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #660000, stop:1 #ff1a1a); border-radius: 10px; } """
- SLIDER_VERTICAL = Multiline-String
Show Value
""" /* Groove (Track) */ QSlider::groove:vertical { font-family: Segoe UI; background: #111; /* Dark background */ width: 6px; border-radius: 3px; } /* Handle (Knob) */ QSlider::handle:vertical { background: black; border: 2px solid #ff1a1a; /* Neon red border */ width: 10px; /* More rectangular */ height: 10px; margin: -8px; margin-bottom: 2px; margin-top: 1px; border-radius: 5px; } /* Handle (Knob) */ QSlider::handle:vertical:disabled { background: black; border: 2px solid #333333; /* grey border */ width: 10px; /* More rectangular */ height: 10px; margin: -10px; border-radius: 5px; } /* greyed out groove */ QSlider::sub-page:vertical:disabled { background: #333333; border-radius: 3px; } /* Glowing effect when moving */ QSlider::sub-page:vertical { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #ff1a1a); border-radius: 3px; } /* Glowing effect when moving */ QSlider::sub-page:vertical:disabled:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #ff1a1a); border-radius: 3px; } /* Unfilled portion */ QSlider::add-page:vertical { font-family: Segoe UI; background: #222; border-radius: 3px; } /* Tick Marks (Small dashes on both sides) */ QSlider::tick-mark { background: #ff1a1a; width: 4px; height: 2px; border-radius: 1px; margin-left: -8px; margin-right: 8px; } QSlider::horizontal { margin-left: 6px; margin-right: 6x; } /* Handle Hover Effect */ QSlider::handle:vertical:hover { border: 2px solid #ff3333; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #ff1a1a); } /* Spin Box - upper bar only (JD-Xi style) */ QSpinBox, QDoubleSpinBox { background-color: #222; border: none; border-top: 2px solid #ff1a1a; border-radius: 0; padding: 1px; margin: -2px; color: #ff1a1a; } /* QLabels */ QLabel { color: "#d51e35"; } """
- SPLASH_SCREEN = Multiline-String
Show Value
""" QWidget { font-family: Segoe UI; background-color: #000000; color: #FFFFFF; font-family: "Segoe UI"; font-size: 14px; padding: 1px; } QGroupBox { font-family: Segoe UI; width: 200px; border: none; border-top: 1px solid #FF2200; margin: 1px; padding: 1px; } /* Groove (Track) */ QSlider::groove:vertical { font-family: Segoe UI; background: #111; /* Dark background */ width: 6px; border-radius: 3px; } /* Handle (Knob) */ QSlider::handle:vertical { background: black; border: 2px solid #ff1a1a; /* Neon red border */ width: 10px; /* More rectangular */ height: 10px; margin: -8px; margin-bottom: 2px; margin-top: 1px; border-radius: 5px; } /* Handle (Knob) */ QSlider::handle:vertical:disabled { background: black; border: 2px solid #333333; /* grey border */ width: 10px; /* More rectangular */ height: 10px; margin: -10px; border-radius: 5px; } /* greyed out groove */ QSlider::sub-page:vertical:disabled { background: #333333; border-radius: 3px; } /* Glowing effect when moving */ QSlider::sub-page:vertical { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #ff1a1a); border-radius: 3px; } /* Glowing effect when moving */ QSlider::sub-page:vertical:disabled:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #ff1a1a); border-radius: 3px; } /* Unfilled portion */ QSlider::add-page:vertical { font-family: Segoe UI; background: #222; border-radius: 3px; } /* Tick Marks (Small dashes on both sides) */ QSlider::tick-mark { background: #ff1a1a; width: 4px; height: 2px; border-radius: 1px; margin-left: -8px; margin-right: 8px; } QSlider::horizontal { margin-left: 6px; margin-right: 6x; } /* Handle Hover Effect */ QSlider::handle:vertical:hover { border: 2px solid #ff3333; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #ff1a1a); } /* Spin Box - upper bar only (JD-Xi style) */ QSpinBox, QDoubleSpinBox { background-color: #222; border: none; border-top: 2px solid #ff1a1a; border-radius: 0; padding: 1px; margin: -2px; color: #ff1a1a; } QGroupBox { font-family: Segoe UI; border: none; border-top: 1px solid #FF2200; border-radius: 3px; margin-top: 1px; width: 200px; padding: 10px; } QPushButton { width: 100px; } QGroupBox[adsr="true"] { min-height: 300px; /* Reduced height for horizontal layout */ width: 200px; } QSlider::handle:vertical { background: #000000; border: 2px solid #666666; margin: 1px 0; border-radius: 4px; } QSlider::handle:vertical:hover { border-color: #FF4400; } QGroupBox::title { subcontrol-origin: margin; subcontrol-position: top center; padding: 0 1px; color: #FFFFFF; font-weight: bold; } QPushButton { font-family: Segoe UI; background-color: #000000; border: 1px solid #FF2200; border-radius: 3px; padding: 1px; color: #FFFFFF; } QPushButton:hover, QPushButton:checked { background-color: #FF2200; color: #000000; } QComboBox { font-family: Segoe UI; background-color: #000000; border: none; border-top: 2px solid #FF2200; border-radius: 0; padding: 1px; color: #FFFFFF; width: 100px; } QComboBox:disabled { color: #333333; } QScrollBar { font-family: Segoe UI; background-color: #000000; border: 1px solid #FF2200; border-radius: 3px; padding: 1px; color: #FFFFFF; } QScrollBar::handle { background: #666666; border-radius: 3px; } QScrollBar::handle:hover { border: 2px solid #FF2200; } QSlider::groove:horizontal { background: #666666; height: 6px; border-radius: 2px; } QSlider::handle:horizontal{ background: #000000; border: 3px solid #ff1a1a; /* Neon red border */ width: 8px; /* More rectangular */ height: 2px; margin: -6px; padding: 1px; border-radius: 4px; } QSlider::handle:disabled{ background: #000000; border: 2px solid #333333; /* grey border */ width: 8px; /* More rectangular */ height: 2px; margin: -6px; padding: 1px; border-radius: 4px; } /* Unfilled portion */ QSlider::add-page:horizontal { background: #222; border-radius: 3px; } QSlider::handle:vertical { background: #000000; border: 2px solid #666666; width: 18px; height: 12px; margin: -9px 0; border-radius: 9px; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #ff1a1a); border-radius: 3px; } QSlider::handle:vertical:disabled{ background: #000000; border: 2px solid #333333; /* grey border */ width: 18px; /* More rectangular */ height: 12px; margin: -9px; border-radius: 4px; } /* Glowing effect when moving */ QSlider::sub-page:horizontal { background: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #660000, stop:1 #ff1a1a); border-radius: 3px; } /* Glowing effect when moving */ QSlider::sub-page:horizontal:disabled { background: #333333; border-radius: 3px; } /* Unfilled portion */ QSlider::add-page:horizontal { background: #222; border-radius: 3px; } /* QLabels */ QLabel { color: #FFFFFF; font-family: Segoe UI; } QSlider::horizontal { margin-left: 5px; margin-right: 5px; } QLabel { width: 100px; } """
- SPLITTER = Multiline-String
Show Value
""" QSplitter::handle { background-color: #444; border: 1px solid #666; } QSplitter::handle:vertical { height: 6px; } QSplitter::handle:horizontal { width: 6px; } """
- TABS = Multiline-String
Show Value
""" QTabBar::tab { font-family: Segoe UI; background: #000000; color: white; padding: 1px 1px; margin: 1px; border: 2px solid #666666; border-radius: 6px; font-family: "Segoe UI"; font-size: 12px; } QTabBar::tab:selected { font-family: Segoe UI; background: #222222; color: white; border: 2px solid #FF2200; font-family: "Segoe UI"; font-size: 12px; } QTabBar { qproperty-drawBase: 0; } QTabBar::tab:hover { background: #222222; border: 2px solid #ff9999; font-family: "Segoe UI"; font-size: 12px; } QTabWidget { font-family: Segoe UI; border: none; } QTabWidget::pane { border: none; } QTabWidget::tab-bar { alignment: center; } """
- TABS_ANALOG = Multiline-String
Show Value
""" QTabBar::tab { font-family: Segoe UI; background: #000000; color: white; padding: 1px 1px; margin: 1px; border: 2px solid #666666; border-radius: 6px; font-family: "Segoe UI"; font-size: 12px; } QTabBar::tab:selected { font-family: Segoe UI; background: #222222; color: white; border: 2px solid #00A0E9; font-family: "Segoe UI"; font-size: 12px; } QTabBar { qproperty-drawBase: 0; } QTabBar::tab:hover { background: #00A0C1; border: 2px solid #00A0E9; font-family: "Segoe UI"; font-size: 12px; } QTabWidget { font-family: Segoe UI; border: none; } QTabWidget::pane { border: none; } QTabWidget::tab-bar { alignment: center; } """
- TABS_DRUMS = Multiline-String
Show Value
""" QTabBar::tab { font-family: Segoe UI; background: #000000; color: white; padding: 1px 1px; margin: 1px; border: 2px solid #666666; border-radius: 6px; font-family: "Segoe UI"; font-size: 12px; } QTabBar::tab:selected { font-family: Segoe UI; background: #222222; color: white; border: 2px solid #ff6666; font-family: "Segoe UI"; font-size: 12px; } QTabBar { qproperty-drawBase: 0; } QTabBar::tab:hover { background: #222222; border: 2px solid #ff9999; font-family: "Segoe UI"; font-size: 12px; } QTabWidget { font-family: Segoe UI; border: none; } QTabWidget::pane { border: none; } QTabWidget::tab-bar { alignment: center; } """
- TABS_MAIN_EDITOR
- SLIDER = Multiline-String
Show Value
""" QSlider::handle:horizontal{ background: #000000; border: 3px solid #ff1a1a; /* Neon red border */ width: 8px; /* More rectangular */ height: 2px; margin: -6px; padding: 1px; border-radius: 4px; } QSlider::handle:disabled{ background: #000000; border: 2px solid #333333; /* grey border */ width: 8px; /* More rectangular */ height: 2px; margin: -6px; padding: 1px; border-radius: 4px; } /* Unfilled portion */ QSlider::add-page:horizontal { background: #222; border-radius: 3px; } QSlider::handle:vertical { background: #000000; border: 2px solid #666666; width: 18px; height: 12px; margin: -9px 0; border-radius: 9px; } QSlider::handle:vertical:disabled{ background: #000000; border: 2px solid #333333; /* grey border */ width: 18px; /* More rectangular */ height: 12px; margin: -9px; border-radius: 4px; } /* Glowing effect when moving */ QSlider::sub-page:horizontal { background: qlineargradient(x1:1, y1:0, x2:0, y2:0, stop:0 #660000, stop:1 #ff1a1a); border-radius: 3px; } /* Glowing effect when moving */ QSlider::sub-page:horizontal:disabled { background: #333333; border-radius: 3px; } /* Unfilled portion */ QSlider::add-page:horizontal { background: #222; border-radius: 3px; } /* QLabels */ QLabel { color: #FF2200; } QSlider::horizontal { margin-left: 5px; margin-right: 5px; } """
- SLIDER_DISABLED = Multiline-String
Show Value
""" QSlider::handle:horizontal{ background: #000000; border: 3px solid #333333; /* Neon red border */ width: 8px; /* More rectangular */ height: 2px; margin: -6px; padding: 1px; border-radius: 4px; } QSlider::handle:disabled{ background: #000000; border: 2px solid #333333; /* grey border */ width: 8px; /* More rectangular */ height: 2px; margin: -6px; padding: 1px; border-radius: 4px; } /* Unfilled portion */ QSlider::add-page:horizontal { background: #222; border-radius: 3px; } QSlider::handle:vertical { background: #000000; border: 2px solid #333333; width: 18px; height: 12px; margin: -9px 0; border-radius: 9px; } QSlider::handle:vertical:disabled{ background: #000000; border: 2px solid #333333; /* grey border */ width: 18px; /* More rectangular */ height: 12px; margin: -9px; border-radius: 4px; } /* Glowing effect when moving */ QSlider::sub-page:horizontal { background: qlineargradient(x1:1, y1:0, x2:0, y2:0, stop:0 #660000, stop:1 #ff1a1a); border-radius: 3px; } /* Glowing effect when moving */ QSlider::sub-page:horizontal:disabled { background: #333333; border-radius: 3px; } /* Unfilled portion */ QSlider::add-page:horizontal { background: #222; border-radius: 3px; } /* QLabels */ QLabel { color: #FF2200; } QSlider::horizontal { margin-left: 5px; margin-right: 5px; } """
- TRANSPARENT = Multiline-String
Show Value
""" QMainWindow, QWidget, QMenuBar { background-color: transparent; color: "#d51e35"; } QSlider { border: #333333; } QPushButton { background-color: transparent; border: 1px solid red; color: "#d51e35"; } QPushButton:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #ff1a1a); } QStatusBar { background-color: transparent; color: "#d51e35"; } """
- TRANSPARENT_WHITE = Multiline-String
Show Value
""" QMainWindow, QWidget, QMenuBar { background-color: transparent; color: "#d51e35"; } QLabel { background-color: transparent; color: "white"; } QPushButton { background-color: transparent; border: 1px solid red; color: "#d51e35"; } QPushButton:hover { background-color: rgba(255, 0, 0, 30); } QStatusBar { background-color: transparent; color: "#d51e35"; } """
- STATUS_INDICATOR_ACTIVE = Multiline-String
Show Value
""" QLabel { background-color: #FF2200; border-radius: 8px; min-width: 12px; min-height: 12px; max-width: 12px; max-height: 12px; } """
- STATUS_INDICATOR_INACTIVE = Multiline-String
Show Value
""" QLabel {{ background-color: #333333; border: 1px solid #666666; border-radius: 8px; min-width: 12px; min-height: 12px; max-width: 12px; max-height: 12px; }} """
- STATUS_INDICATOR_ANALOG_ACTIVE = Multiline-String
Show Value
""" QLabel { background-color: #00A0E9; border-radius: 8px; min-width: 12px; min-height: 12px; max-width: 12px; max-height: 12px; } """
- BUTTON_GLOW_RED = Multiline-String
Show Value
""" QPushButton { border: 2px solid #FF2200; background-color: #222222; } QPushButton:hover { border: 2px solid #FF4400; background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #330000, stop:1 #FF4400); } QPushButton:pressed { border: 2px solid #FF6666; background-color: #333333; } """
- BUTTON_GLOW_ANALOG = Multiline-String
Show Value
""" QPushButton { border: 2px solid #00A0E9; background-color: #222222; } QPushButton:hover { border: 2px solid #00C0FF; background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #003333, stop:1 #00C0FF); } QPushButton:pressed { border: 2px solid #417ffa; background-color: #333333; } """
- ADSR_ANALOG = Multiline-String
Show Value
""" QGroupBox { font-family: Segoe UI; width: 300px; border: none; border-top: 1px solid #00A0E9; margin: 1px; padding: 1px; } /* Groove (Track) */ QSlider::groove:vertical { font-family: Segoe UI; background: #111; /* Dark background */ width: 6px; border-radius: 3px; border-radius: 3px; border-radius: 3px; } /* Handle (Knob) */ QSlider::handle:vertical { background: black; border: 2px solid #1a1aff; /* Neon blue border */ width: 10px; /* More rectangular */ height: 10px; margin: -10px; margin-bottom: 2px; margin-top: 2px; border-radius: 5px; padding: 1px; } /* Glowing effect when moving */ QSlider::sub-page:vertical { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #000066, stop:1 #1a1aff); border-radius: 3px; } /* Handle (Knob) */ QSlider::handle:vertical:disabled { background: black; border: 2px solid #333333; /* grey border */ width: 10px; /* More rectangular */ height: 10px; margin: -10px; border-radius: 5px; } /* greyed out groove */ QSlider::sub-page:vertical:disabled { background: #333333; border-radius: 3px; } /* Unfilled portion */ QSlider::add-page:vertical { background: #222; border-radius: 3px; } /* Tick Marks (Small dashes on both sides) */ QSlider::tick-mark { background: #1a1aff; width: 4px; height: 2px; border-radius: 1px; margin-left: 2px; margin-right: 2px; } /* Handle Hover Effect */ QSlider::handle:vertical:hover { border: 2px solid #3333ff; } /* Spin Box - upper bar only (JD-Xi style) */ QSpinBox, QDoubleSpinBox { background-color: #222; border: none; border-top: 2px solid #00A0E9; border-radius: 0; padding: 1px; margin: -2px; width: 40px; color: #00A0E9; } /* QLabels */ QLabel { color: #00A0E9; } """
- ADSR = Multiline-String
Show Value
""" QGroupBox { font-family: Segoe UI; width: 200px; border: none; border-top: 1px solid #FF2200; margin: 1px; padding: 1px; } /* Groove (Track) */ QSlider::groove:vertical { font-family: Segoe UI; background: #111; /* Dark background */ width: 6px; border-radius: 3px; } /* Handle (Knob) */ QSlider::handle:vertical { background: black; border: 2px solid #ff1a1a; /* Neon red border */ width: 10px; /* More rectangular */ height: 10px; margin: -8px; margin-bottom: 2px; margin-top: 1px; border-radius: 5px; } /* Handle (Knob) */ QSlider::handle:vertical:disabled { background: black; border: 2px solid #333333; /* grey border */ width: 10px; /* More rectangular */ height: 10px; margin: -10px; border-radius: 5px; } /* greyed out groove */ QSlider::sub-page:vertical:disabled { background: #333333; border-radius: 3px; } /* Glowing effect when moving */ QSlider::sub-page:vertical { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #ff1a1a); border-radius: 3px; } /* Glowing effect when moving */ QSlider::sub-page:vertical:disabled:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #ff1a1a); border-radius: 3px; } /* Unfilled portion */ QSlider::add-page:vertical { font-family: Segoe UI; background: #222; border-radius: 3px; } /* Tick Marks (Small dashes on both sides) */ QSlider::tick-mark { background: #ff1a1a; width: 4px; height: 2px; border-radius: 1px; margin-left: -8px; margin-right: 8px; } QSlider::horizontal { margin-left: 6px; margin-right: 6x; } /* Handle Hover Effect */ QSlider::handle:vertical:hover { border: 2px solid #ff3333; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #ff1a1a); } /* Spin Box - upper bar only (JD-Xi style) */ QSpinBox, QDoubleSpinBox { background-color: #222; border: none; border-top: 2px solid #ff1a1a; border-radius: 0; padding: 1px; margin: -2px; color: #ff1a1a; } /* QLabels */ QLabel { color: "#d51e35"; } """
- ADSR_DISABLED = Multiline-String
Show Value
""" QSlider { font-family: Segoe UI; } QLabel { font-family: Segoe UI; } /* Groove (Track) */ QSlider::groove:vertical { background: #111; /* Dark background */ width: 6px; border-radius: 3px; } /* Handle (Knob) */ QSlider::handle:vertical { background: black; border: 2px solid #333333; /* Neon red border */ width: 10px; /* More rectangular */ height: 10px; margin: -8px; margin-bottom: 2px; margin-top: 2px; border-radius: 5px; } /* Handle (Knob) */ QSlider::handle:vertical:disabled { background: black; border: 2px solid #333333; /* grey border */ width: 10px; /* More rectangular */ height: 10px; margin: -10px; border-radius: 5px; } /* greyed out groove */ QSlider::sub-page:vertical:disabled { background: #333333; border-radius: 3px; } /* Glowing effect when moving */ QSlider::sub-page:vertical { font-family: Segoe UI; background: #333333; border-radius: 3px; } /* Unfilled portion */ QSlider::add-page:vertical { background: #222; border-radius: 3px; } /* Tick Marks (Small dashes on both sides) */ QSlider::tick-mark { background: #333333; width: 4px; height: 2px; border-radius: 1px; margin-left: -8px; margin-right: 8px; } QSlider::horizontal { margin-left: 6px; margin-right: 6x; } /* Handle Hover Effect */ QSlider::handle:vertical:hover { border: 2px solid #ff1a1a; } /* Spin Box - upper bar only (JD-Xi style) */ QSpinBox, QDoubleSpinBox { background-color: #222; border: none; border-top: 2px solid #ff1a1a; border-radius: 0; padding: 1px; margin: -2px; color: #ff1a1a; } /* QLabels */ QLabel { color: "#d51e35"; } """
- ADSR_PLOT = Multiline-String
Show Value
""" QWidget { background-color: #333333; } """
- COMBO_BOX = Multiline-String
Show Value
""" QComboBox { font-family: Segoe UI; background-color: #000000; border: none; border-top: 2px solid #FF2200; border-radius: 0; padding: 1px; color: #FFFFFF; } /* Style for the dropdown button */ QComboBox::drop-down { border: none; width: 20px; height: 20px; } /* Custom small down arrow */ QComboBox::down-arrow { width: 16px; /* Adjust arrow size */ height: 10px; } /* Custom small up arrow (if needed for editable combobox) */ QComboBox::up-arrow { width: 16px; /* Adjust arrow size */ height: 10px; } /* Scrollbar styling */ QScrollBar:vertical { background: black; border: 2px solid #ff4500; width: 20px; border-radius: 5px; } """
- COMBO_BOX_ANALOG = Multiline-String
Show Value
""" QComboBox { font-family: Segoe UI; background-color: #000000; border: none; border-top: 2px solid #00A0E9; border-radius: 0; padding: 1px; color: #FFFFFF; } /* Style for the dropdown button */ QComboBox::drop-down { border: none; width: 20px; height: 20px; } /* Custom small down arrow */ QComboBox::down-arrow { width: 16px; /* Adjust arrow size */ height: 10px; } /* Custom small up arrow (if needed for editable combobox) */ QComboBox::up-arrow { width: 16px; /* Adjust arrow size */ height: 10px; } /* Scrollbar styling */ QScrollBar:vertical { background: black; border: 2px solid #ff4500; width: 20px; border-radius: 5px; } """
- LABEL_SUB = Multiline-String
Show Value
""" font-family: "Segoe UI"; font-size: 13px; color: #d51e35; font-weight: bold; """
- LABEL = Multiline-String
Show Value
""" font-family: "Segoe UI"; font-size: 14px; color: #d51e35; font-weight: bold; background: transparent; """
- QLABEL = Multiline-String
Show Value
""" QLabel { font-family: "Segoe UI"; font-size: 14px; color: #d51e35; font-weight: bold; background: transparent; } """
- QLINEEDIT = Multiline-String
Show Value
""" QLineEdit { font-family: "Segoe UI"; font-size: 12px; color: #FFFFFF; background: #1a1a1a; border: none; border-top: 2px solid #FF2200; border-radius: 0; } """
- QLINEEDIT_ANALOG = Multiline-String
Show Value
""" QLineEdit { font-family: "Segoe UI"; font-size: 12px; color: #FFFFFF; background: #1a1a1a; border: none; border-top: 2px solid #00A0E9; border-radius: 0; } """
- KEYBOARD_DRUM_LABELS = Multiline-String
Show Value
""" QLabel { color: #808080; font-size: 7px; font-family: monospace; padding: 2px; min-width: 30px; } """
- INSTRUMENT_TITLE_LABEL = Multiline-String
Show Value
""" font-family: "Consolas"; color: #FFBB33; font-size: 16px; font-weight: bold; QGroupBox { height: 60; border: 2px solid black; border-radius: 5px; padding: 1px; margin: 1px; background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 1, stop: 0 #321212, stop: 0.3 #331111, stop: 0.5 #551100, stop: 0.7 #331111, stop: 1 #321212 ); } """
- INSTRUMENT_SUBTITLE_LABEL = Multiline-String
Show Value
""" font-family: "Consolas"; color: #FFBB33; font-size: 24px; font-weight: bold; """
- LABEL_SYNTH_PART = Multiline-String
Show Value
""" font-family: "Segoe UI"; font-size: 13px; color: "#d51e35"; /* Base red */ font-weight: bold; """
- LABEL_ANALOG_SYNTH_PART = Multiline-String
Show Value
""" font-family: "Segoe UI"; font-size: 13px; color: #00A0E9; /* Blue for Analog */ font-weight: bold; """
- DRUM_GROUP = Multiline-String
Show Value
""" QGroupBox { font-family: Segoe UI; width: 50px; height: 60; } """
- TAB_TITLE = Multiline-String
Show Value
""" QTabBar::tab { font-family: Segoe UI; font-size: 13px; font-weight: bold; color: #666666; } QTabBar::tab:selected { font-family: Segoe UI; font-size: 13px; font-weight: bold; color: #FF2200; } QTabBar::tab:hover { font-family: Segoe UI; font-size: 13px; font-weight: bold; color: #FF2200; } QTabBar::tab:disabled { font-family: Segoe UI; font-size: 13px; font-weight: bold; color: #666666; } QTabWidget::tab-bar { alignment: center; } """
- TAB_TITLE_ANALOG = Multiline-String
Show Value
""" QTabBar::tab:selected:analog { font-family: Segoe UI; font-size: 13px; font-weight: bold; color: #00A0E9; } QTabBar::tab:hover:analog { font-family: Segoe UI; font-size: 13px; font-weight: bold; color: #00A0E9; } QTabBar::tab:selected { font-family: Segoe UI; font-size: 13px; font-weight: bold; color: #00A0E9; } QTabWidget::tab-bar { alignment: center; } """
- GROUP_BOX_ANALOG = Multiline-String
Show Value
""" QGroupBox { font-family: Segoe UI; border: none; color: #FFFFFF; border-top: 1px solid #00A0E9; margin: 10px; padding: 10px; } QGroupBox::title { font-family: Segoe UI; subcontrol-origin: margin; subcontrol-position: top center; padding: 10 10px; background-color: black; } """
- PATCH_MANAGER = Multiline-String
Show Value
""" QMainWindow { background-color: #2E2E2E; font-family: Segoe UI; } QWidget { background-color: #2E2E2E; color: #FFFFFF; font-family: "Segoe UI"; } QLineEdit { background-color: #1A1A1A; color: #FFFFFF; border: 1px solid #FF0000; border-radius: 3px; padding: 1px; font-family: 'Consolas'; } QPushButton { background-color: #3D3D3D; color: #FFFFFF; border: 1px solid #FF0000; border-radius: 3px; padding: 1px 1px; font-family: "Segoe UI"; } QPushButton:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #ff1a1a); border: 1px solid #FF3333; } QPushButton:pressed { background-color: #2D2D2D; } QLabel { color: #FFFFFF; font-family: "Segoe UI"; } """
- LABEL_WHEEL = Multiline-String
Show Value
""" QLabel { color: red; font-family: "Segoe UI"; } """
- PARTIAL_SWITCH = Multiline-String
Show Value
""" QCheckBox { color: #666666; font-size: 10px; } QCheckBox::indicator { width: 16px; height: 16px; background: #333333; border: 1px solid #555555; border-radius: 8px; } QCheckBox::indicator:checked { background: #666666; border-color: #FF4444; } """
- PARTIALS_PANEL = Multiline-String
Show Value
""" QGroupBox { font-family: Segoe UI; color: #666666; height: 60; font-size: 12px; border: 0px; border-top: 2px solid #444444; /* Only top border */ border-radius: 3px; margin-top: 1px; padding: 1px; } QGroupBox::title { subcontrol-origin: margin; subcontrol-position: top center; padding: 0 1px; margin-top: 1px; background-color: #2D2D2D; } """
- WINDOW_DEBUGGER = Multiline-String
Show Value
""" QMainWindow { background-color: #2E2E2E; } QWidget { background-color: #2E2E2E; color: #FFFFFF; font-family: 'Segoe UI'; } QPlainTextEdit { background-color: #1A1A1A; color: #FFFFFF; border: 1px solid #FF0000; border-radius: 3px; padding: 1px; font-family: 'Consolas'; } QTextEdit { background-color: #1A1A1A; color: #FFFFFF; border: 1px solid #FF0000; border-radius: 3px; padding: 2px; font-family: 'Consolas'; } QPushButton { background-color: #3D3D3D; color: #FFFFFF; border: 1px solid #FF0000; border-radius: 3px; padding: 1px 1px; font-family: "Segoe UI"; } QPushButton:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #660000, stop:1 #ff1a1a); border: 1px solid #FF3333; } QPushButton:pressed { background-color: #666666; } """
- SEQUENCER = Multiline-String
Show Value
""" font-family: "Segoe UI"; font-size: 14px; color: #d51e35; font-weight: bold; background: transparent; """
- PARTS_SELECT = Multiline-String
Show Value
""" font-family: Segoe UI; font-size: 14px; color: #d51e35; font-weight: bold; background: transparent; padding-bottom: 1px; """
- class jdxi_editor.ui.style.JDXiUIThemeManager[source]
Bases:
PySide6.QtCore.QObjectCentralized theme management for JD-Xi Editor
- _instance: JDXiUIThemeManager | None = None
- _initialized = True
- static apply_style(widget: PySide6.QtWidgets.QWidget, style: str) None[source]
Apply a style string to a widget.
- Parameters:
widget – QWidget to apply style to
style – str Style sheet string
- static apply_editor_title_label(widget: PySide6.QtWidgets.QWidget) None[source]
Apply editor title label style
- static apply_analog_section_header(widget: PySide6.QtWidgets.QWidget) None[source]
Apply analog section header style
- static apply_digital_section_header(widget: PySide6.QtWidgets.QWidget) None[source]
Apply digital section header style
- static apply_midi_monitor(widget: PySide6.QtWidgets.QWidget) None[source]
Apply MIDI message monitor style
- static apply_status_indicator_active(widget: PySide6.QtWidgets.QWidget, analog: bool = False) None[source]
Apply active status indicator style
- Parameters:
widget – QWidget to style
analog – bool If True, use analog (blue) style, else digital (red)
- static apply_status_indicator_inactive(widget: PySide6.QtWidgets.QWidget) None[source]
Apply inactive status indicator style
- static apply_button_glow_red(widget: PySide6.QtWidgets.QWidget) None[source]
Apply red glow button style
- static apply_button_glow_analog(widget: PySide6.QtWidgets.QWidget) None[source]
Apply analog (blue) glow button style
- static apply_waveform_button(widget: PySide6.QtWidgets.QWidget, analog: bool = False) None[source]
Apply waveform button style
- Parameters:
widget – QWidget to style
analog – bool If True, use analog style, else digital
- static apply_instrument_background(widget: PySide6.QtWidgets.QWidget) None[source]
Apply instrument background gradient style
- static apply_editor_style(widget: PySide6.QtWidgets.QWidget, analog: bool = False) None[source]
Apply editor style
- Parameters:
widget – QWidget to style
analog – bool If True, use analog editor style, else standard
- static apply_instrument_title_label(widget: PySide6.QtWidgets.QWidget) None[source]
Apply instrument title label style
- static apply_mixer_label(widget: PySide6.QtWidgets.QWidget, analog: bool = False) None[source]
Apply mixer label style
- Parameters:
widget – QWidget to style
analog – bool If True, use analog mixer label style, else standard
- static apply_button_mini_style(widget: PySide6.QtWidgets.QWidget) None[source]
Apply partial switch (checkbox) style
- static apply_adsr_style(widget: PySide6.QtWidgets.QWidget, analog: bool = False) None[source]
Apply ADSR envelope style
- Parameters:
widget – QWidget to style
analog – bool If True, use analog ADSR style, else standard
- static apply_adsr_disabled(widget: PySide6.QtWidgets.QWidget) None[source]
Apply ADSR disabled style
- static apply_tabs_style(widget: PySide6.QtWidgets.QWidget, analog: bool = False) None[source]
Apply tabs style
- Parameters:
widget – QWidget to style
analog – bool If True, use analog tabs style, else standard
- static apply_debugger_window(widget: PySide6.QtWidgets.QWidget) None[source]
Apply debugger window style
- static apply_combo_box(widget: PySide6.QtWidgets.QWidget, analog: bool = False) None[source]
Apply combo box style
- Parameters:
widget – QWidget to style
analog – bool If True, use analog combo box style, else standard
- static apply_button_rect_analog(widget: PySide6.QtWidgets.QWidget) None[source]
Apply analog rectangular button style (blue)
- static apply_button_rect(widget: PySide6.QtWidgets.QWidget, analog: bool = False) None[source]
Apply analog rectangular button style (blue)
- static apply_button_analog_active(widget: PySide6.QtWidgets.QWidget) None[source]
Apply analog active button style (blue, active state)
- static apply_table_style(widget: PySide6.QtWidgets.QWidget) None[source]
Apply table style with rounded corners and charcoal embossed cells
- static get_application_style() str[source]
Get the complete application-wide stylesheet.
This combines all the recent styling improvements into a single stylesheet that can be applied to the QApplication instance.
- Returns:
str Complete stylesheet string
- jdxi_editor.ui.style.get_theme_manager() JDXiUIThemeManager[source]
Get the singleton ThemeManager instance