From 2994c2e15d1ed8397597433d651f4f2aeed1a323 Mon Sep 17 00:00:00 2001 From: Thomas Perl Date: Sat, 20 Nov 2010 23:45:07 +0100 Subject: [PATCH] Improve episode list loading --- src/gpodder/gui.py | 10 +++++----- src/gpodder/model.py | 13 +++++++++---- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/gpodder/gui.py b/src/gpodder/gui.py index 47a0b985..c102878b 100644 --- a/src/gpodder/gui.py +++ b/src/gpodder/gui.py @@ -1481,7 +1481,7 @@ class gPodder(BuilderWidget, dbus.service.Object): y -= y_bin (path, column, rx, ry) = treeview.get_path_at_pos( x, y) or (None,)*4 - if not getattr(treeview, TreeViewHelper.CAN_TOOLTIP) or (column is not None and column != treeview.get_columns()[0]): + if not getattr(treeview, TreeViewHelper.CAN_TOOLTIP) or x > 50 or (column is not None and column != treeview.get_columns()[0]): setattr(treeview, TreeViewHelper.LAST_TOOLTIP, None) return False @@ -2493,7 +2493,7 @@ class gPodder(BuilderWidget, dbus.service.Object): hildon.hildon_gtk_window_set_progress_indicator(self.episodes_window.main_window, True) self.currently_updating = True - self.treeAvailable.hide() + self.episode_list_model.clear() def update(): additional_args = (self.episode_is_downloading, \ @@ -2502,13 +2502,13 @@ class gPodder(BuilderWidget, dbus.service.Object): self.episode_list_model.replace_from_channel(self.active_channel, *additional_args) self.treeAvailable.get_selection().unselect_all() - self.treeAvailable.show() - util.idle_add(self.treeAvailable.scroll_to_point, 0, 0) + self.treeAvailable.scroll_to_point(0, 0) + self.currently_updating = False self.play_or_download() if gpodder.ui.fremantle: - util.idle_add(hildon.hildon_gtk_window_set_progress_indicator, + hildon.hildon_gtk_window_set_progress_indicator(\ self.episodes_window.main_window, False) util.idle_add(update) diff --git a/src/gpodder/model.py b/src/gpodder/model.py index 33c8fc8a..3566606b 100644 --- a/src/gpodder/model.py +++ b/src/gpodder/model.py @@ -959,12 +959,17 @@ class PodcastEpisode(PodcastModelObject): age_prop = property(fget=get_age_string) - def one_line_description( self): - lines = util.remove_html_tags(self.description or '').strip().splitlines() - if not lines or lines[0] == '': + def one_line_description(self): + MAX_LINE_LENGTH = 120 + desc = util.remove_html_tags(self.description or '') + desc = re.sub('\n', ' ', desc).strip() + if not desc: return _('No description available') else: - return ' '.join(lines) + if len(desc) > MAX_LINE_LENGTH: + return desc[:MAX_LINE_LENGTH] + '...' + else: + return desc def delete_from_disk(self): try: -- 2.11.4.GIT