Merge commit 'a35e81fe0e52fc1d91ec3ebce4b1da4a4fea0ed9' into dev-adaptive

This commit is contained in:
Teemu Ikonen 2022-03-25 22:10:52 +02:00
commit fb0b45dfe1
2 changed files with 44 additions and 14 deletions

View File

@ -2210,7 +2210,7 @@ class gPodder(BuilderWidget, dbus.service.Object):
any_new = any(e.is_new and e.state != gpodder.STATE_DELETED for e in episodes)
downloaded = all(e.was_downloaded(and_exists=True) for e in episodes)
downloading = any(e.downloading for e in episodes)
(can_play, can_download, can_pause, can_cancel, can_delete, open_instead_of_play) = self.play_or_download()
(open_instead_of_play, can_play, can_download, can_pause, can_cancel, can_delete) = self.play_or_download()
menu = self.application.builder.get_object('episodes-context')
# Play
@ -2257,6 +2257,44 @@ class gPodder(BuilderWidget, dbus.service.Object):
self.context_popover_show(self.episodes_popover, x, y)
return True
def set_episode_actions(self, open_instead_of_play=False, can_play=False, can_download=False, can_pause=False, can_cancel=False,
can_delete=False):
# play icon and label
# if open_instead_of_play:
# self.toolPlay.set_icon_name('document-open')
# self.toolPlay.set_label(_('Open'))
# else:
# self.toolPlay.set_icon_name('media-playback-start')
#
# episodes = self.get_selected_episodes()
# downloaded = all(e.was_downloaded(and_exists=True) for e in episodes)
# downloading = any(e.downloading for e in episodes)
#
# if downloaded:
# self.toolPlay.set_label(_('Play'))
# elif downloading:
# self.toolPlay.set_label(_('Preview'))
# else:
# self.toolPlay.set_label(_('Stream'))
# toolbar
# self.toolPlay.set_sensitive(can_play)
# self.toolDownload.set_sensitive(can_download)
# self.toolPause.set_sensitive(can_pause)
# self.toolCancel.set_sensitive(can_cancel)
# Episodes menu
self.play_action.set_enabled(can_play and not open_instead_of_play)
self.open_action.set_enabled(can_play and open_instead_of_play)
self.download_action.set_enabled(can_download)
self.pause_action.set_enabled(can_pause)
self.episodes_cancel_action.set_enabled(can_cancel)
self.delete_action.set_enabled(can_delete)
# self.toggle_episode_new_action.set_enabled(can_play)
# self.toggle_episode_lock_action.set_enabled(can_play)
self.episode_new_action.set_enabled(can_play)
self.episode_lock_action.set_enabled(can_play)
def set_title(self, new_title):
self.default_title = new_title
self.gPodder.set_title(new_title)
@ -2419,7 +2457,7 @@ class gPodder(BuilderWidget, dbus.service.Object):
self.episode_list_status_changed(episodes)
def play_or_download(self, current_page=None):
(can_play, can_download, can_pause, can_cancel, can_delete, open_instead_of_play) = (False,) * 6
(open_instead_of_play, can_play, can_download, can_pause, can_cancel, can_delete) = (False,) * 6
can_resume = False
@ -2467,19 +2505,9 @@ class gPodder(BuilderWidget, dbus.service.Object):
can_play = streaming_possible or (can_play and not can_cancel and not can_download)
can_delete = can_delete and not can_cancel
self.episodes_cancel_action.set_enabled(can_cancel)
# self.toolPause.set_sensitive(can_pause)
self.download_action.set_enabled(can_download)
self.pause_action.set_enabled(can_pause)
self.open_action.set_enabled(can_play and open_instead_of_play)
self.play_action.set_enabled(can_play and not open_instead_of_play)
self.delete_action.set_enabled(can_delete)
# self.toggle_episode_new_action.set_enabled(can_play)
# self.toggle_episode_lock_action.set_enabled(can_play)
self.episode_new_action.set_enabled(can_play)
self.episode_lock_action.set_enabled(can_play)
self.set_episode_actions(open_instead_of_play, can_play, can_download, can_pause, can_cancel, can_delete)
return (can_play, can_download, can_pause, can_cancel, can_delete, open_instead_of_play)
return (open_instead_of_play, can_play, can_download, can_pause, can_cancel, can_delete)
def on_cbMaxDownloads_toggled(self, widget, *args):
self.spinMaxDownloads.set_sensitive(self.cbMaxDownloads.get_active())

View File

@ -769,6 +769,8 @@ class PodcastListModel(Gtk.ListStore):
if pixbuf_overlay is None:
# load cover if it's not in cache
pixbuf = self._cover_downloader.get_cover(channel, avoid_downloading=True)
if pixbuf is None:
return None
pixbuf_overlay = self._resize_pixbuf(channel.url, pixbuf)
self._save_cached_thumb(channel, pixbuf_overlay)