Compare commits

...

3 commits

Author SHA1 Message Date
3940392f2d how 2024-11-13 18:59:14 +01:00
2916fa8f71 center status page 2024-11-13 18:51:55 +01:00
5f46cf2b77 reorder things 2024-11-13 18:49:08 +01:00
6 changed files with 62 additions and 55 deletions

View file

@ -2,8 +2,6 @@ using Gtk 4.0;
using Adw 1;
template $AudreyUiPlayQueue: Adw.Bin {
name: "play-queue";
child: Stack {
visible-child-name: bind $visible_child_name(template.model as <$GListStore>.n-items) as <string>;
@ -19,22 +17,56 @@ template $AudreyUiPlayQueue: Adw.Bin {
StackPage {
name: "not-empty";
child: ScrolledWindow {
hexpand: true;
hscrollbar-policy: never;
child: Box {
name: "play-queue-page";
homogeneous: true;
ListView view {
single-click-activate: true;
activate => $on_row_activated() swapped;
Adw.Clamp {
halign: center;
margin-top: 24;
margin-bottom: 24;
margin-start: 24;
margin-end: 24;
model: NoSelection {
model: bind template.model;
};
Picture {
valign: center;
factory: SignalListItemFactory {
setup => $on_song_list_setup() swapped;
bind => $on_song_list_bind() swapped;
unbind => $on_song_list_unbind() swapped;
styles [
"frame"
]
halign: center;
paintable: bind template.playing-cover-art;
}
}
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;
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]

View file

@ -193,6 +193,7 @@ mod imp {
match window.imp().state.get() {
State::Idle | State::FileLoading | State::Seeking => {}
State::Active => window.notify("time-pos"),
State::FileEnded => {}
other => unreachable!("{other:?}"),
}
glib::ControlFlow::Continue