emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 0aee54a: Retain documentation string when customizing theme


From: Mauro Aranda
Subject: master 0aee54a: Retain documentation string when customizing theme
Date: Sat, 3 Jul 2021 09:47:24 -0400 (EDT)

branch: master
commit 0aee54a54beebedee20466b23ab99ae48f61259c
Author: Christopher League <league@contrapunctus.net>
Commit: Mauro Aranda <maurooaranda@gmail.com>

    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 dfa2226..f4885d0 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 ")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]