Headerbar: Hide the hamburger button when not in a global view.

This commit is contained in:
Jordan Petridis 2018-06-27 20:27:16 +03:00
parent 8b2ae6d464
commit 5f2f0a9a57
No known key found for this signature in database
GPG Key ID: CEABAD9F5683B9A6

View File

@ -16,7 +16,8 @@ use utils::{itunes_to_rss, refresh};
use std::rc::Rc; use std::rc::Rc;
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
// TODO: split this into smaller // TODO: Factor out the hamburger menu
// TODO: Make a proper state machine for the headerbar states
pub struct Header { pub struct Header {
pub container: gtk::HeaderBar, pub container: gtk::HeaderBar,
switch: gtk::StackSwitcher, switch: gtk::StackSwitcher,
@ -178,7 +179,8 @@ impl Default for Header {
} }
} }
// TODO: Refactor components into smaller widgets. // TODO: Factor out the hamburger menu
// TODO: Make a proper state machine for the headerbar states
impl Header { impl Header {
pub fn new(content: &Content, sender: &Sender<Action>) -> Rc<Self> { pub fn new(content: &Content, sender: &Sender<Action>) -> Rc<Self> {
let h = Rc::new(Header::default()); let h = Rc::new(Header::default());
@ -206,12 +208,14 @@ impl Header {
let switch = &s.switch; let switch = &s.switch;
let add_toggle = &s.add.toggle; let add_toggle = &s.add.toggle;
let show_title = &s.show_title; let show_title = &s.show_title;
let menu = &s.menu_button;
s.back.connect_clicked( s.back.connect_clicked(
clone!(switch, add_toggle, show_title, sender => move |back| { clone!(switch, add_toggle, show_title, sender, menu => move |back| {
switch.show(); switch.show();
add_toggle.show(); add_toggle.show();
back.hide(); back.hide();
show_title.hide(); show_title.hide();
menu.show();
sender.send(Action::ShowShowsAnimated); sender.send(Action::ShowShowsAnimated);
}), }),
); );
@ -225,6 +229,7 @@ impl Header {
self.back.show(); self.back.show();
self.set_show_title(title); self.set_show_title(title);
self.show_title.show(); self.show_title.show();
self.menu_button.hide();
} }
pub fn switch_to_normal(&self) { pub fn switch_to_normal(&self) {
@ -232,6 +237,7 @@ impl Header {
self.add.toggle.show(); self.add.toggle.show();
self.back.hide(); self.back.hide();
self.show_title.hide(); self.show_title.hide();
self.menu_button.show();
} }
pub fn set_show_title(&self, title: &str) { pub fn set_show_title(&self, title: &str) {