Use the builtin is_dark_theme() method

This commit is contained in:
Charles Haley 2024-09-24 22:10:28 +01:00
parent 903f08d50b
commit b75f65a8b6

View File

@ -2654,15 +2654,10 @@ class BuiltinIsDarkMode(BuiltinFormatterFunction):
"Example: if is_dark_mode() then 'dark.png' else 'light.png' fi ") "Example: if is_dark_mode() then 'dark.png' else 'light.png' fi ")
def evaluate(self, formatter, kwargs, mi, locals): def evaluate(self, formatter, kwargs, mi, locals):
# Import these here so that Qt isn't referenced unless this function is used.
try: try:
from qt.core import QApplication, Qt # Import this here so that Qt isn't referenced unless this function is used.
from calibre.gui2 import gprefs from calibre.gui2 import is_dark_theme
return '1' if is_dark_theme() else ''
system_is_dark = QApplication.instance().styleHints().colorScheme() == Qt.ColorScheme.Dark
palette = gprefs['color_palette']
is_dark = palette == 'dark' or (palette == 'system' and system_is_dark)
return '1' if is_dark else ''
except Exception: except Exception:
only_in_gui_error('is_dark_mode') only_in_gui_error('is_dark_mode')