2006-06-18  James Livingston  <doclivingston@gmail.com>

	* configure.ac: bump version
	* NEWS: add NEWS for 0.9.5

2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
	(rb_uri_handle_recursively):
	Don't attempt to recurse into directories we can't open.  
	Fixes #341485.

2006-06-18  James Livingston  <doclivingston@gmail.com>

	patch by: Jaap A. Haitsma  <jaap@haitsma.org>

	* shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
	#344610.

2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* bindings/python/rb.defs:
	* shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
	* shell/rb-shell-player.h:
	* shell/rb-shell.c: (rb_shell_play_entry):
	Add source parameter to rb_shell_player_play_entry, using the selected
	source if not specified.

	* shell/rb-play-order.c: (rb_play_order_class_init),
	(rb_play_order_finalize), (rb_play_order_query_model_changed),
	(rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
	(default_playing_entry_removed):
	* shell/rb-play-order.h:
	Move entry removal handling back to the row-deleted signal, as we need
	the entry to be present in the model.  When changing to the next entry
	after the playing entry is deleted, set the new entry as the playing
	entry and then sync it to the player in an idle handler, so we don't
	end up playing it if it was removed too.
	* shell/rb-play-order-queue.c:
	(rb_queue_play_order_playing_entry_changed),
	(rb_queue_play_order_playing_entry_removed):
	Use the playing-entry-removed handler from the play order class,
	setting a flag so we don't try to remove the already-removed entry
	from the model.

	This makes removal of the playing entry from playlists etc. work more
	or less correctly for all play orders.  Fixes #344627.

2006-06-17  James Livingston  <doclivingston@gmail.com>

	patch by: Elijah Newren  <newren@gmail.com>

	* tests/test-rhythmdb.c: fix the build with older versions of check
	(again). Fixes #343718.

2006-06-17  James Livingston  <doclivingston@gmail.com>

	* player/rb-recorder-gst.c: (rb_recorder_construct): use the right
	name for capsfilter's "caps" property. Fixes #344968.

2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* shell/rb-shell-player.c: (rb_shell_player_playpause):
	Don't leak the selected entry list when finding an entry to play.

2006-06-17  James Livingston  <doclivingston@gmail.com>

	* widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
	(rb_entry_view_selection_changed_cb): don't do O(n) operations here,
	as a O(1) one works fine, and it will get called often when the user
	deleted multiple tracks. Part of #344922.

2006-06-17  James Livingston  <doclivingston@gmail.com>

	* shell/rb-shell-player.c: (rb_shell_player_stop): make
	rb_shell_player_stop and rb_shell_player_playpause not mutually
	recursive. Fixed #336912.

2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
	Treat nested elements inside properties as unknown.  Fixes parsing of
	podcast feeds with unescaped HTML in description tags, bug #344532.

2006-06-15  William Jon McCann  <mccann@jhu.edu>

	* shell/rb-shell.c (rb_shell_quit): Unset the playing source
	when quitting.  Fixes #344875.

2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
	Move the playing-entry-removed handling to after the normal entry
	delete handling, since we're called after the entry has been removed
	from the query model now.  Fixes crashes described in #344627.

2006-06-13  William Jon McCann  <mccann@jhu.edu>

	* widgets/rb-rating-helper.c: (rb_rating_render_stars),
	(rb_rating_get_rating_from_widget):
	* widgets/rb-rating.c: (rb_rating_class_init),
	(rb_rating_finalize), (rb_rating_get_property),
	(rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
	(rb_rating_button_press_cb):
	Don't crash when ratings icons can't be found.  Fixes #344533.

2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* remote/dbus/Makefile.am: Fix build with builddir != srcdir.

2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* Makefile.am:
	* configure.ac:
	* remote/Makefile.am:
	* remote/dbus/Makefile.am:
	* remote/dbus/rb-client.c:
	* shell/Makefile.am:
	New dbus client program providing --play/--next etc. arguments.
	Fixes #340863, #155763.

2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
	g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.

2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>

	patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
	to Library incorrectly

2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* lib/rb-file-helpers.c: (rb_canonicalise_uri):
	Return input string untouched if gnome_vfs_uri_new returns NULL.
	* sources/rb-static-playlist-source.c: (impl_receive_drag),
	(rb_static_playlist_source_add_list_uri):
	Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
	URIs don't break it.  Fixes #339033.

2006-06-08  James Livingston  <doclivingston@gmail.com>

	* lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
	for sources on the edge (i.e. the queue). Fixes #328409.

	* sources/rb-ipod-source.c: fix typo

2006-06-08  James Livingston  <doclivingston@gmail.com>

	* configure.ac:
	* sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
	--enable-ipod-writing to enable the ipod syncing code.

2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* sources/rb-library-source.c: (layout_example_label_update):
	add missing comma so we don't generate broken markup.

2006-06-08  James Livingston  <doclivingston@gmail.com>

	* metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
	tag-merging with id3v2mux as well as id3mux. From #342330.

2006-06-07  James Livingston  <doclivingston@gmail.com>

	* tests/test-rhythmdb.c: #define fail_if for old version of check
	which don't have it. Hopefully fixes #343718.

2006-06-07  James Livingston  <doclivingston@gmail.com>

	* shell/rb-playlist-manager.c:
	(rb_playlist_manager_cmd_edit_automatic_playlist): don't call
	g_value_array_free with NULL. Fixes #341053.

2006-06-07  James Livingston  <doclivingston@gmail.com>

	* shell/rb-playlist-manager.c:
	(rb_playlist_manager_playlist_entries_changed),
	(rb_playlist_manager_set_source): use the "post-entry-delete" signal
	instead of "row-removed", which fixes updating "burn playlist"
	sensitivity. Fixes #331119.

2006-06-07  James Livingston  <doclivingston@gmail.com>

	* shell/rb-shell-player.c: (rb_shell_player_error): display errors
	rather than restarting if the source uses _RETRY and there is an
	actual error (like an undecodable stream) rather than it just dropping
	out and causing EOS.

2006-06-07  James Livingston  <doclivingston@gmail.com>

	* widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
	free the pixbufs if they couldn't be loaded. Fixed #343852.

2006-06-07  James Livingston  <doclivingston@gmail.com>

	* sources/rb-playlist-source-recorder.c: (response_cb): make pressing
	the close button on the dialog work. Fixes #335346.

2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* sources/rb-sourcelist-model.c: (path_is_droppable),
	(path_is_reorderable):
	* sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
	(row_activated_cb), (emit_show_popup), (key_release_cb),
	(rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
	Ignore group marker rows in the source list.  Fixes #344089, a couple
	of other crashers, and some weird UI glitches too.

2006-06-07  James Livingston  <doclivingston@gmail.com>

	* backends/gstreamer/rb-player-gst.c: check if we have a duration if
	the seeking query fails. This is needed because many gst elements
	don't implement the seeking query yet. Should fix 329977.

2006-06-06  James Livingston  <doclivingston@gmail.com>

	* configure.ac: bump version for a prerelease, turn on track transfer
	by default.

	* sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
	ipod transfer stuff, since it has big issues and we'll hopefully land
	real support (bug 310774) after 0.9.5

2006-06-06  James Livingston  <doclivingston@gmail.com>

	* metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
	id3v2mux once we've detected it.

2006-06-06  James Livingston  <doclivingston@gmail.com>

	* lib/Makefile.am:
	* tests/test-rhythmdb.c: undo accidental commit which caused
	rb-thread.c to be built (which it isn't normally)

2006-06-06  James Livingston  <doclivingston@gmail.com>

	* tests/test-rhythmdb.c: (test_rhythmdb_setup),
	(test_rhythmdb_shutdown), (START_TEST): add message strings to all
	fail_{if/unless} calls, as some versions of check need them (they are
	optional in others). Should fix bug 343718.

2006-06-06  James Livingston  <doclivingston@gmail.com>

	* lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
	343836.
	
	* lib/Makefile.am:
	* lib/rb-thread.c: (process_actions):
	* tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
	tests that don't pass.

2006-06-05  James Livingston  <doclivingston@gmail.com>

	* data/glade/Makefile.am:
	* data/glade/load-failure.glade:
	* data/rhythmbox.schemas: remove the remainder of the old load-failure
	dialog.

2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
	checked in.

2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* bindings/python/rb.defs:
	* sources/rb-source.h:
	* sources/rb-source.c: (rb_source_class_init),
	(rb_source_set_property), (rb_source_get_property),
	(rb_sourcelist_group_get_type):
	Add 'sourcelist-group' property on the RBSource class, describing how
	sources should be grouped in the source list.

	* sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
	(rb_sourcelist_model_new), (real_row_is_separator),
	(rb_sourcelist_model_is_row_visible),
	(rb_sourcelist_model_row_is_separator), (get_group_for_path),
	(rb_sourcelist_model_drag_data_received), (path_is_reorderable),
	(rb_sourcelist_model_row_draggable),
	(rb_sourcelist_model_row_inserted_cb),
	(rb_sourcelist_model_row_deleted_cb),
	(rb_sourcelist_model_get_group_path):
	* sources/rb-sourcelist-model.h:
	* sources/rb-sourcelist.c: (rb_sourcelist_init),
	(rb_sourcelist_append):
	Add group marker rows for each sourcelist group, and use these to
	insert sources in the right place.  Sort transient sources (DAAP
	shares) by name.  Show the group marker rows as separators when the
	next visible row is a source.  Make persistant sources (playlists) and
	removable sources reorderable using drag and drop, restricting them
	within the source groups.
	
	* sources/rb-audiocd-source.c: (rb_audiocd_source_new):
	* sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
	* sources/rb-daap-source.c: (rb_daap_source_new):
	* sources/rb-ipod-source.c: (rb_ipod_source_new):
	* sources/rb-static-playlist-source.c:
	(rb_static_playlist_source_new):
	* plugins/generic-player/rb-generic-player-source.c:
	(rb_generic_player_source_new):
	* plugins/generic-player/rb-nokia770-source.c:
	(rb_nokia770_source_new):
	* plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
	Add source list group information to existing source classes.

	Fixes #318754 and #336492.

2006-06-04  James Livingston  <doclivingston@gmail.com>

	* widgets/rb-song-info.c: (rb_song_info_populate_dialog),
	(rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
	win32 build fixes.

2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_class_init),
	(rhythmdb_query_model_remove_from_main_list):
	* rhythmdb/rhythmdb-query-model.h:
	Add a new 'post-entry-delete' signal, emitted when the entry has been
	removed from the model's data structures.

	* shell/rb-play-order.c: (rb_play_order_finalize),
	(rb_play_order_query_model_changed),
	(rb_play_order_post_entry_delete_cb):
	Use the new signal to update the play order, so the queue play order
	doesn't try to scroll to entries that don't exist in a way that causes
	the tree view to crash.  Fixes #340216.

2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
	Fix rb_debug call I missed previously.

2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* metadata/rb-metadata-gst.c:
	Don't use NULL as the error message for ignored files, as it crashes
	with some C libraries.  Fixes #343713.

2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* widgets/rb-dialog.c: (rb_error_dialog):
	* widgets/rb-dialog.h:
	Mark rb_error_dialog as taking printf-like arguments, and use a format
	string for the primary message rather than passing in the message
	directly.

	* lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
	* shell/rb-shell-player.c: (rb_shell_player_cmd_play),
	(info_available_cb):
	* shell/rb-playlist-manager.c: (load_playlist_response_cb):
	* shell/rb-removable-media-manager.c:
	(rb_removable_media_manager_eject_medium_cb):
	Make sure all calls to rb_error_dialog use string constants for the
	format string rather than passing the error message directly.  Remove
	an extra %s from the message used when playback fails.  Fixes #343562.

	* lib/rb-debug.h:
	* sources/rb-audiocd-source.c:
	* plugins/audioscrobbler/rb-audioscrobbler.c:
	(rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
	Mark rb_debug as taking printf-like arguments and fix a few resulting
	warnings.

2006-06-02  James Livingston  <doclivingston@gmail.com>

	* configure.ac:
	+ macros/check.m4: add support for using check for unit tests, the .m4
	files is so autogen can run without check being installed

	* tests/Makefile.am:
	+ tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
	some of the old tests, and add some new ones. Currently
	deserialisation tests 2 and 3 fail, for reasons I haven't figured out
	yet (the query doesn't return any entries).

	- tests/deserialization-test1.xml:
	- tests/deserialization-test2.xml:
	- tests/deserialization-test3.xml:
	- tests/test-rhythmdb-indexing.c:
	- tests/test-rhythmdb-simple.c:
	- tests/test-rhythmdb-tree-deserialization.c: remove old tests that
	have been ported

	- tests/test-cd.c:
	- tests/test-cmdline.c: remove obsolete tests

2006-06-02  James Livingston  <doclivingston@gmail.com>

	* metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
	(rb_add_id3_tagger), (rb_metadata_init): add support for using
	id3v2mux, and check whether we are using a version of id3mux that has
	the correct merge-mode behaviour.

	* plugins/sample-python/Makefile.am: fix distcheck.

	* rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
	the changed-files source was added before trying to remove it.

	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
	*old* bug which would crash if a query with top-level disjunctions
	tried to check later disjunctive parts. Hooray for unit-testing.

2006-06-02  William Jon McCann  <mccann@jhu.edu>

	* player/rb-recorder-gst.c (rb_recorder_set_device):
	Check for a null drive.

2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* lib/Makefile.am:
	* lib/rb-stock-icons.c: (rb_stock_icons_init):
	Register the app icon as a builtin if the icon theme can't find it.

2006-05-31  James Livingston  <doclivingston@gmail.com>

	* player/rb-recorder-gst.c: add missing include.

2006-05-30  William Jon McCann  <mccann@jhu.edu>

	* metadata/sj-metadata-musicbrainz.c: (lookup_cd):
	* player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
	(tick_timeout_cb), (rb_recorder_sync_pipeline),
	(nautilus_burn_drive_get_device), (rb_recorder_get_device),
	(rb_recorder_set_device), (rb_recorder_get_default_device):
	* shell/main.c: (main):
	* shell/rb-removable-media-manager.c:
	(rb_removable_media_manager_finalize),
	(get_nautilus_burn_drive_for_path),
	(rb_removable_media_manager_playing_uri_changed_cb),
	(rb_removable_media_manager_load_media),
	(nautilus_burn_drive_get_device),
	(rb_removable_media_manager_scan):
	* sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):

	Update for libnautilus-burn 2.15.3 API changes.
	Fixes #342604

2006-05-30  James Livingston  <doclivingston@gmail.com>

	* daapsharing/rb-daap-connection.c: (handle_login): add a missing
	"return" to that it asks for the password again if it was wrong.

2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
	typefind element.

2006-05-30  James Livingston  <doclivingston@gmail.com>

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
	(download_progress_cb): don't do wonky things if the transfer
	"suceeds" without transferring any data.

2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* sources/rb-library-source.c: (layout_example_label_update),
	(build_filename):  Fix crash when no audio profile is selected.
	Fixes #341447.

2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* shell/rb-shell.c: (rb_shell_clear_queue):
	* shell/rb-shell.h:
	* shell/rb-shell.xml:
	* sources/rb-play-queue-source.c:
	(rb_play_queue_source_clear_queue),
	(rb_play_queue_source_cmd_clear):
	* sources/rb-play-queue-source.h:
	Add clearQueue dbus method.

2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* shell/main.c: (main):  Implement --quit option.

2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* rhythmdb/rhythmdb-private.h:
	* rhythmdb/rhythmdb-tree.h:
	* rhythmdb/rhythmdb.c: (process_added_entries_cb),
	(rhythmdb_entry_insert), (rhythmdb_entry_set),
	(rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
	(rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
	(rhythmdb_entry_get_boolean):
	Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
	bitmask, giving the db backend anything past the first 16 bits for 
	its own private use.

	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
	(save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
	Add a 'loading' flag to indicate that an entry is being loaded from
	disk, and use that to ignore entry_set operations on such entries
	rather than the 'inserted' flag, which doesn't quite mean the same
	thing.  Fixes #342694.

2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* shell/rb-shell.xml: Remove visibility property, since it causes
	crashes (dbus bug 7057) and doesn't do much else.

2006-05-28  James Livingston  <doclivingston@gmail.com>

	* plugins/audioscrobbler/Makefile.am: fix some distcheck issues.

	patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
	* po/POTFILES.in: fix some more i18n issues.

2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* bindings/python/rb.defs:
	* shell/rb-shell-player.c: (rb_shell_player_playpause),
	(filter_mmkeys):
	* shell/rb-shell-player.h:
	Deprecate the useless 'ignore_stop' parameter to
	rb_shell_player_playpause, leaving it in place to avoid breaking dbus
	API.  From bug #334829.

2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* plugins/generic-player/rb-generic-player-source.c:
	(visit_playlist_dirs), (default_transform_playlist_uri):
	When playlist parsing fails, unref the playlist, not the parent
	source.  Fix memory leak in playlist uri transform.
	* plugins/generic-player/rb-nokia770-source.c:
	(impl_transform_playlist_uri):
	Fix memory leak in playlist uri transform.

2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>

	* doc/reference/Makefile.am: fix grk-doc build

2006-05-27  James Livingston  <doclivingston@gmail.com>

	patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>

	* plugins/lyrics/lyrics.py:
	* po/POTFILES.in: Make strings in plugins translatable. From bug
	343081.

2006-05-27  James Livingston  <doclivingston@gmail.com>

	* backends/Makefile.am:
	* backends/gstreamer/Makefile.am:
	* lib/Makefile.am:
	* plugins/audioscrobbler/Makefile.am:
	* plugins/generic-player/Makefile.am:
	* po/POTFILES.in:
	* rhythmdb/rhythmdb-monitor.c:
	* rhythmdb/rhythmdb.c:
	* sources/Makefile.am:
	* widgets/Makefile.am: fix compilation after some CVS surgery was
	done.

2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* bindings/python/rhythmdb.defs:
	* rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
	(rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
	(rhythmdb_query_deserialize):
	* rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
	(rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
	(rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
	(rhythmdb_entry_register_type_alias),
	(rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
	(rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
	(_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
	(rhythmdb_entry_podcast_feed_get_type),
	(rhythmdb_entry_import_error_get_type),
	(rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
	* rhythmdb/rhythmdb.h:
	Allocate a specified amount of extra memory for each db entry, to be
	used to store fields specific to the entry type.  Optionally associate
	a name with each entry type, to be used when saving entries and
	auto playlists to disk.  Allow entry types to have multiple names
	to handle older playlist files that used '0' to represent 'song'.
	Use private data to store podcast fields.

	* rhythmdb/rhythmdb-private.h:
	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
	(rhythmdb_tree_parser_end_element), (save_entry),
	(rhythmdb_tree_entry_set):
	Simplify property handling by using existing code to convert
	properties from strings to GValues and to set properties on entries.
	Other assorted changes due to the above.

	* sources/rb-audiocd-source.c: (rb_audiocd_source_new):
	* sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
	* sources/rb-generic-player-source.c:
	(rb_generic_player_source_new):
	* sources/rb-ipod-source.c: (rb_ipod_source_new):
	* sources/rb-nokia770-source.c: (rb_nokia770_source_new):
	* sources/rb-psp-source.c: (rb_psp_source_new):
	Update for changes to rhythmdb_entry_register_type.  None of these
	entry types need names or use private data.

	Fixes #337429.

2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
	Fix creation of ignored-file db entries - need to check for
	RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.

2006-05-25  James Livingston  <doclivingston@gmail.com>

	* AUTHORS:
	* MAINTAINERS: update my email address

2006-05-25  James Livingston  <doclivingston@gmail.com>

	* plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
	"(... mix)" when searching for lyrics. Cache the lyrics under
	~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.

2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* sources/rb-import-errors-source.c:
	(rb_import_errors_source_class_init):
	* sources/rb-playlist-source.c: (rb_playlist_source_class_init):
	* sources/rb-browser-source.c: (rb_browser_source_class_init):
	* sources/rb-source.c: (rb_source_class_init),
	(default_move_to_trash):
	Implement the basic move-to-trash operation once in rb-source.c, 
	rather than in each source type that supports it.

	* plugins/ipod/rb-ipod-plugin.c:
	* shell/rb-removable-media-manager.c:
	* shell/rb-shell.c: (rb_shell_constructor):
	Only scan removable media once after loading plugins.  Add a flag
	plugins can use to check if the initial scan has been done.

	* data/rhythmbox.schemas:
	Enable ipod and generic-player plugins by default.
	
	* configure.ac:
	* data/ui/Makefile.am:
	* data/ui/generic-player-ui.xml:
	* data/ui/rhythmbox-ui.xml:
	* plugins/Makefile.am:
	* plugins/generic-player/Makefile.am:
	* plugins/generic-player/generic-player.rb-plugin.desktop.in:
	* plugins/generic-player/rb-generic-player-plugin.c:
	* sources/Makefile.am:
	* sources/rb-generic-player-source.c:
	* sources/rb-generic-player-source.h:
	* sources/rb-nokia770-source.c:
	* sources/rb-nokia770-source.h:
	* sources/rb-psp-source.c: (visit_playlist_dirs):
	* sources/rb-psp-source.h:
	Pluginise generic player (and nokia770 and PSP) support and add
	move-to-trash for players not mounted read-only.
	Fixes #342868.

2006-05-24  William Jon McCann  <mccann@jhu.edu>

	* daapsharing/rb-daap-connection.c (handle_song_listing):
	Lower bound check for batch commit.  Fixes #342848

	* sources/rb-daap-source.c (rb_daap_source_get_status):
	Always set output variables if provided.

2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
	(rhythmdb_tree_entry_delete), (remove_one_song):
	* rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
	Fix two db entry reference counting problems.
	The initial reference on the entry is held by the db backend, but it
	was never being dropped.  The reference count was incremented when
	adding an entry to the deleted_entries map and to the
	deleted_entries_to_emit list, but only decremented for one of those.

2006-05-24  William Jon McCann  <mccann@jhu.edu>

	* daapsharing/rb-daap-connection.c (http_response_handler) 
	(rb_daap_connection_dispose):
	Call soup_session_abort to make sure there are no outstanding
	requests when we dispose of the connection.  Ignore cancelled
	messages in the callback.

2006-05-24  William Jon McCann  <mccann@jhu.edu>

	* sources/rb-daap-source.c (rb_daap_source_connection_cb) 
	(rb_daap_source_disconnect): Set a flag when disconnecting
	the source.  Check this flag in connection callback
	to see if we should release the connection.

2006-05-24  William Jon McCann  <mccann@jhu.edu>

	* daapsharing/Makefile.am:
	* daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
	(rb_daap_connection_class_init), (connection_connected),
	(connection_disconnected), (connection_operation_done),
	(build_message), (connection_set_error_message),
	(actual_http_response_handler), (http_get),
	(entry_set_string_prop), (emit_progress_idle),
	(handle_server_info), (handle_login), (handle_update),
	(handle_database_info), (handle_song_listing), (handle_playlists),
	(handle_playlist_entries), (handle_logout),
	(rb_daap_connection_new), (rb_daap_connection_is_connected),
	(connection_response_data_free), (connected_cb),
	(rb_daap_connection_connect), (disconnected_cb),
	(rb_daap_connection_finish), (rb_daap_connection_disconnect),
	(rb_daap_connection_state_done), (rb_daap_connection_do_something),
	(rb_daap_connection_dispose), (rb_daap_connection_set_property),
	(rb_daap_connection_get_property):
	* daapsharing/rb-daap-connection.h:
	* daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
	(OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
	(DigestToString), (GenerateStatic_42), (GenerateStatic_45),
	(rb_daap_hash_generate):
	* daapsharing/rb-daap-hash.h:
	* sources/rb-daap-source.c: (rb_daap_source_class_init),
	(rb_daap_get_icon), (remove_source), (stop_browsing),
	(create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
	(connection_connecting_cb), (connection_disconnected_cb),
	(release_connection), (rb_daap_source_connection_cb),
	(rb_daap_source_activate), (rb_daap_source_disconnect_cb),
	(rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):

	Adds a better async API for connect and disconnect.  Doesn't share
	callback data for every async call.  Adds a connect signal.  Uses
	an operation-done signal to trigger the callbacks.  Displays an
	error when connections fail.  A few refcounting fixes to fix
	crashes.  Uses a weak pointer to set the connection to NULL so we
	don't clobber references.  Wait for each disconnect when shutting
	down sources.  Split out DAAP hash stuff into its own file.  Fix
	typo in header.

	Fixes #342643
	
2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* sources/rb-auto-playlist-source.c:
	(rb_auto_playlist_source_new_from_xml):
	Initialize the gvalue used to hold the size limit correctly.
	Fixes #342744.

2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* shell/rb-shell.c: (rb_shell_window_delete_cb),
	(rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
	* shell/rb-shell.h:
	* shell/rb-shell.xml:
	Convert rb_shell_quit into a dbus method, and add visibility dbus
	property.

2006-05-22  James Livingston  <doclivingston@gmail.com>

	* rhythmdb/rhythmdb.h:
	* rhythmdb/rhythmdb.c: (sync_entry_changed),
	(rhythmdb_entry_is_editable), (action_thread_main),
	(song_can_sync_metadata), (default_sync_metadata): Add entry-type
	vfuncs for can_sync_metadata, and sync_metadata. The default is always
	false, and syncing into the file.

	(rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
	(rhythmdb_entry_iradio_get_type),
	(rhythmdb_entry_import_error_get_type):
	* sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
	vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
	change the DB.

2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* rhythmdb/Makefile.am:
	* rhythmdb/rhythmdb-monitor.c:
	* rhythmdb/rhythmdb-private.h:
	* rhythmdb/rhythmdb-query.c:
	* rhythmdb/rhythmdb.c:
	Split up rhythmdb.c a bit.

2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* data/glade/audioscrobbler-prefs.glade:
	Add a link to the last.fm server status page.

2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>

	* plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
	Capitalization fix.
	* plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
	(impl_create_configure_dialog):  UI layout fixes, remove
	dialog separator, and capitalization fix for window title.
	* shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
	and remove dialog separator.
	* data/glade/plugins.glade:  UI layout fixes.
	* data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
	and capitalization fix.  Fixes #342438.

2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>

	* data/glade/podcast-properties.glade:  Fix layout of the download 
	location.  Fixes #342431.

2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* data/ui/rhythmbox-ui.xml:
	We only need one copy of the 'add to queue' action in the edit menu.

2006-05-20  James Livingston  <doclivingston@gmail.com>

	* data/ui/rhythmbox-ui.xml:
	* shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
	(rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
	(rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
	(rb_shell_clipboard_sync),
	(rb_shell_clipboard_cmd_add_to_playlist_new),
	(rb_shell_clipboard_cmd_queue_song_info),
	(rb_shell_clipboard_playlist_add_cb), (generate_action_name),
	(rb_shell_clipboard_playlist_deleted_cb),
	(rb_shell_clipboard_playlist_renamed_cb),
	(rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
	(rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
	* shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
	dynamically generated with all the static playlists. Fixes bug 323364.

	* shell/rb-shell.c: (construct_widgets), (construct_sources): use the
	right child, so it doesn't go weird when art appears and disappears.

2006-05-20  James Livingston  <doclivingston@gmail.com>

	patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_set_property),
	(rhythmdb_query_model_finalize),
	(rhythmdb_query_model_reapply_query_cb):
	* rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
	(rhythmdb_query_append_prop_multiple),
	(rhythmdb_query_is_time_relative):
	* rhythmdb/rhythmdb.h: re-run queries every minutes if they have
	time-based criteria, fixes bug 341131.

2006-05-20  James Livingston  <doclivingston@gmail.com>

	* plugins/artdisplay/artdisplay/__init__.py: don't display the art if
	we have already changed playing entries. Interpolate the art size so
	it doesn't jump when the old and new images have different aspect
	ratios.

2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* rhythmdb/rhythmdb-private.h:
	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
	(save_entry):
	* rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
	(rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
	(rhythmdb_entry_get_ulong):
	Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
	and elsewhere, use them on the stack rather than allocating on 
	the heap.  From bug #342333.

2006-05-19  William Jon McCann  <mccann@jhu.edu>

	* player/rb-recorder-gst.c: (rb_recorder_error_quark),
	(rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
	(add_track), (eos_cb), (error_signal_idle),
	(rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
	(rb_recorder_construct), (recorder_track_free),
	(rb_recorder_finalize):
	* sources/rb-playlist-source-recorder.c:
	Support libnautilus-burn size -> capacity API change.  Add
	some braces to blocks.

2006-05-19  William Jon McCann  <mccann@jhu.edu>

	* metadata/sj-metadata-musicbrainz.c:
	(sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
	Sync with sound-juicer in CVS.  Fixes #342177
	* sources/rb-audiocd-source.c: Don't declare variables
	in the middle of a block (c99ism).  Fix order of #includes.
	Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
	one variable per line.  Update copyright date.

2006-05-19  James Livingston  <doclivingston@gmail.com>

	patch by: Hendrik Richter  <hendi@gnome-de.org>

	* shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
	"translator_credits" to a hyphen, so it doesn't cause problems for
	tools that check access keys. Fixes bug 341832.

2006-05-19  James Livingston  <doclivingston@gmail.com>

	* po/POTFILES.in: remove references to files that don't exist any more
	(fixes make distcheck).

2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>

	* plugins/lyrics/lyrics.py:  Fix layout close button in 
	Song Lyrics dialog. Fixes bug 342322.

2006-05-19  James Livingston  <doclivingston@gmail.com>

	patch by: Loïc Minier  <lool+gnome@via.ecp.fr>

	* widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
	(egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
	version checks not break when libnotify goes to 1.0.0. Fixes bug
	342244.

2006-05-18  James Livingston  <doclivingston@gmail.com>

	* shell/rb-shell-clipboard.c:
	* shell/rb-shell.c:
	* sources/rb-podcast-source.c: Fix some conflicting keybindings.

2006-05-17  William Jon McCann  <mccann@jhu.edu>

	* sources/rb-playlist-source-recorder.c (get_song_description):
	Reverse artist and title in song description.  This
	is useful because at least the title will be visible
	when there is limited space.

2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* daapsharing/rb-daap-connection.c: (connection_get_password):
	Take gdk lock before emitting authenticate signal.
	* sources/rb-daap-source.c: (connection_connecting_cb):
	Get rid of the unnecessary idle handler (it's already called from one)
	Fixes #342047 once more.

2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* shell/rb-shell.c: (rb_shell_class_init):
	* shell/rb-shell.h:
	* widgets/rb-song-info.c: (rb_song_info_class_init),
	(rb_song_info_construct_single), (rb_song_info_construct_multiple),
	(rb_song_info_constructor), (rb_song_info_get_property),
	(rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
	(rb_song_info_forward_clicked_cb):
	* widgets/rb-song-info.h:
	* data/glade/song-info-multiple.glade:
	* lib/rb-marshal.list:
	* bindings/python/Makefile.am:
	* bindings/python/rb.defs:
	* bindings/python/rb.override:
	Allow plugins to add pages to the notebooks used in song info windows,
	and to track the current song displayed in single-entry windows.
	
	* configure.ac:
	* plugins/Makefile.am:
	* plugins/lyrics/Loader.py:
	* plugins/lyrics/Makefile.am:
	* plugins/lyrics/lyrics.py:
	* plugins/lyrics/lyrics.rb-plugin.desktop.in:
	Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
	as a separate window (for the playing song) or as a page in the song
	info window.  A few TODO items left, but this fixes #319320.

2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	Patch by:  Roozbeh Pournader

	* configure.ac:
	* lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
	Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.

2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
	
	* sources/rb-daap-source.c: (update_connection_status):
	Correct return value.  Fixes #342047 again.

2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* sources/rb-daap-source.c: (update_connection_status),
	(connection_connecting_cb):
	Update status in an idle handler so we don't rely on the gdk lock
	being recursive (because it isn't any more).  Fixes #342047.

2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* lib/rb-util.c: (rb_make_duration_string),
	(rb_make_elapsed_time_string):
	* lib/rb-util.h:
	Add a function for formatting an elapsed time string.

	* shell/rb-shell-player.c: (rb_shell_player_init),
	(rb_shell_player_sync_with_source),
	(rb_shell_player_get_playing_time_string), (tick_cb):
	Store elapsed time in the private data structure, and use the above
	function.
	
	* widgets/rb-header.c:
	* widgets/rb-header.h:
	Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
	object, so everything has the same idea of the elapsed time.
	Fixes #339693.

2006-05-16  James Livingston  <doclivingston@gmail.com>

	* bindings/python/rhythmdb.defs:
	* bindings/python/rhythmdb.override: give rhythmdb.query_model_new
	some parametre defaults, so you don't have to pass None, False for the
	sorting order.

2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* bindings/python/rhythmdb.defs:
	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_compute_status_normal):
	* rhythmdb/rhythmdb-query-model.h:
	* rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
	* rhythmdb/rhythmdb.h:
	Change the various compute_status methods to accept a singular/plural
	pair to use in the status string.
	
	* sources/rb-podcast-source.c: (rb_podcast_source_class_init),
	(rb_podcast_source_cmd_new_podcast), (impl_get_status):
	* sources/rb-source.c: (default_get_status):
	Call entries 'songs' by default, and 'episodes' in the podcast source.
	Fixes #340227.

2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	patch by:  Paul Drain

	* plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
	Fixes #341817.

2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
	Generate reorder maps correctly.
	* widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
	Scroll to the first entry from the old selection.
	Fixes #322992.

2006-05-15  William Jon McCann  <mccann@jhu.edu>

	* data/ui/rhythmbox-ui.xml:
	* lib/rb-preferences.h:
	* shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
	(rb_shell_playlist_created_cb),
	(rb_shell_view_sidepane_changed_cb),
	(rb_shell_sync_sidepane_visibility),
	(rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
	(sidepane_visibility_changed_cb):
	* sources/rb-podcast-source.c:
	Convert sourcelist visibility to side-pane visbility.
	Fixes #339733

2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* widgets/rb-header.c:
	* widgets/rb-header.h: Stop RBHeader from referring to itself as
	'player', and make it use the private data structure allocated for it.

2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* configure.ac: enable metadata helper with dbus < 0.35.

2006-05-15  James Livingston  <doclivingston@gmail.com>

	patch by: Alex Lancaster  <alexl@users.sourceforge.net>

	* data/glade/song-info.glade:
	* widgets/rb-song-info.c: (rb_song_info_construct_single),
	(rb_song_info_populate_dialog), (rb_song_info_update_duration),
	(rb_song_info_update_filesize): Add the file size into the song info
	window. Fixes bug 340861.

2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* bindings/python/rhythmdb.defs:
	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_set_property),
	(rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
	* rhythmdb/rhythmdb-query-model.h:
	Add a new method to chain query models without importing entries from
	the parent into the child.  This is useful when the subset of entries
	in the child can be more easily determined by running a query than by
	filtering entries from the parent.

	* bindings/python/rb.defs:
	* widgets/rb-library-browser.c: (rb_library_browser_class_init),
	(rb_library_browser_set_property),
	(rb_library_browser_get_property), (rb_library_browser_new),
	(rebuild_child_model):
	* widgets/rb-library-browser.h:
	* sources/rb-auto-playlist-source.c:
	(rb_auto_playlist_source_constructor):
	* sources/rb-static-playlist-source.c:
	(rb_static_playlist_source_constructor):
	* sources/rb-browser-source.c: (rb_browser_source_constructor):
	Use more efficient queries for constructing the browser query model
	chain.  Include the entry type at each level (allowing the rhythmdb-tree 
	backend to optimise the query) and run new queries rather than
	filtering entries from the parent.  Fixes #341402.

	* configure.ac: remove reference to rhythmbox.pc that I missed earlier.

2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* configure.ac:
	* shell/Makefile.am:
	* shell/main.c: (main), (load_uri_args), (send_present_message),
	(unregister_dbus_handler), (handle_dbus_message),
	(register_dbus_handler):
	Add minimal support for dbus 0.31 - 0.35.

	* doc/reference/Makefile.am:
	* doc/reference/rhythmbox.types:
	* data/Makefile.am:
	* data/GNOME_Rhythmbox.server.in:
	* data/rhythmbox.pc.in:
	* remote/*:
	* remote/bonobo/*:
	Remove remaining bonobo and generic remote interface files.

2006-05-14  James Livingston  <doclivingston@gmail.com>

	* shell/rb-shell.c: (construct_widgets):
	* sources/rb-browser-source.c: (rb_browser_source_constructor): Never
	resize the browser and queue-sidebar section of their panes, unless
	the other section is below the minimum size. Fixes bug 331927.

2006-05-13  James Livingston  <doclivingston@gmail.com>

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_class_init),
	(rhythmdb_query_model_set_property),
	(rhythmdb_query_model_get_property),
	(rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
	(rhythmdb_query_model_insert_into_main_list),
	(rhythmdb_query_model_insert_into_limited_list),
	(rhythmdb_query_model_do_reorder),
	(rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
	(rhythmdb_query_model_location_sort_func),
	(rhythmdb_query_model_title_sort_func),
	(rhythmdb_query_model_album_sort_func),
	(rhythmdb_query_model_artist_sort_func),
	(rhythmdb_query_model_genre_sort_func),
	(rhythmdb_query_model_track_sort_func),
	(rhythmdb_query_model_double_ceiling_sort_func),
	(rhythmdb_query_model_ulong_sort_func),
	(rhythmdb_query_model_date_sort_func),
	(rhythmdb_query_model_string_sort_func):
	* rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
	instead of a RhythmDBPropType (which can be put in a gpointer). Add a
	"data destroy" property. Fixed bug 341543.

	* bindings/python/rhythmdb.defs:
	* bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
	rhythmdb_query_model_set_sorting_order

	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_drag_data_get):
	* sources/rb-import-errors-source.c:
	(rb_import_errors_source_constructor):
	* sources/rb-missing-files-source.c:
	(rb_missing_files_source_constructor):
	* widgets/rb-entry-view.c: (rb_entry_view_append_column),
	(rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
	* widgets/rb-entry-view.h: adapt to the above change.

2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
	(rhythmdb_tree_load):
	Commit loaded entries in batches, rather than individually.  
	More startup time reduction.

2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>

	* doc/reference/Makefile.am: fix gtk-doc compilation

2006-05-12  William Jon McCann  <mccann@jhu.edu>

	* plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
	* plugins/artdisplay/artdisplay/CoverArtDatabase.py:
	* plugins/artdisplay/artdisplay/Loader.py:
	Correct fallback to medium size.  Convert & to "and" when doing comparisons.
	Only call the first artist the best match when album==Unknown.
	Don't perform each query twice if album doesn't include "Vol N".
	Fix searching for compilations.  Fix blacklisting.
	Part of bug #307848

2006-05-12  William Jon McCann  <mccann@jhu.edu>

	* Makefile.am:
	* bindings/python/Makefile.am:
	* bindings/python/rb.defs:
	* bindings/python/rb.override:
	* configure.ac:
	* doc/reference/Makefile.am:
	* plugins/Makefile.am:
	* plugins/audioscrobbler/Makefile.am:
	* plugins/ipod/Makefile.am:
	* plugins/lirc/Makefile.am:
	* plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
	(impl_activate), (impl_deactivate):
	* plugins/sample/Makefile.am:
	* remote/Makefile.am:
	* shell/Makefile.am:
	* shell/main.c: (main), (main_shell_weak_ref_cb):
	* shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
	(rb_shell_get_property), (rb_shell_window_state_cb),
	(idle_hide_mainwindow), (rb_shell_set_visibility),
	(rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
	(rb_shell_set_song_property):
	* shell/rb-shell.h:
	* shell/rb-tray-icon.c: (rb_tray_icon_class_init),
	(rb_tray_icon_sync_action), (rb_tray_icon_set_property),
	(rb_tray_icon_get_property), (rb_tray_icon_new),
	(rb_tray_icon_button_press_event_cb),
	(rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
	(rb_tray_icon_show_window_changed_cb):
	* shell/rb-tray-icon.h:

	Remove bonobo, require DBUS.
	Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
	Fixes #339720

2006-05-13  James Livingston  <doclivingston@gmail.com>

	* bindings/python/rb.override: fix some pointer-type warnings

2006-05-12  James Livingston  <doclivingston@gmail.com>

	* lib/rb-util.c: (rb_value_free):
	* lib/rb-util.h: Add function to unset and free a GValue* that was
	allocated in the heap.

	* metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
	the metadata hastable values
	* metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
	leak the metadata hashtable structure
	* metadata/rb-metadata-dbus.c:
	(rb_metadata_dbus_read_from_message):use g_value_set_string instead of
	using g_strdup and then _take_string

	* rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
	(rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
	stat something.

	* shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
	leak the encoded string

	* widgets/rb-property-view.c:
	(rb_property_view_selection_changed_cb): set some variables to have
	inital values, because some code paths may not set them before we use
	them.

	* plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
	don't have python warning into a debug message".

2006-05-10  William Jon McCann  <mccann@jhu.edu>

	* data/rhythmbox.schemas: Use zero instead of null for
	default burn speed.  Fixes #341283.

2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* bindings/python/rb.defs:
	* widgets/rb-library-browser.c:
	(rb_library_browser_get_property_view):
	* widgets/rb-library-browser.h:
	Add a method to get the property view for a given property.

	* sources/rb-browser-source.c:
	(rb_browser_source_cmd_choose_genre),
	(rb_browser_source_cmd_choose_artist),
	(rb_browser_source_cmd_choose_album):
	Change the browser selection by changing the property view selection. 
	Makes the selection change visible, fixing #331740.

2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* bindings/python/rb.defs:
	* bindings/python/rb.override:
	* rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
	* shell/rb-statusbar.c: (*),
	* sources/rb-import-errors-source.c: (impl_get_status):
	* sources/rb-iradio-source.c: (impl_get_status):
	* sources/rb-missing-files-source.c: (impl_get_status):
	* sources/rb-source.c: (default_get_status),
	(rb_source_get_status):
	* sources/rb-source.h:
	Allow sources to provide a progress value for the status bar.
	Simplify status bar processing (much less polling).
	Consider rhythmdb busy while it's still loading the database.

	* daapsharing/rb-daap-connection.c: (*)
	* daapsharing/rb-daap-connection.h:
	* lib/rb-marshal.list:
	* sources/rb-daap-source.c: (rb_daap_source_class_init),
	(rb_daap_source_init), (connection_connecting_cb),
	(rb_daap_source_activate), (rb_daap_source_get_paned_key),
	(rb_daap_source_get_status):
	Provide status information for DAAP connections, and move processing
	of large responses into a separate thread.
	Fixes bugs #322020 and #338978.

2006-05-09  James Livingston  <doclivingston@gmail.com>

	Split the artdisplay plugin into several files.
	Fix loader and amazon-search re-use issues.
	Add some better search heuristics.

	* configure.ac:
	* plugins/artdisplay/Makefile.am:
	* plugins/artdisplay/artdisplay.py:
	* plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
	* plugins/artdisplay/artdisplay/CoverArtDatabase.py:
	* plugins/artdisplay/artdisplay/Loader.py:
	* plugins/artdisplay/artdisplay/Makefile.am:
	* plugins/artdisplay/artdisplay/__init__.py:

2006-05-09  James Livingston  <doclivingston@gmail.com>

	* sources/rb-browser-source.h: remove the _has_first_added_column
	stuff since it isn't actually used anywhere. Sources that want it
	should just add it themselves, as the library already does

	* bindings/python/rb.defs:
	* sources/rb-daap-source.c: (rb_daap_source_class_init):
	* sources/rb-library-source.c: (rb_library_source_class_init):
	* sources/rb-removable-media-source.c:
	(rb_removable_media_source_class_init): Remove the remanants of the
	above.

2006-05-09  James Livingston  <doclivingston@gmail.com>

	* bindings/python/rb.defs:
	* sources/rb-browser-source.h: remove a function that was declared in
	the header, but not defined anywhere.

2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* plugins/artdisplay/.cvsignore:
	* plugins/ipod/.cvsignore: Added.

2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* sources/rb-auto-playlist-source.c:
	(rb_auto_playlist_source_new_from_xml):
	Fix reading of older playlist files where all three limits were
	specified so we take the first nonzero limit.  From #341053.

2006-05-09  James Livingston  <doclivingston@gmail.com>

	* bindings/python/Makefile.am:
	* bindings/python/rb.defs:
	* bindings/python/rb.override: bind RBBrowserSource,
	RBRemovableMediaSource and RBRemovableMediamanager.

2006-05-09  James Livingston  <doclivingston@gmail.com>

	patch by: Baptiste Mille-Mathias  <bmm80@free.fr>

	* data/glade/plugins.glade: make the plugin dialog look a bit better.
	Fixes bug 339221.

2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* widgets/rb-query-creator.c: (rb_query_creator_load_query):
	Don't explode when trying to edit a query with no limit set.

2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
	Clear the should_queue flag when switching to a non-submittable entry,
	so we don't submit songs that played for three seconds before
	switching to a podcast episode.

	* rhythmdb/rhythmdb-query-model.c
	(rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
	in the drag data list.

2006-05-08  James Livingston  <doclivingston@gmail.com>

	* lib/rb-util.c: (rb_value_array_append_data):
	* lib/rb-util.h: add function which is basically a combination of
	G_VALUE_COLLECT and g_value_array_append.

	* rhythmdb/rhythmdb-query-model.h:
	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_class_init),
	(rhythmdb_query_model_set_property),
	(rhythmdb_query_model_get_property),
	(rhythmdb_query_model_finalize),
	(rhythmdb_query_model_update_limited_entries),
	(rhythmdb_query_model_set_sort_order),
	(rhythmdb_query_model_within_limit),
	(rhythmdb_query_model_limit_type_get_type): Make query model limits
	saner. Rather than having <count=N, time=N, size=N> we now have a
	<type, value> pair. This will also make it much easier to add new
	limit types in the future.

	* shell/rb-playlist-manager.c:
	(rb_playlist_manager_set_automatic_playlist),
	(rb_playlist_manager_cmd_edit_automatic_playlist):
	* sources/rb-auto-playlist-source.c:
	(rb_auto_playlist_source_finalize),
	(rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
	(_save_write_ulong), (_save_write_uint64),
	(impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
	(rb_auto_playlist_source_set_query),
	(rb_auto_playlist_source_get_query):
	* sources/rb-auto-playlist-source.h:
	* sources/rb-library-source.c:
	(rb_library_source_add_child_source):
	* sources/rb-psp-source.c: (visit_playlist_dirs):
	* widgets/rb-query-creator.c: (rb_query_creator_load_query),
	(rb_query_creator_new_from_query), (rb_query_creator_get_limit):
	* widgets/rb-query-creator.h: Adapt to the above change.

2006-05-08  James Livingston  <doclivingston@gmail.com>

	* shell/rb-playlist-manager.c:
	(rb_playlist_manager_cmd_edit_automatic_playlist):
	* sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
	(rb_auto_playlist_source_set_query),
	(rb_auto_playlist_source_get_query): copy the query in the _get method
	and free it in things calling that. Fixes a crasher.

2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
	Make entries on newly mounted volumes visible immediately, hiding them
	later if they turn out to be missing.  Fixes #340068.

2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* metadata/rb-metadata-gst.c: (rb_metadata_finalize):
	Ignore zip files and ignore errors for files we've decided to ignore.

2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* sources/rb-ipod-source.c: (hal_udi_is_ipod):
	Add missing }, should fix #340844.

2006-05-06  James Livingston  <doclivingston@gmail.com>

	* plugins/artdisplay/artdisplay.py: fade between covers, and fix a
	typo.

2006-05-06  James Livingston  <doclivingston@gmail.com>

	* widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
	that we work with libnotify >= 0.4

2006-05-06  James Livingston  <doclivingston@gmail.com>

	patch by: Joe Barnett  <thejoe@gmail.com>

	* configure.ac: check if we're using a version of libgpod that
	supports the Motorola ROKR

	* sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
	for the db path, if we using the newer version.

	(rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.

2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_drag_data_get):
	Use playback URI, not location, for drag data.  Fixes #322597.

2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>

	* data/glade/general-prefs.glade:  HIG fixes from bug 340588.

2006-05-03  James Livingston  <doclivingston@gmail.com>

	* metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
	(rb_add_id3_tagger), (rb_metadata_save):
	Set the tags on the tagging element when it is
	created, not during pipeline creation - which is required for
	dynamically created elements.

	(ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
	support for using the "vorbistag" element to re-tag ogg vorbis files.
	Fixes bug 339878.

2006-05-03  James Livingston  <doclivingston@gmail.com>

	patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>

	* plugins/artdisplay/artdisplay.py:
	- Fix small bug callback of data loader getting overwritten on fast
	connections.
	- Add asynchronous loading with gnomevfs and urllib fallback (thx to
	Jonathan Matthew)
	- Fix Rhythmbox UI blocking while loading/searching cover art
	- Split logic into CoverArtDatabase, AmazonCoverArtSearch
	- Initial approach to allow additional "art search engines"
	- Further modularization in a couple of places
	- Minor fixes for empty entries (iradio, album, artist etc.)

2006-05-03  James Livingston  <doclivingston@gmail.com>

	* shell/rb-playlist-manager.c:
	(rb_playlist_manager_playlist_entries_changed),
	(rb_playlist_manager_set_source): don't show the edit/delete/rename
	options for non-local sources, rather than showing disabled ones.

	* sources/rb-library-source.c: (add_child_sources_idle),
	(rb_library_source_constructor), (rb_library_source_new),
	(rb_library_source_library_location_changed),
	(rb_library_source_add_child_source),
	(rb_library_source_sync_child_sources): Create "child library" sources
	when the user has multiple library locations set. Fixes bug 100552.

2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
	* plugins/sample/sample.rb-plugin.desktop.in:
	Finish changing 'Author' to 'Authors'
	
	* rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
	(rhythmdb_entry_import_error_get_type):
	Implement get_playback_uri for import errors (returns NULL)

	* shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
	Use rhythmdb_entry_get_playback_uri to figure out if we can play the
	entry, rather than doing entry type checks.

2006-05-02  James Livingston  <doclivingston@gmail.com>

	patch from Alessandro Decina  <alessandro@nnva.org>

	* backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
	the signal emission in the case of fatal-on-init errors. From bug
	322268.

2006-05-02  James Livingston  <doclivingston@gmail.com>

	* rhythmdb/rhythmdb.h:
	* rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
	(rhythmdb_entry_finalize), (_get_podcast_playback_uri),
	(rhythmdb_entry_podcast_post_get_type),
	(rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
	virtual function to entry-types for getting the playback URI. From bug
	330226.

	* backends/gstreamer/rb-encoder-gst.c:
	(create_pipeline_and_source), (extract_track):
	* shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
	to get the URI.

2006-05-02  James Livingston  <doclivingston@gmail.com>

	patch by: Brian Cameron  <brian.cameron@sun.com>

	* sources/rb-nokia770-source.c: more Solaris build fixes, from bug
	340337.

2006-05-01  William Jon McCann  <mccann@jhu.edu>

	* plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
	instead of clear.  Use regex matching to strip "disc N"
	from album.  Match titles in ProductName.  Perform
	fallback queries including various artist compilations.
	Include "us" locale.  Improve queries when artist or album
	is unknown.  Use medium size image if large is unavailable.

	patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
	William Jon McCann  <mccann@jhu.edu>
	
2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
	RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
	(conjunctive_query): Sanity check.
	(evaluate_conjunctive_subquery): 
	Don't return TRUE immediately when a relative-time query criterion
	matches.  Fixes #339972.

2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* widgets/eggtrayicon.c: (egg_tray_icon_notify):
	Don't crash if primary or secondary are NULL.

2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* doc/reference/Makefile.am: fix gtk-doc build yet again

2006-04-28  James Livingston  <doclivingston@gmail.com>

	* plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
	python console. Fixes bug 339934.

2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_drag_data_get):
	When creating uri list drag data, create a new query model based on
	the query model the property model is attached to.  Makes the
	resulting query use the right entry type and include the upstream
	query criteria.  Fixes half of #327540.

2006-04-27  James Livingston  <doclivingston@gmail.com>

	* backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
	(profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
	build fixes.

2006-04-27  James Livingston  <doclivingston@gmail.com>

	* player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8

2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* shell/rb-playlist-manager.c: (rb_playlist_manager_init),
	(rb_playlist_manager_save_data),
	(rb_playlist_manager_save_playlists):
	* shell/rb-playlist-manager.h:
	* shell/rb-shell.c: (rb_shell_sync_state),
	(idle_save_playlist_manager):
	Remove a bit more threading insanity from the playlist manager.

2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* shell/rb-playlist-manager.c: 
	* shell/rb-playlist-manager.h:
	Remove dead code, add gtk-doc, remove threading insanity (mostly).
	
	* shell/rb-shell.c: (rb_shell_sync_state),
	(idle_save_playlist_manager), (construct_sources),
	(rb_shell_select_source), (rb_shell_sync_party_mode):
	Adjustments for above changes.

2006-04-26  William Jon McCann  <mccann@jhu.edu>

	* sources/rb-browser-source.c (impl_browser_toggled):
	Reset browser when hidden.  Fixes #339617.

2006-04-26  James Livingston  <doclivingston@gmail.com>

	* backends/Makefile.am:
	* backends/gstreamer/Makefile.am: work again with separated
	built-roots

2006-04-26  James Livingston  <doclivingston@gmail.com>

	* shell/rb-removable-media-manager.c:
	(rb_removable_media_manager_set_uimanager): fix compilation with
	-Werror and --enable-track-transfer.

2006-04-26  James Livingston  <doclivingston@gmail.com>

	Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
	implementing class. In theory allows alternate player implementations
	to be selected at run-time rather than compile-time. Fixes bug 338667.

	* Makefile.am:
	* backends/Makefile.am:
	* backends/gstreamer/Makefile.am:
	* backends/gstreamer/rb-player-gst.h:
	* backends/rb-player.c: (rb_player_interface_init),
	(rb_player_get_type), (rb_player_open), (rb_player_opened),
	(rb_player_close), (rb_player_play), (rb_player_pause),
	(rb_player_playing), (rb_player_set_volume),
	(rb_player_get_volume), (rb_player_set_replaygain),
	(rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
	(rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
	(_rb_player_emit_buffering), (_rb_player_emit_error),
	(_rb_player_emit_tick), (rb_player_error_quark):
	* player/Makefile.am:
	* player/rb-player-gst.c: (rb_player_gst_class_init),
	(rb_player_init), (tick_timeout), (rb_player_gst_init),
	(rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
	(destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
	(process_tag), (found_tag_cb), (buffering_cb),
	(rb_player_gst_bus_cb), (rb_player_gst_construct),
	(rb_player_gst_new):
	* player/rb-player.h:
	* shell/Makefile.am:
	* sources/rb-audiocd-source.c:
	* widgets/Makefile.am:
	* widgets/rb-header.c: (rb_header_class_init):

2006-04-26  James Livingston  <doclivingston@gmail.com>

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
	don't try to download an episode if it couldn't be parsed. Fixes bug
	339712.

	* shell/rb-removable-media-manager.c:
	(rb_removable_media_manager_set_uimanager): don't show the "Copy to
	Library" option when track transfer is disabled. Fixes bug 339728.

2006-04-26  James Livingston  <doclivingston@gmail.com>

	* data/ui/Makefile.am:
	* data/ui/daap-ui.xml:
	* data/ui/rhythmbox-ui.xml:
	* sources/rb-daap-source.c: (rb_daap_sources_init),
	(rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
	way that the ipod ui is. Fixes bug 339743.

2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
	(process_added_entries_cb), (process_deleted_entries_cb),
	(rhythmdb_commit_internal): 
	Combine the idle functions to emit entry-added and entry-deleted,
	and combine as many invocations of same as possible.  Another
	significant reduction in startup time.
	
	(rhythmdb_process_events), (rhythmdb_idle_poll_events):
	Delay the next call to rhythmdb_process_events if the queue is
	empty or if we can't process any of the events in the queue because
	the database is read only.

	This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.

2006-04-25  William Jon McCann  <mccann@jhu.edu>

	* player/rb-recorder-gst.c (rb_recorder_burn): Add debug.

	* sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
	Don't special case errors quite so much.

2006-04-25  William Jon McCann  <mccann@jhu.edu>

	* data/rhythmbox.schemas: Remove default speed.

	* sources/rb-playlist-source-recorder.c (update_speed_combobox):
	Add n-c-b 2.15 support.  Make the default speed to slowest since
	that is all that works reliably.

2006-04-25  William Jon McCann  <mccann@jhu.edu>

	* backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
	Fix compiler error from last commit.

2006-04-25  James Livingston  <doclivingston@gmail.com>

	patch by Alessandro Decina  <alessandro@nnva.org> to fix some
	transcoding-related issues. From bug 322268.

	* backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
	don't emit the signal, since the object is being finalised, which os a
	Bad Thing To Do.

	(profile_bin_find_encoder), (get_profile_from_mime_type),
	(transcode_track): find the encoding element by iterating looking for
	element in the class Codec/Encoder/Audio rather than the one named
	"enc".

2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* shell/rb-shell-player.xml:
	* shell/rb-shell.xml:
	Add signal argument information.  
	Patch by Tim Moloney  <t.moloney@verizon.net>

	* shell/rb-shell.c: (rb_shell_window_state_cb):
	Use the right value for the visibility_changed signal.  Most of the
	time, anyway.

2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>

	* plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
	* plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
	(impl_create_configure_dialog):
	* data/glade/audioscrobbler-prefs.glade:
	* shell/rb-audioscrobbler.c (*):
	* lib/rb-preferences.h:
	* data/rhythmbox.schemas:
	Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
	Add status information (# tracks submitted, # queued, last submit
	time, result of last submission) to the plugin config window.
	Remove 'enabled' setting, since it's easier to just disable the
	plugin.  Call the plugin 'last.fm profile', to distinguish it from the
	nonexistant (so far) 'last.fm streaming' plugin.
	
	* help/C/rhythmbox.xml: Update documentation for last.fm profile
	plugin

	Fixes some of #325848.  We still don't provide a way to view the
	submission queue.

2006-04-25  James Livingston  <doclivingston@gmail.com>

	patch by: Anders Petersson  <demitar@worldforge.org>

	* podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
	the YY-MM-DD format.

2006-04-23  James Livingston  <doclivingston@gmail.com>

	* bindings/python/override_common.c: (_helper_wrap_pointer_glist),
	(_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
	* bindings/python/override_common.h:
	* bindings/python/rb.override: python binding fixes

2006-04-23  James Livingston  <doclivingston@gmail.com>

	* shell/rb-statusbar.c: (rb_statusbar_finalize),
	(rb_statusbar_sync_with_source),
	(rb_statusbar_source_status_changed_cb): do the sync in an idle
	callback, rather than immediately every time. Takes ~5% off my warm-cache
	startup time.

	* bindings/python/rhythmdb.defs: fix the types using for
	RhythmDBEntryTypes.

2006-04-22  James Livingston  <doclivingston@gmail.com>

	* data/ui/rhythmbox-ui.xml:
	* shell/rb-shell.c:
	* sources/rb-daap-source.c: (rb_daap_source_class_init),
	(remove_source), (rb_daap_sources_init),
	(rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
	(rb_daap_source_disconnect):
	* sources/rb-source.c: (rb_source_class_init),
	(rb_source_deactivate):
	* sources/rb-source.h: move the "disconnect" functionality from into
	RBSource to RBDaapSource where it belongs. Fixes bug 338464.

2006-04-22  James Livingston  <doclivingston@gmail.com>

	* widgets/rb-library-browser.c: (rb_library_browser_constructor):
	actually get the translated strings for browser headers (they were
	already marked as translatable). Fixes bug 339380.