tracklist column visibility menu can be dismissed with escape key

This commit is contained in:
Drew Weymouth
2023-03-03 20:59:59 -08:00
parent b2c16bf331
commit 321fdf0621
3 changed files with 15 additions and 1 deletions
+3
View File
@@ -87,6 +87,9 @@ func (m *Controller) ConnectTracklistActions(tracklist *widgets.Tracklist) {
tracklist.OnShowArtistPage = func(artistID string) {
m.NavigateTo(ArtistRoute(artistID))
}
tracklist.OnColumnVisibilityMenuShown = func(pop *widget.PopUp) {
m.ClosePopUpOnEscape(pop)
}
}
func (m *Controller) PromptForFirstServer() {
+5 -1
View File
@@ -20,7 +20,8 @@ type ListColumn struct {
type ListHeader struct {
widget.BaseWidget
OnColumnVisibilityChanged func(int, bool)
OnColumnVisibilityChanged func(int, bool)
OnColumnVisibilityMenuShown func(*widget.PopUp)
columns []ListColumn
columnVisible []bool
@@ -84,6 +85,9 @@ func (l *ListHeader) TappedSecondary(e *fyne.PointEvent) {
}
pop := widget.NewPopUp(l.popUpMenu, fyne.CurrentApp().Driver().CanvasForObject(l))
pop.ShowAtPosition(e.AbsolutePosition)
if l.OnColumnVisibilityMenuShown != nil {
l.OnColumnVisibilityMenuShown(pop)
}
}
func (l *ListHeader) setupPopUpMenu() {
+7
View File
@@ -49,6 +49,8 @@ type Tracklist struct {
OnShowArtistPage func(artistID string)
OnShowAlbumPage func(albumID string)
OnColumnVisibilityMenuShown func(*widget.PopUp)
visibleColumns []bool
selectionMgr util.ListSelectionManager
@@ -69,6 +71,11 @@ func NewTracklist(tracks []*subsonic.Child) *Tracklist {
t.colLayout = layouts.NewColumnsLayout([]float32{35, -1, -1, -1, 60, 60, 47, 65, 75})
t.buildHeader()
t.hdr.OnColumnVisibilityChanged = t.setColumnVisible
t.hdr.OnColumnVisibilityMenuShown = func(pop *widget.PopUp) {
if t.OnColumnVisibilityMenuShown != nil {
t.OnColumnVisibilityMenuShown(pop)
}
}
playingIcon := container.NewCenter(container.NewHBox(NewHSpace(2), widget.NewIcon(theme.MediaPlayIcon())))
t.list = widget.NewList(
func() int { return len(t.Tracks) },