From b9d8e9c46214d18e42bc68cbf361f7fab50ad677 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 19 Jul 2022 13:52:44 +0530 Subject: [PATCH] DRYer --- src/calibre/gui2/__init__.py | 3 +-- src/calibre/gui2/palette.py | 7 +++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index bee040a5e3..50e600ab86 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -889,8 +889,7 @@ def choose_files_and_remember_all_files( def is_dark_theme(): pal = QApplication.instance().palette() - col = pal.color(QPalette.ColorRole.Window) - return max(col.getRgb()[:3]) < 115 + return pal.is_dark_theme() def choose_osx_app(window, name, title, default_dir='/Applications'): diff --git a/src/calibre/gui2/palette.py b/src/calibre/gui2/palette.py index 4193399444..af4e994b5c 100644 --- a/src/calibre/gui2/palette.py +++ b/src/calibre/gui2/palette.py @@ -10,6 +10,13 @@ dark_color = QColor(45,45,45) dark_text_color = QColor('#ddd') +def palette_is_dark(self): + return self.color(QPalette.ColorRole.Window).lightnessF() < self.color(QPalette.ColorRole.WindowText).lightnessF() + + +QPalette.is_dark_theme = palette_is_dark + + def fix_palette_colors(p): if iswindows: # On Windows the highlighted colors for inactive widgets are the