2024-10-10 10:12:43 +00:00
|
|
|
using Gtk 4.0;
|
2024-10-25 09:05:01 +00:00
|
|
|
using Adw 1;
|
|
|
|
using Gio 2.0;
|
2024-10-10 10:12:43 +00:00
|
|
|
|
2024-10-20 13:30:22 +00:00
|
|
|
template $UiPlayQueue: Box {
|
2024-10-20 14:15:22 +00:00
|
|
|
name: "play-queue";
|
|
|
|
|
2024-10-25 09:05:01 +00:00
|
|
|
Stack {
|
|
|
|
visible-child-name: bind $visible_child_name (template.playbin as <$Playbin>.play_queue as <Gio.ListStore>.n-items) as <string>;
|
2024-10-10 10:12:43 +00:00
|
|
|
|
2024-10-25 09:05:01 +00:00
|
|
|
StackPage {
|
|
|
|
name: "empty";
|
2024-10-19 11:29:39 +00:00
|
|
|
|
2024-10-25 09:05:01 +00:00
|
|
|
child: Adw.StatusPage {
|
|
|
|
icon-name: "list-remove-all";
|
|
|
|
title: "No songs queued";
|
|
|
|
};
|
|
|
|
}
|
2024-10-20 14:15:22 +00:00
|
|
|
|
2024-10-25 09:05:01 +00:00
|
|
|
StackPage {
|
|
|
|
name: "not-empty";
|
2024-10-19 11:29:39 +00:00
|
|
|
|
2024-10-25 09:05:01 +00:00
|
|
|
child: ScrolledWindow {
|
|
|
|
hexpand: true;
|
|
|
|
vscrollbar-policy: always;
|
|
|
|
hscrollbar-policy: never;
|
|
|
|
|
|
|
|
ListView view {
|
|
|
|
show-separators: true;
|
|
|
|
single-click-activate: true;
|
|
|
|
|
|
|
|
activate => $on_row_activated ();
|
|
|
|
|
|
|
|
model: NoSelection {
|
|
|
|
model: bind template.playbin as <$Playbin>.play_queue;
|
|
|
|
};
|
2024-10-15 11:27:47 +00:00
|
|
|
|
2024-10-25 09:05:01 +00:00
|
|
|
factory: SignalListItemFactory {
|
|
|
|
setup => $on_song_list_setup ();
|
|
|
|
bind => $on_song_list_bind ();
|
|
|
|
unbind => $on_song_list_unbind ();
|
|
|
|
};
|
|
|
|
}
|
2024-10-20 13:30:22 +00:00
|
|
|
};
|
2024-10-10 10:12:43 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|