Added advanced option to allow user to change behaviour when an episode is double clicked (Bug 38)

This commit is contained in:
Paul Rudkin 2009-07-13 22:32:14 +01:00 committed by Thomas Perl
parent 9edca3e540
commit bbf4135266
2 changed files with 27 additions and 1 deletions

View file

@ -204,6 +204,8 @@ gPodderSettings = {
_("Hide the cover/pill from the podcast sidebar when it gets too small.")),
'disable_fingerscroll': (bool, False,
_("Disable the use of finger-scrollable widgets on Maemo.")),
'double_click_episode_action': (str, 'shownotes',
_("Episode double-click/enter action handler (shownotes, download, stream)")),
# Settings for my.gpodder.org
'my_gpodder_username': (str, '',

View file

@ -3149,7 +3149,31 @@ class gPodder(BuilderWidget, dbus.service.Object):
def on_treeAvailable_row_activated(self, widget, path, view_column):
"""Double-click/enter action handler for treeAvailable"""
self.on_shownotes_selected_episodes(widget)
# We should only have one one selected as it was double clicked!
e = self.get_selected_episodes()[0]
if (gl.config.double_click_episode_action == 'download'):
# If the episode has already been downloaded and exists then play it
if e.was_downloaded(and_exists=True):
self.playback_episodes(self.get_selected_episodes())
# else download it if it is not already downloading
elif not self.episode_is_downloading(e):
self.download_episode_list([e])
self.update_episode_list_icons([e.url])
self.play_or_download()
elif (gl.config.double_click_episode_action == 'stream'):
# If we happen to have downloaded this episode simple play it
if e.was_downloaded(and_exists=True):
self.playback_episodes(self.get_selected_episodes())
# else if streaming is possible stream it
elif gl.streaming_possible():
self.playback_episodes(self.get_selected_episodes())
else:
log('Unable to stream episode - default media player selected!', sender=self, traceback=True)
self.show_message( _('Please check your media player settings in the preferences dialog.'), _('Unable to stream episode'))
else:
# default action is to display show notes
self.on_shownotes_selected_episodes(widget)
def show_episode_shownotes(self, episode):
play_callback = lambda: self.playback_episodes([episode])