only show cover art in playbar if view isnt play queue

This commit is contained in:
Erica Z 2024-10-20 17:28:47 +02:00
parent fa9d3b873f
commit af4da894fc
4 changed files with 55 additions and 21 deletions

View file

@ -10,29 +10,39 @@ template $UiPlaybar: Box {
[start]
Box {
orientation: vertical;
valign: center;
Label {
styles [ "heading" ]
xalign: 0;
halign: start;
label: bind $song_title (template.song) as <string>;
ellipsize: end;
Picture {
visible: bind template.show_cover_art;
valign: center;
halign: center;
paintable: bind template.playing_cover_art;
}
Label {
styles [ "caption" ]
xalign: 0;
label: bind $song_artist (template.song) as <string>;
ellipsize: end;
}
Box {
margin-start: 6;
orientation: vertical;
valign: center;
Label {
styles [ "caption" ]
xalign: 0;
label: bind $song_album (template.song) as <string>;
ellipsize: end;
Label {
styles [ "heading" ]
xalign: 0;
halign: start;
label: bind $song_title (template.song) as <string>;
ellipsize: end;
}
Label {
styles [ "caption" ]
xalign: 0;
label: bind $song_artist (template.song) as <string>;
ellipsize: end;
}
Label {
styles [ "caption" ]
xalign: 0;
label: bind $song_album (template.song) as <string>;
ellipsize: end;
}
}
}

View file

@ -1,7 +1,10 @@
[GtkTemplate (ui = "/eu/callcc/audrey/ui/playbar.ui")]
class Ui.Playbar : Gtk.Box {
public Subsonic.Song? song { get; set; }
public Gdk.Paintable? playing_cover_art { get; set; }
public Playbin playbin { get; set; }
public bool show_cover_art { get; set; default = true; }
public int volume {
get { return playbin == null ? 100 : playbin.volume; }
set { playbin.volume = value; }

View file

@ -36,8 +36,23 @@ template $UiWindow: Adw.ApplicationWindow {
content: Adw.ViewStack stack {
Adw.ViewStackPage {
title: _("Play queue");
icon-name: "audio-input-microphone";
title: _("Artists");
child: Box {};
}
Adw.ViewStackPage {
icon-name: "media-optical-cd";
title: _("Albums");
child: Box {};
}
Adw.ViewStackPage {
icon-name: "media-playback-start";
title: _("Play queue");
name: "play-queue";
child: Box {
name: "play-queue-page";
@ -79,6 +94,8 @@ template $UiWindow: Adw.ApplicationWindow {
$UiPlaybar playbar {
song: bind template.song;
playbin: bind template.playbin;
playing_cover_art: bind template.playing_cover_art;
show_cover_art: bind $show_playbar_cover_art (stack.visible-child-name) as <bool>;
}
};
}

View file

@ -111,4 +111,8 @@ class Ui.Window : Adw.ApplicationWindow {
this.playbin.select_track (0);
});
}
[GtkCallback] private bool show_playbar_cover_art (string? stack_child) {
return stack_child != "play-queue";
}
}