Headerbar: Remove the update indicator

This commit is contained in:
Jordan Petridis 2018-08-14 07:52:41 +03:00
parent 019ec8972f
commit b2d71a037c
No known key found for this signature in database
GPG Key ID: CEABAD9F5683B9A6
4 changed files with 2 additions and 86 deletions

View File

@ -271,41 +271,5 @@ Tobias Bernard
<property name="position">2</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkBox" id="update_notification">
<property name="can_focus">False</property>
<property name="no_show_all">True</property>
<child>
<object class="GtkSpinner" id="update_spinner">
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="valign">center</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">6</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="update_label">
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="label" translatable="yes">Fetching new episodes</property>
<property name="ellipsize">end</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="position">3</property>
</packing>
</child>
</object> </object>
</interface> </interface>

View File

@ -58,8 +58,6 @@ pub(crate) enum Action {
ShowShowsAnimated, ShowShowsAnimated,
HeaderBarShowTile(String), HeaderBarShowTile(String),
HeaderBarNormal, HeaderBarNormal,
HeaderBarShowUpdateIndicator,
HeaderBarHideUpdateIndicator,
MarkAllPlayerNotification(Arc<Show>), MarkAllPlayerNotification(Arc<Show>),
ShowUpdateNotif(Receiver<bool>), ShowUpdateNotif(Receiver<bool>),
RemoveShow(Arc<Show>), RemoveShow(Arc<Show>),
@ -299,8 +297,6 @@ impl App {
} }
Action::HeaderBarShowTile(title) => self.headerbar.switch_to_back(&title), Action::HeaderBarShowTile(title) => self.headerbar.switch_to_back(&title),
Action::HeaderBarNormal => self.headerbar.switch_to_normal(), Action::HeaderBarNormal => self.headerbar.switch_to_normal(),
Action::HeaderBarShowUpdateIndicator => self.headerbar.show_update_notification(),
Action::HeaderBarHideUpdateIndicator => self.headerbar.hide_update_notification(),
Action::MarkAllPlayerNotification(pd) => { Action::MarkAllPlayerNotification(pd) => {
let notif = mark_all_notif(pd, &self.sender); let notif = mark_all_notif(pd, &self.sender);
notif.show(&self.overlay); notif.show(&self.overlay);
@ -320,9 +316,11 @@ impl App {
notif.show(&self.overlay); notif.show(&self.overlay);
} }
Action::ShowUpdateNotif(receiver) => { Action::ShowUpdateNotif(receiver) => {
let sender = self.sender.clone();
let callback = move |revealer: gtk::Revealer| { let callback = move |revealer: gtk::Revealer| {
if let Some(_) = receiver.try_recv() { if let Some(_) = receiver.try_recv() {
revealer.set_reveal_child(false); revealer.set_reveal_child(false);
sender.send(Action::RefreshAllViews);
return glib::Continue(false); return glib::Continue(false);
} }

View File

@ -26,34 +26,10 @@ pub(crate) struct Header {
back: gtk::Button, back: gtk::Button,
show_title: gtk::Label, show_title: gtk::Label,
hamburger: gtk::MenuButton, hamburger: gtk::MenuButton,
updater: UpdateIndicator,
add: AddPopover, add: AddPopover,
dots: gtk::MenuButton, dots: gtk::MenuButton,
} }
#[derive(Debug, Clone)]
struct UpdateIndicator {
container: gtk::Box,
text: gtk::Label,
spinner: gtk::Spinner,
}
impl UpdateIndicator {
fn show(&self) {
self.spinner.start();
self.spinner.show();
self.container.show();
self.text.show();
}
fn hide(&self) {
self.spinner.stop();
self.spinner.hide();
self.container.hide();
self.text.hide();
}
}
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
struct AddPopover { struct AddPopover {
container: gtk::Popover, container: gtk::Popover,
@ -158,16 +134,6 @@ impl Default for Header {
// The 3 dots secondary menu // The 3 dots secondary menu
let dots = builder.get_object("secondary_menu").unwrap(); let dots = builder.get_object("secondary_menu").unwrap();
let update_box = builder.get_object("update_notification").unwrap();
let update_label = builder.get_object("update_label").unwrap();
let update_spinner = builder.get_object("update_spinner").unwrap();
let updater = UpdateIndicator {
container: update_box,
text: update_label,
spinner: update_spinner,
};
let add_toggle = builder.get_object("add_toggle").unwrap(); let add_toggle = builder.get_object("add_toggle").unwrap();
let add_popover = builder.get_object("add_popover").unwrap(); let add_popover = builder.get_object("add_popover").unwrap();
let new_url = builder.get_object("new_url").unwrap(); let new_url = builder.get_object("new_url").unwrap();
@ -187,7 +153,6 @@ impl Default for Header {
back, back,
show_title, show_title,
hamburger, hamburger,
updater,
add, add,
dots, dots,
} }
@ -248,14 +213,6 @@ impl Header {
self.show_title.set_text(title) self.show_title.set_text(title)
} }
pub(crate) fn show_update_notification(&self) {
self.updater.show();
}
pub(crate) fn hide_update_notification(&self) {
self.updater.hide();
}
pub(crate) fn open_menu(&self) { pub(crate) fn open_menu(&self) {
self.hamburger.clicked(); self.hamburger.clicked();
} }

View File

@ -200,7 +200,6 @@ fn refresh_feed<S>(source: Option<S>, sender: Sender<Action>) -> Result<(), Erro
where where
S: IntoIterator<Item = Source> + Send + 'static, S: IntoIterator<Item = Source> + Send + 'static,
{ {
sender.send(Action::HeaderBarShowUpdateIndicator);
let (up_sender, up_receiver) = bounded(1); let (up_sender, up_receiver) = bounded(1);
sender.send(Action::ShowUpdateNotif(up_receiver)); sender.send(Action::ShowUpdateNotif(up_receiver));
@ -221,8 +220,6 @@ where
}; };
up_sender.send(true); up_sender.send(true);
sender.send(Action::HeaderBarHideUpdateIndicator);
sender.send(Action::RefreshAllViews);
}); });
Ok(()) Ok(())
} }