From d77d8af773bcc22dc016e3759fae080ad7284283 Mon Sep 17 00:00:00 2001 From: Thomas Perl Date: Tue, 5 Oct 2010 11:40:16 +0200 Subject: [PATCH] Maemo 5: Better responsiveness of episode selector --- src/gpodder/gtkui/frmntl/episodeselector.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/gpodder/gtkui/frmntl/episodeselector.py b/src/gpodder/gtkui/frmntl/episodeselector.py index 068c15f1..a4d4ddd9 100644 --- a/src/gpodder/gtkui/frmntl/episodeselector.py +++ b/src/gpodder/gtkui/frmntl/episodeselector.py @@ -360,6 +360,11 @@ class gPodderEpisodeSelector(BuilderWidget): self.calculate_total_size() def on_remove_action_activate(self, widget): + # Show progress icon and make sure the UI is updated already + hildon.hildon_gtk_window_set_progress_indicator(self.main_window, True) + while gtk.events_pending(): + gtk.main_iteration(False) + episodes = self.get_selected_episodes(remove_episodes=True) urls = [] @@ -371,6 +376,9 @@ class gPodderEpisodeSelector(BuilderWidget): self.remove_finished(urls) self.calculate_total_size() + # Hide the progress indicator after the update has finished + hildon.hildon_gtk_window_set_progress_indicator(self.main_window, False) + # Close the window when there are no episodes left model = self.treeviewEpisodes.get_model() if model.get_iter_first() is None: @@ -399,6 +407,13 @@ class gPodderEpisodeSelector(BuilderWidget): def on_btnOK_clicked( self, widget): selected = self.get_selected_episodes() self.gPodderEpisodeSelector.destroy() + + # Process UI events to make the window disappear quickly, + # because the callback below can take quite some time if + # for example downloads are being started from it. + while gtk.events_pending(): + gtk.main_iteration(False) + if self.callback is not None: self.callback(selected) -- 2.11.4.GIT