From 57708e6cc1ee8d7fc4a4d5876e2f600d5b8466f1 Mon Sep 17 00:00:00 2001 From: Adam Porter Date: Mon, 2 Nov 2020 20:12:31 -0600 Subject: [PATCH] Change: (-view--plist, -view-save) Factor out plist code In preparation for bookmark support. --- org-ql-view.el | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/org-ql-view.el b/org-ql-view.el index 7739ea7..15499a3 100644 --- a/org-ql-view.el +++ b/org-ql-view.el @@ -343,12 +343,10 @@ update search arguments." "Save current `org-ql-search' buffer to `org-ql-views'." (interactive) (let* ((name (read-string "Save view as: " org-ql-view-title)) - (plist (list :buffers-files org-ql-view-buffers-files - :query org-ql-view-query - :sort org-ql-view-sort - :narrow org-ql-view-narrow - :super-groups org-ql-view-super-groups - :title name))) + ;; Bind `org-ql-view-title' to the name that was read, in case + ;; it's different, which `org-ql-view--plist' will pick up. + (org-ql-view-title name) + (plist (org-ql-view--plist (current-buffer)))) (when (or (not (map-elt org-ql-views name nil)) (yes-or-no-p (format "Overwrite view \"%s\"?" name))) (setf (map-elt org-ql-views name nil #'equal) plist) @@ -374,6 +372,16 @@ update search arguments." ;;;; Functions +(defun org-ql-view--plist (buffer) + "Return plist describing Org QL View in BUFFER." + (with-current-buffer buffer + (list :buffers-files org-ql-view-buffers-files + :query org-ql-view-query + :sort org-ql-view-sort + :narrow org-ql-view-narrow + :super-groups org-ql-view-super-groups + :title org-ql-view-title))) + (defun org-ql-view--list-buffer () "Return view list buffer." (with-current-buffer (get-buffer-create "*Org QL View List*")