[Timeline] Entries now always have lists of markers

This removes a special case and thus makes handling easier.
This commit is contained in:
Daniel Borchmann 2018-02-19 12:19:05 +01:00
parent 7918f82876
commit 7d2e41ac01
Signed by: exot
GPG Key ID: 4F63DB96D45AA9C6

View File

@ -46,17 +46,16 @@ Filter are applied in the order they are given in this list."
(defalias 'timeline-tools-entry-marker 'caddr (defalias 'timeline-tools-entry-marker 'caddr
"Marker to org task of ENTRY.") "Marker to org task of ENTRY.")
(defun timeline-tools-make-entry (start-time end-time marker) (defun timeline-tools-make-entry (start-time end-time markers)
"Return a timeline entry made up of START-TIME, END-TIME, and MARKER." "Return a timeline entry made up of START-TIME, END-TIME, and MARKERS.
(list start-time end-time marker)) MARKER may be a list of markers, or a single marker."
(list start-time end-time (if (listp markers) markers (list markers))))
(defun timeline-tools-entry-category (entry) (defun timeline-tools-entry-category (entry)
"Return ARCHIVE_CATEGORY or CATEGORY at position given by MARKER. "Return ARCHIVE_CATEGORY or CATEGORY at position given by MARKER.
Return whatever is found first. ENTRY can be a plain timeline Return whatever is found first. ENTRY can be a plain timeline
entry or a cluster." entry or a cluster."
(let ((marker (timeline-tools-entry-marker entry))) (let ((marker (car (timeline-tools-entry-marker entry))))
(when (listp marker)
(setq marker (car marker)))
(or (org-entry-get marker "ARCHIVE_CATEGORY") (or (org-entry-get marker "ARCHIVE_CATEGORY")
(org-entry-get marker "CATEGORY")))) (org-entry-get marker "CATEGORY"))))
@ -238,9 +237,10 @@ archives."
Markers to org mode tasks are combined into a list." Markers to org mode tasks are combined into a list."
(let ((new-timeline (-partition-by #'timeline-tools-entry-category timeline))) (let ((new-timeline (-partition-by #'timeline-tools-entry-category timeline)))
(mapcar (lambda (cluster) (mapcar (lambda (cluster)
(list (timeline-tools-entry-start-time (-first-item cluster)) (timeline-tools-make-entry
(timeline-tools-entry-start-time (-first-item cluster))
(timeline-tools-entry-end-time (-last-item cluster)) (timeline-tools-entry-end-time (-last-item cluster))
(mapcar #'timeline-tools-entry-marker cluster))) (-mapcat #'timeline-tools-entry-marker cluster)))
new-timeline))) new-timeline)))
(defun timeline-tools-skip-short-entries (timeline) (defun timeline-tools-skip-short-entries (timeline)