From 9d07ba24b85a36c369220bca2ba241ef2d4c8053 Mon Sep 17 00:00:00 2001 From: Jordan Petridis Date: Thu, 14 Dec 2017 14:27:51 +0200 Subject: [PATCH] HeaderBar Refactor. Removed the Headerbar stack. Removed the ShowTitle. Fixed StackSwitcher centering. Set the Headerbar button valignment to center instead of fill. --- hammond-gtk/resources/gtk/headerbar.ui | 157 +++++++------------------ hammond-gtk/src/headerbar.rs | 55 ++++----- hammond-gtk/src/views/shows.rs | 2 +- 3 files changed, 65 insertions(+), 149 deletions(-) diff --git a/hammond-gtk/resources/gtk/headerbar.ui b/hammond-gtk/resources/gtk/headerbar.ui index b06d65e..b35599d 100644 --- a/hammond-gtk/resources/gtk/headerbar.ui +++ b/hammond-gtk/resources/gtk/headerbar.ui @@ -109,93 +109,66 @@ - - True - False - - - True - True - True - - - True - False - go-previous-symbolic - - - - - False - False - 0 - - - - - True - False - Show Title - - - - - - True - True - 1 - - - - - True - False - vertical - - - False - True - end - 2 - - - False True - - + + True - False - True + True + False + Add a new feed + center - + + True + False + list-add-symbolic + 1 + + - - - True - False - 5 - - True - False - vertical + + True + False + True + Back + center + + + True + False + go-previous-symbolic + 1 + + + - False - True - end - 0 + 1 + + + True + False + center + center + + True True True + center True @@ -205,10 +178,7 @@ - False - False end - 1 @@ -216,6 +186,7 @@ True True True + center True True @@ -227,48 +198,8 @@ - False - False end - 2 - - - - - True - True - False - Add a new feed - - - True - False - list-add-symbolic - 1 - - - - - - False - False - 3 - - - - - True - False - center - True - 0 - - - False - True - 4 + 1 diff --git a/hammond-gtk/src/headerbar.rs b/hammond-gtk/src/headerbar.rs index 0aa98a9..efa6931 100644 --- a/hammond-gtk/src/headerbar.rs +++ b/hammond-gtk/src/headerbar.rs @@ -15,9 +15,8 @@ pub struct Header { refresh: gtk::Button, add_toggle: gtk::MenuButton, switch: gtk::StackSwitcher, - stack: gtk::Stack, back_button: gtk::Button, - show_title: gtk::Label, + // show_title: gtk::Label, } impl Header { @@ -28,42 +27,21 @@ impl Header { let refresh: gtk::Button = builder.get_object("ref_button").unwrap(); let add_toggle: gtk::MenuButton = builder.get_object("add_toggle_button").unwrap(); let switch: gtk::StackSwitcher = builder.get_object("switch").unwrap(); - let stack: gtk::Stack = builder.get_object("headerbar_stack").unwrap(); - let normal_view: gtk::Box = builder.get_object("normal_view").unwrap(); - let back_view: gtk::Box = builder.get_object("back_view").unwrap(); let back_button: gtk::Button = builder.get_object("back_button").unwrap(); - let show_title: gtk::Label = builder.get_object("show_title").unwrap(); - - let stack = stack.clone(); - back_button.connect_clicked(clone!(stack => move |_| { - stack.set_visible_child_name("normal_view"); - })); + // let show_title: gtk::Label = builder.get_object("show_title").unwrap(); switch.set_halign(gtk::Align::Center); switch.show(); - stack.add_named(&normal_view, "normal_view"); - stack.add_named(&back_view, "back_view"); - stack.set_transition_type(gtk::StackTransitionType::Crossfade); - stack.set_visible_child_name("normal_view"); - Rc::new(Header { container: header, refresh, add_toggle, switch, - stack, back_button, - show_title, }) } - // pub fn new_initialized(content: Rc) -> Rc
{ - // let header = Header::new(); - // header.init(content); - // header - // } - pub fn init(&self, content: Rc) { let builder = gtk::Builder::new_from_resource("/org/gnome/hammond/gtk/headerbar.ui"); @@ -90,25 +68,32 @@ impl Header { utils::refresh_feed(content.clone(), None, None); })); - let stack = self.stack.clone(); + let switch = &self.switch; + let add_toggle = &self.add_toggle; self.back_button - .connect_clicked(clone!(content => move |_| { - content.shows.stack.set_visible_child_full("podcasts", gtk::StackTransitionType::SlideLeft); - stack.set_visible_child_name("normal_view") + .connect_clicked(clone!(content, switch, add_toggle => move |back| { + switch.show(); + add_toggle.show(); + back.hide(); + content.shows.stack.set_visible_child_full("podcasts", gtk::StackTransitionType::SlideRight); })); } - pub fn switch_to_normal(&self) { - self.stack.set_visible_child_name("normal_view") - } - pub fn switch_to_back(&self) { - self.stack.set_visible_child_name("back_view") + self.switch.hide(); + self.add_toggle.hide(); + self.back_button.show(); } - pub fn set_show_title(&self, title: &str) { - self.show_title.set_text(title) + pub fn switch_to_normal(&self) { + self.switch.show(); + self.add_toggle.show(); + self.back_button.hide(); } + + // pub fn set_show_title(&self, title: &str) { + // self.show_title.set_text(title) + // } } fn on_add_bttn_clicked(content: Rc, entry: >k::Entry) { diff --git a/hammond-gtk/src/views/shows.rs b/hammond-gtk/src/views/shows.rs index affbb15..5cb12b8 100644 --- a/hammond-gtk/src/views/shows.rs +++ b/hammond-gtk/src/views/shows.rs @@ -62,7 +62,7 @@ impl ShowsPopulated { let pd = dbqueries::get_podcast_from_id(id).unwrap(); show.replace_widget(&pd); - header.set_show_title(pd.title()); + // header.set_show_title(pd.title()); header.switch_to_back(); show.switch_widget_animated(); }));