diff --git a/proto/anki/frontend.proto b/proto/anki/frontend.proto index 95b929c5c..1d733a369 100644 --- a/proto/anki/frontend.proto +++ b/proto/anki/frontend.proto @@ -27,6 +27,9 @@ service FrontendService { rpc deckOptionsRequireClose(generic.Empty) returns (generic.Empty); // Warns python that the deck option web view is ready to receive requests. rpc deckOptionsReady(generic.Empty) returns (generic.Empty); + + // Save colour picker's custom colour palette + rpc SaveCustomColours(generic.Empty) returns (generic.Empty); } service BackendFrontendService {} diff --git a/qt/aqt/mediasrv.py b/qt/aqt/mediasrv.py index 820e762d9..7c3480237 100644 --- a/qt/aqt/mediasrv.py +++ b/qt/aqt/mediasrv.py @@ -599,6 +599,18 @@ def deck_options_ready() -> bytes: return b"" +def save_custom_colours() -> bytes: + colours = ",".join( + [ + QColorDialog.customColor(i).name(QColor.NameFormat.HexArgb) + for i in range(QColorDialog.customCount()) + ] + ) + assert aqt.mw.pm.profile is not None + aqt.mw.pm.profile["customColorPickerPalette"] = colours + return b"" + + post_handler_list = [ congrats_info, get_deck_configs_for_update, @@ -614,6 +626,7 @@ post_handler_list = [ search_in_browser, deck_options_require_close, deck_options_ready, + save_custom_colours, ]