jdxi_editor.ui.theme ==================== .. py:module:: jdxi_editor.ui.theme .. autoapi-nested-parse:: 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 ---------- .. autoapisummary:: jdxi_editor.ui.theme.HAS_DARKDETECT jdxi_editor.ui.theme.HAS_QDARKTHEME Classes ------- .. autoapisummary:: jdxi_editor.ui.theme.ThemeManager Module Contents --------------- .. py:data:: HAS_DARKDETECT :value: True .. py:data:: HAS_QDARKTHEME :value: True .. py:class:: ThemeManager Bases: :py:obj:`PySide6.QtCore.QObject` Centralized theme management for JD-Xi Editor .. py:attribute:: _instance :type: Optional[ThemeManager] :value: None .. py:attribute:: _initialized :value: True .. py:method:: apply_theme(theme: str = 'dark') -> bool :staticmethod: Apply qdarktheme to the application (optional). :param theme: Theme mode - "auto", "light", or "dark" :return: True if theme was applied successfully, False otherwise .. py:method:: apply_style(widget: PySide6.QtWidgets.QWidget, style: str) -> None :staticmethod: Apply a style string to a widget. :param widget: QWidget to apply style to :param style: str Style sheet string .. py:method:: apply_editor_title_label(widget: PySide6.QtWidgets.QWidget) -> None :staticmethod: Apply editor title label style .. py:method:: apply_analog_section_header(widget: PySide6.QtWidgets.QWidget) -> None :staticmethod: Apply analog section header style .. py:method:: apply_digital_section_header(widget: PySide6.QtWidgets.QWidget) -> None :staticmethod: Apply digital section header style .. py:method:: apply_midi_monitor(widget: PySide6.QtWidgets.QWidget) -> None :staticmethod: Apply MIDI message monitor style .. py:method:: apply_status_indicator_active(widget: PySide6.QtWidgets.QWidget, analog: bool = False) -> None :staticmethod: Apply active status indicator style :param widget: QWidget to style :param analog: bool If True, use analog (blue) style, else digital (red) .. py:method:: apply_status_indicator_inactive(widget: PySide6.QtWidgets.QWidget) -> None :staticmethod: Apply inactive status indicator style .. py:method:: apply_button_glow_red(widget: PySide6.QtWidgets.QWidget) -> None :staticmethod: Apply red glow button style .. py:method:: apply_button_glow_analog(widget: PySide6.QtWidgets.QWidget) -> None :staticmethod: Apply analog (blue) glow button style .. py:method:: apply_waveform_button(widget: PySide6.QtWidgets.QWidget, analog: bool = False) -> None :staticmethod: Apply waveform button style :param widget: QWidget to style :param analog: bool If True, use analog style, else digital .. py:method:: apply_instrument_background(widget: PySide6.QtWidgets.QWidget) -> None :staticmethod: Apply instrument background gradient style .. py:method:: apply_table_style(widget: PySide6.QtWidgets.QWidget) -> None :staticmethod: Apply table style with rounded corners and charcoal embossed cells .. py:method:: get_custom_stylesheet() -> str :staticmethod: 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. :return: Additional CSS stylesheet string .. py:method:: apply_custom_stylesheet() -> bool :staticmethod: Apply custom stylesheet to the application. :return: True if stylesheet was applied successfully, False otherwise .. py:method:: initialize(theme: str = 'dark', apply_custom: bool = True, apply_qdarktheme: bool = False) -> bool :staticmethod: Initialize theme system with optional qdarktheme and custom JD-Xi styles. This is the main entry point for theme initialization. :param theme: Theme mode - "auto", "light", or "dark" (only used if apply_qdarktheme=True) :param apply_custom: Whether to apply custom JD-Xi Editor stylesheet :param apply_qdarktheme: Whether to apply qdarktheme (requires qdarktheme package) :return: True if initialization was successful, False otherwise .. py:method:: get_progress_bar_style(use_custom_colors: bool = False) -> str :staticmethod: Get progress bar stylesheet. :param use_custom_colors: If True, use custom gradient colors (for splash screen). If False, use theme-aware colors. :return: Progress bar CSS stylesheet