* [PATCH] Allow org-collector to display heading indentation
@ 2012-03-30 19:43 ` Nicolas Girard
2012-03-30 19:52 ` Achim Gratz
2012-03-30 19:52 ` Nick Dokos
0 siblings, 2 replies; 11+ messages in thread
From: Nicolas Girard @ 2012-03-30 19:43 UTC (permalink / raw)
To: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 1075 bytes --]
Hi all,
attached is a patch which adds a new parameter "indent" to the
propview dynamic bloc, with the following behaviour:
#+BEGIN_SRC org
,* Tree
,:PROPERTIES:
,:COLUMNS: %8ITEM %4prop1 %5prop2
,:ID: tree
,:END:
,** A
,:PROPERTIES:
,:prop1: 10
,:prop2: 20
,:END:
,*** A1
,:PROPERTIES:
,:prop1: 15
,:prop2: 19
,:END:
,*** A2
,:PROPERTIES:
,:prop1: 20
,:prop2: 18
,:END:
,** B
,:PROPERTIES:
,:prop1: 25
,:prop2: 10
,:END:
,*** B1
,:PROPERTIES:
,:prop1: 2
,:prop2: 4
,:END:
,*** B2
,:PROPERTIES:
,:prop1: 3
,:prop2: 5
,:END:
#+END_SRC
#+BEGIN: propview :id tree :cols (ITEM prop1) :noquote t :indent t
| ITEM | prop1 |
|--------+-------|
| Tree | 0 |
| \- A | 10 |
| \-- A1 | 15 |
| \-- A2 | 20 |
| \- B | 25 |
| \-- B1 | 2 |
| \-- B2 | 3 |
|--------+-------|
| | |
#+END
I wish the indentation to be displayed with nothing but spaces, but
they would be trimmed by org-table guts ; so that's middly satisfying,
but better than nothing :-)
Cheers,
Nicolas
[-- Attachment #2: org-collector.el.diff --]
[-- Type: application/octet-stream, Size: 1816 bytes --]
diff --git a/contrib/lisp/org-collector.el b/contrib/lisp/org-collector.el
index ad198ed..bc9dfae 100644
--- a/contrib/lisp/org-collector.el
+++ b/contrib/lisp/org-collector.el
@@ -121,6 +121,7 @@ preceeding the dblock, then update the contents of the dblock."
(scope (plist-get params :scope))
(noquote (plist-get params :noquote))
(colnames (plist-get params :colnames))
+ (indent (plist-get params :indent))
(content-lines (org-split-string (plist-get params :content) "\n"))
id table line pos)
(save-excursion
@@ -135,7 +136,7 @@ preceeding the dblock, then update the contents of the dblock."
(setq stringformat (if noquote "%s" "%S"))
(setq table (org-propview-to-table
(org-propview-collect cols stringformat conds match scope inherit
- (if colnames colnames cols)) stringformat))
+ (if colnames colnames cols) indent) stringformat))
(widen))
(setq pos (point))
(when content-lines
@@ -171,13 +172,18 @@ variables and values specified in props"
(when p (cons n p))))
inherit))))
-(defun org-propview-collect (cols stringformat &optional conds match scope inherit colnames)
+(defun org-propview-collect (cols stringformat &optional conds match scope inherit colnames indent)
(interactive)
;; collect the properties from every header
(let* ((header-props
(let ((org-trust-scanner-tags t) alst)
(org-map-entries
- (quote (cons (cons "ITEM" (org-get-heading t))
+ (quote (cons (cons "ITEM"
+ (let ((item (org-get-heading t))
+ (level (- (org-current-level) 1)))
+ (if (and indent (> level 0))
+ (format "\\%s %s"
+ (make-string level ?- ) item) item)))
(org-propview-get-with-inherited inherit)))
match scope)))
;; read property values
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH] Allow org-collector to display heading indentation
2012-03-30 19:43 ` [PATCH] Allow org-collector to display heading indentation Nicolas Girard
@ 2012-03-30 19:52 ` Achim Gratz
2012-03-30 19:52 ` Nick Dokos
1 sibling, 0 replies; 11+ messages in thread
From: Achim Gratz @ 2012-03-30 19:52 UTC (permalink / raw)
To: emacs-orgmode
Nicolas Girard writes:
> I wish the indentation to be displayed with nothing but spaces, but
> they would be trimmed by org-table guts ; so that's middly satisfying,
> but better than nothing :-)
Then use a non-breaking space and be fully satisfied.
Regards,
Achim.
--
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+
Waldorf MIDI Implementation & additional documentation:
http://Synth.Stromeko.net/Downloads.html#WaldorfDocs
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Allow org-collector to display heading indentation
2012-03-30 19:43 ` [PATCH] Allow org-collector to display heading indentation Nicolas Girard
2012-03-30 19:52 ` Achim Gratz
@ 2012-03-30 19:52 ` Nick Dokos
2012-03-30 20:55 ` Nicolas Girard
1 sibling, 1 reply; 11+ messages in thread
From: Nick Dokos @ 2012-03-30 19:52 UTC (permalink / raw)
To: Nicolas Girard; +Cc: nicholas.dokos, emacs-orgmode
Nicolas Girard <girard.nicolas@gmail.com> wrote:
> Hi all,
> attached is a patch ...
Attachments with mime type "application/octet-stream" are *not* caught
by patchwork. Please resubmit the patch in a proper attachment: see
http://orgmode.org/worg/org-contribute.html#sec-4-3 for details.
Nick
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Allow org-collector to display heading indentation
2012-03-30 19:52 ` Nick Dokos
@ 2012-03-30 20:55 ` Nicolas Girard
2012-03-31 6:57 ` Sebastien Vauban
0 siblings, 1 reply; 11+ messages in thread
From: Nicolas Girard @ 2012-03-30 20:55 UTC (permalink / raw)
To: emacs-orgmode
From eaf9e5f06279069ed1072425fd020d8f0442d04f Mon Sep 17 00:00:00 2001
From: Nicolas Girard <girard.nicolas@gmail.com>
Date: Fri, 30 Mar 2012 22:53:13 +0200
Subject: [PATCH] Allow org-collector to display heading indentation
---
contrib/lisp/org-collector.el | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/contrib/lisp/org-collector.el b/contrib/lisp/org-collector.el
index da612e9..2476d62 100644
--- a/contrib/lisp/org-collector.el
+++ b/contrib/lisp/org-collector.el
@@ -121,6 +121,7 @@ preceeding the dblock, then update the contents of
the dblock."
(scope (plist-get params :scope))
(noquote (plist-get params :noquote))
(colnames (plist-get params :colnames))
+ (indent (plist-get params :indent))
(content-lines (org-split-string (plist-get params :content) "\n"))
id table line pos)
(save-excursion
@@ -135,7 +136,7 @@ preceeding the dblock, then update the contents of
the dblock."
(setq stringformat (if noquote "%s" "%S"))
(setq table (org-propview-to-table
(org-propview-collect cols stringformat conds match scope inherit
- (if colnames colnames cols)) stringformat))
+ (if colnames colnames cols) indent) stringformat))
(widen))
(setq pos (point))
(when content-lines
@@ -171,13 +172,18 @@ variables and values specified in props"
(when p (cons n p))))
inherit))))
-(defun org-propview-collect (cols stringformat &optional conds match
scope inherit colnames)
+(defun org-propview-collect (cols stringformat &optional conds match
scope inherit colnames indent)
(interactive)
;; collect the properties from every header
(let* ((header-props
(let ((org-trust-scanner-tags t) alst)
(org-map-entries
- (quote (cons (cons "ITEM" (org-get-heading t))
+ (quote (cons (cons "ITEM"
+ (let ((item (org-get-heading t))
+ (level (- (org-current-level) 1)))
+ (if (and indent (> level 0))
+ (format "\\%s %s"
+ (make-string level ?- ) item) item)))
(org-propview-get-with-inherited inherit)))
match scope)))
;; read property values
--
1.7.8.rc1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH] Allow org-collector to display heading indentation
2012-03-30 20:55 ` Nicolas Girard
@ 2012-03-31 6:57 ` Sebastien Vauban
2012-03-31 23:58 ` Nicolas Girard
2012-03-31 23:59 ` [PATCH 1/2] Simplify org-clocktable-indent-string Nicolas Girard
0 siblings, 2 replies; 11+ messages in thread
From: Sebastien Vauban @ 2012-03-31 6:57 UTC (permalink / raw)
To: emacs-orgmode-mXXj517/zsQ
Hi Nicolas,
Nicolas Girard wrote:
> From eaf9e5f06279069ed1072425fd020d8f0442d04f Mon Sep 17 00:00:00 2001
> From: Nicolas Girard <girard.nicolas-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> Date: Fri, 30 Mar 2012 22:53:13 +0200
> Subject: [PATCH] Allow org-collector to display heading indentation
>
> ---
> contrib/lisp/org-collector.el | 12 +++++++++---
> 1 files changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/contrib/lisp/org-collector.el b/contrib/lisp/org-collector.el
> index da612e9..2476d62 100644
> --- a/contrib/lisp/org-collector.el
> +++ b/contrib/lisp/org-collector.el
> @@ -121,6 +121,7 @@ preceeding the dblock, then update the contents of
> the dblock."
> (scope (plist-get params :scope))
> (noquote (plist-get params :noquote))
> (colnames (plist-get params :colnames))
> + (indent (plist-get params :indent))
> (content-lines (org-split-string (plist-get params :content) "\n"))
> id table line pos)
> (save-excursion
> @@ -135,7 +136,7 @@ preceeding the dblock, then update the contents of
> the dblock."
> (setq stringformat (if noquote "%s" "%S"))
> (setq table (org-propview-to-table
> (org-propview-collect cols stringformat conds match scope inherit
> - (if colnames colnames cols)) stringformat))
> + (if colnames colnames cols) indent) stringformat))
> (widen))
> (setq pos (point))
> (when content-lines
> @@ -171,13 +172,18 @@ variables and values specified in props"
> (when p (cons n p))))
> inherit))))
>
> -(defun org-propview-collect (cols stringformat &optional conds match
> scope inherit colnames)
> +(defun org-propview-collect (cols stringformat &optional conds match
> scope inherit colnames indent)
> (interactive)
> ;; collect the properties from every header
> (let* ((header-props
> (let ((org-trust-scanner-tags t) alst)
> (org-map-entries
> - (quote (cons (cons "ITEM" (org-get-heading t))
> + (quote (cons (cons "ITEM"
> + (let ((item (org-get-heading t))
> + (level (- (org-current-level) 1)))
> + (if (and indent (> level 0))
> + (format "\\%s %s"
> + (make-string level ?- ) item) item)))
You may want to follow the "indent" convention used for clockview: "\__"
string.
Have a look at (or reuse?) the function `org-clocktable-indent-string'...
> (org-propview-get-with-inherited inherit)))
> match scope)))
> ;; read property values
Best regards,
Seb
--
Sebastien Vauban
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Allow org-collector to display heading indentation
2012-03-31 6:57 ` Sebastien Vauban
@ 2012-03-31 23:58 ` Nicolas Girard
2012-03-31 23:59 ` [PATCH 1/2] Simplify org-clocktable-indent-string Nicolas Girard
1 sibling, 0 replies; 11+ messages in thread
From: Nicolas Girard @ 2012-03-31 23:58 UTC (permalink / raw)
To: emacs-orgmode
2012/3/31 Sebastien Vauban <wxhgmqzgwmuf@spammotel.com>:
>
> You may want to follow the "indent" convention used for clockview: "\__"
> string.
>
> Have a look at (or reuse?) the function `org-clocktable-indent-string'...
>
Hi Sébastien,
fair enough ; not that I like underscores much better but it makes
sense for the indentation in both tables to be similar.
I've rewritten my code in this respect.
Cheers,
Nicolas
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/2] Simplify org-clocktable-indent-string.
2012-03-31 6:57 ` Sebastien Vauban
2012-03-31 23:58 ` Nicolas Girard
@ 2012-03-31 23:59 ` Nicolas Girard
2012-03-31 23:59 ` [PATCH 2/2] Allow org-collector to display heading indentation by passing ':indent t' to the propview block Nicolas Girard
2012-04-20 11:12 ` [PATCH 1/2] Simplify org-clocktable-indent-string Bastien
1 sibling, 2 replies; 11+ messages in thread
From: Nicolas Girard @ 2012-03-31 23:59 UTC (permalink / raw)
To: emacs-orgmode; +Cc: Nicolas Girard
---
lisp/org-clock.el | 6 +-----
1 files changed, 1 insertions(+), 5 deletions(-)
diff --git a/lisp/org-clock.el b/lisp/org-clock.el
index 591f59c..be66ce6 100644
--- a/lisp/org-clock.el
+++ b/lisp/org-clock.el
@@ -2342,11 +2342,7 @@ from the dynamic block definition."
(defun org-clocktable-indent-string (level)
(if (= level 1)
""
- (let ((str "\\__"))
- (while (> level 2)
- (setq level (1- level)
- str (concat str "___")))
- (concat str " "))))
+ (concat "\\" (make-string (* 2 (1- level)) ?_ ) " ")))
(defun org-clocktable-steps (params)
"Step through the range to make a number of clock tables."
--
1.7.8.rc1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 2/2] Allow org-collector to display heading indentation by passing ':indent t' to the propview block.
2012-03-31 23:59 ` [PATCH 1/2] Simplify org-clocktable-indent-string Nicolas Girard
@ 2012-03-31 23:59 ` Nicolas Girard
2012-04-02 16:56 ` Bastien
2012-04-20 11:12 ` Bastien
2012-04-20 11:12 ` [PATCH 1/2] Simplify org-clocktable-indent-string Bastien
1 sibling, 2 replies; 11+ messages in thread
From: Nicolas Girard @ 2012-03-31 23:59 UTC (permalink / raw)
To: emacs-orgmode; +Cc: Nicolas Girard
---
contrib/lisp/org-collector.el | 22 +++++++++++++++++-----
1 files changed, 17 insertions(+), 5 deletions(-)
diff --git a/contrib/lisp/org-collector.el b/contrib/lisp/org-collector.el
index da612e9..2f5e598 100644
--- a/contrib/lisp/org-collector.el
+++ b/contrib/lisp/org-collector.el
@@ -91,6 +91,7 @@
;;; Code:
(require 'org)
+(require 'org-clock)
(require 'org-table)
(defvar org-propview-default-value 0
@@ -98,6 +99,11 @@
value is calculated either through lack of required variables for
a column, or through the generation of an error.")
+(defvar org-propview-indent-function 'org-clocktable-indent-string
+ "A function called with the heading level. Should return a
+string which will be concatenated to the ITEM property when
+':indent t' is passed to the propview block.")
+
(defun and-rest (list)
(if (listp list)
(if (> (length list) 1)
@@ -121,6 +127,7 @@ preceeding the dblock, then update the contents of the dblock."
(scope (plist-get params :scope))
(noquote (plist-get params :noquote))
(colnames (plist-get params :colnames))
+ (indent (plist-get params :indent))
(content-lines (org-split-string (plist-get params :content) "\n"))
id table line pos)
(save-excursion
@@ -134,8 +141,8 @@ preceeding the dblock, then update the contents of the dblock."
(org-narrow-to-subtree)
(setq stringformat (if noquote "%s" "%S"))
(setq table (org-propview-to-table
- (org-propview-collect cols stringformat conds match scope inherit
- (if colnames colnames cols)) stringformat))
+ (org-propview-collect cols stringformat conds match scope inherit
+ (if colnames colnames cols) indent) stringformat))
(widen))
(setq pos (point))
(when content-lines
@@ -171,14 +178,19 @@ variables and values specified in props"
(when p (cons n p))))
inherit))))
-(defun org-propview-collect (cols stringformat &optional conds match scope inherit colnames)
+(defun org-propview-collect (cols stringformat &optional conds match scope inherit colnames indent)
(interactive)
;; collect the properties from every header
(let* ((header-props
(let ((org-trust-scanner-tags t) alst)
(org-map-entries
- (quote (cons (cons "ITEM" (org-get-heading t))
- (org-propview-get-with-inherited inherit)))
+ (quote
+ (cons (cons "ITEM"
+ (let ((item (org-get-heading t))
+ (level (org-current-level)))
+ (concat
+ (funcall org-propview-indent-function level) item)))
+ (org-propview-get-with-inherited inherit)))
match scope)))
;; read property values
(header-props
--
1.7.8.rc1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] Allow org-collector to display heading indentation by passing ':indent t' to the propview block.
2012-03-31 23:59 ` [PATCH 2/2] Allow org-collector to display heading indentation by passing ':indent t' to the propview block Nicolas Girard
@ 2012-04-02 16:56 ` Bastien
2012-04-20 11:12 ` Bastien
1 sibling, 0 replies; 11+ messages in thread
From: Bastien @ 2012-04-02 16:56 UTC (permalink / raw)
To: Nicolas Girard; +Cc: emacs-orgmode
Hi Nicolas,
Nicolas Girard <girard.nicolas@gmail.com> writes:
> ---
> contrib/lisp/org-collector.el | 22 +++++++++++++++++-----
> 1 files changed, 17 insertions(+), 5 deletions(-)
Thanks for the patch. Can you add an Emacs ChangeLog entry?
See http://orgmode.org/worg/org-contribute.html#sec-5 for details.
Also, have you signed the FSF papers?
I'm sending you the form to fill in in a private email.
Thanks,
--
Bastien
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] Simplify org-clocktable-indent-string.
2012-03-31 23:59 ` [PATCH 1/2] Simplify org-clocktable-indent-string Nicolas Girard
2012-03-31 23:59 ` [PATCH 2/2] Allow org-collector to display heading indentation by passing ':indent t' to the propview block Nicolas Girard
@ 2012-04-20 11:12 ` Bastien
1 sibling, 0 replies; 11+ messages in thread
From: Bastien @ 2012-04-20 11:12 UTC (permalink / raw)
To: Nicolas Girard; +Cc: emacs-orgmode
Hi Nicolas,
Nicolas Girard <girard.nicolas@gmail.com> writes:
> ---
> lisp/org-clock.el | 6 +-----
> 1 files changed, 1 insertions(+), 5 deletions(-)
>
> diff --git a/lisp/org-clock.el b/lisp/org-clock.el
> index 591f59c..be66ce6 100644
> --- a/lisp/org-clock.el
> +++ b/lisp/org-clock.el
> @@ -2342,11 +2342,7 @@ from the dynamic block definition."
> (defun org-clocktable-indent-string (level)
> (if (= level 1)
> ""
> - (let ((str "\\__"))
> - (while (> level 2)
> - (setq level (1- level)
> - str (concat str "___")))
> - (concat str " "))))
> + (concat "\\" (make-string (* 2 (1- level)) ?_ ) " ")))
>
> (defun org-clocktable-steps (params)
> "Step through the range to make a number of clock tables."
The "simplification" does not produce the same output.
I rejected this patch.
--
Bastien
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] Allow org-collector to display heading indentation by passing ':indent t' to the propview block.
2012-03-31 23:59 ` [PATCH 2/2] Allow org-collector to display heading indentation by passing ':indent t' to the propview block Nicolas Girard
2012-04-02 16:56 ` Bastien
@ 2012-04-20 11:12 ` Bastien
1 sibling, 0 replies; 11+ messages in thread
From: Bastien @ 2012-04-20 11:12 UTC (permalink / raw)
To: Nicolas Girard; +Cc: emacs-orgmode
Hi Nicolas,
the patch does not apply against master and does not have a changelog
entry. Please resubmit it with a Changelog entry and check that it
applies against master correctly.
Thanks,
--
Bastien
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2012-04-20 11:11 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <girard.nicolas@gmail.com>
2012-03-30 19:43 ` [PATCH] Allow org-collector to display heading indentation Nicolas Girard
2012-03-30 19:52 ` Achim Gratz
2012-03-30 19:52 ` Nick Dokos
2012-03-30 20:55 ` Nicolas Girard
2012-03-31 6:57 ` Sebastien Vauban
2012-03-31 23:58 ` Nicolas Girard
2012-03-31 23:59 ` [PATCH 1/2] Simplify org-clocktable-indent-string Nicolas Girard
2012-03-31 23:59 ` [PATCH 2/2] Allow org-collector to display heading indentation by passing ':indent t' to the propview block Nicolas Girard
2012-04-02 16:56 ` Bastien
2012-04-20 11:12 ` Bastien
2012-04-20 11:12 ` [PATCH 1/2] Simplify org-clocktable-indent-string Bastien
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).