mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Fix changing disabled colors overriding non-disabled colors
This commit is contained in:
parent
a8a3bc9844
commit
eb05330943
@ -12,7 +12,8 @@ from qt.core import (
|
||||
|
||||
from calibre.gui2 import Application, choose_files, choose_save_file, gprefs
|
||||
from calibre.gui2.palette import (
|
||||
default_dark_palette, default_light_palette, palette_colors, palette_from_dict,
|
||||
default_dark_palette, default_light_palette, is_foreground_color, palette_colors,
|
||||
palette_from_dict,
|
||||
)
|
||||
from calibre.gui2.widgets2 import ColorButton, Dialog
|
||||
|
||||
@ -74,7 +75,7 @@ class PaletteColors(QWidget):
|
||||
self.default_palette = default_palette
|
||||
|
||||
for key, desc in palette_colors().items():
|
||||
if 'Text' in key:
|
||||
if is_foreground_color(key):
|
||||
self.foreground_colors[key] = desc
|
||||
elif 'Link' in key:
|
||||
self.link_colors[key] = desc
|
||||
@ -91,8 +92,8 @@ class PaletteColors(QWidget):
|
||||
ans.setFont(f)
|
||||
return ans
|
||||
|
||||
def c(x, desc):
|
||||
w = Color(x, desc, self, palette, default_palette, mode_name)
|
||||
def c(x, desc, group=''):
|
||||
w = Color(x, desc, self, palette, default_palette, mode_name, group=group)
|
||||
l.addWidget(w)
|
||||
self.colors.append(w)
|
||||
|
||||
@ -106,7 +107,7 @@ class PaletteColors(QWidget):
|
||||
|
||||
l.addWidget(header(_('Foreground (text) colors when disabled')))
|
||||
for x, desc in self.foreground_colors.items():
|
||||
c(x, desc)
|
||||
c(x, desc, group='disabled')
|
||||
|
||||
l.addWidget(header(_('Link colors')))
|
||||
for x, desc in self.link_colors.items():
|
||||
|
@ -140,22 +140,26 @@ def palette_colors():
|
||||
}
|
||||
|
||||
|
||||
def is_foreground_color(key: str) -> bool:
|
||||
return 'Text' in key
|
||||
|
||||
|
||||
def palette_from_dict(data: dict[str, str], default_palette: QPalette) -> QPalette:
|
||||
|
||||
def s(key, group=QPalette.ColorGroup.All):
|
||||
role = getattr(QPalette.ColorRole, key)
|
||||
grp = ''
|
||||
if group == QPalette.ColorGroup.Disabled:
|
||||
grp = 'disabled-'
|
||||
c = QColor.fromString(data.get(grp + key, ''))
|
||||
grp = '-disabled'
|
||||
c = QColor.fromString(data.get(key + grp, ''))
|
||||
if c.isValid():
|
||||
p.setColor(group, role, c)
|
||||
|
||||
p = QPalette()
|
||||
for key in palette_colors():
|
||||
s(key)
|
||||
for key in ('Text', 'ButtonText', 'HighlightedText'):
|
||||
s(key, QPalette.ColorGroup.Disabled)
|
||||
if is_foreground_color(key):
|
||||
s(key, QPalette.ColorGroup.Disabled)
|
||||
return p.resolve(default_palette)
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user