add "no songs queued" placeholder
This commit is contained in:
parent
fdd719f4f8
commit
f436557bf5
2 changed files with 40 additions and 17 deletions
|
@ -1,9 +1,26 @@
|
||||||
using Gtk 4.0;
|
using Gtk 4.0;
|
||||||
|
using Adw 1;
|
||||||
|
using Gio 2.0;
|
||||||
|
|
||||||
template $UiPlayQueue: Box {
|
template $UiPlayQueue: Box {
|
||||||
name: "play-queue";
|
name: "play-queue";
|
||||||
|
|
||||||
ScrolledWindow {
|
Stack {
|
||||||
|
visible-child-name: bind $visible_child_name (template.playbin as <$Playbin>.play_queue as <Gio.ListStore>.n-items) as <string>;
|
||||||
|
|
||||||
|
StackPage {
|
||||||
|
name: "empty";
|
||||||
|
|
||||||
|
child: Adw.StatusPage {
|
||||||
|
icon-name: "list-remove-all";
|
||||||
|
title: "No songs queued";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
StackPage {
|
||||||
|
name: "not-empty";
|
||||||
|
|
||||||
|
child: ScrolledWindow {
|
||||||
hexpand: true;
|
hexpand: true;
|
||||||
vscrollbar-policy: always;
|
vscrollbar-policy: always;
|
||||||
hscrollbar-policy: never;
|
hscrollbar-policy: never;
|
||||||
|
@ -26,5 +43,7 @@ template $UiPlayQueue: Box {
|
||||||
unbind => $on_song_list_unbind ();
|
unbind => $on_song_list_unbind ();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -161,4 +161,8 @@ public class Ui.PlayQueue : Gtk.Box {
|
||||||
[GtkCallback] private void on_row_activated (uint position) {
|
[GtkCallback] private void on_row_activated (uint position) {
|
||||||
playbin.select_track (position);
|
playbin.select_track (position);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[GtkCallback] private string visible_child_name (uint n_items) {
|
||||||
|
return n_items > 0 ? "not-empty" : "empty";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue