[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/listen b605713e0c 072/103: Queue fixes
From: |
ELPA Syncer |
Subject: |
[elpa] externals/listen b605713e0c 072/103: Queue fixes |
Date: |
Mon, 26 Feb 2024 12:59:30 -0500 (EST) |
branch: externals/listen
commit b605713e0c9ce4082750e8975089118b28cebfb4
Author: Adam Porter <adam@alphapapa.net>
Commit: Adam Porter <adam@alphapapa.net>
Queue fixes
---
listen-queue.el | 120 ++++++++++++++++++++++++++++++--------------------------
1 file changed, 65 insertions(+), 55 deletions(-)
diff --git a/listen-queue.el b/listen-queue.el
index 0363f39768..0610fd66c1 100644
--- a/listen-queue.el
+++ b/listen-queue.el
@@ -76,56 +76,57 @@
(erase-buffer)
(toggle-truncate-lines 1)
(setq-local bookmark-make-record-function
#'listen-queue--bookmark-make-record)
- (make-vtable
- :columns
- (list (list :name "*" :primary 'descend
- :getter (lambda (track _table)
- (if (eq track (listen-queue-current queue))
- "▶" " ")))
- (list :name "At" :primary 'descend
- :getter (lambda (track _table)
- (cl-position track (listen-queue-tracks
queue))))
- (list :name "Artist" :max-width 20 :align 'right
- :getter (lambda (track _table)
- (propertize (or (listen-track-artist track) "")
- 'face 'listen-artist)))
- (list :name "Title" :max-width 35
- :getter (lambda (track _table)
- (propertize (or (listen-track-title track) "")
- 'face 'listen-title)))
- (list :name "Album" :max-width 30
- :getter (lambda (track _table)
- (propertize (or (listen-track-album track) "")
- 'face 'listen-album)))
- (list :name "#"
- :getter (lambda (track _table)
- (or (listen-track-number track) "")))
- (list :name "Date"
- :getter (lambda (track _table)
- (or (listen-track-date track) "")))
- (list :name "Genre"
- :getter (lambda (track _table)
- (propertize (or (listen-track-genre track) "")
- 'face 'listen-genre)))
- (list :name "File"
- :getter (lambda (track _table)
- (propertize (listen-track-filename track)
- 'face 'listen-filename))))
- :objects-function (lambda ()
- (or (listen-queue-tracks listen-queue)
- (list (make-listen-track :artist "[Empty
queue]"))))
- :sort-by '((1 . ascend))
- :actions (list "q" (lambda (_) (bury-buffer))
- "n" (lambda (_) (forward-line 1))
- "p" (lambda (_) (forward-line -1))
- "N" (lambda (track) (listen-queue-transpose-forward
track queue))
- "P" (lambda (track) (listen-queue-transpose-backward
track queue))
- "C-k" (lambda (track) (listen-queue-kill-track track
queue))
- "C-y" (lambda (_) (call-interactively
#'listen-queue-yank))
- "RET" (lambda (track) (listen-queue-play queue track))
- "SPC" (lambda (_) (call-interactively #'listen-pause))
- "o" (lambda (_) (call-interactively
#'listen-queue-order-by))
- "s" (lambda (_) (listen-queue-shuffle listen-queue))))
+ (when (listen-queue-tracks listen-queue)
+ (make-vtable
+ :columns
+ (list (list :name "*" :primary 'descend
+ :getter (lambda (track _table)
+ (if (eq track (listen-queue-current queue))
+ "▶" " ")))
+ (list :name "At" :primary 'descend
+ :getter (lambda (track _table)
+ (cl-position track (listen-queue-tracks
queue))))
+ (list :name "Artist" :max-width 20 :align 'right
+ :getter (lambda (track _table)
+ (propertize (or (listen-track-artist track)
"")
+ 'face 'listen-artist)))
+ (list :name "Title" :max-width 35
+ :getter (lambda (track _table)
+ (propertize (or (listen-track-title track) "")
+ 'face 'listen-title)))
+ (list :name "Album" :max-width 30
+ :getter (lambda (track _table)
+ (propertize (or (listen-track-album track) "")
+ 'face 'listen-album)))
+ (list :name "#"
+ :getter (lambda (track _table)
+ (or (listen-track-number track) "")))
+ (list :name "Date"
+ :getter (lambda (track _table)
+ (or (listen-track-date track) "")))
+ (list :name "Genre"
+ :getter (lambda (track _table)
+ (propertize (or (listen-track-genre track) "")
+ 'face 'listen-genre)))
+ (list :name "File"
+ :getter (lambda (track _table)
+ (propertize (listen-track-filename track)
+ 'face 'listen-filename))))
+ :objects-function (lambda ()
+ (or (listen-queue-tracks listen-queue)
+ (list (make-listen-track :artist "[Empty
queue]"))))
+ :sort-by '((1 . ascend))
+ :actions (list "q" (lambda (_) (bury-buffer))
+ "n" (lambda (_) (forward-line 1))
+ "p" (lambda (_) (forward-line -1))
+ "N" (lambda (track) (listen-queue-transpose-forward
track queue))
+ "P" (lambda (track) (listen-queue-transpose-backward
track queue))
+ "C-k" (lambda (track) (listen-queue-kill-track track
queue))
+ "C-y" (lambda (_) (call-interactively
#'listen-queue-yank))
+ "RET" (lambda (track) (listen-queue-play queue
track))
+ "SPC" (lambda (_) (call-interactively
#'listen-pause))
+ "o" (lambda (_) (call-interactively
#'listen-queue-order-by))
+ "s" (lambda (_) (listen-queue-shuffle
listen-queue)))))
(goto-char (point-min))
(listen-queue--highlight-current)
(hl-line-mode 1)))
@@ -185,7 +186,10 @@ If BACKWARDP, move it backward."
when (eq queue (buffer-local-value 'listen-queue
buffer))
return buffer)))
(with-current-buffer buffer
- (vtable-revert-command)
+ (save-excursion
+ (goto-char (point-min))
+ (when (vtable-current-table)
+ (vtable-revert-command)))
(listen-queue--highlight-current))))
(declare-function listen-mode "listen")
@@ -226,7 +230,7 @@ select track as well."
"Return a Listen queue selected with completion.
PROMPT is passed to `format-prompt', which see."
(pcase (length listen-queues)
- (0 (call-interactively #'listen-queue-new))
+ (0 (listen-queue--new (read-string "New queue name: ")))
(1 (car listen-queues))
(_ (let* ((player (listen--player))
(default-queue-name (or (when listen-queue
@@ -240,13 +244,18 @@ PROMPT is passed to `format-prompt', which see."
;;;###autoload
(defun listen-queue-new (name)
- "Add and return a new queue having NAME."
+ "Add and show a new queue having NAME."
(interactive (list (read-string "New queue name: ")))
+ (let ((queue (listen-queue--new name)))
+ (listen-queue queue)
+ queue))
+
+(defun listen-queue--new (name)
+ "Add and return a new queue having NAME."
(when (cl-find name listen-queues :key #'listen-queue-name :test #'equal)
(user-error "Queue named %S already exists" name))
(let ((queue (make-listen-queue :name name)))
(push queue listen-queues)
- (listen-queue queue)
queue))
(defun listen-queue-discard (queue)
@@ -265,7 +274,8 @@ PROMPT is passed to `format-prompt', which see."
(list path))
queue)))
(cl-callf append (listen-queue-tracks queue) (delq nil (mapcar
#'listen-queue-track files)))
- (listen-queue--update-buffer queue)
+ (listen-queue queue)
+ (listen-queue-play queue)
queue)
(declare-function listen-mpd-completing-read "listen-mpd")
- [elpa] externals/listen d84c2e8745 063/103: Library bookmarks, (continued)
- [elpa] externals/listen d84c2e8745 063/103: Library bookmarks, ELPA Syncer, 2024/02/26
- [elpa] externals/listen 6ea353586e 086/103: Release: v0.2, ELPA Syncer, 2024/02/26
- [elpa] externals/listen d41da92402 096/103: Change: (listen-mpd-completing-read) Use completing-read-multiple, ELPA Syncer, 2024/02/26
- [elpa] externals/listen e4cdd0cf6c 064/103: Library and shell command improvements, ELPA Syncer, 2024/02/26
- [elpa] externals/listen 214b87215c 067/103: Fix: (listen-mode-lighter), ELPA Syncer, 2024/02/26
- [elpa] externals/listen d417f11c49 068/103: Tidy, ELPA Syncer, 2024/02/26
- [elpa] externals/listen 1371d14c26 062/103: Update docs, commentary, ELPA Syncer, 2024/02/26
- [elpa] externals/listen 294a129ff2 081/103: Revert "Change: (listen-queue--update-buffer) Add REVERTP argument", ELPA Syncer, 2024/02/26
- [elpa] externals/listen b515c309ab 046/103: Improve transient, ELPA Syncer, 2024/02/26
- [elpa] externals/listen b9d4fd6c17 071/103: Order queue, faces, etc, ELPA Syncer, 2024/02/26
- [elpa] externals/listen b605713e0c 072/103: Queue fixes,
ELPA Syncer <=
- [elpa] externals/listen 6138622ee2 076/103: Fix: (listen-queue-play) Don't reactivate mode, ELPA Syncer, 2024/02/26
- [elpa] externals/listen 30f7f02c74 079/103: Comment: Add TODO, ELPA Syncer, 2024/02/26
- [elpa] externals/listen 66302803b4 038/103: Queue yank/kill, ELPA Syncer, 2024/02/26
- [elpa] externals/listen 66a220243a 077/103: Change: (listen-queue--update-buffer) Add REVERTP argument, ELPA Syncer, 2024/02/26
- [elpa] externals/listen 8d2e0843df 094/103: Add: (listen-library-from-mpd), ELPA Syncer, 2024/02/26
- [elpa] externals/listen a93e82d9f9 088/103: Change: (listen-info--find-stream-type) Improve filename regexps, ELPA Syncer, 2024/02/26
- [elpa] externals/listen f88749bc67 099/103: Fix: (listen--ensure) Unset query-on-exit flag, ELPA Syncer, 2024/02/26
- [elpa] externals/listen 84386d1bfa 078/103: Fix: (listen-queue-next) Get player from function, ELPA Syncer, 2024/02/26
- [elpa] externals/listen 050f6f0e60 091/103: Change: (listen-read-time) Error if invalid, ELPA Syncer, 2024/02/26
- [elpa] externals/listen c5722c18b7 095/103: Fix: (listen-mpd-completing-read), ELPA Syncer, 2024/02/26