reorder things

This commit is contained in:
Erica Z 2024-11-13 18:49:08 +01:00
parent 72a985a9e4
commit 5f46cf2b77
5 changed files with 69 additions and 63 deletions

View file

@ -2,39 +2,71 @@ using Gtk 4.0;
using Adw 1;
template $AudreyUiPlayQueue: Adw.Bin {
name: "play-queue";
child: Box {
name: "play-queue-page";
homogeneous: true;
child: Stack {
visible-child-name: bind $visible_child_name(template.model as <$GListStore>.n-items) as <string>;
Adw.Clamp {
halign: center;
margin-top: 24;
margin-bottom: 24;
margin-start: 24;
margin-end: 24;
StackPage {
name: "empty";
Picture {
valign: center;
child: Adw.StatusPage {
icon-name: "list-remove-all";
title: "No songs queued";
};
styles [
"frame"
]
halign: center;
paintable: bind template.playing-cover-art;
}
}
StackPage {
name: "not-empty";
Adw.Bin {
name: "play-queue";
hexpand: true;
halign: fill;
margin-top: 48;
margin-bottom: 48;
margin-start: 24;
margin-end: 24;
child: ScrolledWindow {
hexpand: true;
hscrollbar-policy: never;
child: Stack {
visible-child-name: bind $visible_child_name(template.model as <$GListStore>.n-items) as <string>;
ListView view {
single-click-activate: true;
activate => $on_row_activated() swapped;
StackPage {
name: "empty";
model: NoSelection {
model: bind template.model;
child: Adw.StatusPage {
icon-name: "list-remove-all";
title: "No songs queued";
};
}
factory: SignalListItemFactory {
setup => $on_song_list_setup() swapped;
bind => $on_song_list_bind() swapped;
unbind => $on_song_list_unbind() swapped;
StackPage {
name: "not-empty";
child: ScrolledWindow {
hexpand: true;
hscrollbar-policy: never;
ListView view {
single-click-activate: true;
activate => $on_row_activated() swapped;
model: NoSelection {
model: bind template.model;
};
factory: SignalListItemFactory {
setup => $on_song_list_setup() swapped;
bind => $on_song_list_bind() swapped;
unbind => $on_song_list_unbind() swapped;
};
}
};
}
};

View file

@ -6,7 +6,6 @@ template $AudreyUiPlayQueueSong: Box {
Box {
margin-start: 6;
width-request: 36;
focusable: false;
homogeneous: true;

View file

@ -8,6 +8,7 @@ template $AudreyUiPlaybar: Adw.Bin {
styles [
"osd"
]
visible: bind template.show-pulse-bar;
valign: start;
}

View file

@ -7,7 +7,6 @@ template $AudreyUiWindow: Adw.ApplicationWindow {
default-height: 600;
Adw.ToolbarView {
[top]
Adw.HeaderBar {
[start]
@ -84,7 +83,10 @@ template $AudreyUiWindow: Adw.ApplicationWindow {
vexpand: true;
GridView {
styles [ "albums" ]
styles [
"albums"
]
single-click-activate: true;
model: NoSelection {
@ -140,41 +142,11 @@ template $AudreyUiWindow: Adw.ApplicationWindow {
title: _("Play queue");
name: "play-queue";
child: Box {
name: "play-queue-page";
homogeneous: true;
Adw.Clamp {
halign: center;
margin-top: 24;
margin-bottom: 24;
margin-start: 24;
margin-end: 24;
Picture {
valign: center;
styles [
"frame"
]
halign: center;
paintable: bind template.playing_cover_art;
}
}
$AudreyUiPlayQueue play_queue {
hexpand: true;
halign: fill;
margin-top: 48;
margin-bottom: 48;
margin-start: 24;
margin-end: 24;
model: bind template.playlist_model;
playlist-pos: bind template.playlist-pos;
// playbin: bind template.playbin;
}
child: $AudreyUiPlayQueue play_queue {
model: bind template.playlist_model;
playlist-pos: bind template.playlist-pos;
// playbin: bind template.playbin;
playing-cover-art: bind template.playing-cover-art;
};
}
};

View file

@ -2,9 +2,9 @@ pub mod song;
pub use song::Song;
mod imp {
use adw::{gio, glib, prelude::*, subclass::prelude::*};
use adw::{gdk, gio, glib, prelude::*, subclass::prelude::*};
use glib::{subclass::InitializingObject, WeakRef};
use std::cell::Cell;
use std::cell::{Cell, RefCell};
use tracing::{event, Level};
#[derive(gtk::CompositeTemplate, glib::Properties, Default)]
@ -15,6 +15,8 @@ mod imp {
pub(super) model: WeakRef<gio::ListModel>,
#[property(get, set)]
_playlist_pos: Cell<i64>,
#[property(get, set)]
playing_cover_art: RefCell<Option<gdk::Paintable>>,
}
#[glib::object_subclass]