Commit ee5d572f authored by Eric S. Raymond's avatar Eric S. Raymond

More refactoring.

parent 6d77fa95
......@@ -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>
......
......@@ -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)
......
......@@ -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
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment