Hi

Steps to reproduce:
- if org-descriptive-links is non-nil, invoke M-x org-toggle-link-display
- org-descriptive-links is now expected to be nil
- M-x org-agenda-list
- M-x org-agenda-clockreport-mode (or short: v R)

Observation (given that there is at least some data being shown in the 
clockreport):
1) clockreport table is misaligned
2) clockreport table contains descriptive links even though 
org-descriptive-links is nil

Cause:
a) *org-agenda-list* /calls/ *org-agenda-prepare* which in turn /calls/ 
*org-agenda-mode*
b) *org-agenda-mode* /calls/ (add-to-invisibility-spec '(org-link))
   In contrast, *org-mode* /calls/ (if org-descriptive-links 
(add-to-invisibility-spec '(org-link))), hence makes adding org-link to the 
invisibility spec dependent on org-descriptive-links.
c) the clockreport in the agenda list is constructed in 
*org-clock-get-clocktable* using a with-temp-buffer in whose context (org-mode) 
is called. The clockreport table will therefore be aligned based on the 
invisibility spec of org-mode which is different if org-descriptive-links was 
set to nil at the time *org-agenda-list* was called.

Suggestions:
1.1) Inherit org-link invisibility spec in *org-clock-get-clocktable* from the 
"outer" mode (i.e. org-agenda-mode):
     ...
     (let ((descriptive-links (org-in-invisibility-spec-p '(org-link))))
       (with-temp-buffer
         (org-mode)
         (if descriptive-links
             (add-to-invisibility-spec '(org-link))
           (remove-from-invisibility-spec '(org-link)))
     ...
     )
1.2) ... or make the call to *add-to-invisibility-spec* in *org-agenda-mode* 
dependent on org-descriptive-links as already done by *org-mode*

Any other suggestions?

Btw, is there a reason why org-descriptive-links is global and not made 
buffer-local using make-variable-buffer-local after its defcustom definition? I 
had expected it to be buffer-local. If it isn't buffer local, the displayed 
links in different org buffers can get inconsistent with the flag hold in the 
org-descriptive-links variable.

Cheers
    Alain

--- 

Emacs  : GNU Emacs 24.4.1 (i686-pc-mingw32)
 of 2014-10-24 on LEG570
Package: Org-mode version 8.2.10 (release_8.2.10 @ c:/Program Files 
(x86)/emacs-24.4/share/emacs/24.4/lisp/org/)

current state:
==============
(setq
 org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point 
org-babel-execute-safely-maybe)
 org-latex-format-headline-function 'org-latex-format-headline-default-function
 org-html-format-inlinetask-function 'ignore
 org-tab-first-hook '(org-hide-block-toggle-maybe 
org-src-native-tab-command-maybe org-babel-hide-result-toggle-maybe
                      org-babel-header-arg-expand)
 org-agenda-use-time-grid nil
 org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers 
org-cycle-hide-inline-tasks org-cycle-show-empty-lines
                  org-optimize-window-after-visibility-change)
 org-agenda-before-write-hook '(org-agenda-add-entry-text)
 org-agenda-start-with-log-mode 'clockcheck
 org-confirm-babel-evaluate nil
 org-speed-command-hook '(org-speed-command-default-hook 
org-babel-speed-command-hook)
 org-ascii-format-inlinetask-function 'org-ascii-format-inlinetask-default
 org-babel-pre-tangle-hook '(save-buffer)
 org-occur-hook '(org-first-headline-recenter)
 org-html-format-headline-function 'ignore
 org-metaup-hook '(org-babel-load-in-session-maybe)
 org-confirm-elisp-link-function 'yes-or-no-p
 org-catch-invisible-edits 'show
 org-descriptive-links nil
 org-latex-format-drawer-function '(lambda (name contents) contents)
 org-clock-out-hook '(org-clock-remove-empty-clock-drawer)
org-ascii-format-drawer-function '(lambda (name contents width) contents)
 org-html-format-drawer-function '(lambda (name contents) contents)
 org-metadown-hook '(org-babel-pop-to-session-maybe)
 org-todo-keywords '((type "TODO" "|" "DONE"))
 org-agenda-files '("c:/agenda.org")
 org-src-mode-hook '(org-src-babel-configure-edit-buffer 
org-src-mode-configure-edit-buffer)
 org-after-todo-state-change-hook '(org-clock-out-if-current)
 org-babel-load-languages '((gnuplot . t) (emacs-lisp . t))
 org-latex-format-inlinetask-function 'ignore
 org-agenda-start-with-clockreport-mode t
 org-confirm-shell-link-function 'yes-or-no-p
 )


Reply via email to