Only modify dark palette on macOS where we dont explicitly set the colors

This commit is contained in:
Kovid Goyal 2019-12-08 09:01:35 +05:30
parent 537fcd9021
commit 9c7f24805b
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 19 additions and 16 deletions

View File

@ -1037,19 +1037,17 @@ class Application(QApplication):
self.on_palette_change() self.on_palette_change()
def fix_dark_theme_colors(self): def fix_dark_theme_colors(self):
self.is_dark_theme = is_dark_theme() from calibre.gui2.palette import dark_link_color
if self.is_dark_theme: pal = self.palette()
pal = self.palette() # dark blue is unreadable when using dark backgrounds
# dark blue is unreadable when using dark backgrounds pal.setColor(pal.Link, dark_link_color)
pal.setColor(pal.Link, QColor('#6CB4EE')) # alternating row colors look awful in most dark mode themes
if isosx: pal.setColor(pal.AlternateBase, pal.color(pal.Base))
# alternating row colors look awful in most dark mode themes if self.using_calibre_style:
pal.setColor(pal.AlternateBase, pal.color(pal.Base)) # Workaround for https://bugreports.qt.io/browse/QTBUG-75321
if isosx and self.using_calibre_style: # Buttontext is set to black for some reason
# Workaround for https://bugreports.qt.io/browse/QTBUG-75321 pal.setColor(pal.ButtonText, pal.color(pal.WindowText))
# Buttontext is set to black for some reason self.set_palette(pal)
pal.setColor(pal.ButtonText, pal.color(pal.WindowText))
self.set_palette(pal)
def set_palette(self, pal): def set_palette(self, pal):
self.is_dark_mode_palette = False self.is_dark_mode_palette = False
@ -1063,7 +1061,9 @@ class Application(QApplication):
def on_palette_change(self): def on_palette_change(self):
if self.ignore_palette_changes: if self.ignore_palette_changes:
return return
self.fix_dark_theme_colors() self.is_dark_theme = is_dark_theme()
if isosx:
self.fix_dark_theme_colors()
self.palette_changed.emit() self.palette_changed.emit()
def stylesheet_for_line_edit(self, is_error=False): def stylesheet_for_line_edit(self, is_error=False):
@ -1133,7 +1133,7 @@ class Application(QApplication):
@current_custom_colors.setter @current_custom_colors.setter
def current_custom_colors(self, colors): def current_custom_colors(self, colors):
from PyQt5.Qt import QColorDialog, QColor from PyQt5.Qt import QColorDialog
num = min(len(colors), QColorDialog.customCount()) num = min(len(colors), QColorDialog.customCount())
for i in range(num): for i in range(num):
QColorDialog.setCustomColor(i, QColor(*colors[i])) QColorDialog.setCustomColor(i, QColor(*colors[i]))

View File

@ -7,6 +7,9 @@ from __future__ import absolute_import, division, print_function, unicode_litera
from PyQt5.Qt import QColor, QPalette, Qt from PyQt5.Qt import QColor, QPalette, Qt
dark_link_color = QColor(42, 130, 218)
def dark_palette(): def dark_palette():
p = QPalette() p = QPalette()
dark_color = QColor(45,45,45) dark_color = QColor(45,45,45)
@ -23,7 +26,7 @@ def dark_palette():
p.setColor(p.ButtonText, Qt.white) p.setColor(p.ButtonText, Qt.white)
p.setColor(p.Disabled, p.ButtonText, disabled_color) p.setColor(p.Disabled, p.ButtonText, disabled_color)
p.setColor(p.BrightText, Qt.red) p.setColor(p.BrightText, Qt.red)
p.setColor(p.Link, QColor(42, 130, 218)) p.setColor(p.Link, dark_link_color)
p.setColor(p.Highlight, QColor(42, 130, 218)) p.setColor(p.Highlight, QColor(42, 130, 218))
p.setColor(p.HighlightedText, Qt.black) p.setColor(p.HighlightedText, Qt.black)