From c71e8959f39b4403b5e30e0340a9570ca6da3d27 Mon Sep 17 00:00:00 2001 From: "Sean E. Russell" <ser@ser1.net> Date: Thu, 19 Dec 2024 10:06:27 -0600 Subject: [PATCH] adds: ability to toggle song info panel on queue page via `i` (courtesy of @mahmed2000) Signed-off-by: Sean E. Russell <ser@ser1.net> --- README.md | 1 + help_text.go | 1 + page_queue.go | 16 +++++++++++----- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index bb84615..1e7c8c9 100644 --- a/README.md +++ b/README.md @@ -135,6 +135,7 @@ These controls are accessible from any view: - `d`/`Delete`: Remove currently selected song from the queue - `D`: Remove all songs from queue - `y`: Toggle star on song +- `i`: Toggle song info panel - `k`: Move song up in queue - `j`: Move song down in queue - `s`: Save the queue as a playlist diff --git a/help_text.go b/help_text.go index c958127..763a7f7 100644 --- a/help_text.go +++ b/help_text.go @@ -33,6 +33,7 @@ const helpPageQueue = ` d/DEL remove currently selected song from the queue D remove all songs from queue y toggle star on song +i toggle song info panel k move selected song up in queue j move selected song down in queue s save queue as a playlist diff --git a/page_queue.go b/page_queue.go index 500dcea..8447df7 100644 --- a/page_queue.go +++ b/page_queue.go @@ -45,6 +45,7 @@ type QueuePage struct { queueList *tview.Table queueData queueData + infoFlex *tview.Flex songInfo *tview.TextView coverArt *tview.Image @@ -133,7 +134,12 @@ func (ui *Ui) createQueuePage() *QueuePage { _ = ui.player.Pause() } }() - + case 'i': + if queuePage.Root.GetItemCount() == 2 { + queuePage.Root.RemoveItem(queuePage.infoFlex) + } else { + queuePage.Root.AddItem(queuePage.infoFlex, 0, 1, false) + } default: return event } @@ -154,16 +160,16 @@ func (ui *Ui) createQueuePage() *QueuePage { queuePage.coverArt = tview.NewImage() queuePage.coverArt.SetImage(STMPS_LOGO) - infoFlex := tview.NewFlex().SetDirection(tview.FlexRow). + queuePage.infoFlex = tview.NewFlex().SetDirection(tview.FlexRow). AddItem(queuePage.songInfo, 0, 1, false). AddItem(queuePage.coverArt, 0, 1, false) - infoFlex.SetBorder(true) - infoFlex.SetTitle(" song info ") + queuePage.infoFlex.SetBorder(true) + queuePage.infoFlex.SetTitle(" song info ") // flex wrapper queuePage.Root = tview.NewFlex().SetDirection(tview.FlexColumn). AddItem(queuePage.queueList, 0, 2, true). - AddItem(infoFlex, 0, 1, false) + AddItem(queuePage.infoFlex, 0, 1, false) // private data queuePage.queueData = queueData{