Use list of channels and episodes instead of the episode list model.

The model is initialized with 'None' for each entry, and then sets
episode for each one. Renaming immediately after selecting a channel
causes 'state' to be accessed on 'NoneType'.

Fixes #1446.
This commit is contained in:
auouymous 2023-01-12 03:28:59 -07:00
parent 87d9018918
commit 993b7a5428
1 changed files with 3 additions and 5 deletions

View File

@ -54,16 +54,14 @@ class gPodderExtension:
return [(_("Rename all downloaded episodes"), self.rename_all_downloaded_episodes)]
def rename_all_downloaded_episodes(self):
model = self.gpodder.episode_list_model
episodes = [row[model.C_EPISODE] for row in model if row[model.C_EPISODE].state == gpodder.STATE_DOWNLOADED]
from gpodder.gtkui.interface.progress import ProgressIndicator
episodes = [e for c in self.gpodder.channels for e in [e for e in c.children if e.state == gpodder.STATE_DOWNLOADED]]
number_of_episodes = len(episodes)
if number_of_episodes == 0:
self.gpodder.show_message(_('No downloaded episodes to rename'),
_('Rename all downloaded episodes'), important=True)
from gpodder.gtkui.interface.progress import ProgressIndicator
progress_indicator = ProgressIndicator(
_('Renaming all downloaded episodes'),
'', True, self.gpodder.get_dialog_parent(), number_of_episodes)