emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Carsten Dominik <carsten.dominik@gmail.com>
To: Julien Danjou <julien@danjou.info>
Cc: Michael Sperber <sperber@deinprogramm.de>,
	Org Mode <emacs-orgmode@gnu.org>
Subject: Re: [PATCH] org-agenda: rewrite mode-line
Date: Fri, 21 Jan 2011 10:25:13 +0100	[thread overview]
Message-ID: <90505B78-6815-4715-9745-7D82F6C1D469@gmail.com> (raw)
In-Reply-To: <1291650119-13804-1-git-send-email-julien@danjou.info>

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 <julien@danjou.info>
> ---
> 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

  parent reply	other threads:[~2011-01-21  9:25 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-06 15:41 [PATCH] org-agenda: rewrite mode-line Julien Danjou
2010-12-12  8:32 ` Carsten Dominik
2010-12-12 18:55   ` Julien Danjou
2010-12-13 14:49     ` Carsten Dominik
2010-12-21  7:36       ` Carsten Dominik
2010-12-21  8:53         ` Michael Sperber
2011-01-21  9:25 ` Carsten Dominik [this message]
2011-03-04 22:09   ` Bastien
2011-03-05 10:12     ` Michael Sperber
2011-03-05 10:50       ` Bastien

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=90505B78-6815-4715-9745-7D82F6C1D469@gmail.com \
    --to=carsten.dominik@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=julien@danjou.info \
    --cc=sperber@deinprogramm.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).