From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: [PATCH] org-agenda: rewrite mode-line Date: Fri, 21 Jan 2011 10:25:13 +0100 Message-ID: <90505B78-6815-4715-9745-7D82F6C1D469@gmail.com> References: <1291650119-13804-1-git-send-email-julien@danjou.info> Mime-Version: 1.0 (Apple Message framework v936) Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Return-path: Received: from [140.186.70.92] (port=50930 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PgDFB-0007Iy-HL for emacs-orgmode@gnu.org; Fri, 21 Jan 2011 04:25:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PgDF9-0006yi-PY for emacs-orgmode@gnu.org; Fri, 21 Jan 2011 04:25:21 -0500 Received: from mail-bw0-f41.google.com ([209.85.214.41]:43653) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PgDF9-0006y2-Dq for emacs-orgmode@gnu.org; Fri, 21 Jan 2011 04:25:19 -0500 Received: by bwz16 with SMTP id 16so1327187bwz.0 for ; Fri, 21 Jan 2011 01:25:17 -0800 (PST) In-Reply-To: <1291650119-13804-1-git-send-email-julien@danjou.info> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Julien Danjou Cc: Michael Sperber , Org Mode Hi Julien, I like the patch, but since it is not critical it remains on ice until :eval is supported by XEmacs. Michael, it would be nice if you could put :eval into XEmacs so that we can use this improved code for the mode line. Please make sure to let us know when this is done. - Carsten On Dec 6, 2010, at 4:41 PM, Julien Danjou wrote: > * org-agenda.el (org-agenda-filter-apply) > (org-agenda-filter-by-tag-show-all) (org-agenda-change-time-span) > (org-remove-subtree-entries-from-agenda) (org-agenda-entry-text-mode, > org-agenda-clockreport-mode) (org-agenda-toggle-diary, > org-agenda-archives-mode) (org-agenda-toggle-deadlines, > org-agenda-toggle-time-grid): Stop calling org-agenda-set-mode-name. > (org-agenda-set-mode-name): Rewrite mode-name value using dynamic > evaluation with :eval and other advanced format. > > Signed-off-by: Julien Danjou > --- > lisp/org-agenda.el | 66 +++++++++++++++++++ > +------------------------------- > 1 files changed, 26 insertions(+), 40 deletions(-) > > diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el > index 20c901a..7624348 100644 > --- a/lisp/org-agenda.el > +++ b/lisp/org-agenda.el > @@ -5936,7 +5936,6 @@ If the line does not have an effort defined, > return nil." > (let (tags) > (setq org-agenda-filter filter > org-agenda-filter-form (org-agenda-filter-make-matcher)) > - (org-agenda-set-mode-name) > (save-excursion > (goto-char (point-min)) > (while (not (eobp)) > @@ -5973,8 +5972,7 @@ If the line does not have an effort defined, > return nil." > (mapc 'delete-overlay org-agenda-filter-overlays) > (setq org-agenda-filter-overlays nil) > (setq org-agenda-filter nil) > - (setq org-agenda-filter-form nil) > - (org-agenda-set-mode-name)) > + (setq org-agenda-filter-form nil)) > > (defun org-agenda-manipulate-query-add () > "Manipulate the query by adding a search term with positive > selection. > @@ -6164,7 +6162,6 @@ SPAN may be `day', `week', `month', `year'." > (list (car org-agenda-last-arguments) sd span t))) > (org-agenda-redo) > (org-agenda-find-same-or-today-or-agenda)) > - (org-agenda-set-mode-name) > (message "Switched to %s view" span)) > > (defun org-agenda-compute-starting-span (sd span &optional n) > @@ -6258,7 +6255,6 @@ so that the date SD will be in that range." > "Toggle follow mode in an agenda buffer." > (interactive) > (setq org-agenda-follow-mode (not org-agenda-follow-mode)) > - (org-agenda-set-mode-name) > (if (and org-agenda-follow-mode (org-get-at-bol 'org-marker)) > (org-agenda-show)) > (message "Follow mode is %s" > @@ -6274,7 +6270,6 @@ so that the date SD will be in that range." > (let ((org-agenda-entry-text-maxlines > (if (integerp arg) arg org-agenda-entry-text-maxlines))) > (org-agenda-entry-text-show))) > - (org-agenda-set-mode-name) > (message "Entry text mode is %s. Maximum number of lines is %d" > (if org-agenda-entry-text-mode "on" "off") > (if (integerp arg) arg org-agenda-entry-text-maxlines))) > @@ -6288,7 +6283,6 @@ agenda filter." > (if with-filter > (setq org-agenda-clockreport-mode 'with-filter) > (setq org-agenda-clockreport-mode (not org-agenda-clockreport- > mode))) > - (org-agenda-set-mode-name) > (org-agenda-redo) > (message "Clocktable mode is %s" > (if org-agenda-clockreport-mode "on" "off"))) > @@ -6305,7 +6299,6 @@ With a double `C-u' prefix arg, show *only* > log items, nothing else." > 'only > (if special '(closed clock state) > (not org-agenda-show-log)))) > - (org-agenda-set-mode-name) > (org-agenda-redo) > (message "Log mode is %s" > (if org-agenda-show-log "on" "off"))) > @@ -6316,7 +6309,6 @@ When called with a prefix argument, include > all archive files as well." > (interactive "P") > (setq org-agenda-archives-mode > (if with-files t (if org-agenda-archives-mode nil 'trees))) > - (org-agenda-set-mode-name) > (org-agenda-redo) > (message > "%s" > @@ -6335,7 +6327,6 @@ When called with a prefix argument, include > all archive files as well." > (org-agenda-check-type t 'agenda) > (setq org-agenda-include-diary (not org-agenda-include-diary)) > (org-agenda-redo) > - (org-agenda-set-mode-name) > (message "Diary inclusion turned %s" > (if org-agenda-include-diary "on" "off"))) > > @@ -6345,7 +6336,6 @@ When called with a prefix argument, include > all archive files as well." > (org-agenda-check-type t 'agenda) > (setq org-agenda-include-deadlines (not org-agenda-include- > deadlines)) > (org-agenda-redo) > - (org-agenda-set-mode-name) > (message "Deadlines inclusion turned %s" > (if org-agenda-include-deadlines "on" "off"))) > > @@ -6355,7 +6345,6 @@ When called with a prefix argument, include > all archive files as well." > (org-agenda-check-type t 'agenda) > (setq org-agenda-use-time-grid (not org-agenda-use-time-grid)) > (org-agenda-redo) > - (org-agenda-set-mode-name) > (message "Time-grid turned %s" > (if org-agenda-use-time-grid "on" "off"))) > > @@ -6363,36 +6352,33 @@ When called with a prefix argument, include > all archive files as well." > "Set the mode name to indicate all the small mode settings." > (setq mode-name > (list "Org-Agenda" > - (if (get 'org-agenda-files 'org-restrict) " []" "") > + '(:eval (when (get 'org-agenda-files 'org-restrict) " []")) > " " > '(:eval (org-agenda-span-name org-agenda-current-span)) > - (if org-agenda-follow-mode " Follow" "") > - (if org-agenda-entry-text-mode " ETxt" "") > - (if org-agenda-include-diary " Diary" "") > - (if org-agenda-include-deadlines " Ddl" "") > - (if org-agenda-use-time-grid " Grid" "") > - (if (and (boundp 'org-habit-show-habits) > - org-habit-show-habits) " Habit" "") > - (if (consp org-agenda-show-log) " LogAll" > - (if org-agenda-show-log " Log" "")) > - (if (or org-agenda-filter (get 'org-agenda-filter > - :preset-filter)) > - (concat " {" (mapconcat > - 'identity > - (append (get 'org-agenda-filter > - :preset-filter) > - org-agenda-filter) "") "}") > - "") > - (if org-agenda-archives-mode > - (if (eq org-agenda-archives-mode t) > - " Archives" > - (format " :%s:" org-archive-tag)) > - "") > - (if org-agenda-clockreport-mode > - (if (eq org-agenda-clockreport-mode 'with-filter) > - " Clock{}" " Clock") > - ""))) > - (force-mode-line-update)) > + '(org-agenda-follow-mode " Follow") > + '(org-agenda-entry-text-mode " ETxt") > + '(org-agenda-include-diary " Diary") > + '(org-agenda-include-deadlines " Ddl") > + '(org-agenda-use-time-grid " Grid") > + '(:eval (and (boundp 'org-habit-show-habits) > + org-habit-show-habits " Habit")) > + '(:eval (if (consp org-agenda-show-log) " LogAll" > + (if org-agenda-show-log " Log" ""))) > + '(:eval (when (or org-agenda-filter (get 'org-agenda-filter > + :preset-filter)) > + (concat " {" (mapconcat > + 'identity > + (append (get 'org-agenda-filter > + :preset-filter) > + org-agenda-filter) "") "}"))) > + '(:eval (when org-agenda-archives-mode > + (if (eq org-agenda-archives-mode t) > + " Archives" > + (format " :%s:" org-archive-tag)))) > + '(:eval (if org-agenda-clockreport-mode > + (if (eq org-agenda-clockreport-mode 'with-filter) > + " Clock{}" > + " Clock")))))) > > (defun org-agenda-post-command-hook () > (setq org-agenda-type > -- > 1.7.2.3 > > > _______________________________________________ > Emacs-orgmode mailing list > Please use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode - Carsten