* org-clock.el (org-clock-sound): Enhance docstring.
(org-notify): Use the parameter `play-sound' as argument for
`org-clock-play-sound'.
(org-clock-play-sound): New optional argument `clock-sound' to
override `org-clock-sound'.
* org.el (org-use-last-clock-out-time-as-effective-time): New option.
(org-current-effective-time): Use the new option.
* org-clock.el (org-clock-get-last-clock-out-time): New
function.
When set to `t', this new option will take the time of the last clock out
timestamp and use it when changing/logging the todo state.
Thanks to Gaizka Villate who suggested this.
* lisp/org-clock.el (org-x11idle-exists-p): Only shell out when running
on X.
The definition of this variable currently executes "command" via the
shell during evaluation, irrespective of the platform on which
Org-mode is running. Unfortunately, on Windows, this matches the
"command.com" NT Virtual DOS Machine executable and so this gets
launched, but this is a shell and therefore sits there waiting for
user input and never returns. The net result is that Emacs will hang
on Windows when evaluating org-clock.el with the ntdvm.exe process
spinning at 100%.
The simple fix is to check that the platform is X before trying to
deal with the "x11idle" external process.
TINYCHANGE
* org-clock.el (org-clock-put-overlay): Put the overlay on the
whole headline, not only on the last character. This fixes a
bug with overlays on headlines ending with a bracketed link.
Thanks to Ryan Kaskel for reporting this.
* org-clock.el (org-clock-in): Call `org-clock-out' with the
new argument `switch-to-state' set to nil. Fix docstring.
(org-clock-in-last): Prompt for a todo state to switch to when
called with three universal prefix arguments. Don't display a
message when the clock is already running. Update docstring.
(org-clock-out): New argument `switch-to-state'. When this
argument is non-nil, prompt for a state to switch the clocked
out task to, overriding `org-clock-out-switch-to-state'.
* org.el (org-special-properties): New special property
CLOCKSUM_T.
(org-entry-properties): Handle the new special property.
* org-colview.el (org-columns): Handle a new special property
CLOCKSUM_T.
(org-agenda-colview-summarize, org-agenda-colview-compute):
Ditto.
* org-clock.el (org-clock-sum-today): New function.
(org-clock-sum): New argument PROPNAME to set a custom text
property instead of :org-clock-minutes.
* org.texi (Special properties, Column attributes)
(Agenda column view): Document the new special property
CLOCKSUM_T.
Thanks to Brian Wood who asked a question wrt this.
* org.el (org-mode-map): Add keybindings to
`org-element-transpose' and `org-narrow-to-element'.
(org-metaup): Fall back on `org-element-drag-backward'.
(org-metadown): Fall back on `org-element-drag-forward'.
Also move chunks of declarations and require statements to
get rid of compiler warnings.
* org-exp-blocks.el (org): Don't require org. Add declarations.
* org-clock.el (org): Don't require org.
* ob-exp.el (org-list-forbidden-blocks): Add declarations.
* org.el (org-mode-map): Add keybindings to
`org-element-transpose' and `org-narrow-to-element'.
(org-metaup): Fall back on `org-element-drag-backward'.
(org-metadown): Fall back on `org-element-drag-forward'.
Also move chunks of declarations and require statements to
get rid of compiler warnings.
* org-exp-blocks.el (org): Don't require org. Add declarations.
* org-clock.el (org): Don't require org.
* ob-exp.el (org-list-forbidden-blocks): Add declarations.
* org-clock.el (org-clock-in): Set the marker for
`org-clock-history' at a safer position.
The clock marker stored in `org-clock-history' used to be at the
beginning of the heading. When manually inserting content here,
the marker is not updated because it is *before* the point. So
set the clock marker right after the first "*" of the headline
so that it will always be correctly updated.
Thanks to Achim for pointing out this careless oversight in my last
commit.
* lisp/org-clock.el (org-clock-special-range): "concat 'string" ->
"concat"
(org-clocktable-shift): "concat 'string" -> "concat"
* lisp/org-clock.el (org-clock-idle-time): Org-mode assumed that x11idle
was an available command, and returned an idle time of 0 if it was not
(never idle). Added checks so that org-idle-time will come from emacs'
own current-idle-time if x11idle cannot be found or if it cannot
retrieve the idle time from X11
TINYCHANGE
* org.el (org-flag-drawer): Add a docstring.
(org-mode-map): Bind ̀org-clock-cancel' to "C-cC-xC-q" and
`org-clock-in-last' to "C-cC-xC-x". This fixes a bug in the
previous keybinding for `org-clock-in-last', which would
override the one for `org-clock-in'.
* org-clock.el (org-clock-in-last): Prevent errors when there
is no clocking history.
(org-clock-cancel): Fix bug when checking against a clock log
in a folded drawer.
Thanks to Bernt Hansen who reported the problem.
* org.el (org-mode-map): Add `C-c C-x C-I' as a keybinding for
`org-clock-in-last'.
* org-clock.el (org-clock-continuously): New option.
(org-clock-in): Three universal prefix arguments set
`org-clock-continuously' to `t' temporarily.
(org-clock-in-last): Fix call to `org-clock-select-task' and
support continuous clocking.
(org-clock-out-time): New variable.
(org-clock-out): set `org-clock-out-time' when clocking out.
Small docstring rewriting.
(org-clock-remove-empty-clock-drawer): Fix "invalid search
bound" bug when trying to delete empty logbook drawer.
(org-clock-cancel): If the clock log is gone, send a warning
instead of deleting the region that is supposed to contain it.
* org.texi (Clocking commands): New cindex.
(Clocking commands): Update documentation for `org-clock-in'.
Document `org-clock-in-last'. Mention `org-clock-out' and
`org-clock-in-last' as commands that can be globally bound.
(Resolving idle time): Document continuous clocking.
* org-clock.el (org-clocktable-defaults): Revert extra layer of quoting.
It appears the goal in 9b23f082 was to allow defaulting a plist member
to a variable; however the plist was being constructed with LIST and
therefore the `, combination was unnecessary.
TINYCHANGE
* org-clock.el (org-clock-in-last): New command.
This autoloaded command provides a way to clock in the last clocked
item stored in `org-clock-history' from any buffer. This is handy
when you don't want to go back to your .org file to clock into the
last clocked task.
* lisp/org-agenda.el: Replace with-no-warnings with
org-no-warnings (defined in org-macs.el).
* lisp/org-bbdb.el: Replace with-no-warnings with
org-no-warnings (defined in org-macs.el).
* lisp/org-clock.el: Replace with-no-warnings with
org-no-warnings (defined in org-macs.el).
* lisp/org.el: Replace with-no-warnings with org-no-warnings (defined
in org-macs.el).
* org-clock.el (org-frame-title-format-backup): New variable
to store the value of `frame-title-format' before `org-clock'
might replace it by `org-clock-frame-title-format'.
(org-clock-frame-title-format): New option.
(org-frame-title-string): Delete.
(org-clock-update-mode-line): Minor code reformatting.
(org-clock-in, org-clock-out, org-clock-cancel): Use
`org-clock-frame-title-format'.
See http://thread.gmane.org/gmane.emacs.orgmode/55477
Trying to update `frame-title-format' is tricky and error-prone, since
users can set up this variable in many different ways. AFAIK there is
no equivalent to `global-mode-string' for setting the frame title, we
would use it otherwise.
The user can still configure `org-clock-frame-title-format' the way he
wants.
* org-clock.el (org-clocktable-write-default): Temporarily
disable `delete-active-region' so that we don't accidently
delete an active region when exporting a subtree/region.
Thanks to Mike McLean for the detailed bug report.
* org-clock.el (org-program-exists): Remove.
(org-show-notification, org-clock-play-sound): Use
`executable-find' instead of `org-program-exists'.
Thanks to Sébastien Vauban for pointing this.
* org-clock.el (org-clock-out, org-clock-cancel)
(org-clock-in): Don't modify `frame-title-format' if it is a
string.
Thanks to Mike McLean for reporting this and to Matt Lundin for
pointing at the problem in the code.
* org-clock.el: New option `org-clock-clocked-in-display' to control
whether the current clock is displayed in the mode line and/or frame
title.
* org-timer.el: New option `org-timer-display' to control whether
the current timer is displayed in the mode line and/or frame title.
This allows the clock and timer to be displayed in the frame title instead of,
or as well as, the mode line. This is useful for people with limited space in
the mode line but with ample space in the frame title.