From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: Re: Feature request: skip blocked lines in agenda view grid Date: Tue, 21 Oct 2008 08:31:22 +0200 Message-ID: <37C80D01-A50E-4D29-898F-1F2B3E4E50C8@uva.nl> References: <873aiuosow.fsf@elehack.net> <87wsg2y9an.fsf@elehack.net> Mime-Version: 1.0 (Apple Message framework v929.2) Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KsAmJ-0001mL-NX for emacs-orgmode@gnu.org; Tue, 21 Oct 2008 02:31:39 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KsAmI-0001m2-PA for emacs-orgmode@gnu.org; Tue, 21 Oct 2008 02:31:39 -0400 Received: from [199.232.76.173] (port=43491 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KsAmI-0001lx-HE for emacs-orgmode@gnu.org; Tue, 21 Oct 2008 02:31:38 -0400 Received: from mx20.gnu.org ([199.232.41.8]:63826) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1KsAmI-0005HC-Bk for emacs-orgmode@gnu.org; Tue, 21 Oct 2008 02:31:38 -0400 Received: from pony.ic.uva.nl ([145.18.40.181]) by mx20.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KsAmH-0000KN-6S for emacs-orgmode@gnu.org; Tue, 21 Oct 2008 02:31:37 -0400 In-Reply-To: <87wsg2y9an.fsf@elehack.net> 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: Michael Ekstrand Cc: emacs-orgmode@gnu.org Hey Michael, you have just catapulted yourself onto the list of possible successors when I will quit as maintainer of Org... :-) Good work - I don't think it works completely yet, though. When I have * new one <2008-10-21 Tue 08:01-11:55> * new two <2008-10-21 Tue 13:59-14:55> Then I get this agenda: Day-agenda (W43): Tuesday 21 October 2008 8:00...... ---------------- past: 8:01-11:55 new one 11:00...... ---------------- 12:00...... ---------------- 13:00...... ---------------- past: 13:59-14:55 new two 15:00...... ---------------- 16:00...... ---------------- 17:00...... ---------------- 18:00...... ---------------- 20:00...... ---------------- The line at 11:00 should be gone as well. - Carsten On Oct 21, 2008, at 4:24 AM, Michael Ekstrand wrote: > Michael Ekstrand writes: >> I'd find it quite helpful in reviewing my agenda if there was an >> option >> to skip displaying grid lines which happen in the middle of timed >> appointments. Right now, I see the following: >> >> Saturday 18 October 2008 >> 8:00...... ---------------- >> 10:00...... ---------------- >> 12:00...... ---------------- >> 14:00...... ---------------- >> 16:00...... ---------------- >> Church: 17:30-19:00 Saturday service >> 18:00...... ---------------- >> master: 19:00...... People over for supper >> 20:00...... ---------------- >> >> If it could optionally and intelligently drop the 18:00 grid line >> because there is a previous timed appointment overlapping it, the >> resulting display would show me more clearly that I don't have time >> between it and the next event. > > After doing some poking around in the org-mode sources, I found out > that > the particular behavior described above isn't overly difficult to > implement; in fact, half the work is already done (at least in the > org-mode in Emacs CVS). The first element of the `org-agenda-time- > grid' > variable (the time grid options) supports an undocumented option > `remove-match' which causes `org-agenda-add-time-grid-maybe' to remove > grid lines which exactly correspond to the start time of an event. It > is rather trivial to extend this logic to also remove grid lines > occluded by the duration of an event. > > I have implemented this as a defadvice for > `org-agenda-add-time-grid-maybe' (I like to implement my org-mode > logic > changes as defadvice so that they work on top of pristine org-mode > and I > don't have to keep patches in sync or installed). Code follows, if > anyone wants to throw it in their .emacs: > > (defadvice org-agenda-add-time-grid-maybe (around mde-org-agenda- > grid-tweakify > (list ndays todayp)) > (if (member 'remove-match (car org-agenda-time-grid)) > (flet ((extract-window > (line) > (let ((start (get-text-property 1 'time-of-day line)) > (dur (get-text-property 1 'duration line))) > (cond > ((and start dur) (cons start dur)) > (start start) > (t nil))))) > (let* ((windows (delq nil (mapcar 'extract-window list))) > (org-agenda-time-grid > (list (car org-agenda-time-grid) > (cadr org-agenda-time-grid) > (remove-if > (lambda (time) > (find-if (lambda (w) > (if (numberp w) > (equal w time) > (and (>= time (car w)) > (< time (+ (car w) (cdr > w)))))) > windows)) > (caddr org-agenda-time-grid))))) > ad-do-it)) > ad-do-it)) > (ad-activate 'org-agenda-add-time-grid-maybe) > > - Michael > > -- > mouse, n: A device for pointing at the xterm in which you want to > type. > Confused by the strange files? I cryptographically sign my messages. > For more information see . > _______________________________________________ > Emacs-orgmode mailing list > Remember: use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode