>From f303471a775ab7d622c4d572b40c51a00860f8e8 Mon Sep 17 00:00:00 2001 From: Christopher League Date: Mon, 28 Jun 2021 22:41:07 -0400 Subject: [PATCH] Retain documentation string when customizing theme * lisp/cus-theme.el (customize-create-theme): When editing an existing theme, load its doc string into the description widget, instead of replacing it with a date stamp (Bug#49274). --- lisp/cus-theme.el | 100 +++++++++++++++++++++++----------------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/lisp/cus-theme.el b/lisp/cus-theme.el index dfa2226403..91e4ea1a1a 100644 --- a/lisp/cus-theme.el +++ b/lisp/cus-theme.el @@ -108,60 +108,16 @@ named *Custom Theme*." (unless (y-or-n-p "Include basic face customizations in this theme? ") (setq custom-theme--listed-faces nil))) - (if (eq theme 'user) - (widget-insert "This buffer contains all the Custom settings you have made. -You can convert them into a new custom theme, and optionally -remove them from your saved Custom file.\n\n")) - - (widget-create 'push-button - :tag " Visit Theme " - :help-echo "Insert the settings of a pre-defined theme." - :action (lambda (_widget &optional _event) - (call-interactively #'custom-theme-visit-theme))) - (widget-insert " ") - (widget-create 'push-button - :tag " Merge Theme " - :help-echo "Merge in the settings of a pre-defined theme." - :action (lambda (_widget &optional _event) - (call-interactively #'custom-theme-merge-theme))) - (widget-insert " ") - (widget-create 'push-button - :tag " Revert " - :help-echo "Revert this buffer to its original state." - :action (lambda (&rest ignored) (revert-buffer))) - - (widget-insert "\n\nTheme name : ") - (setq custom-theme-name - (widget-create 'editable-field - :value (if (and theme (not (eq theme 'user))) - (symbol-name theme) - ""))) - (widget-insert "Description: ") - (setq custom-theme-description - (widget-create 'text - :value (format-time-string "Created %Y-%m-%d."))) - (widget-create 'push-button - :notify #'custom-theme-write - " Save Theme ") - (when (eq theme 'user) - (setq custom-theme--migrate-settings t) - (widget-insert " ") - (widget-create 'checkbox - :value custom-theme--migrate-settings - :action (lambda (widget &optional event) - (when (widget-value widget) - (widget-toggle-action widget event) - (setq custom-theme--migrate-settings - (widget-value widget))))) - (widget-insert (propertize " Remove saved theme settings from Custom save file." - 'face '(variable-pitch (:height 0.9))))) - (let (vars values faces face-specs) ;; Load the theme settings. (when theme - (unless (eq theme 'user) - (load-theme theme nil t)) + (if (eq theme 'user) + (widget-insert "This buffer contains all the Custom settings you have made. +You can convert them into a new custom theme, and optionally +remove them from your saved Custom file.\n\n") + (load-theme theme nil t)) + (dolist (setting (get theme 'theme-settings)) (if (eq (car setting) 'theme-value) (progn (push (nth 1 setting) vars) @@ -169,6 +125,50 @@ remove them from your saved Custom file.\n\n")) (push (nth 1 setting) faces) (push (nth 3 setting) face-specs)))) + (widget-create 'push-button + :tag " Visit Theme " + :help-echo "Insert the settings of a pre-defined theme." + :action (lambda (_widget &optional _event) + (call-interactively #'custom-theme-visit-theme))) + (widget-insert " ") + (widget-create 'push-button + :tag " Merge Theme " + :help-echo "Merge in the settings of a pre-defined theme." + :action (lambda (_widget &optional _event) + (call-interactively #'custom-theme-merge-theme))) + (widget-insert " ") + (widget-create 'push-button + :tag " Revert " + :help-echo "Revert this buffer to its original state." + :action (lambda (&rest ignored) (revert-buffer))) + + (widget-insert "\n\nTheme name : ") + (setq custom-theme-name + (widget-create 'editable-field + :value (if (and theme (not (eq theme 'user))) + (symbol-name theme) + ""))) + (widget-insert "Description: ") + (setq custom-theme-description + (widget-create 'text :format "%v" + :value (or (get theme 'theme-documentation) + (format-time-string "Created %Y-%m-%d.")))) + (widget-create 'push-button + :notify #'custom-theme-write + " Save Theme ") + (when (eq theme 'user) + (setq custom-theme--migrate-settings t) + (widget-insert " ") + (widget-create 'checkbox + :value custom-theme--migrate-settings + :action (lambda (widget &optional event) + (when (widget-value widget) + (widget-toggle-action widget event) + (setq custom-theme--migrate-settings + (widget-value widget))))) + (widget-insert (propertize " Remove saved theme settings from Custom save file." + 'face '(variable-pitch (:height 0.9))))) + ;; If THEME is non-nil, insert all of that theme's faces. ;; Otherwise, insert those in `custom-theme--listed-faces'. (widget-insert "\n\n Theme faces:\n ") -- 2.31.1