diff --git a/hammond-gtk/resources/gtk/headerbar.ui b/hammond-gtk/resources/gtk/headerbar.ui
index 9eec825..0801116 100644
--- a/hammond-gtk/resources/gtk/headerbar.ui
+++ b/hammond-gtk/resources/gtk/headerbar.ui
@@ -2,12 +2,12 @@
-
diff --git a/hammond-gtk/src/headerbar.rs b/hammond-gtk/src/headerbar.rs
index 9d62773..96a3ecc 100644
--- a/hammond-gtk/src/headerbar.rs
+++ b/hammond-gtk/src/headerbar.rs
@@ -13,6 +13,7 @@ use content::Content;
pub struct Header {
pub container: gtk::HeaderBar,
add_toggle: gtk::MenuButton,
+ menu_toggle: gtk::MenuButton,
switch: gtk::StackSwitcher,
back_button: gtk::Button,
show_title: gtk::Label,
@@ -23,7 +24,8 @@ impl Default for Header {
let builder = gtk::Builder::new_from_resource("/org/gnome/hammond/gtk/headerbar.ui");
let header: gtk::HeaderBar = builder.get_object("headerbar").unwrap();
- let add_toggle: gtk::MenuButton = builder.get_object("add_toggle_button").unwrap();
+ let add_toggle: gtk::MenuButton = builder.get_object("add_toggle").unwrap();
+ let menu_toggle: gtk::MenuButton = builder.get_object("menu_toggle").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();
@@ -34,6 +36,7 @@ impl Default for Header {
Header {
container: header,
add_toggle,
+ menu_toggle,
switch,
back_button,
show_title,
@@ -52,9 +55,11 @@ impl Header {
pub fn init(&self, content: Rc) {
let builder = gtk::Builder::new_from_resource("/org/gnome/hammond/gtk/headerbar.ui");
- let add_popover: gtk::Popover = builder.get_object("add-popover").unwrap();
- let new_url: gtk::Entry = builder.get_object("new-url").unwrap();
- let add_button: gtk::Button = builder.get_object("add-button").unwrap();
+ let add_popover: gtk::Popover = builder.get_object("add_popover").unwrap();
+ let menu_popover: gtk::PopoverMenu = builder.get_object("menu_popover").unwrap();
+ let new_url: gtk::Entry = builder.get_object("new_url").unwrap();
+ let add_button: gtk::Button = builder.get_object("add_button").unwrap();
+ let refresh_button: gtk::Button = builder.get_object("refresh_button").unwrap();
self.switch.set_stack(&content.stack);
new_url.connect_changed(move |url| {
@@ -68,7 +73,13 @@ impl Header {
// TODO: map the spinner
add_popover.hide();
}));
+
+ refresh_button.connect_clicked(clone!(content => move |_| {
+ utils::refresh_feed(content.clone(), None);
+ }));
+
self.add_toggle.set_popover(&add_popover);
+ self.menu_toggle.set_popover(&menu_popover);
let switch = &self.switch;
let add_toggle = &self.add_toggle;