Headerbar: Remove the update indicator
This commit is contained in:
parent
019ec8972f
commit
b2d71a037c
@ -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>
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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(())
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user