Crop episode list tooltips to a maximum of 400 characters.
Only show tooltips in main window when hovering over the
first column (podcast cover in the podcast list, and the
status icon in the episode list).
This should make the tooltips less annoying.
Thanks to Andrew Bennett and Steve McCarthy for reporting.
Hide the main window before starting vacuuming the
database, so it looks like shutdown is blazingly fast
while still allowing for optimizations to complete.
Fix a bug where "new" episodes that are currently being
downloaded are still considered new in the "new episodes"
dialog and re-offered for download. This patch fixes it.
Thanks to Jérôme Chabod for reporting this bug in Bugzilla.
For the main window and the episode selector dialog, save the
window position, window size and the (boolean) maximized state
and restore this information when the window is re-created.
Thanks to Sebastian Krause for reporting this bug.
You can now use {podcast.title} to insert the title of
the podcast an episode is in for your custom_sync_name.
The old "{channel.title}" syntax is deprecated and
should be converted to the new syntax automatically.
Thanks to Gilles Lehoux for reporting this bug.
Missing are those episodes that are marked as downloaded
but don't exist as files. They have a small alert indicator.
Previously it was only possible to mark them as new, now
you can delete them forever or re-download.
With the configuration option "enable_streaming" enabled,
gPodder will now allow you to stream podcasts from the
server instead of downloading it locally first.
Streamed episodes will look as if they have been
downloaded and afterwards deleted. "Played" status is now
display on deleted episodes, too for this reason.
When writing podcast playlists to a filesystem-based
MP3 player, add "#EXTM3U" in the first line, so some
MP3 players can correctly detect this M3U file as a playlist.
Thanks to Ville-Pekka Vainio for reporting this on Bugzilla.
Config files are moved from /media/mmc2/gpodder/ to
~/.config/gpodder/ when migrating from old versions,
so the N8x0 backup tool backups our config, too.
As a result, we move the download directory from
/media/mmc2/gpodder/downloads/ to /media/mmc2/gpodder/
and add detection for moving this to mmc1, the user's
homedir or an externally attached USB mass storage device.
Thanks to Dan Ramos for the bug report.
Let the Desktop Environment / the default BitTorrent
client handle torrent downloads. We just use the default
handler for .torrent files to "open" a torrent file after
download has completed.
Discussed on the mailing list in the following thread:
https://lists.berlios.de/pipermail/gpodder-devel/2008-November/002256.html
Make sure that the user gets notified while we are
downloading feed data, so that the UI does not lock
up or look broken/slow when adding many feeds (e.g.
on initial OPML import).
Also add a GTK Mainloop iteration when blocking the
main thread for adding podcasts to not make the UI
freeze, but update it in every loop iteration.
In addition to selecting audio and video players, we
now support "default" as a way of having a good default
that we can pass to a utility function that can later
be made cross-platform more easily.
Also cleaned up some UI issues with the video player,
so the label of the custom command is shown and the
combo box has the correct size.
We should only allow saving episodes as files from the
episode list - or provide a more advanced UI that can
also do Bluetooth sending and other things. Having the
"Save as" button there as the single "advanced" action
makes the dialog look strange.
Add a "Never download" action button to the new episodes
selector, so users can remove the "new" status of episodes
directly from the episode selector.
In addition, this also fixes a bug where "Mark as new" was
not displayed in certain situations in the context menu.
This is the development version, so mark it as such,
in case some users want to get confused why this has
0.13.0 in the name when in reality it is the dev version.
When no episodes are selected, the action of the Cancel
button is closing the dialog (no action to be cancelled).
When episodes are selected, the action of the button is
really cancelling the selection (and closing the dialog).
This should (hopefully) make the UI more easy to use :)
Remove the URL entry box and make the "Subscribe" menu
item and the "Ctrl+L" keystroke always pop up a dialog.
Add an advanced option for users that want to have
the URL entry box back (for now). We might decide
that we will completely remove this feature in the future.
Add a graphical way to manage M3U playlists on MP3
player devices. This can be enabled in the advanced
configuration editor. Depending on your MP3 player,
you might want to enable Windows-style path separators
and switch between absolute or relative file paths.
GPodder don't respect option 'Sync only not played episodes'
so when you click sync button it says something like 'You
need 1.5 GB of free space on your device' because it counts
size of all episodes, not only new ones.
This patch fixes this problem by counting only episodes that
are going to be copied to the MP3 player.
In the main window, when focusing the URL entry box in
the first tab, make sure that we are on the first page,
or else the user will be confused where to enter the URL.
Thanks to Steve for spotting this bug.
The new version of Gtk shipping with Ubuntu 8.10 complained:
"setting an adjustment with non-zero page size is deprecated"
This small patch fixes this by setting all page sizes to zero
in the Glade file (for GtkSpinButton widgets).
Thanks for Bernd Schlapsi for reporting this bug in Bugzilla.
When using the "Save to disk" context menu item to save
multiple episodes to disk, remember the last selected
folder, so if one wants to save all episodes into the
same folder, navigation to that folder has only to be
done once.
An error in the French translation file merges into
one line, the last two entries of the device type
selector. It is then impossible to select the MTP
device type.
Fix problems with certain distributions/variants of
PySQLite that require collation names to be uppercase.
Thanks to Mehmet Nur Olcay for reporting this bug.
This is an improvement upon the original rockbox cover
art sync, as it allows to set the file type and file name
of the cover file that will be put on the MP3 player.
With this feature, cover art is displayed on the Sansa Fuze
and other MP3 players that support showing the cover art
if there is an image file in the same folder.
When updating the tags of files, if no album name is
specified and the album name isn't set already, we
use the artist name as album tag, so MP3 players that
categorize files by album will be able to browse items
on a per-podcast basis.
opml.py: Use email.Utils' formatdate function to generate a timestamp instead
of using datetime. It is guaranteed to be RFC2822-compliant.
Thanks to Cory Albrecht for reporting this bug.
cache.py: Make the fetch function aware of 401 errors as well as a channel's
username and password attributes. The function will create the
appropriate url if it needs to.
gui.py: Add a new dialog to handle username and password input.
Modify add_new_channel to be aware of 401 errors generated by a
podcastChannel's load() function. This means that the user no longer
needs to enter a funky-looking url to get password-protected feeds to
work. If a feed requires authentication, the user will be prompted.
Fix a bug where the "add podcast url" entry wasn't reset after adding
a feed that looked like a web page.
libpodcasts.py: Make podcastChannel.load() throw a HTTPAuthError exception
if a 401 error occurs when downloadind the feed.
Add a Dependency Manager window and class to handle optional
dependencies and make it possible to register special features
with their description and optional dependencies.
This fixes the problem with "malformed special characters"
in show notes. The HTML passed to the gtkhtml widget was
incomplete and gtkhtml was unable to detect the right
charset (if it even tries to do that at all).
Support the gtkhtml2 module in the episode description
dialog to display HTML markup for the episode description
and allow links and HTML lists, etc.. in the dialog.
Since mime type is used to construct local file names, and
since there is some YouTube related magic that changes mime
types while episodes are downloaded, resetting them to the
original value (application/x-shockwave-flash) invalidates
the file name, all episodes become unavailable.
Not updating types when the channel is updated is OK, because
they usually don't change. If they do, we update them after
the episode is downloaded.
Links to YouTube profiles are converted to the corresponding
RSS feeds (http://www.youtube.com/rssls), which aren't available
with the standard feed discovery.
Normal links to YouTube enclosures (*.swf) are now on-the-fly
replaced with links to high quality MP4 videos. Apparently
links to real enclosures are not permanent, so they can't be
saved in the database.