Mercurial > emacs
comparison lisp/mh-e/mh-speed.el @ 89966:d8411455de48
Revision: miles@gnu.org--gnu-2004/emacs--unicode--0--patch-32
Merge from emacs--cvs-trunk--0
Patches applied:
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-486
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-487
Tweak permissions
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-488
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-489
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-490
Update from CVS: man/fixit.texi (Spelling): Fix typo.
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-491
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-494
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-495
Update from CVS: Add missing lisp/mh-e files
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-496
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-499
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-500
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-513
Update from CVS
author | Miles Bader <miles@gnu.org> |
---|---|
date | Fri, 27 Aug 2004 07:00:34 +0000 |
parents | 97905c4f1a42 e9a6cbc8ca5e |
children | f042e7c0fe20 |
comparison
equal
deleted
inserted
replaced
89965:5e9097d1ad99 | 89966:d8411455de48 |
---|---|
32 ;;; Change Log: | 32 ;;; Change Log: |
33 | 33 |
34 ;;; Code: | 34 ;;; Code: |
35 | 35 |
36 ;; Requires | 36 ;; Requires |
37 (require 'mh-utils) | 37 (eval-when-compile (require 'mh-acros)) |
38 (mh-require-cl) | 38 (mh-require-cl) |
39 (require 'mh-e) | 39 (require 'mh-e) |
40 (require 'speedbar) | 40 (require 'speedbar) |
41 (require 'timer) | |
41 | 42 |
42 ;; Global variables | 43 ;; Global variables |
43 (defvar mh-speed-refresh-flag nil) | 44 (defvar mh-speed-refresh-flag nil) |
44 (defvar mh-speed-last-selected-folder nil) | 45 (defvar mh-speed-last-selected-folder nil) |
45 (defvar mh-speed-folder-map (make-hash-table :test #'equal)) | 46 (defvar mh-speed-folder-map (make-hash-table :test #'equal)) |
88 "Specialized speedbar keymap for MH-E buffers.") | 89 "Specialized speedbar keymap for MH-E buffers.") |
89 (gnus-define-keys mh-folder-speedbar-key-map | 90 (gnus-define-keys mh-folder-speedbar-key-map |
90 "+" mh-speed-expand-folder | 91 "+" mh-speed-expand-folder |
91 "-" mh-speed-contract-folder | 92 "-" mh-speed-contract-folder |
92 "\r" mh-speed-view | 93 "\r" mh-speed-view |
93 "f" mh-speed-flists | 94 "r" mh-speed-refresh) |
94 "i" mh-speed-invalidate-map) | |
95 | 95 |
96 (defvar mh-show-speedbar-key-map mh-folder-speedbar-key-map) | 96 (defvar mh-show-speedbar-key-map mh-folder-speedbar-key-map) |
97 (defvar mh-letter-speedbar-key-map mh-folder-speedbar-key-map) | 97 (defvar mh-letter-speedbar-key-map mh-folder-speedbar-key-map) |
98 | 98 |
99 ;; Menus for speedbar... | 99 ;; Menus for speedbar... |
100 (defvar mh-folder-speedbar-menu-items | 100 (defvar mh-folder-speedbar-menu-items |
101 '(["Visit Folder" mh-speed-view | 101 '("--" |
102 ["Visit Folder" mh-speed-view | |
102 (save-excursion | 103 (save-excursion |
103 (set-buffer speedbar-buffer) | 104 (set-buffer speedbar-buffer) |
104 (get-text-property (line-beginning-position) 'mh-folder))] | 105 (get-text-property (line-beginning-position) 'mh-folder))] |
105 ["Expand nested folders" mh-speed-expand-folder | 106 ["Expand Nested Folders" mh-speed-expand-folder |
106 (and (get-text-property (line-beginning-position) 'mh-children-p) | 107 (and (get-text-property (line-beginning-position) 'mh-children-p) |
107 (not (get-text-property (line-beginning-position) 'mh-expanded)))] | 108 (not (get-text-property (line-beginning-position) 'mh-expanded)))] |
108 ["Contract nested folders" mh-speed-contract-folder | 109 ["Contract Nested Folders" mh-speed-contract-folder |
109 (and (get-text-property (line-beginning-position) 'mh-children-p) | 110 (and (get-text-property (line-beginning-position) 'mh-children-p) |
110 (get-text-property (line-beginning-position) 'mh-expanded))] | 111 (get-text-property (line-beginning-position) 'mh-expanded))] |
111 ["Run Flists" mh-speed-flists t] | 112 ["Refresh Speedbar" mh-speed-refresh t]) |
112 ["Invalidate cached folders" mh-speed-invalidate-map t]) | |
113 "Extra menu items for speedbar.") | 113 "Extra menu items for speedbar.") |
114 | 114 |
115 (defvar mh-show-speedbar-menu-items mh-folder-speedbar-menu-items) | 115 (defvar mh-show-speedbar-menu-items mh-folder-speedbar-menu-items) |
116 (defvar mh-letter-speedbar-menu-items mh-folder-speedbar-menu-items) | 116 (defvar mh-letter-speedbar-menu-items mh-folder-speedbar-menu-items) |
117 | 117 |
349 (mh-visit-folder folder range) | 349 (mh-visit-folder folder range) |
350 (delete-other-windows))))) | 350 (delete-other-windows))))) |
351 | 351 |
352 (defvar mh-speed-current-folder nil) | 352 (defvar mh-speed-current-folder nil) |
353 (defvar mh-speed-flists-folder nil) | 353 (defvar mh-speed-flists-folder nil) |
354 | |
355 (defmacro mh-process-kill-without-query (process) | |
356 "PROCESS can be killed without query on Emacs exit. | |
357 Avoid using `process-kill-without-query' if possible since it is now | |
358 obsolete." | |
359 (if (fboundp 'set-process-query-on-exit-flag) | |
360 `(set-process-query-on-exit-flag ,process nil) | |
361 `(process-kill-without-query ,process))) | |
354 | 362 |
355 ;;;###mh-autoload | 363 ;;;###mh-autoload |
356 (defun mh-speed-flists (force &rest folders) | 364 (defun mh-speed-flists (force &rest folders) |
357 "Execute flists -recurse and update message counts. | 365 "Execute flists -recurse and update message counts. |
358 If FORCE is non-nil the timer is reset. | 366 If FORCE is non-nil the timer is reset. |
394 (if mh-speed-flists-folder "-noall" "-all") | 402 (if mh-speed-flists-folder "-noall" "-all") |
395 "-sequence" (symbol-name mh-unseen-seq) | 403 "-sequence" (symbol-name mh-unseen-seq) |
396 (or mh-speed-flists-folder '("-recurse")))) | 404 (or mh-speed-flists-folder '("-recurse")))) |
397 ;; Run flists on all folders the next time around... | 405 ;; Run flists on all folders the next time around... |
398 (setq mh-speed-flists-folder nil) | 406 (setq mh-speed-flists-folder nil) |
407 (mh-process-kill-without-query mh-speed-flists-process) | |
399 (set-process-filter mh-speed-flists-process | 408 (set-process-filter mh-speed-flists-process |
400 'mh-speed-parse-flists-output))))))) | 409 'mh-speed-parse-flists-output))))))) |
401 | 410 |
402 ;; Copied from mh-make-folder-list-filter... | 411 ;; Copied from mh-make-folder-list-filter... |
403 (defun mh-speed-parse-flists-output (process output) | 412 (defun mh-speed-parse-flists-output (process output) |
492 (setq mh-speed-last-selected-folder nil) | 501 (setq mh-speed-last-selected-folder nil) |
493 (setq mh-speed-refresh-flag t))) | 502 (setq mh-speed-refresh-flag t))) |
494 (when (equal folder "") | 503 (when (equal folder "") |
495 (clrhash mh-sub-folders-cache))))) | 504 (clrhash mh-sub-folders-cache))))) |
496 | 505 |
506 (defun mh-speed-refresh () | |
507 "Refresh the speedbar. | |
508 Use this function to refresh the speedbar if folders have been added or | |
509 deleted or message ranges have been updated outside of MH-E." | |
510 (interactive) | |
511 (mh-speed-flists t) | |
512 (mh-speed-invalidate-map "")) | |
513 | |
497 ;;;###mh-autoload | 514 ;;;###mh-autoload |
498 (defun mh-speed-add-folder (folder) | 515 (defun mh-speed-add-folder (folder) |
499 "Add FOLDER since it is being created. | 516 "Add FOLDER since it is being created. |
500 The function invalidates the latest ancestor that is present." | 517 The function invalidates the latest ancestor that is present." |
501 (save-excursion | 518 (save-excursion |