Add player details screen

This commit is contained in:
Elias Projahn 2020-11-07 20:07:26 +01:00
parent 8e952fb6e2
commit eb77c97f9b
24 changed files with 792 additions and 43 deletions

View file

@ -20,6 +20,7 @@ pub struct Window {
poe_list: Rc<PoeList>,
navigator: Rc<Navigator>,
player_bar: PlayerBar,
player_screen: PlayerScreen,
}
impl Window {
@ -38,6 +39,9 @@ impl Window {
let backend = Rc::new(Backend::new());
backend.clone().init();
let player_screen = PlayerScreen::new();
stack.add_named(&player_screen.widget, "player_screen");
let poe_list = PoeList::new(backend.clone());
let navigator = Navigator::new(&empty_screen);
navigator.set_back_cb(clone!(@strong leaflet, @strong sidebar_box => move || {
@ -56,6 +60,7 @@ impl Window {
poe_list,
navigator,
player_bar,
player_screen,
});
result.window.set_application(Some(app));
@ -85,6 +90,18 @@ impl Window {
})).show();
}));
result
.player_bar
.set_playlist_cb(clone!(@strong result => move || {
result.stack.set_visible_child_name("player_screen");
}));
result
.player_screen
.set_back_cb(clone!(@strong result => move || {
result.stack.set_visible_child_name("content");
}));
action!(
result.window,
"preferences",
@ -298,7 +315,8 @@ impl Window {
clone.poe_list.clone().reload();
let player = clone.backend.get_player().unwrap();
clone.player_bar.set_player(Some(player));
clone.player_bar.set_player(Some(player.clone()));
clone.player_screen.set_player(Some(player));
}
}
}