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).
This commit is contained in:
parent
5bd04ea307
commit
0aee54a54b
1 changed files with 50 additions and 50 deletions
|
@ -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 ")
|
||||
|
|
Loading…
Add table
Reference in a new issue