EpisodeWidget: Remove Podcast depndancy from new() method.

This commit is contained in:
Jordan Petridis
2017-12-18 19:10:50 +02:00
parent 32cd24fc7b
commit 61bd7893c7
5 changed files with 70 additions and 9 deletions
+36
View File
@@ -1,8 +1,12 @@
use gtk;
use gtk::prelude::*;
use hammond_data::dbqueries;
use widgets::episode::EpisodeWidget;
use std::rc::Rc;
#[derive(Debug, Clone)]
pub struct EpisodesView {
pub container: gtk::Box,
@@ -22,6 +26,38 @@ impl Default for EpisodesView {
}
}
impl EpisodesView {
pub fn new() -> Rc<EpisodesView> {
let view = EpisodesView::default();
let episodes = dbqueries::get_episodeswidgets_with_limit(100).unwrap();
let frame = gtk::Frame::new("Recent Episodes");
let list = gtk::ListBox::new();
view.frame_parent.add(&frame);
frame.add(&list);
list.set_vexpand(false);
list.set_hexpand(false);
list.set_visible(true);
list.set_selection_mode(gtk::SelectionMode::None);
episodes.into_iter().for_each(|mut ep| {
let widget = EpisodeWidget::new(&mut ep);
list.add(&widget.container);
let sep = gtk::Separator::new(gtk::Orientation::Vertical);
sep.set_sensitive(false);
sep.set_can_focus(false);
list.add(&sep);
sep.show()
});
Rc::new(view)
}
}
#[derive(Debug, Clone)]
struct EpisodesViewWidget {
container: gtk::Box,