Use Default trait for creating Widget's that don't need arguments.

This commit is contained in:
Jordan Petridis
2017-12-17 13:08:51 +02:00
parent 440badf1eb
commit 75fe0f8ff5
7 changed files with 68 additions and 54 deletions
+7 -5
View File
@@ -47,8 +47,8 @@ struct EpisodeWidget {
progress_label: gtk::Label,
}
impl EpisodeWidget {
fn new() -> EpisodeWidget {
impl Default for EpisodeWidget {
fn default() -> Self {
let builder = gtk::Builder::new_from_resource("/org/gnome/hammond/gtk/episode_widget.ui");
let container: gtk::Box = builder.get_object("episode_container").unwrap();
@@ -95,9 +95,11 @@ impl EpisodeWidget {
progress_label,
}
}
}
pub fn new_initialized(episode: &mut EpisodeWidgetQuery, pd: &Podcast) -> EpisodeWidget {
let widget = EpisodeWidget::new();
impl EpisodeWidget {
pub fn new(episode: &mut EpisodeWidgetQuery, pd: &Podcast) -> EpisodeWidget {
let widget = EpisodeWidget::default();
widget.init(episode, pd);
widget
}
@@ -284,7 +286,7 @@ pub fn episodes_listbox(pd: &Podcast) -> Result<gtk::ListBox> {
let list = gtk::ListBox::new();
episodes.into_iter().for_each(|mut ep| {
let widget = EpisodeWidget::new_initialized(&mut ep, pd);
let widget = EpisodeWidget::new(&mut ep, pd);
list.add(&widget.container);
let sep = gtk::Separator::new(gtk::Orientation::Vertical);
+6 -4
View File
@@ -28,8 +28,8 @@ pub struct ShowWidget {
episodes: gtk::Frame,
}
impl ShowWidget {
pub fn new() -> ShowWidget {
impl Default for ShowWidget {
fn default() -> Self {
let builder = gtk::Builder::new_from_resource("/org/gnome/hammond/gtk/show_widget.ui");
let container: gtk::Box = builder.get_object("container").unwrap();
let episodes: gtk::Frame = builder.get_object("episodes").unwrap();
@@ -54,9 +54,11 @@ impl ShowWidget {
episodes,
}
}
}
pub fn new_initialized(shows: Rc<ShowStack>, header: Rc<Header>, pd: &Podcast) -> ShowWidget {
let pdw = ShowWidget::new();
impl ShowWidget {
pub fn new(shows: Rc<ShowStack>, header: Rc<Header>, pd: &Podcast) -> ShowWidget {
let pdw = ShowWidget::default();
pdw.init(shows, header, pd);
pdw
}