jdxi_editor.ui.theme

Centralized theme management for JD-Xi Editor.

Provides a single point of control for applying themes, custom stylesheets, and ensuring consistent styling across the application.

Attributes

HAS_DARKDETECT

HAS_QDARKTHEME

Classes

ThemeManager

Centralized theme management for JD-Xi Editor

Module Contents

jdxi_editor.ui.theme.HAS_DARKDETECT = True[source]
jdxi_editor.ui.theme.HAS_QDARKTHEME = True[source]
class jdxi_editor.ui.theme.ThemeManager[source]

Bases: PySide6.QtCore.QObject

Centralized theme management for JD-Xi Editor

_instance: ThemeManager | None = None[source]
_initialized = True[source]
static apply_theme(theme: str = 'dark') bool[source]

Apply qdarktheme to the application (optional).

Parameters:

theme – Theme mode - “auto”, “light”, or “dark”

Returns:

True if theme was applied successfully, False otherwise

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_table_style(widget: PySide6.QtWidgets.QWidget) None[source]

Apply table style with rounded corners and charcoal embossed cells

static get_custom_stylesheet() str[source]

Get custom application-wide stylesheet additions.

These styles complement qdarktheme (if available) and provide JD-Xi Editor-specific styling with rounded corners, improved spacing, modern aesthetics, and recent styling improvements.

Returns:

Additional CSS stylesheet string

static apply_custom_stylesheet() bool[source]

Apply custom stylesheet to the application.

Returns:

True if stylesheet was applied successfully, False otherwise

static initialize(theme: str = 'dark', apply_custom: bool = True, apply_qdarktheme: bool = False) bool[source]

Initialize theme system with optional qdarktheme and custom JD-Xi styles.

This is the main entry point for theme initialization.

Parameters:
  • theme – Theme mode - “auto”, “light”, or “dark” (only used if apply_qdarktheme=True)

  • apply_custom – Whether to apply custom JD-Xi Editor stylesheet

  • apply_qdarktheme – Whether to apply qdarktheme (requires qdarktheme package)

Returns:

True if initialization was successful, False otherwise

static get_progress_bar_style(use_custom_colors: bool = False) str[source]

Get progress bar stylesheet.

Parameters:

use_custom_colors – If True, use custom gradient colors (for splash screen). If False, use theme-aware colors.

Returns:

Progress bar CSS stylesheet