hammond-gtk: Add more GActions and wire the EpisodeWidget.

This commit is contained in:
Jordan Petridis 2017-12-29 20:06:04 +02:00
parent fdd63afdfe
commit ac286888bd
No known key found for this signature in database
GPG Key ID: CEABAD9F5683B9A6
3 changed files with 28 additions and 2 deletions

View File

@ -196,6 +196,7 @@
<property name="no_show_all">True</property>
<property name="halign">end</property>
<property name="valign">center</property>
<property name="action_name">app.refresh_episodes</property>
<property name="always_show_image">True</property>
<child>
<object class="GtkImage">
@ -218,6 +219,7 @@
<property name="receives_default">True</property>
<property name="no_show_all">True</property>
<property name="valign">center</property>
<property name="action_name">app.refresh_episodes</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>

View File

@ -73,10 +73,26 @@ impl App {
let refresh = gio::SimpleAction::new("refresh", None);
let content = self.content.clone();
update.connect_activate(move |_, _| {
refresh.connect_activate(move |_, _| {
content.update();
});
self.app_instance.add_action(&refresh);
let refresh_episodes = gio::SimpleAction::new("refresh_episodes", None);
let content = self.content.clone();
refresh_episodes.connect_activate(move |_, _| {
if content.get_stack().get_visible_child_name() != Some(String::from("episodes")) {
content.update_episode_view();
}
});
self.app_instance.add_action(&refresh_episodes);
let refresh_shows = gio::SimpleAction::new("refresh_shows", None);
let content = self.content.clone();
refresh_shows.connect_activate(move |_, _| {
content.update_shows_view();
});
self.app_instance.add_action(&refresh_shows);
}
pub fn setup_timed_callbacks(&self) {

View File

@ -37,10 +37,18 @@ impl Content {
}
pub fn update(&self) {
self.shows.update();
self.update_shows_view();
self.update_episode_view();
}
pub fn update_episode_view(&self) {
self.episodes.update();
}
pub fn update_shows_view(&self) {
self.shows.update();
}
pub fn get_stack(&self) -> gtk::Stack {
self.stack.clone()
}