Store colors in the collection

One minor tweak to the logic while I was there: an invalid color no
longer invalidates all the rest.
This commit is contained in:
Damien Elmes 2025-09-17 16:38:26 +10:00
parent 1df93b02f8
commit 321b21d6a0
2 changed files with 11 additions and 18 deletions

View file

@ -351,16 +351,12 @@ require("anki/ui").loaded.then(() => require("anki/NoteEditor").instances[0].too
QShortcut(QKeySequence(keys), self.widget, activated=fn) # type: ignore QShortcut(QKeySequence(keys), self.widget, activated=fn) # type: ignore
def setupColourPalette(self) -> None: def setupColourPalette(self) -> None:
assert self.mw.pm.profile is not None if not (colors := self.mw.col.get_config("customColorPickerPalette")):
if custom_colours := str( return
self.mw.pm.profile.get("customColorPickerPalette", "") for i, colour in enumerate(colors[: QColorDialog.customCount()]):
): if not QColor.isValidColorName(colour):
for i, colour in enumerate( continue
custom_colours.split(",")[: QColorDialog.customCount()] QColorDialog.setCustomColor(i, QColor.fromString(colour))
):
if not QColor.isValidColorName(colour):
break
QColorDialog.setCustomColor(i, QColor.fromString(colour))
def _addFocusCheck(self, fn: Callable) -> Callable: def _addFocusCheck(self, fn: Callable) -> Callable:
def checkFocus() -> None: def checkFocus() -> None:

View file

@ -600,14 +600,11 @@ def deck_options_ready() -> bytes:
def save_custom_colours() -> bytes: def save_custom_colours() -> bytes:
colours = ",".join( colors = [
[ QColorDialog.customColor(i).name(QColor.NameFormat.HexArgb)
QColorDialog.customColor(i).name(QColor.NameFormat.HexArgb) for i in range(QColorDialog.customCount())
for i in range(QColorDialog.customCount()) ]
] aqt.mw.col.set_config("customColorPickerPalette", colors)
)
assert aqt.mw.pm.profile is not None
aqt.mw.pm.profile["customColorPickerPalette"] = colours
return b"" return b""