]> git.eshelyaron.com Git - emacs.git/commitdiff
More refactoring.
authorEric S. Raymond <esr@snark.thyrsus.com>
Tue, 6 May 2008 19:12:34 +0000 (19:12 +0000)
committerEric S. Raymond <esr@snark.thyrsus.com>
Tue, 6 May 2008 19:12:34 +0000 (19:12 +0000)
lisp/ChangeLog
lisp/vc-dispatcher.el
lisp/vc.el

index 69ce6939018d1ffeded6ab75dd46af509ce6393d..6da44486f506dc677178bb26e85cb9266a8da17a 100644 (file)
@@ -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>
 
index 3bfa65f915be213ca52a4f146c3480f0d3a048f4..2dc3c8b41bda49639b8797e36046fbf4fb1f1514 100644 (file)
@@ -852,7 +852,6 @@ This code, like dired, assumes UNIX -l format."
 
 (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 @@ See `run-hooks'."
     (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 @@ See `run-hooks'."
     (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 @@ If `body' uses `event', it should be a variable,
 (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 @@ U - if the cursor is on a file: unmark all the files with the same VC state
   (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)
index 884e679663e8ccd77f68555b7075051721142d20..d47e5713ce27e6d94efbec8726e6316cbb160eeb 100644 (file)
@@ -2134,8 +2134,51 @@ outside of VC) and one wants to do some operation on it."
        (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