Added support for :maxlevel and :skip-empty-rows parameters to columnview dblock.
This commit is contained in:
parent
96e96fa684
commit
f247d16417
21
ChangeLog
21
ChangeLog
|
@ -1,4 +1,15 @@
|
||||||
2008-02-29 Bastien Guerry <Bastien.Guerry@ens.fr>
|
2008-03-01 Bastien Guerry <bzg@altern.org>
|
||||||
|
|
||||||
|
* org.texi (Capturing Column View): Documented new parameters for
|
||||||
|
the column view dynamic block: :maxlevel and :skip-empty-rows.
|
||||||
|
|
||||||
|
2008-03-01 Bastien Guerry <bzg@altern.org>
|
||||||
|
|
||||||
|
* org.el (org-dblock-write:columnview, org-columns-capture-view):
|
||||||
|
Added support for :maxlevel and :skip-empty-rows as argument for
|
||||||
|
the columnview dynamic block.
|
||||||
|
|
||||||
|
2008-02-29 Bastien Guerry <bzg@altern.org>
|
||||||
|
|
||||||
* org-irc.el: Require 'cl and 'erc. Added dynamically scoped
|
* org-irc.el: Require 'cl and 'erc. Added dynamically scoped
|
||||||
variables.
|
variables.
|
||||||
|
@ -88,7 +99,7 @@
|
||||||
customizable.
|
customizable.
|
||||||
(org-default-extensions): New option.
|
(org-default-extensions): New option.
|
||||||
|
|
||||||
2008-02-26 Bastien Guerry <Bastien.Guerry@ens.fr>
|
2008-02-26 Bastien Guerry <bzg@altern.org>
|
||||||
|
|
||||||
* org.el (org-agenda-to-appt): New argument `refresh' let the user
|
* org.el (org-agenda-to-appt): New argument `refresh' let the user
|
||||||
delete previous appointments stored in `appt-time-msg-list'.
|
delete previous appointments stored in `appt-time-msg-list'.
|
||||||
|
@ -448,7 +459,7 @@ Installed as 5.19a
|
||||||
(Quoted examples): New section.
|
(Quoted examples): New section.
|
||||||
(Enhancing text): New verbatim environments.
|
(Enhancing text): New verbatim environments.
|
||||||
|
|
||||||
2007-11-04 Bastien Guerry <Bastien.Guerry@ens.fr>
|
2007-11-04 Bastien Guerry <bzg@altern.org>
|
||||||
|
|
||||||
* org.el (org-export-with-special-strings): New option.
|
* org.el (org-export-with-special-strings): New option.
|
||||||
(org-export-html-convert-special-strings): New function.
|
(org-export-html-convert-special-strings): New function.
|
||||||
|
@ -656,7 +667,7 @@ Installed as 5.11
|
||||||
|
|
||||||
* org.texi (Appointment reminders): New section.
|
* org.texi (Appointment reminders): New section.
|
||||||
|
|
||||||
2007-10-05 Bastien Guerry <Bastien.Guerry@ens.fr>
|
2007-10-05 Bastien Guerry <bzg@altern.org>
|
||||||
|
|
||||||
* org-export-latex.el (org-export-latex-protect-string):
|
* org-export-latex.el (org-export-latex-protect-string):
|
||||||
Renaming of `org-latex-protect'.
|
Renaming of `org-latex-protect'.
|
||||||
|
@ -700,7 +711,7 @@ Installed as 5.10
|
||||||
(org-indent-item): Fix bullet type before thinking about
|
(org-indent-item): Fix bullet type before thinking about
|
||||||
renumbering.
|
renumbering.
|
||||||
|
|
||||||
2007-09-26 Bastien Guerry <Bastien.Guerry@ens.fr>
|
2007-09-26 Bastien Guerry <bzg@altern.org>
|
||||||
|
|
||||||
* org-export-latex.el (org-export-latex-emphasis-alist):
|
* org-export-latex.el (org-export-latex-emphasis-alist):
|
||||||
Each list of the alist now requires three elements.
|
Each list of the alist now requires three elements.
|
||||||
|
|
32
org.el
32
org.el
|
@ -17431,15 +17431,24 @@ printf a printf format for computed values"
|
||||||
|
|
||||||
;;; Dynamic block for Column view
|
;;; Dynamic block for Column view
|
||||||
|
|
||||||
(defun org-columns-capture-view ()
|
(defun org-columns-capture-view (&optional maxlevel skip-empty-rows)
|
||||||
"Get the column view of the current buffer and return it as a list.
|
"Get the column view of the current buffer or subtree.
|
||||||
The list will contains the title row and all other rows. Each row is
|
The first optional argument MAXLEVEL sets the level limit. A
|
||||||
a list of fields."
|
second optional argument SKIP-EMPTY-ROWS tells whether to skip
|
||||||
|
empty rows, an empty row being one where all the column view
|
||||||
|
specifiers except ITEM are empty. This function returns a list
|
||||||
|
containing the title row and all other rows. Each row is a list
|
||||||
|
of fields."
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(let* ((title (mapcar 'cadr org-columns-current-fmt-compiled))
|
(let* ((title (mapcar 'cadr org-columns-current-fmt-compiled))
|
||||||
(n (length title)) row tbl)
|
(n (length title)) row tbl)
|
||||||
(goto-char (point-min))
|
(goto-char (point-min))
|
||||||
(while (re-search-forward "^\\*+ " nil t)
|
(while (and (re-search-forward "^\\(\\*+\\) " nil t)
|
||||||
|
(or (null maxlevel)
|
||||||
|
(>= maxlevel
|
||||||
|
(if org-odd-levels-only
|
||||||
|
(/ (1+ (length (match-string 1))) 2)
|
||||||
|
(length (match-string 1))))))
|
||||||
(when (get-char-property (match-beginning 0) 'org-columns-key)
|
(when (get-char-property (match-beginning 0) 'org-columns-key)
|
||||||
(setq row nil)
|
(setq row nil)
|
||||||
(loop for i from 0 to (1- n) do
|
(loop for i from 0 to (1- n) do
|
||||||
|
@ -17448,7 +17457,9 @@ a list of fields."
|
||||||
"")
|
"")
|
||||||
row))
|
row))
|
||||||
(setq row (nreverse row))
|
(setq row (nreverse row))
|
||||||
(push row tbl)))
|
(unless (and skip-empty-rows
|
||||||
|
(eq 1 (length (delete "" (delete-dups row)))))
|
||||||
|
(push row tbl))))
|
||||||
(append (list title 'hline) (nreverse tbl)))))
|
(append (list title 'hline) (nreverse tbl)))))
|
||||||
|
|
||||||
(defun org-dblock-write:columnview (params)
|
(defun org-dblock-write:columnview (params)
|
||||||
|
@ -17463,10 +17474,15 @@ PARAMS is a property list of parameters:
|
||||||
to column view).
|
to column view).
|
||||||
:hlines When t, insert a hline before each item. When a number, insert
|
:hlines When t, insert a hline before each item. When a number, insert
|
||||||
a hline before each level <= that number.
|
a hline before each level <= that number.
|
||||||
:vlines When t, make each column a colgroup to enforce vertical lines."
|
:vlines When t, make each column a colgroup to enforce vertical lines.
|
||||||
|
:maxlevel When set to a number, don't capture headlines below this level.
|
||||||
|
:skip-empty-rows
|
||||||
|
When t, skip rows where all specifiers other than ITEM are empty."
|
||||||
(let ((pos (move-marker (make-marker) (point)))
|
(let ((pos (move-marker (make-marker) (point)))
|
||||||
(hlines (plist-get params :hlines))
|
(hlines (plist-get params :hlines))
|
||||||
(vlines (plist-get params :vlines))
|
(vlines (plist-get params :vlines))
|
||||||
|
(maxlevel (plist-get params :maxlevel))
|
||||||
|
(skip-empty-rows (plist-get params :skip-empty-rows))
|
||||||
tbl id idpos nfields tmp)
|
tbl id idpos nfields tmp)
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(save-restriction
|
(save-restriction
|
||||||
|
@ -17478,7 +17494,7 @@ PARAMS is a property list of parameters:
|
||||||
(goto-char idpos))
|
(goto-char idpos))
|
||||||
(t (error "Cannot find entry with :ID: %s" id))))
|
(t (error "Cannot find entry with :ID: %s" id))))
|
||||||
(org-columns)
|
(org-columns)
|
||||||
(setq tbl (org-columns-capture-view))
|
(setq tbl (org-columns-capture-view maxlevel skip-empty-rows))
|
||||||
(setq nfields (length (car tbl)))
|
(setq nfields (length (car tbl)))
|
||||||
(org-columns-quit)))
|
(org-columns-quit)))
|
||||||
(goto-char pos)
|
(goto-char pos)
|
||||||
|
|
14
org.texi
14
org.texi
|
@ -3774,8 +3774,8 @@ values.
|
||||||
|
|
||||||
The first column, @samp{%25ITEM}, means the first 25 characters of the
|
The first column, @samp{%25ITEM}, means the first 25 characters of the
|
||||||
item itself, i.e. of the headline. You probably always should start the
|
item itself, i.e. of the headline. You probably always should start the
|
||||||
column definition with the ITEM specifier. The other specifiers create
|
column definition with the @samp{ITEM} specifier. The other specifiers
|
||||||
columns @samp{Owner} with a list of names as allowed values, for
|
create columns @samp{Owner} with a list of names as allowed values, for
|
||||||
@samp{Status} with four different possible values, and for a checkbox
|
@samp{Status} with four different possible values, and for a checkbox
|
||||||
field @samp{Approved}. When no width is given after the @samp{%}
|
field @samp{Approved}. When no width is given after the @samp{%}
|
||||||
character, the column will be exactly as wide as it needs to be in order
|
character, the column will be exactly as wide as it needs to be in order
|
||||||
|
@ -3859,8 +3859,8 @@ Delete the current column.
|
||||||
|
|
||||||
Since column view is just an overlay over a buffer, it cannot be
|
Since column view is just an overlay over a buffer, it cannot be
|
||||||
exported or printed directly. If you want to capture a column view, use
|
exported or printed directly. If you want to capture a column view, use
|
||||||
the dynamic block (@pxref{Dynamic blocks}). The frame of this block
|
ths @code{columnview} dynamic block (@pxref{Dynamic blocks}). The frame
|
||||||
looks like this:
|
of this block looks like this:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
* The column view
|
* The column view
|
||||||
|
@ -3888,6 +3888,12 @@ When @code{t}, insert a hline after every line. When a number N, insert
|
||||||
a hline before each headline with level @code{<= N}.
|
a hline before each headline with level @code{<= N}.
|
||||||
@item :vlines
|
@item :vlines
|
||||||
When set to @code{t}, enforce column groups to get vertical lines.
|
When set to @code{t}, enforce column groups to get vertical lines.
|
||||||
|
@item :maxlevel
|
||||||
|
When set to a number, don't capture entries below this level.
|
||||||
|
@item :skip-empty-rows
|
||||||
|
When set to @code{t}, skip row where the only non-empty specifier of the
|
||||||
|
column view is @code{ITEM}.
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
|
|
Loading…
Reference in New Issue