[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/listen 7cec46f690 05/16: Change: (listen-queue-complete
From: |
ELPA Syncer |
Subject: |
[elpa] externals/listen 7cec46f690 05/16: Change: (listen-queue-complete) Add :allow-new-p argument |
Date: |
Thu, 29 Feb 2024 06:58:30 -0500 (EST) |
branch: externals/listen
commit 7cec46f690e1f3a223669a19f144dd5b732ab258
Author: Adam Porter <adam@alphapapa.net>
Commit: Adam Porter <adam@alphapapa.net>
Change: (listen-queue-complete) Add :allow-new-p argument
---
README.org | 1 +
listen-queue.el | 36 +++++++++++++++++++++---------------
2 files changed, 22 insertions(+), 15 deletions(-)
diff --git a/README.org b/README.org
index bf840f20cd..b8f9779b48 100644
--- a/README.org
+++ b/README.org
@@ -76,6 +76,7 @@ Use the command ~listen~ to show the Transient menu. From
there, it is--hopeful
+ Various improvements in robustness.
+ Command ~listen-queue~ doesn't recreate its buffer when already open.
+ Key bindings in ~listen~ Transient menu.
++ Function ~listen-queue-complete~ accepts argument ~:allow-new-p~ to return a
new queue if the entered name doesn't match an existing one.
*Fixes*
+ Completing read of tracks from MPD.
diff --git a/listen-queue.el b/listen-queue.el
index bcc3c6e190..2aac891a20 100644
--- a/listen-queue.el
+++ b/listen-queue.el
@@ -249,22 +249,28 @@ select track as well."
(alist-get selected map nil nil #'equal))))
(declare-function listen--playing-p "listen-vlc")
-(cl-defun listen-queue-complete (&key (prompt "Queue"))
+(cl-defun listen-queue-complete (&key (prompt "Queue") allow-new-p)
"Return a Listen queue selected with completion.
-PROMPT is passed to `format-prompt', which see."
- (pcase (length listen-queues)
- (0 (listen-queue--new (read-string "New queue name: ")))
- (1 (car listen-queues))
- (_ (let* ((player (listen--player))
- (default-queue-name (or (when listen-queue
- ;; In a listen buffer: offer its queue
as default.
- (listen-queue-name listen-queue))
- (when (listen--playing-p player)
- (listen-queue-name (map-elt
(listen-player-etc player) :queue)))))
- (queue-names (mapcar #'listen-queue-name listen-queues))
- (prompt (format-prompt prompt default-queue-name))
- (selected (completing-read prompt queue-names nil t nil nil
default-queue-name)))
- (cl-find selected listen-queues :key #'listen-queue-name :test
#'equal)))))
+If ALLOW-NEW-P, accept the name of a non-existent queue and
+return a new one having it. PROMPT is passed to `format-prompt',
+which see."
+ (cl-labels ((read-queue ()
+ (let* ((player (listen--player))
+ (default-queue-name (or (when listen-queue
+ ;; In a listen buffer: offer
its queue as default.
+ (listen-queue-name
listen-queue))
+ (when (listen--playing-p player)
+ (listen-queue-name (map-elt
(listen-player-etc player) :queue)))))
+ (queue-names (mapcar #'listen-queue-name listen-queues))
+ (prompt (format-prompt prompt default-queue-name))
+ (selected (completing-read prompt queue-names nil (not
allow-new-p)
+ nil nil default-queue-name)))
+ (or (cl-find selected listen-queues :key #'listen-queue-name
:test #'equal)
+ (when allow-new-p
+ (listen-queue--new selected))))))
+ (pcase (length listen-queues)
+ (0 (listen-queue--new (read-string "New queue name: ")))
+ (_ (read-queue)))))
;;;###autoload
(defun listen-queue-new (name)
- [elpa] externals/listen updated (f9d4157605 -> 2cf52c87fe), ELPA Syncer, 2024/02/29
- [elpa] externals/listen 94e5f7c0a8 01/16: Tidy: Indentation, ELPA Syncer, 2024/02/29
- [elpa] externals/listen 6f068ae6dc 04/16: Fix: (listen-queue--update-buffer) Preserve point, ELPA Syncer, 2024/02/29
- [elpa] externals/listen 944f3f6560 12/16: Fix: (listen-library-play-or-add) Prompt, ELPA Syncer, 2024/02/29
- [elpa] externals/listen 7cec46f690 05/16: Change: (listen-queue-complete) Add :allow-new-p argument,
ELPA Syncer <=
- [elpa] externals/listen 215f506c76 11/16: Add: (listen-library-from-playlist-file), ELPA Syncer, 2024/02/29
- [elpa] externals/listen 75641cad05 02/16: Change: (listen) Library bindings, ELPA Syncer, 2024/02/29
- [elpa] externals/listen 2cf52c87fe 16/16: Add: (listen-queue-deduplicate), ELPA Syncer, 2024/02/29
- [elpa] externals/listen 9ccf1ff0d1 09/16: Change: (listen-library-from-queue) Rename command, ELPA Syncer, 2024/02/29
- [elpa] externals/listen e2f39d0578 10/16: Add: (listen-queue-add-from-playlist-file), ELPA Syncer, 2024/02/29
- [elpa] externals/listen db94a21bfc 08/16: Change: (listen-queue-add-from-mpd) Allow new queue, ELPA Syncer, 2024/02/29
- [elpa] externals/listen d8e14f4c68 15/16: Meta: v0.4-pre, ELPA Syncer, 2024/02/29
- [elpa] externals/listen 643fbeb135 14/16: Release: v0.3, ELPA Syncer, 2024/02/29
- [elpa] externals/listen e98996c32e 03/16: Fix: (listen) Make "qc" conditional, ELPA Syncer, 2024/02/29
- [elpa] externals/listen f3ad8f8dcc 06/16: Change: Use (listen-queue-complete :allow-new-p) in commands, ELPA Syncer, 2024/02/29