EpisodeWidget: Pass the EpisodeModel by value.
This is preparationg for being able to pass the model to the connect_craw callback directly.
This commit is contained in:
parent
9a76c6428a
commit
fe024502d4
@ -206,10 +206,10 @@ impl Default for EpisodeWidget {
|
||||
}
|
||||
|
||||
impl EpisodeWidget {
|
||||
pub fn new(episode: &EpisodeWidgetModel, sender: &Sender<Action>) -> Rc<Self> {
|
||||
pub fn new(episode: EpisodeWidgetModel, sender: &Sender<Action>) -> Rc<Self> {
|
||||
let widget = Rc::new(Self::default());
|
||||
widget.info.init(episode);
|
||||
Self::determine_buttons_state(&widget, episode, sender)
|
||||
widget.info.init(&episode);
|
||||
Self::determine_buttons_state(&widget, &episode, sender)
|
||||
.map_err(|err| error!("Error: {}", err))
|
||||
.ok();
|
||||
widget
|
||||
|
||||
@ -95,7 +95,7 @@ impl HomeView {
|
||||
let view_ = view.clone();
|
||||
let func = move |ep: EpisodeWidgetModel| {
|
||||
let epoch = ep.epoch();
|
||||
let widget = HomeEpisode::new(&ep, &sender);
|
||||
let widget = HomeEpisode::new(ep, &sender);
|
||||
|
||||
match split(&now_utc, i64::from(epoch)) {
|
||||
Today => add_to_box(&widget, &view_.today_list, &view_.today_box),
|
||||
@ -197,7 +197,7 @@ impl Default for HomeEpisode {
|
||||
}
|
||||
|
||||
impl HomeEpisode {
|
||||
fn new(episode: &EpisodeWidgetModel, sender: &Sender<Action>) -> HomeEpisode {
|
||||
fn new(episode: EpisodeWidgetModel, sender: &Sender<Action>) -> HomeEpisode {
|
||||
let builder =
|
||||
gtk::Builder::new_from_resource("/org/gnome/Hammond/gtk/episodes_view_widget.ui");
|
||||
let container: gtk::Box = builder.get_object("container").unwrap();
|
||||
|
||||
@ -206,7 +206,7 @@ fn populate_listbox(
|
||||
let list = show_.episodes.clone();
|
||||
|
||||
let constructor = clone!(sender => move |ep| {
|
||||
EpisodeWidget::new(&ep, &sender).container.clone()
|
||||
EpisodeWidget::new(ep, &sender).container.clone()
|
||||
});
|
||||
|
||||
let callback = clone!(pd, show_ => move || {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user