Show a list of games in the library #64
|
@ -6,6 +6,7 @@ use typeshare::typeshare;
|
||||||
#[typeshare]
|
#[typeshare]
|
||||||
pub struct GamePreviewElement {
|
pub struct GamePreviewElement {
|
||||||
pub date: Vec<String>,
|
pub date: Vec<String>,
|
||||||
|
pub name: String,
|
||||||
pub black_player: String,
|
pub black_player: String,
|
||||||
pub white_player: String,
|
pub white_player: String,
|
||||||
}
|
}
|
||||||
|
@ -31,6 +32,11 @@ impl GamePreviewElement {
|
||||||
None => white_player,
|
None => white_player,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let name = match game.info.game_name {
|
||||||
|
Some(ref name) => name.clone(),
|
||||||
|
None => format!("{} vs. {}", black_player, white_player),
|
||||||
|
};
|
||||||
|
|
||||||
GamePreviewElement {
|
GamePreviewElement {
|
||||||
date: game
|
date: game
|
||||||
.info
|
.info
|
||||||
|
@ -38,6 +44,7 @@ impl GamePreviewElement {
|
||||||
.iter()
|
.iter()
|
||||||
.map(|dt| dt.to_string())
|
.map(|dt| dt.to_string())
|
||||||
.collect::<Vec<String>>(),
|
.collect::<Vec<String>>(),
|
||||||
|
name,
|
||||||
black_player,
|
black_player,
|
||||||
white_player,
|
white_player,
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,6 +43,7 @@ impl GamePreview {
|
||||||
pub fn set_game(&self, element: GamePreviewElement) {
|
pub fn set_game(&self, element: GamePreviewElement) {
|
||||||
self.imp().black_player.set_text(&element.black_player);
|
self.imp().black_player.set_text(&element.black_player);
|
||||||
self.imp().white_player.set_text(&element.white_player);
|
self.imp().white_player.set_text(&element.white_player);
|
||||||
|
self.imp().title.set_text(&element.name);
|
||||||
if let Some(date) = element.date.first() {
|
if let Some(date) = element.date.first() {
|
||||||
self.imp().date.set_text(&date);
|
self.imp().date.set_text(&date);
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,6 +99,11 @@ impl TryFrom<Tree> for Game {
|
||||||
info.app_name = tree.sequence[0]
|
info.app_name = tree.sequence[0]
|
||||||
.find_prop("AP")
|
.find_prop("AP")
|
||||||
.map(|prop| prop.values[0].clone());
|
.map(|prop| prop.values[0].clone());
|
||||||
|
|
||||||
|
info.game_name = tree.sequence[0]
|
||||||
|
.find_prop("GN")
|
||||||
|
.map(|prop| prop.values[0].clone());
|
||||||
|
|
||||||
info.black_player = tree.sequence[0]
|
info.black_player = tree.sequence[0]
|
||||||
.find_prop("PB")
|
.find_prop("PB")
|
||||||
.map(|prop| prop.values.join(", "));
|
.map(|prop| prop.values.join(", "));
|
||||||
|
|
Loading…
Reference in New Issue