changeset 94695:f46fc59d6e9e

More refactoring.
author Eric S. Raymond <esr@snark.thyrsus.com>
date Tue, 06 May 2008 19:12:34 +0000
parents cc771c0403a4
children c522dff11548
files lisp/ChangeLog lisp/vc-dispatcher.el lisp/vc.el
diffstat 3 files changed, 49 insertions(+), 49 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Tue May 06 18:27:54 2008 +0000
+++ b/lisp/ChangeLog	Tue May 06 19:12:34 2008 +0000
@@ -3,6 +3,7 @@
 	* vc-hooks.el (vc-find-file-hook), 
 	vc-dispatcher.el (vc-resynch-window): Decouple vc-dispatcher
 	further from vc.el.
+	* vc.el (vc-dir-mode): Move VC-specific context menu entries here.
 
 2008-05-06 Wilson Snyder <wsnyder@wsnyder.org>
 
--- a/lisp/vc-dispatcher.el	Tue May 06 18:27:54 2008 +0000
+++ b/lisp/vc-dispatcher.el	Tue May 06 19:12:34 2008 +0000
@@ -852,7 +852,6 @@
 
 (defun vc-directory-resynch-file (file)
   "Update the entries for FILE in any VC Dired buffers that list it."
-  ;;FIXME This needs to be implemented so it works for vc-dir
   (let ((buffers (vc-dired-buffers-for-dir (file-name-directory file))))
     (when buffers
       (mapcar (lambda (buffer)
@@ -1013,42 +1012,6 @@
     (define-key map [open]
       '(menu-item "Open file" vc-dir-find-file
 		  :help "Find the file on the current line"))
-    ;; FIXME: Stuff starting here should be appended by vc
-    ;; VC info details
-    (define-key map [sepvcdet] '("--"))
-    (define-key map [remup]
-      '(menu-item "Hide up-to-date" vc-dir-hide-up-to-date
-		  :help "Hide up-to-date items from display"))
-    ;; FIXME: This needs a key binding.  And maybe a better name
-    ;; ("Insert" like PCL-CVS uses does not sound that great either)...
-    (define-key map [ins]
-      '(menu-item "Show File" vc-dir-show-fileentry
-		  :help "Show a file in the VC status listing even though it might be up to date"))
-    (define-key map [annotate]
-      '(menu-item "Annotate" vc-annotate
-		  :help "Display the edit history of the current file using colors"))
-    (define-key map [diff]
-      '(menu-item "Compare with Base Version" vc-diff
-		  :help "Compare file set with the base version"))
-    (define-key map [log]
-     '(menu-item "Show history" vc-print-log
-     :help "List the change log of the current file set in a window"))
-    ;; VC commands.
-    (define-key map [sepvccmd] '("--"))
-    (define-key map [update]
-      '(menu-item "Update to latest version" vc-update
-		  :help "Update the current fileset's files to their tip revisions"))
-    (define-key map [revert]
-      '(menu-item "Revert to base version" vc-revert
-		  :help "Revert working copies of the selected fileset to their repository contents."))
-    (define-key map [next-action]
-      ;; FIXME: This really really really needs a better name!
-      ;; And a key binding too.
-      '(menu-item "Check In/Out" vc-next-action
-		  :help "Do the next logical version control operation on the current fileset"))
-    (define-key map [register]
-      '(menu-item "Register" vc-dir-register
-		  :help "Register file set into the version control system"))
     map)
   "Menu for VC status")
 
