From f7fb991b9cb63adeb23cbf2ef0f8018f70c3cb8e Mon Sep 17 00:00:00 2001 From: Jordan Petridis Date: Mon, 16 Oct 2017 03:23:21 +0300 Subject: [PATCH] Stole the add feed button from gnome-news project, but It's not wired up yet. --- hammond-gtk/gtk/headerbar.ui | 160 +++++++++++++++++++++++++++++------ hammond-gtk/src/main.rs | 21 ++++- 2 files changed, 152 insertions(+), 29 deletions(-) diff --git a/hammond-gtk/gtk/headerbar.ui b/hammond-gtk/gtk/headerbar.ui index f5e8f5a..84d61b4 100644 --- a/hammond-gtk/gtk/headerbar.ui +++ b/hammond-gtk/gtk/headerbar.ui @@ -1,7 +1,116 @@ - + + + True + False + Add a new feed + center + + + True + False + center + vertical + 6 + + + True + False + start + False + Enter feed address to add + + + + False + True + 0 + + + + + True + False + 6 + + + True + True + 30 + url + + + False + True + 0 + + + + + True + False + True + + + Add + True + False + True + False + + + + button + + + + + True + False + start + center + True + + + spinner + 1 + + + + + False + True + 1 + + + + + False + True + 1 + + + + + False + start + You are already subscribed to that feed! + + + False + True + 2 + + + + + True False @@ -27,31 +136,6 @@ 3 - - - True - True - False - Add Podcast - center - True - True - - - True - False - gtk-add - - - - - - end - 1 - - True @@ -97,5 +181,29 @@ 3 + + + True + True + False + Add a new feed + center + + + True + False + list-add-symbolic + 1 + + + + + + end + 3 + + diff --git a/hammond-gtk/src/main.rs b/hammond-gtk/src/main.rs index 5275ce9..80baad3 100644 --- a/hammond-gtk/src/main.rs +++ b/hammond-gtk/src/main.rs @@ -151,9 +151,23 @@ fn build_ui() { let flowbox: gtk::FlowBox = builder.get_object("flowbox1").unwrap(); let grid: gtk::Grid = builder.get_object("grid").unwrap(); - let refresh_button: gtk::Button = header_build.get_object("refbutton").unwrap(); - // TODO: Have a small dropdown menu - let _add_button: gtk::Button = header_build.get_object("addbutton").unwrap(); + // Stolen from gnome-news: + // https://github.com/GNOME/gnome-news/blob/master/data/ui/headerbar.ui + let add_toggle_button: gtk::MenuButton = header_build.get_object("add-toggle-button").unwrap(); + let add_popover: gtk::Popover = header_build.get_object("add-popover").unwrap(); + let new_url: gtk::Entry = header_build.get_object("new-url").unwrap(); + let add_button: gtk::Button = header_build.get_object("add-button").unwrap(); + new_url.connect_changed(move |url| { + println!("{:?}", url.get_text()); + }); + // FIXME: Button is not clickable for some reason + add_button.connect_clicked(move |f| { + println!("{:?} feed added", f); + }); + // add_button.clicked(); + add_popover.hide(); + add_toggle_button.set_popover(&add_popover); + let _search_button: gtk::Button = header_build.get_object("searchbutton").unwrap(); // TODO: make it a back arrow button, that will hide when appropriate, @@ -163,6 +177,7 @@ fn build_ui() { let stack_clone = stack.clone(); home_button.connect_clicked(move |_| stack_clone.set_visible_child(&grid_clone)); + let refresh_button: gtk::Button = header_build.get_object("refbutton").unwrap(); // FIXME: This locks the ui atm. // FIXME: it also leaks memmory. refresh_button.connect_clicked(move |_| {