diff --git a/hammond-gtk/resources/gtk/episode_widget.ui b/hammond-gtk/resources/gtk/episode_widget.ui index 4669fd1..cc2d9d5 100644 --- a/hammond-gtk/resources/gtk/episode_widget.ui +++ b/hammond-gtk/resources/gtk/episode_widget.ui @@ -66,7 +66,7 @@ - + False True · @@ -93,7 +93,7 @@ - + True False · diff --git a/hammond-gtk/resources/gtk/headerbar.ui b/hammond-gtk/resources/gtk/headerbar.ui index b35599d..aa7d08e 100644 --- a/hammond-gtk/resources/gtk/headerbar.ui +++ b/hammond-gtk/resources/gtk/headerbar.ui @@ -156,30 +156,39 @@ - + True False - center - center - - - - - True - True - True - center + vertical - + True False - open-menu-symbolic + center + center + + False + True + 0 + + + + + False + True + Show Title + + + + + + False + True + 1 + - - end - @@ -202,5 +211,24 @@ 1 + + + True + True + True + center + + + True + False + open-menu-symbolic + + + + + end + 2 + + diff --git a/hammond-gtk/src/headerbar.rs b/hammond-gtk/src/headerbar.rs index efa6931..d683591 100644 --- a/hammond-gtk/src/headerbar.rs +++ b/hammond-gtk/src/headerbar.rs @@ -16,7 +16,7 @@ pub struct Header { add_toggle: gtk::MenuButton, switch: gtk::StackSwitcher, back_button: gtk::Button, - // show_title: gtk::Label, + show_title: gtk::Label, } impl Header { @@ -28,7 +28,7 @@ impl Header { let add_toggle: gtk::MenuButton = builder.get_object("add_toggle_button").unwrap(); let switch: gtk::StackSwitcher = builder.get_object("switch").unwrap(); let back_button: gtk::Button = builder.get_object("back_button").unwrap(); - // let show_title: gtk::Label = builder.get_object("show_title").unwrap(); + let show_title: gtk::Label = builder.get_object("show_title").unwrap(); switch.set_halign(gtk::Align::Center); switch.show(); @@ -39,6 +39,7 @@ impl Header { add_toggle, switch, back_button, + show_title, }) } @@ -70,25 +71,31 @@ impl Header { let switch = &self.switch; let add_toggle = &self.add_toggle; - self.back_button - .connect_clicked(clone!(content, switch, add_toggle => move |back| { + let show_title = &self.show_title; + self.back_button.connect_clicked( + clone!(content, switch, add_toggle, show_title => move |back| { switch.show(); add_toggle.show(); back.hide(); + show_title.hide(); content.shows.stack.set_visible_child_full("podcasts", gtk::StackTransitionType::SlideRight); - })); + }), + ); } - pub fn switch_to_back(&self) { + pub fn switch_to_back(&self, title: &str) { self.switch.hide(); self.add_toggle.hide(); self.back_button.show(); + self.show_title.set_text(title); + self.show_title.show(); } pub fn switch_to_normal(&self) { self.switch.show(); self.add_toggle.show(); self.back_button.hide(); + self.show_title.hide(); } // pub fn set_show_title(&self, title: &str) { diff --git a/hammond-gtk/src/views/shows.rs b/hammond-gtk/src/views/shows.rs index 5cb12b8..981469b 100644 --- a/hammond-gtk/src/views/shows.rs +++ b/hammond-gtk/src/views/shows.rs @@ -62,8 +62,7 @@ impl ShowsPopulated { let pd = dbqueries::get_podcast_from_id(id).unwrap(); show.replace_widget(&pd); - // header.set_show_title(pd.title()); - header.switch_to_back(); + header.switch_to_back(pd.title()); show.switch_widget_animated(); })); // Populate the flowbox with the Podcasts. diff --git a/hammond-gtk/src/widgets/episode.rs b/hammond-gtk/src/widgets/episode.rs index 6047602..921696f 100644 --- a/hammond-gtk/src/widgets/episode.rs +++ b/hammond-gtk/src/widgets/episode.rs @@ -65,8 +65,8 @@ impl EpisodeWidget { let size: gtk::Label = builder.get_object("size_label").unwrap(); let progress_label: gtk::Label = builder.get_object("progress_label").unwrap(); - let sep1: gtk::Label = builder.get_object("seperator1").unwrap(); - let sep2: gtk::Label = builder.get_object("seperator2").unwrap(); + let sep1: gtk::Label = builder.get_object("separator1").unwrap(); + let sep2: gtk::Label = builder.get_object("separator2").unwrap(); // Dim(grey out) the labels. // If it's possible through glade, feel free to open a PR. @@ -269,6 +269,7 @@ fn receive() -> glib::Continue { pub fn episodes_listbox(pd: &Podcast) -> Result { let episodes = dbqueries::get_pd_episodeswidgets(pd)?; + // TODO: add a separator let list = gtk::ListBox::new(); episodes.into_iter().for_each(|mut ep| { let widget = EpisodeWidget::new_initialized(&mut ep, pd);