@@ -1079,16 +1042,8 @@
     (define-key map "\C-c\C-c" 'vc-dir-kill-dir-status-process)
     (define-key map [(down-mouse-3)] 'vc-dir-menu)
     (define-key map [(mouse-2)] 'vc-dir-toggle-mark)
-
-    ;; FIXME: Calls back into vc.el
-    ;; Hook up the menu.
-    (define-key map [menu-bar vc-dir-mode]
-      '(menu-item
-	;; This is used so that client modes can add mode-specific
-	;; menu items to vc-dir-menu-map.
-	"VC Status" vc-dir-menu-map :filter vc-dir-menu-map-filter))
     map)
-  "Keymap for VC status")
+  "Keymap for VC dispatcher commands")
 
 (defmacro vc-at-event (event &rest body)
   "Evaluate `body' wich point located at event-start of `event'.
@@ -1104,7 +1059,7 @@
 (defun vc-dir-menu (e)
   "Popup the VC status menu."
   (interactive "e")
-  (vc-at-event e (popup-menu vc-dir-menu-map e)))
+  (vc-at-event e (popup-menu right-menu-map e)))
 
 (defvar vc-dir-tool-bar-map
   (let ((map (make-sparse-keymap)))
@@ -1612,6 +1567,7 @@
   (setq buffer-read-only t)
   (use-local-map vc-dir-mode-map)
   (set (make-local-variable 'tool-bar-map) vc-dir-tool-bar-map)
+  (set (make-local-variable 'right-menu-map) vc-dir-menu-map)
   (set (make-local-variable 'vc-client-mode) client-object)
   (let ((buffer-read-only nil))
     (erase-buffer)
--- a/lisp/vc.el	Tue May 06 18:27:54 2008 +0000
+++ b/lisp/vc.el	Tue May 06 19:12:34 2008 +0000
@@ -2134,8 +2134,51 @@
 	(define-key map "R" 'vc-revert) ;; u is taken by dispatcher unmark.
 	(define-key map "A" 'vc-annotate) ;; g is taken by dispatcher referesh
 	(define-key map "l" 'vc-print-log) ;; C-x v l
-	(define-key map "x" 'vc-dir-hide-up-to-date)
-	))))
+	(define-key map "x" 'vc-dir-hide-up-to-date))
+      ;; Add VC-specific context menu items
+      (let ((map right-menu-map))
+	;; VC info details
+	(define-key map [sepvcdet] '("--"))
+	(define-key map [remup]
+	  '(menu-item "Hide up-to-date" vc-dir-hide-up-to-date
+		      :help "Hide up-to-date items from display"))
+	;; FIXME: This needs a key binding.  And maybe a better name
+	;; ("Insert" like PCL-CVS uses does not sound that great either)...
+	(define-key map [ins]
+	  '(menu-item "Show File" vc-dir-show-fileentry
+		      :help "Show a file in the VC status listing even though it might be up to date"))
+	(define-key map [annotate]
+	  '(menu-item "Annotate" vc-annotate
+		      :help "Display the edit history of the current file using colors"))
+	(define-key map [diff]
+	  '(menu-item "Compare with Base Version" vc-diff
+		      :help "Compare file set with the base version"))
+	(define-key map [log]
+	  '(menu-item "Show history" vc-print-log
+		      :help "List the change log of the current file set in a window"))
+	;; VC commands.
+	(define-key map [sepvccmd] '("--"))
+	(define-key map [update]
+	  '(menu-item "Update to latest version" vc-update
+		      :help "Update the current fileset's files to their tip revisions"))
+	(define-key map [revert]
+	  '(menu-item "Revert to base version" vc-revert
+		      :help "Revert working copies of the selected fileset to their repository contents."))
+	(define-key map [next-action]
+	  ;; FIXME: This really really really needs a better name!
+	  ;; And a key binding too.
+	  '(menu-item "Check In/Out" vc-next-action
+		      :help "Do the next logical version control operation on the current fileset"))
+	(define-key map [register]
+	  '(menu-item "Register" vc-dir-register
+		      :help "Register file set into the version control system")))
+      ;; Hook up the menu.
+      (define-key (current-local-map) [menu-bar vc-dir-mode]
+	'(menu-item
+	  ;; This is used so that back ends can add mode-specific
+	  ;; menu items to vc-dir-menu-map.
+	  "VC Status" vc-dir-menu-map :filter vc-dir-menu-map-filter))
+      )))
 
 ;; Named-configuration entry points