Changes committed gnus/lisp (ChangeLog gnus-registry.el gnus-sum.el)

"Ted Zlatanov" <[email protected]> Sat, 20 Mar 2010 19:52:07 +0100
Newsgroups gmane.emacs.gnus.commits
Message-ID <[email protected]>
Modified: ChangeLog gnus-registry.el gnus-sum.el

* gnus-sum.el (gnus-summary-make-menu-bar): Let
`gnus-registry-install-shortcuts' fill in the functions.

* gnus-registry.el (gnus-summary-misc-menu): Declare to avoid
warnings.
(gnus-registry-misc-menus): Variable to hold registry mark menus.
(gnus-registry-install-shortcuts): Populate and use it in a
`gnus-summary-menu-hook' lambda, under "Gnus"->"Registry Marks".


Index: ChangeLog
diff -u gnus/lisp/ChangeLog:7.2067 gnus/lisp/ChangeLog:7.2068
--- ChangeLog:7.2067	Sat Mar 20 17:44:09 2010
+++ ChangeLog	Sat Mar 20 19:52:07 2010
@@ -1,3 +1,14 @@
+2010-03-20  Teodor Zlatanov  <[email protected]>
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Let
+	`gnus-registry-install-shortcuts' fill in the functions.
+
+	* gnus-registry.el (gnus-summary-misc-menu): Declare to avoid
+	warnings.
+	(gnus-registry-misc-menus): Variable to hold registry mark menus.
+	(gnus-registry-install-shortcuts): Populate and use it in a
+	`gnus-summary-menu-hook' lambda, under "Gnus"->"Registry Marks".
+
 2010-03-20  Martin Stjernholm <[email protected]>
 
 	* nnimap.el (nnimap-decode-group-name, nnimap-encode-group-name):
Index: gnus-registry.el
diff -u gnus/lisp/gnus-registry.el:7.68 gnus/lisp/gnus-registry.el:7.69
--- gnus-registry.el:7.68	Wed Jan 13 11:59:43 2010
+++ gnus-registry.el	Sat Mar 20 19:52:07 2010
@@ -60,6 +60,7 @@
 (require 'gnus-sum)
 (require 'gnus-util)
 (require 'nnmail)
+(require 'easymenu)
 
 (defvar gnus-adaptive-word-syntax-table)
 
@@ -137,6 +138,10 @@
 		 (const :tag "Always Install" t)
 		 (const :tag "Ask Me" ask)))
 
+(defvar gnus-summary-misc-menu) ;; Avoid byte compiler warning.
+
+(defvar gnus-registry-misc-menus nil)	; ugly way to keep the menus
+
 (defcustom gnus-registry-clean-empty t
   "Whether the empty registry entries should be deleted.
 Registry entries are considered empty when they have no groups
@@ -764,7 +769,8 @@
   "Install the keyboard shortcuts and menus for the registry.
 Uses `gnus-registry-marks' to find what shortcuts to install."
   (let (keys-plist)
-    (gnus-registry-do-marks 
+    (setq gnus-registry-misc-menus nil)
+    (gnus-registry-do-marks
      :char
      (lambda (mark data)
        (let ((function-format
@@ -813,19 +819,34 @@
 		    ;; all this just to get the mark, I must be doing it wrong
 		    (intern ,(symbol-name mark))
 		    articles ,remove t)
+		   (gnus-message
+		    9 
+		    "Applying mark %s to %d articles"
+		    ,(symbol-name mark) (length articles))
 		   (dolist (article articles)
 		     (gnus-summary-update-article 
-		      article 
+		      article
 		      (assoc article (gnus-data-list nil)))))))
 	     (push (intern function-name) keys-plist)
-	     (push shortcut keys-plist)
-	     (gnus-message 
+	     (push shortcut keys-plist)	     
+	     (push (vector (format "%s %s"
+				   (upcase-initials variant-name)
+				   (symbol-name mark))
+			   (intern function-name) t)
+		   gnus-registry-misc-menus)
+	     (gnus-message
 	      9 
 	      "Defined mark handling function %s" 
 	      function-name))))))
     (gnus-define-keys-1
-     '(gnus-registry-mark-map "M" gnus-summary-mark-map) 
-     keys-plist)))
+     '(gnus-registry-mark-map "M" gnus-summary-mark-map)
+     keys-plist)
+    (add-hook 'gnus-summary-menu-hook
+	      (lambda ()
+		(easy-menu-add-item 
+		 gnus-summary-misc-menu
+		 nil 
+		 (cons "Registry Marks" gnus-registry-misc-menus))))))
 
 ;;; use like this:
 ;;; (defalias 'gnus-user-format-function-M 
Index: gnus-sum.el
diff -u gnus/lisp/gnus-sum.el:7.247 gnus/lisp/gnus-sum.el:7.248
--- gnus-sum.el:7.247	Wed Jan 13 11:59:43 2010
+++ gnus-sum.el	Sat Mar 20 19:52:07 2010
@@ -2635,17 +2635,6 @@
 	 ["Set expirable mark" gnus-summary-mark-as-expirable t]
 	 ["Set bookmark" gnus-summary-set-bookmark t]
 	 ["Remove bookmark" gnus-summary-remove-bookmark t])
-	("Registry Mark"
-	 ["Important"     gnus-registry-set-article-Important-mark    t]
-	 ["Not Important" gnus-registry-remove-article-Important-mark t]
-	 ["Work"          gnus-registry-set-article-Work-mark         t]
-	 ["Not Work"      gnus-registry-remove-article-Work-mark      t]
-	 ["Later"         gnus-registry-set-article-Later-mark        t]
-	 ["Not Later"     gnus-registry-remove-article-Later-mark     t]
-	 ["Personal"      gnus-registry-set-article-Personal-mark     t]
-	 ["Not Personal"  gnus-registry-remove-article-Personal-mark  t]
-	 ["To Do"         gnus-registry-set-article-To-Do-mark        t]
-	 ["Not To Do"     gnus-registry-remove-article-To-Do-mark     t])
 	("Limit to"
 	 ["Marks..." gnus-summary-limit-to-marks t]
 	 ["Subject..." gnus-summary-limit-to-subject t]
@@ -2691,6 +2680,7 @@
 	   gnus-newsgroup-process-stack]
 	  ["Save" gnus-summary-save-process-mark t]
 	  ["Run command on marked..." gnus-summary-universal-argument t]))
+	("Registry Marks")
 	("Scroll article"
 	 ["Page forward" gnus-summary-next-page
 	  ,@(if (featurep 'xemacs) '(t)