emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[O] [PATCH] org-contacts: Use progress-reporter for cache update message


From: Rodney Lorrimar
Subject: [O] [PATCH] org-contacts: Use progress-reporter for cache update message
Date: Sat, 04 May 2013 22:09:10 +0800
User-agent: Notmuch/0.13.2 (http://notmuchmail.org) Emacs/24.3.50.1 (i486-pc-linux-gnu)

* contrib/lisp/org-contacts.el (org-contacts-db): Use
`make-progress-reporter' instead of `message' for messages. Also
change the sentence to present progressive tense.
---
 contrib/lisp/org-contacts.el |   36 ++++++++++++++++++++----------------
 1 file changed, 20 insertions(+), 16 deletions(-)

diff --git a/contrib/lisp/org-contacts.el b/contrib/lisp/org-contacts.el
index 84ebc9d..c72e6c0 100644
--- a/contrib/lisp/org-contacts.el
+++ b/contrib/lisp/org-contacts.el
@@ -211,22 +211,26 @@ A regexp matching strings of whitespace, `,' and `;'.")
          (cdr (org-make-tags-matcher org-contacts-matcher)))
         markers result)
     (when (org-contacts-db-need-update-p)
-      (message "Update Org Contacts Database")
-      (dolist (file (org-contacts-files))
-       (org-check-agenda-file file)
-       (with-current-buffer (org-get-agenda-file-buffer file)
-         (unless (eq major-mode 'org-mode)
-           (error "File %s is no in `org-mode'" file))
-         (org-scan-tags
-          '(add-to-list 'markers (set-marker (make-marker) (point)))
-          contacts-matcher
-          todo-only)))
-      (dolist (marker markers result)
-       (org-with-point-at marker
-         (add-to-list 'result
-                      (list (org-get-heading t) marker (org-entry-properties 
marker 'all)))))
-      (setf org-contacts-db result
-           org-contacts-last-update (current-time)))
+      (let ((progress-reporter
+            (make-progress-reporter "Updating Org Contacts Database..." 0 
(length org-contacts-files)))
+           (i 0))
+       (dolist (file (org-contacts-files))
+         (org-check-agenda-file file)
+         (with-current-buffer (org-get-agenda-file-buffer file)
+           (unless (eq major-mode 'org-mode)
+             (error "File %s is no in `org-mode'" file))
+           (org-scan-tags
+            '(add-to-list 'markers (set-marker (make-marker) (point)))
+            contacts-matcher
+            todo-only))
+         (progress-reporter-update progress-reporter (setq i (1+ i))))
+       (dolist (marker markers result)
+         (org-with-point-at marker
+           (add-to-list 'result
+                        (list (org-get-heading t) marker (org-entry-properties 
marker 'all)))))
+       (setf org-contacts-db result
+             org-contacts-last-update (current-time))
+      (progress-reporter-done progress-reporter)))
     org-contacts-db))
 
 (defun org-contacts-filter (&optional name-match tags-match)
-- 
1.7.10.4



reply via email to

[Prev in Thread] Current Thread [Next in Thread]