emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Richard Riley <rileyrgdev@googlemail.com>
To: Emacs-orgmode mailing list <emacs-orgmode@gnu.org>
Subject: [PATCH] added a new modeline face for tasks which have overrun their effort estimate
Date: Wed, 20 Jan 2010 03:15:05 +0100	[thread overview]
Message-ID: <4b56672b.0305560a.53c2.ffffcdc0@mx.google.com> (raw)


This small patch (be gentle, its my first) adds a new
face,org-mode-line-clock-overrun, for the modeline task clock when a
task has overrun its allotted Estimate.

I will try to set up the remote repo thing described here
http://orgmode.org/worg/org-contribute.php#sec-3 but I'm not 100% sure
of what it is I'm supposed to set up there. Should it be a mirror of the
master git repo?

Comments on elisp ineptitude welcome.

Subject: [PATCH] added a new modeline face for tasks which have overrun
their effort estimate


---
 lisp/org-clock.el |    8 +++++---
 lisp/org-faces.el |    2 ++
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/lisp/org-clock.el b/lisp/org-clock.el
index 07f5e81..03df5b6 100644
--- a/lisp/org-clock.el
+++ b/lisp/org-clock.el
@@ -388,6 +388,8 @@ pointing to it."
 	(insert (format "[%c] %-15s %s\n" i cat task))
 	(cons i marker)))))
 
+(defvar org-task-overrun nil)
+
 (defun org-clock-get-clock-string ()
   "Form a clock-string, that will be show in the mode line.
 If an effort estimate was defined for current item, use
@@ -406,6 +408,7 @@ If not, show simply the clocked time like 01:50."
 	      h m org-clock-heading))))
 
 (defun org-clock-update-mode-line ()
+  (if org-clock-effort (org-clock-notify-once-if-expired))
   (setq org-mode-line-string
 	(org-propertize
 	 (let ((clock-string (org-clock-get-clock-string))
@@ -417,8 +420,7 @@ If not, show simply the clocked time like 01:50."
 	     (org-propertize clock-string 'help-echo help-text)))
 	 'local-map org-clock-mode-line-map
 	 'mouse-face (if (featurep 'xemacs) 'highlight 'mode-line-highlight)
-	 'face 'org-mode-line-clock))
-  (if org-clock-effort (org-clock-notify-once-if-expired))
+	 'face (if  org-task-overrun 'org-mode-line-clock-overrun 'org-mode-line-clock)))
   (force-mode-line-update))
 
 (defun org-clock-get-clocked-time ()
@@ -473,7 +475,7 @@ Notification is shown only once."
   (when (marker-buffer org-clock-marker)
     (let ((effort-in-minutes (org-hh:mm-string-to-minutes org-clock-effort))
 	  (clocked-time (org-clock-get-clocked-time)))
-      (if (>= clocked-time effort-in-minutes)
+      (if (setq org-task-overrun (>= clocked-time effort-in-minutes ))
 	  (unless org-clock-notification-was-shown
 	    (setq org-clock-notification-was-shown t)
 	    (org-notify
diff --git a/lisp/org-faces.el b/lisp/org-faces.el
index e3294eb..dad2b5e 100644
--- a/lisp/org-faces.el
+++ b/lisp/org-faces.el
@@ -641,6 +641,8 @@ If it is less than 8, the level-1 face gets re-used for level N+1 etc."
 
 (org-copy-face 'modeline 'org-mode-line-clock
 	       "Face used for clock display in mode line.")
+(org-copy-face 'modeline 'org-mode-line-clock-overrun
+	       "Face used for clock display for overrun tasks in mode line.")
 
 (provide 'org-faces)
 
-- 
1.6.5


-- 
Google Talk : rileyrgdev@googlemail.com  http://www.google.com/talk

             reply	other threads:[~2010-01-20  2:15 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-20  2:15 Richard Riley [this message]
2010-01-20  5:22 ` [PATCH] added a new modeline face for tasks which have overrun their effort estimate Richard Riley
2010-01-20  6:19   ` Jan Böcker
2010-01-20  6:43     ` Richard Riley

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=4b56672b.0305560a.53c2.ffffcdc0@mx.google.com \
    --to=rileyrgdev@googlemail.com \
    --cc=emacs-orgmode@gnu.org \
    /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).