============ Version 0.9.4

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

	* configure.ac: bump version to 0.9.4
	* NEWS: update NEWS and 0.9.4 insert translations

	* plugins/pythonconsole/pythonconsole.py: import the rhythmdb
	namespace automatically.

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

	* plugins/pythonconsole/pythonconsole.py: import the rhythmdb
	namespace automatically.

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

	* data/rhythmbox.schemas: add the plugin's stuff to the gconf schema

	* doc/reference/Makefile.am:
	* doc/reference/rhythmbox.types: make distcheck work again

	* doc/reference/tmpl/eggnotificationbubble.sgml:
	* doc/reference/tmpl/eggtrayicon.sgml:
	* doc/reference/tmpl/rb-debug.sgml:
	* doc/reference/tmpl/rb-entry-view.sgml:
	* doc/reference/tmpl/rb-enums.sgml:
	* doc/reference/tmpl/rb-metadata.sgml:
	* doc/reference/tmpl/rb-new-station-dialog.sgml:
	* doc/reference/tmpl/rb-playlist-manager.sgml:
	* doc/reference/tmpl/rb-refstring.sgml:
	* doc/reference/tmpl/rb-shell-player.sgml:
	* doc/reference/tmpl/rb-shell-preferences.sgml:
	* doc/reference/tmpl/rb-shell.sgml:
	* doc/reference/tmpl/rb-song-info.sgml:
	* doc/reference/tmpl/rb-station-properties-dialog.sgml:
	* doc/reference/tmpl/rb-statusbar.sgml:
	* doc/reference/tmpl/rhythmbox-unused.sgml:
	* doc/reference/tmpl/rhythmdb-query-model.sgml:
	* doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff

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

	patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>

	* po/LINGUAS: don't split the variable across two lines, as it breaks
	the build. Fixes bug 338625.

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

	* shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
	add a "sourcelist-model" gobject property.

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

	* .cvsignore:
	* backends/.cvsignore:
	* backends/gstreamer/.cvsignore:
	* bindings/.cvsignore:
	* bindings/python/.cvsignore:
	* help/es/.cvsignore:
	* metadata/.cvsignore:
	* plugins/.cvsignore:
	* plugins/audioscrobbler/.cvsignore:
	* plugins/lirc/.cvsignore:
	* plugins/pythonconsole/.cvsignore:
	* plugins/sample-python/.cvsignore:
	* plugins/sample/.cvsignore:
	* shell/.cvsignore:
	* widgets/libsexy/.cvsignore:
	Make CVS ignore files.

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

	* sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
	the track-loading thread hold a reference on the source, so it doesn't
	explode if the cd is removed before it is done. Fixes bug 337237.

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

	* bindings/python/override_common.c:
	(_helper_unwrap_pointer_pylist):
	* bindings/python/override_common.h:
	* bindings/python/rb.override:
	* bindings/python/rhythmdb.override: Bind some more functions and
	virtual functions.

	* shell/rb-shell.c: (rb_shell_select_source):
	* shell/rb-source-header.c: (rb_source_header_set_source_internal):
	* sources/rb-audiocd-source.c:
	* sources/rb-auto-playlist-source.c: (impl_get_search_actions):
	* sources/rb-browser-source.c: (impl_get_search_actions):
	* sources/rb-iradio-source.c: (impl_get_ui_actions):
	* sources/rb-play-queue-source.c: (impl_get_ui_actions):
	* sources/rb-playlist-source.c: (impl_get_ui_actions):
	* sources/rb-podcast-source.c: (impl_get_ui_actions),
	(impl_get_search_actions):
	* sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
	the impl_get_ui_actions and impl_get_search_actions functions return
	lists that contain copies of the strings, instead of constant ones.
	Needed to bindings

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

	* bindings/python/rhythmdb.defs:
	* bindings/python/rhythmdb.override: fix the method argument format
	specifiers.

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

	* bindings/python/rhythmdb.defs:
	* bindings/python/rhythmdb.override:
	* rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
	(entry_to_rb_metadata), (record_entry_change),
	(rhythmdb_entry_set_visibility):
	* rhythmdb/rhythmdb.h:
	* shell/rb-shell.c: (rb_shell_get_song_properties): change
	rhythmdb_entry_get to take the db as the first parameter. Fixes the
	python bindings of it. The rhythmdb_entry_get_* ones are left the same
	since they are used in too many places, and not in the Python
	bindings.

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

	* lib/rb-debug.c: (_rb_profile_log):
	* plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
	* rhythmdb/rhythmdb.c: (rhythmdb_load):
	* shell/main.c: (main):
	* shell/rb-shell.c: (rb_shell_constructor),
	(rb_shell_set_visibility), (rb_shell_sync_window_state),
	(rb_shell_present):
	Fix profile output indentation.  Add more profiling points.
	Fixes part of #338114

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

	* shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
	library source being deleted, by setting the active source to NULL.
	From bug 338116.

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

	* rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
	Update the last-seen string when hiddenness changes.

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

	* rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
	which caused the first-seen time to be reset when a metadata load was
	done. Fixes bug 336874.

	* shell/rb-shell.h: remove old function declaration.

	* bindings/python/rhythmdb.defs:
	* bindings/python/rhythmdb.override: Fix some python binding stuff.

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

	* shell/rb-shell.c: (rb_shell_sync_toolbar_state),
	(rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
	interaction. Fixes bug 337999.

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

	patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
	track transfer. Fixes bug 338056.

	* shell/Makefile.am:

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

	* widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS

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

	* lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
	(_rb_profile_log):
	* lib/rb-debug.h:
	* shell/rb-shell.c: (construct_db), (construct_widgets),
	(construct_sources), (construct_load_ui), (rb_shell_constructor):
	Add profiling.  Fixes #337387

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

	* sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
	* widgets/rb-header.c:
	Use italics for artist and album. Fixes #336748

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

	* Makefile.am:
	* backends/gstreamer/Makefile.am:
	* configure.ac:
	* data/glade/library-prefs.glade:
	* shell/Makefile.am:
	* shell/rb-removable-media-manager.c:
	* shell/rb-removable-media-manager.h:
	* sources/Makefile.am:
	* sources/rb-audiocd-source.c:
	* sources/rb-library-source.c: (rb_library_source_class_init),
	(rb_library_source_finalize), (impl_get_config_widget),
	(rb_library_source_preferences_sync), (impl_can_paste): add a
	--enable-track-transfer configure option, abd make cd ripping disabled
	by default.

	* shell/rb-source-header.c:
	* sources/rb-source.c: (rb_source_class_init),
	(rb_source_delete_thyself), (default_get_entry_view):
	* lib/rb-glade-helpers.c:
	* shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
	some compiler warnings, and also bug 337427.

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

	* shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
	(rb_shell_player_repeat_changed_cb): don't fail to set the play order
	if the gconf key is missing. Fixes bug 337742.

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

	patch by: Alex Lancaster  <alexl@users.sourceforge.net>
	to fix build problems I caused with a commit yesterday. Fixed bug
	337806.

	* daapsharing/rb-daap-mdns-browser-howl.c:
	(rb_daap_mdns_browser_class_init):
	* podcast/Makefile.am:
	* rhythmdb/Makefile.am:
	* widgets/eggtrayicon.h:

2006-04-09  Steve Frécinaux  <steve@istique.net>

	* configure.ac:
	* po/LINGUAS:
	
	Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
	translators' life easier.

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

	* bindings/python/rb.defs:
	* bindings/python/rb.override: add bindings for most RBSource virtual
	functions.

	* sources/rb-source.h:
	* sources/rb-source.c: (rb_source_class_init): make
	impl_get_browser_key return a non-consht string, since Python can't
	really give us constant strings.

	* shell/rb-source-header.c: (rb_source_header_finalize),
	(rb_source_header_set_source_internal):
	* sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
	* sources/rb-iradio-source.c: (impl_get_browser_key):
	* sources/rb-library-source.c: (impl_get_browser_key):
	* sources/rb-playlist-source.c:
	* sources/rb-browser-source.c: (rb_browser_source_constructor),
	(rb_browser_source_state_prefs_sync):
	* sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
	above change.

	* plugins/sample-python/sample-python.py: show how to add a new
	source.

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

	* daapsharing/Makefile.am:
	* daapsharing/rb-daap-connection.c:
	(rb_daap_connection_class_init):
	* daapsharing/rb-daap-marshal.list:
	* daapsharing/rb-daap-mdns-browser-avahi.c:
	(rb_daap_mdns_browser_class_init):
	* lib/rb-marshal.list:
	* player/Makefile.am:
	* player/rb-recorder-gst.c: (rb_recorder_class_init):
	* player/rb-recorder-marshal.list:
	* podcast/Makefile.am:
	* podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
	* podcast/rb-podcast-marshal.list:
	* rhythmdb/Makefile.am:
	* rhythmdb/rhythmdb-marshal.list:
	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_class_init):
	* rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
	into one file, as there is no point having several of them.

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

	* lib/Makefile.am:
	* lib/rb-enums.h:
	* widgets/Makefile.am:
	* widgets/eggnotificationbubble.c:
	* widgets/eggnotificationbubble.h:
	* widgets/rb-song-info.c: remove lib/rb-enums.h and
	widgets/eggnotificationbubble.{c,h}, since they aren't used any more

	* rhythmdb/rhythmdb-property-model.h:
	* rhythmdb/rhythmdb-query-model.h:
	* rhythmdb/rhythmdb.h:
	* shell/rb-playlist-manager.h:
	* widgets/rb-cell-renderer-pixbuf.h:
	* widgets/rb-cell-renderer-rating.h:
	* widgets/rb-rating.h: fix the prototypes of various class-closures.

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

	* widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
	so we can build without a system-wide installed copy.

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

	* data/glade/general-prefs.glade:
	* data/rhythmbox.schemas:
	* lib/rb-glade-helpers.c: (rb_glade_boldify_label),
	(rb_combo_box_hyphen_separator_func):
	* lib/rb-glade-helpers.h:
	* lib/rb-preferences.h:
	* shell/rb-shell-preferences.c: (rb_shell_preferences_init),
	(rb_shell_preferences_sync),
	(rb_shell_preferences_toolbar_style_cb),
	(rb_shell_preferences_browser_views_activated_cb):
	* shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
	(rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
	overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.

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

	* sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
	data that MusicBrainz returns to us. Last part of bug 334167.

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

	* podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
	crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.

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

	* widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
	the entry view properly when the rows are reordered. Fixes bug 337019.

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

	* configure.ac:
	* widgets/Makefile.am:
	* widgets/libsexy/Makefile.am:
	* widgets/libsexy/sexy-icon-entry.c:
	* widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
	libsexy, and allow building against it or a system-wide installed
	copy.


	* widgets/rb-search-entry.c: (rb_search_entry_init),
	(rb_search_entry_changed_cb): use libsexy to add a clear button to the
	search box. Fixes bug 128109.

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

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

	* widgets/rb-entry-view.c: (rb_entry_view_init),
	(rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
	and Pause icons rather than the volume ones in the Now Playing column.
	Closes bug 336482.

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

	* bindings/python/override_common.h:
	* bindings/python/rb.override:
	* bindings/python/rhythmdb.override: bind some more functions 

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

	* metadata/rb-metadata-dbus-service.c: (_send_error):
	Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
	are sent properly and we don't get 'method doesn't exist' messages
	from dbus instead.

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

	* bindings/python/override_common.h:
	* bindings/python/override_common.c: (_helper_wrap_pointer_glist),
	(_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
	more utility functions for C<->Python conversions

	* widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
	(rb_entry_view_state_get_type):
	* widgets/rb-entry-view.h: make the colume type and entry view state
	GTypes

	* bindings/python/Makefile.am:
	* bindings/python/rb.defs:
	* bindings/python/rb.override: bind RBEntryView, RBPropertyView and
	RBSource.

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

	* backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
	initialiser for a GError

	* sources/rb-source.c: (rb_source_eof_type_get_type):
	* sources/rb-source.h: add a GType for RBSourceEOFType

	* bindings/python/Makefile.am:
	* bindings/python/rb.defs:
	* bindings/python/rb.override: bind RBSource and RBSourceList

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

	* shell/rb-shell-player.c: (rb_shell_player_class_init),
	(rb_shell_player_get_property),
	(rb_shell_player_get_active_source),
	(rb_shell_player_set_playing_source_internal):
	* shell/rb-shell-player.h:
	Change 'playing-from-queue' from being a signal to being a property.

	* shell/rb-shell.c: (rb_shell_constructor),
	(rb_shell_playing_from_queue_cb),
	(rb_shell_view_queue_as_sidebar_changed_cb),
	(rb_shell_jump_to_entry_with_source):
	When the queue side pane is used, make 'jump to current' jump to the
	entry in the registered source for its type, rather than in the queue,
	and show it as playing in that source.
	
	* sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
	* sources/rb-sourcelist.h:
	Remove the 'preempted source' stuff, since it wasn't doing anything
	anyway.

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

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
	(download_progress_cb): Canonicalise downloaded file location before
	setting the mountpoint property of the corresponding entry.
	Fixes #337287 and a couple of memory leaks.

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

	* metadata/rb-metadata-dbus-service.c: (test_can_save),
	(test_load), (main): Call g_set_prgname, report errors more
	usefully in test mode.
	* metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
	(rb_metadata_load): Don't ignore the have-type signal for non-audio
	files.  Run the event loop when the state change fails so we get the
	error messages from the bus.  Fixes #336921.

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

	* data/art/Makefile.am: Install media-eject.

	* lib/rb-stock-icons.c (rb_stock_icons_init): Check
	return value of rb_file.

	Fixes #337209

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

	Patch by: William Jon McCann  <mccann@jhu.edu>

	* metadata/test-metadata.c: (main): Use GOption to parse arguments.
	* podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
	Fix GError leak.

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

	* backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
	Don't try to add a date when we don't have one.  Fixes #336741.

	Also fix variable declaration in middle of block.

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

	* shell/rb-shell-player.c: (rb_shell_player_playpause):
	Don't crash if source is already NULL.  Hackishly fixes bug #336912.

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

	* metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
	inverted logic causing imports to fail.

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

	* shell/main.c: (main): Fix dbusless build.

2006-04-02  Christophe Fergeau  <teuf@gnome.org>

	* player/rb-recorder-gst.c: fix packing of the C struct holding a
	wav header for non-gcc compilers (not tested much, was only written
	according to docs)

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

	* shell/main.c: (main): Check if we got a dbus connection before
	trying to create a proxy for the shell object.  Fixes #336634.

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

	* doc/reference/Makefile.am:
	* plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
	* shell/rb-source-header.c:
	* sources/rb-generic-player-source.c:
	(default_transform_playlist_uri):
	Fix various build issues.  Patch approximately 50% by Alex Lancaster
	<alexl@users.sourceforge.net>

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

	* configure.ac: Detect LIRC.
	
	* plugins/Makefile.am:
	* plugins/lirc/Makefile.am:
	* plugins/lirc/lirc.rb-plugin.desktop.in:
	* plugins/lirc/rb-lirc-plugin.c:
	LIRC plugin.

	* shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
	Remove obsolete files.

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

	* sources/rb-generic-player-source.c:
	(default_transform_playlist_uri): consider playlist paths as relative
	to the volume root by default, since that is what most players use.

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

	* lib/rb-util.c: (rb_mime_get_friendly_name):
	* lib/rb-util.h: add helper function to get the "friendly" name for a
	mime-type

	* metadata/rb-metadata-gst.c: (rb_metadata_init),
	(rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
	the user better error messages about undecodable streams, using the
	"friendly" name if possible. Fixes bug 128109.

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

	* backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
	(start_pipeline): fix building with gstreamer 0.8

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

	* sources/rb-podcast-source.c: (impl_delete),
	(rb_podcast_source_cmd_delete_feed),
	(rb_podcast_source_cmd_update_feed): copy the list before traversing
	it, since it may change during traversal. Fixes bug 336204.

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

	* data/art/media-eject.png: add the media-eject icon from Banshee
	(BSD-licensed), for use when the user's icon theme doesn't have one.

	* lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
	bug 334897.

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

	* shell/rb-shell-player.h:
	* shell/rb-shell-player.c: (rb_shell_player_play),
	(rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
	new rb_shell_player_{play,pause} functions, so everyone doesn't have
	to do rb_shell_player_playing followed by rb_shell_player_playpause.

	* shell/rb-shell.c: (rb_shell_sync_smalldisplay),
	(rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
	* shell/rb-shell.h: add rb_shell_get_ui_manager.

	* bindings/python/rb.defs: bind the above to Python, and remove some
	useless stuff from the bindings.

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

	* backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
	number tag.

	* shell/rb-shell.c:
	* shell/rb-shell.h: export rb_shell_get_source_by_entry_type.

	* sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
	to true.

	* sources/rb-iradio-source.c: (rb_iradio_source_class_init):
	* sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
	method assigning, so it's understandable

	* sources/rb-library-source.c: (rb_library_source_class_init),
	(impl_paste): rather than hard-coding the types to ignore, use
	rb_source_can_copy.

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

	* sources/rb-library-source.c:
	(rb_library_source_preferences_sync):
	Don't crash if no audio profile is selected and the gconf schemas are 
	not installed.

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

	* plugins/rb-python-module.c: (rb_python_module_load): add a missing
	"*" which caused compilation to fail

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

	* configure.ac:
	* Makefile.am:
	* backends/Makefile.am:
	* backends/gstreamer/Makefile.am:
	* backends/gstreamer/rb-encoder-gst.c:
	* backends/gstreamer/rb-encoder-gst.h:
	* backends/rb-encoder.c:
	* backends/rb-encoder.h: add a interface for transcoding, and a
	GStreamer implementation of it (based on Sound-Juicer's code).

	* shell/Makefile.am:
	* shell/rb-removable-media-manager.c:
	(rb_removable_media_manager_class_init),
	(rb_removable_media_manager_init),
	(rb_removable_media_manager_dispose),
	(rb_removable_media_manager_finalize),
	(rb_removable_media_manager_scan), (emit_progress), (error_cb),
	(progress_cb), (completed_cb), (do_transfer),
	(rb_removable_media_manager_queue_transfer), (copy_entry),
	(rb_removable_media_manager_cmd_copy_tracks):
	* shell/rb-removable-media-manager.h: use the encoder interface to
	perform transfers of entries to other locations

	* shell/rb-shell-player.c: (open_location_thread):
	* shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
	(rb_shell_constructor), (rb_shell_transfer_progress_cb),
	(rb_shell_quit):
	* shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
	progress in the status bar.

	* shell/rb-shell-preferences.c: (rb_shell_preferences_init),
	(rb_shell_preferences_sync),
	(rb_shell_preferences_browser_views_activated_cb):
	* data/glade/general-prefs.glade: move the browser views setting from
	the library tab to the general one.

	* data/glade/library-prefs.glade: add settings for the layout of the
	user's library, and their preferred encoding format (e.g. for CD
	ripping).

	* lib/rb-preferences.h:
	* data/rhythmbox.schemas: add keys for the above options (and a few
	other minor ones)

	* rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
	* rhythmdb/rhythmdb.h: add a new function for creating an "example"
	entry, that isn't inserted into the database.

	* sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
	(rb_audiocd_create_track_entry):
	* data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
	cds, and set the mime-type of audio cd tracks correctly.

	* sources/rb-library-source.c: (rb_library_source_class_init),
	(rb_library_source_finalize),
	(rb_library_source_edit_profile_clicked_cb),
	(impl_get_config_widget), (rb_library_source_preferences_sync),
	(impl_receive_drag), (rb_library_source_path_changed_cb),
	(rb_library_source_filename_changed_cb),
	(rb_library_source_format_changed_cb), (sanitize_path),
	(filepath_parse_pattern), (layout_example_label_update),
	(rb_library_source_layout_path_changed),
	(rb_library_source_layout_filename_changed), (build_filename),
	(impl_can_paste), (completed_cb), (impl_paste): allow the copying of
	entries to the library. Large chunks of code for determining the
	destination file name stolen from Sound-Juicer.

	* sources/rb-sourcelist-model.c: (path_is_droppable):
	* shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
	* sources/rb-static-playlist-source.c:
	(rb_static_playlist_source_class_init):
	* sources/rb-removable-media-source.c:
	(rb_removable_media_source_class_init):
	* sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
	(rb_source_can_paste):
	* sources/rb-source.h: add a new _can_paste method, and use it (rather
	than _can_copy) to determine whether we can paste into the source.


2006-03-31  Steve Frécinaux  <steve@istique.net>

	* plugins/rb-python-module.c: allow import of python modules with a '.'
	(gedit's bug 336403). Patch by Johan Dahlin.

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

	* sources/rb-library-source.c: 
	* sources/rb-library-source.h:
	* sources/rb-browser-source.c:
	* sources/rb-browser-source.h: Split RBLibrarySource into two.
	RBBrowserSource now contains all the stuff for having a source which
	views a particular entry type (including browsers and searching).
	RBLibrarySource derives from this, and includes the library-specific
	stuff, like importing and library watching. Fixes some issues where
	library-derived sources were doing things that should be
	library-specific. Fixes bug 335185.

	* data/ui/rhythmbox-ui.xml:
	* sources/Makefile.am: modifications for the above

	* sources/rb-daap-source.c: (rb_daap_source_class_init),
	(rb_daap_source_get_paned_key):
	* sources/rb-daap-source.h:
	* sources/rb-ipod-source.c: (rb_ipod_source_constructor):
	* sources/rb-removable-media-source.c:
	(rb_removable_media_source_class_init):
	* sources/rb-removable-media-source.h: derive from RBBrowserSource
	instead of RBLibrarySource.

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

	* rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
	I buggered up when changing from GnomeVFSFileSize.

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

	* configure.ac: lower pygtk deps to 2.6, and add a makefile variable
	for "-Wno-error".

	* bindings/python/rb.override:
	* bindings/python/Makefile.am: make the RB python bindings depend on
	the RhythmDB ones, and use "-Wno-error" since the machine-generated
	code sometimes emits warnings.

	* shell/rb-shell-player.c: (rb_shell_player_class_init),
	(rb_shell_player_error_get_type):
	* shell/rb-shell-player.h:
	* bindings/python/rb.defs: add bindings for RBShellPlayer

	* rhythmdb/rhythmdb.c: (rhythmdb_init),
	(rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
	(rhythmdb_entry_get_type), (rhythmdb_query_get_type):
	* rhythmdb/rhythmdb.h:
	* shell/rb-shell.c: (rb_shell_get_song_properties):
	* widgets/rb-entry-view.c: (propid_from_name):
	* widgets/rb-property-view.c: (rb_property_view_class_init):
	* bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
	than just plain GPtrArray, and add bindings for it.

	* bindings/python/rhythmdb.override: wrap some functions that use
	GValues

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

	* rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
	Only watch directories from which entries of type SONG have been
	added.

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

	* widgets/rb-library-browser.c: (rb_library_browser_set_selection):
	No need to restore the selection after rebuilding the child model,
	since that can't have changed the selection.

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

	* bindings/python/override_common.c:
	* bindings/python/override_common.h: add some for missing files to
	cvs.

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

	* configure.ac:
	* bindings/python/Makefile.am: remove usage of gtksourceview, it was
	copied from gedit's autofoo and we don't need it

	* bindings/python/rhythmdb.defs:
	* bindings/python/rhythmdb.override: add missing files to cvs

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

	* data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
	* metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
	before running any of the debug/test modes.
	* plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
	Make plugin loading work when running uninstalled from the shell/
	directory.

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

	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_sync),
	(rhythmdb_property_model_column_get_type):
	* rhythmdb/rhythmdb-property-model.h: make the column enum a GType

	* rhythmdb/rhythmdb-private.h:
	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_class_init):
	* rhythmdb/rhythmdb-query-model.h:
	* rhythmdb/rhythmdb.c: (rhythmdb_class_init),
	(rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
	(rhythmdb_entry_get_type):
	* rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.

	* widgets/rb-query-creator-properties.c:
	* widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
	was missing.

	* bindings/python/Makefile.am:
	* bindings/python/rb.defs:
	* bindings/python/rb.override:
	* plugins/rb-python-module.c: (rb_python_module_init_python): add
	Python bindings for RhythmDB.

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

	* shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
	sharing when using --no-registration

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

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_reapply_query):
	Don't remove entries while iterating, as it breaks the sequence
	nodes.  Instead, collect a list of removed entries and process it
	after iterating the sequence.  Fixes #334642.

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

	* plugins/rb-plugin-manager.c: (active_toggled_cb),
	(row_activated_cb), (plugin_manager_toggle_all):
	* sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
	(rb_sourcelist_visible_source_to_iter), (row_activated_cb),
	(button_press_cb), (source_name_edited_cb):
	* widgets/rb-property-view.c: (rb_property_view_set_property),
	(rb_property_view_post_row_deleted_cb),
	(rb_property_view_row_activated_cb),
	(rb_property_view_selection_changed_cb),
	(rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
	ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.

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

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_drag_data_received):
	Increment the reference count for entries added by drag and drop.
	Fixes #336045.

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

	* daapsharing/rb-daap-connection.c: (entry_set_string_prop):
	* metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
	Ignore invalid UTF-8 strings.  Fixes most of #334167.

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

	* shell/rb-shell.c: (rb_shell_constructor),
	(rb_shell_sync_window_state): fix a maximise-realise race that would
	cause some widgets to be resized after we had explicity set theri
	size. Hopefully fixes bug 331927.

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

	* plugins/rb-plugin-manager.c: (active_toggled_cb),
	(row_activated_cb), (plugin_manager_set_active),
	(plugin_manager_toggle_active), (plugin_manager_toggle_all): update
	configure button sensitivity when a plugin is enabled/disabled.

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

	* data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
	stop warnings, only the vbos is used anyway

	* plugins/rb-plugins-engine.c: (garbage_collect_cb),
	(rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
	collection every now an then.

	* plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
	if we are finalising because the python object couldn't be created.

	* plugins/rb-python-module.c: (rb_python_module_new_object): return
	NULL if the python-side object couldn't be created. Stops crashes when
	the object is later used when it doesn't exist in Python.

	(run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
	(rb_python_shutdown): do better garbage collection when shutting down.
	Fixes the problem where Python was holding a reference to the shell,
	causing RB not to exit.

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

	* configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
	336131.

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

	* data/iradio-initial.pls: Change the AfterHours DJ stream address.
	From bug 334829.

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

	* rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
	library location list to NULL after we free it. Fixes bug 336047.

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

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

	* sources/rb-audiocd-source.c: use the release-date that MusicBrainz
	supplies. Fixes bug 335947.

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

	* data/glade/audioscrobbler-prefs.glade:
	* shell/rb-audioscrobbler.c:
	(rb_audioscrobbler_enabled_check_changed_cb): move and rename the
	"submit songs" checkbox, and make it not disable username/password
	entry. This will be needed when we support other last.fm stuff
	(profile access, radio, etc).

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

        * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
        Volume should not display stock_volume-0 for volume > 0. Fixes bug
	335777.

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

	* shell/rb-shell-player.c: (rb_shell_player_set_property),
	(rb_shell_player_sync_play_order),
	(rb_shell_player_play_order_update_cb),
	(actually_set_playing_source): update the next/previous availablility
	in places where it was missing. Fixes bug 335490.

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

	* lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
	can't find the widget

	* lib/rb-util.c: (rb_uri_list_parse):
	* lib/rb-util.h: add function for parsing a URI list into strings.

	* metadata/Makefile.am: make the metdata helper build when linking
	with --as-needed

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
	g_mkdir_with_parents instead of coding our own.

	* podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
	<itunes:author> over <generator>, instead of using whichever comes
	last.

	* rhythmdb/rhythmdb-private.h:
	* rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
	field, as we don't ever check it (to detect corruption). Saves a bit
	of memory.

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

	* lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
	(rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
	Escape '&' and '=' in the paths we get back from
	gnome_vfs_directory_visit.  Fixes #333998 a bit more.

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

	* shell/rb-shell.c: (rb_shell_constructor):
	Issue startup notification after creating the main window, so
	notification is issued whether the window is visible or not.
	Fixes #335086.

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

	* sources/rb-auto-playlist-source.c: (impl_search),
	(rb_auto_playlist_source_query_complete_cb),
	(rb_auto_playlist_source_do_query):
	* sources/rb-library-source.c: (impl_search),
	(rb_library_source_query_complete_cb),
	(rb_library_source_do_query):
	Defer subset searches (where text is appended to an existing search)
	until the original query is complete.

2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>

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

	* rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
	(rb_refstring_get_sort_key): fixes for strict-aliasing

2006-03-21  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
	importing a single file. Fixes bug 335307.

2006-03-21  James Livingston  <jrl@ids.org.au>

	* shell/Makefile.am: remove the reference to backends/ that I
	accidently included.

2006-03-21  James Livingston  <jrl@ids.org.au>

	patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
	with Forte (on Solaris). Closes bug 335318.

	* configure.ac:
	* lib/Makefile.am:
	* player/rb-recorder-gst.c:
	* podcast/rb-podcast-parse.c:
	* remote/bonobo/Makefile.am:
	* remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
	* rhythmdb/rhythmdb-query-model.c: (idle_process_update),
	(rhythmdb_query_model_add_entry),
	(rhythmdb_query_model_add_results):
	* rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
	* rhythmdb/rhythmdb.h:
	* shell/Makefile.am:
	* sources/rb-playlist-source-recorder.c: (get_write_speeds),
	(update_speed_combobox):
	* sources/rb-sourcelist-model.c:

2006-03-21  James Livingston  <jrl@ids.org.au>

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

	* player/Makefile.am:
	* shell/Makefile.am: work correctly with a separate build root.

2006-03-21  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
	get handed NULL.

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

	* rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
	Only create ignore entries when importing into the library.  
	Ignore entries for files in removable media sources don't help.

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

	* shell/rb-source-header.c: (rb_source_header_focus_search_box):
	* shell/rb-source-header.h:
	* widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
	* widgets/rb-search-entry.h:
	Add functions to make the search box grab focus.

	* shell/rb-shell.c: (rb_shell_cmd_view_all):
	Focus the search box after handling the 'view all' action.

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

	* rhythmdb/rhythmdb.h:
	* rhythmdb/rhythmdb.c: (rhythmdb_init),
	(rhythmdb_execute_multi_stat_info_cb),
	(rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
	(rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
	(action_thread_main):
	Collect all the get_file_info requests on startup into one gnome-vfs
	job to reduce overhead and avoid contention for the rhythmdb lock.
	Add a new method to call when all initial query models are set up.
	
	* shell/rb-shell.c: (idle_handle_load_complete):
	Call rhythmdb startup complete function when we've loaded all the
	playlists.  Fixes #334106.

2006-03-20  James Livingston  <jrl@ids.org.au>

	* widgets/rb-entry-view.c: (rb_entry_view_set_property),
	(rb_entry_view_selection_changed_cb),
	(rb_entry_view_have_complete_selection): make has_complete_selection
	not slow. Fixes a performance issue I added a week or so ago.

2006-03-20  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
	before passing to strcmp. From bug 334559.

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

	* configure.ac:
	* lib/Makefile.am:
	* lib/rb-proxy-config.c:
	* lib/rb-proxy-config.h:
	Add a new object to watch the HTTP proxy configuration and emit
	signals when it changes.

	* shell/rb-audioscrobbler.c:
	* shell/rb-audioscrobbler.h:
	Use rb-proxy-config to watch HTTP proxy configuration.

	* shell/rb-shell.c:
	Construct rb-proxy-config object on startup, and remove all
	audioscrobbler references.

	* shell/Makefile.am:
	* plugins/audioscrobbler/Makefile.am:
	* plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
	Move all audioscrobbler code into the plugin.  We should move
	rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
	point.  Don't use a private data structure in the plugin, since the
	class definition isn't in a header file.  Fixes #335091.

2006-03-20  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
	don't enable Next if the source has an EOS type other than
	RB_SOURCE_EOF_NEXT. Fixes bug 315120.

2006-03-20  James Livingston  <jrl@ids.org.au>

	* widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
	(rb_song_info_forward_clicked_cb): deal with there being no
	next/previous entry.

	(rb_song_info_query_model_inserted_cb),
	(rb_song_info_query_model_deleted_cb),
	(rb_song_info_query_model_reordered_cb),
	(rb_song_info_query_model_changed_cb): monitor the query for changes,
	to update the button status. Fixes bug 333293.

2006-03-20  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
	caused by my last commit

2006-03-20  James Livingston  <jrl@ids.org.au>

	* bindings/python/Makefile.am:
	* bindings/python/rb.defs:
	* bindings/python/rb.override: add python bindings of RBRemoteProxy

	* shell/rb-shell.c: (rb_shell_constructor),
	(rb_shell_set_visibility), (rb_shell_window_delete_cb): change
	tray-icon detection slightly

2006-03-19  Steve Frécinaux  <steve@istique.net>

	* data/ui/rhythmbox-ui.xml:
	* shell/rb-shell.c:

	Add an empty Tool Menu (hidden by default) containing placeholders for
	plugins.

	* configure.ac:
	* plugins/Makefile.am:
	* plugins/pythonconsole/Makefile.am:
	* plugins/pythonconsole/pythonconsole.py:
	* plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
	
	Python Console plugin

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

	* lib/rb-file-helpers.c: (rb_canonicalise_uri):
	Extra step to encode '&' and '=' to match what gnome-vfs does
	internally.
	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
	(rhythmdb_tree_save):
	Increment rhythmdb xml version to 1.2, and force another uri
	re-canonicalisation when loading v1.1 databases.
	Fixes bug #333998.

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

	* daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
	(avahi_client_init), (browse_cb):
	* daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
	(avahi_client_init):
	Fix compilation with Avahi 0.5.x (bug #334551).

2006-03-19  James Livingston  <jrl@ids.org.au>

	Add Increase/Decrease Volume menu items and keybindings. From bug
	123383.

	* data/ui/rhythmbox-ui.xml:
	* shell/rb-shell-player.c: (rb_shell_player_constructor),
	(rb_shell_player_init), (rb_shell_player_cmd_volume_up),
	(rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):

2006-03-19  James Livingston  <jrl@ids.org.au>

	patch by: Mikhail Zabaluev  <mhz@altlinux.org>

	* shell/Makefile.am: fix the link order, so that we compile with
	"LDFLAGS=-Wl,--as-needed". Fixes bug 334852.

2006-03-19  James Livingston  <jrl@ids.org.au>

	patch by: Adam Petaccia  <adam@tpetaccia.com>

	* data/ui/rhythmbox-ui.xml: move preferences below "configure
	plugins". Fixes bug 335037.

2006-03-18  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
	(rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
	332992.

	* widgets/rb-header.c: don't make artist/album info in the header the
	small size, since it's hard to read.

2006-03-16  William Jon McCann  <mccann@jhu.edu>

	* rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
	(rhythmdb_finalize): Don't leak the hash tables.
	(rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
	(rhythmdb_commit_internal): Make sure to process the deletions.
	(rhythmdb_entry_delete): Use a hash.

	* podcast/rb-podcast-manager.c: Random analness about char*
	(rb_podcast_manager_remove_feed): Add debugging.
	(rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
	the result of gnome_vfs_unlink.  Don't leak a uri.

	Fixes #334786

2006-03-18  James Livingston  <jrl@ids.org.au>

	* NEWS: update NEWS file

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

	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_prop_changed_cb):
	Remove entries from the hash table after processing visible->hidden
	changes.

2006-03-16  William Jon McCann  <mccann@jhu.edu>

	* sources/rb-daap-source.c (connection_connected_cb) 
	(connection_disconnected_cb): Add debug.
	(rb_daap_source_get_headers): Check for NULL connection.

	* daapsharing/rb-daap-src.c (rb_daap_src_open):
	Check return value of rb_daap_source_get_headers.

	Fixes #332089

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

	* widgets/rb-library-browser.c: (rb_library_browser_set_selection):
	Restore the selection after rebuilding the child model, so the
	selection is shown correctly after using the 'browse this
	album/artist/genre' menu items.

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

	* widgets/rb-entry-view.c: (rb_entry_view_set_property):
	Clear the selection before changing the active model.
	Fixes crash reported in bug 334549.

2006-03-15  James Livingston  <jrl@ids.org.au>

	* shell/rb-tray-icon.c: (rb_tray_icon_constructor),
	(rb_tray_icon_sync_action):
	* widgets/eggtrayicon.c: (egg_tray_icon_send_message),
	(egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
	for non-libnotify notification bubbles. Fixes bug 331721.

2006-03-15  James Livingston  <jrl@ids.org.au>

	Add search-bar options to playlists. Fixes bug 334407.

	* sources/rb-auto-playlist-source.c:
	(rb_auto_playlist_source_class_init),
	(rb_auto_playlist_source_constructor),
	(rb_auto_playlist_source_do_query), (impl_get_search_actions),
	(search_action_to_prop), (search_action_changed):
	* sources/rb-static-playlist-source.c:
	(rb_static_playlist_source_class_init),
	(rb_static_playlist_source_constructor),
	(construct_query_from_selection), (impl_get_search_actions),
	(search_action_to_prop), (search_action_changed):

2006-03-14  William Jon McCann  <mccann@jhu.edu>

	* shell/rb-source-header.c (rb_source_header_set_source_internal):
	Remove broken attempt at making the search bar buttons not
	homogeneous.  It wasn't working and was causing some UI sizing weirdness.

2006-03-14  William Jon McCann  <mccann@jhu.edu>

	* sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
	Chain up to parent's dispose instead of finalize.  Fixes #334479.

2006-03-14  William Jon McCann  <mccann@jhu.edu>

	* widgets/rb-header.c (rb_header_sync): Escape album and
	artist before adding to markup.

2006-03-14  William Jon McCann  <mccann@jhu.edu>

	* shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
	* widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
	(rb_header_set_property), (rb_header_get_property),
	(rb_header_sync):
	Remove the GnomeUrl song links until we can do it properly.
	Fixes #334453.

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

	* shell/rb-source-header.c: (rb_source_header_clear_search):
	Remove the stored search text from the hash table, so it doesn't
	reappear after switching to another source and back.

	* sources/rb-auto-playlist-source.c: (impl_search):
	* sources/rb-library-source.c: (impl_search), (impl_reset_filters):
	* sources/rb-static-playlist-source.c: (impl_search):
	Make sure all sources treat impl_search(NULL) and impl_search("") the
	same.  Fixes #334525.

2006-03-14  James Livingston  <jrl@ids.org.au>

	Store which thread created new entries, and make rhythmdb_commit only
	insert the entries for the thread that calls it. This stops one thread
	calling rhythmdb_commit inserting entries that are half-way through
	construction by another thread (as happens with audio cds). From bug
	330226.

	* rhythmdb/rhythmdb.c: (rhythmdb_init),
	(rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
	(rhythmdb_commit_internal), (timeout_rhythmdb_commit),
	(rhythmdb_add_timeout_commit), (rhythmdb_commit),
	(rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
	(rhythmdb_process_metadata_load),
	(rhythmdb_process_queued_entry_set_event),
	(rhythmdb_prop_get_type):

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

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
	(rhythmdb_query_model_finalize):
	Move object unrefs from _finalize into _dispose.
	
	* shell/rb-play-order.c: (rb_play_order_query_model_changed):
	Remove extra g_object_ref that was causing query model leaks.
	
	* sources/rb-iradio-source.c: (rb_iradio_source_dispose),
	(rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
	(genre_selection_reset_cb), (rb_iradio_source_do_query):
	Remove the cached 'all' query, since it doesn't really help and it
	makes the code more complicated.  Attach the genre property view to
	the query model build from the search text, so only genres for
	stations matching the search terms are displayed.  Preserve the genre
	selection across searches.

	* widgets/rb-library-browser.c: 
	(rb_library_browser_class_init), (rb_library_browser_get_property):
	Add properties for the input and output models for the browser, and
	remove the 'changed' signal as we can just use notify::output-model.
	(ignore_selection_changes),
	(selection_restore_data_destroy), (query_complete_cb),
	(restore_selection): Helper functions for preserving selections across
	query model rebuilds.
	(rebuild_output_model):  New function for creating a query model to
	use as the display model for a source using the browser.
	(rebuild_child_model): Add a call to rebuild_output_model, add missing
	g_object_unrefs, reuse the parent's query model when there's no
	selection, and use ignore_selection_changes and restore_selection.
	(rb_library_browser_set_selection): rebuild_child_model emits the
	changed signal, so no need to do it here.
	(rb_library_browser_set_model): Add missing g_object_unrefs, and use
	ignore_selection_changes and restore_selection. 
	* widgets/rb-library-browser.h: Remove 'changed' signal, and add a
	flag to rb_library_browser_set_model indicating whether the query is
	asynchronous.

	* sources/rb-static-playlist-source.c:
	(rb_static_playlist_source_class_init),
	(rb_static_playlist_source_dispose):
	(rb_static_playlist_source_constructor):  Add an extra reference on
	the base model, so it doesn't vanish when we set a new display model
	based on a search or browser selection.
	(impl_search): Ensure the search_text field in the source is NULL if
	the search box is empty.
	(construct_query_from_selection),
	(rb_static_playlist_source_do_query): Use the query model constructed
	from the search as the input model for the browser.
	(rb_static_playlist_source_browser_changed_cb): Use the browser's
	output model as the query model for the source.

	* sources/rb-auto-playlist-source.c:
	(rb_auto_playlist_source_finalize): Free more stuff.
	(rb_auto_playlist_source_constructor),
	(rb_auto_playlist_source_browser_changed_cb):
	Update for rb-library-browser changes, use the browser's output query
	model as the query model for the source.
	(impl_reset_filters), (impl_search), 
	(rb_auto_playlist_source_do_query),
	(rb_auto_playlist_source_set_query):
	Use the query model constructed from the search text as the input to
	the library browser, and when adding text to an existing search, apply
	the new query to the existing query model.
	
	* sources/rb-library-source.c: (rb_library_source_dispose):
	(rb_library_source_finalize): Chain dispose up to the parent class.
	(rb_library_source_constructor): Update for rb-library-browser
	changes. 
	(impl_search): Ensure search_text is NULL if the search box is empty,
	and use the subset flag to _do_query if text has been appended to an
	existing search.
	(search_action_changed), (impl_reset_filters):
	(rb_library_source_browser_changed_cb),
	(rb_library_source_do_query): Use the browser's output model as the
	query model for the source.

	Rework library and playlist sources to use a single query chain,
	and to limit the entries shown in property views based on the search
	terms.  Fixes bug #322787.

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

	* configure.ac:  Enable metadata helper by default, and fix a typo.

2006-03-13  James Livingston  <jrl@ids.org.au>

	Make RBRefStrings lazily create the folded and sort-key strings when
	they are first used. This will same some memory by not creating ones
	that are never used, and delaying some of the others to when the user
	resorts or performs a similar action. Fixes bug 332992.

	* rhythmdb/rb-refstring.c: (rb_refstring_free),
	(rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
	(rb_refstring_get), (rb_refstring_get_folded),
	(rb_refstring_get_sort_key), (rb_refstring_hash),
	(rb_refstring_equal):
	* rhythmdb/rb-refstring.h:
	* rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):

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

	* data/ui/rhythmbox-ui.xml:
	* lib/rb-stock-icons.c: (rb_stock_icons_init):
	* lib/rb-stock-icons.h:
	* shell/rb-shell-player.c:
	* shell/rb-shell.c: (rb_shell_constructor):
	* shell/rb-source-header.c: (force_no_shadow),
	(ui_manager_add_widget_cb), (rb_source_header_constructor),
	(rb_source_header_class_init), (rb_source_header_init),
	(merge_source_ui_cb), (toolbar_set_homogeneous),
	(rb_source_header_set_source_internal),
	(rb_source_header_set_property), (rb_source_header_get_property),
	(rb_source_header_set_source), (rb_source_header_new),
	(rb_source_header_filter_changed_cb):
	* shell/rb-source-header.h:
	* sources/rb-library-source.c: (rb_library_source_class_init),
	(rb_library_source_init), (search_action_to_prop),
	(search_action_changed), (rb_library_source_constructor),
	(impl_search), (impl_reset_filters), (impl_get_search_actions),
	(construct_query_from_selection):
	* sources/rb-podcast-source.c: (rb_podcast_source_class_init),
	(rb_podcast_source_init), (search_action_to_prop),
	(search_action_changed), (rb_podcast_source_constructor),
	(construct_query_from_selection), (impl_get_ui_actions),
	(impl_get_search_actions):
	* sources/rb-source.c: (rb_source_class_init),
	(rb_source_get_ui_actions), (default_get_search_actions),
	(rb_source_get_search_actions):
	* sources/rb-source.h:

	Add a search bar.  Fixes #328618

2006-03-12  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
	* shell/main.c: (main): make --no-update not stat files checking for
	changes, instead of doing nothing. Fixes bug 125177.

2006-03-12  James Livingston  <jrl@ids.org.au>

	* podcast/rb-podcast-manager.c:
	(rb_podcast_manager_thread_parse_feed):
	* podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
	* podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
	having an invalid mime-type. Fixed bug 329813.

2006-03-12  James Livingston  <jrl@ids.org.au>

	Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
	Finally lets us close bug 309609.

	* metadata/rb-metadata-gst.c: (id3_pad_added_cb),
	(rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
	0.10

	* widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
	inverted logic of the editable check.

2006-03-12  James Livingston  <jrl@ids.org.au>

	Make API doc generation work again. Fixes bug 334276.

	* doc/reference/Makefile.am:
	* doc/reference/tmpl/rb-debug.sgml:
	* doc/reference/tmpl/rb-druid.sgml:
	* doc/reference/tmpl/rb-entry-view.sgml:
	* doc/reference/tmpl/rb-load-failure-dialog.sgml:
	* doc/reference/tmpl/rb-metadata.sgml:
	* doc/reference/tmpl/rb-shell.sgml:
	* doc/reference/tmpl/rhythmbox-unused.sgml:
	* doc/reference/tmpl/rhythmdb.sgml:

2006-03-12  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell-clipboard.c:
	(rb_shell_clipboard_set_source_internal),
	(rb_shell_clipboard_sync): don't try to use the source's entry view if
	it doesn't have one. Fixes bug 331673.

	* sources/rb-source.c: (rb_source_class_init): provide a default
	have_url implementation that returns FALSE.

2006-03-12  James Livingston  <jrl@ids.org.au>

	* plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
	doing a distclean. Fixes bug 334221.


	Patch from Alex Lancaster  <alexl@users.sourceforge.net>

	* data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.

2006-03-11  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell.c: (rb_shell_window_state_cb),
	(rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
	update the window width/height when iconified. Stops the window
	changing size when it is restored from the tray, fixing bug 333824. 

2006-03-11  James Livingston  <jrl@ids.org.au>

	Try to get cvs to actually add the necessary files for plugin support

2006-03-11  James Livingston  <jrl@ids.org.au>

	Add a plugin framework, with basic support for Python plugins (based
	on gedit's). Closes bug 330523.

	* Makefile.am:
	* shell/Makefile.am:
	* configure.ac: necessary autofoo.

	* data/ui/rhythmbox-ui.xml: add Edit->Plugins...

	* lib/rb-file-helpers.c: (rb_uri_get_dir_name):
	* lib/rb-file-helpers.h:

	* data/glade/plugins/glade:
	* lib/rb-preferences.h:
	* plugins/*:
	* bindings/*: plugin framework

	* plugins/sample/*:
	* plugins/sample-python/*: sample plugins

	* plugins/audioscrobbler/*:
	* shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
	(rb_audioscrobbler_set_property),
	(rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
	submission into a plugin. shell/audioscrobbler.* should really be
	moved, but that sucks with cvs.

	* shell/rb-shell.h:
	* shell/rb-shell.c: (rb_shell_constructor),
	(rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
	(rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
	(rb_shell_quit): start and stop plugin framework.

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

	* rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
	(rhythmdb_entry_delete):
	Emit entry-deleted signals when rhythmdb_commit is called, rather than
	immediately, so we can't get change notifications afterwards.  
	Fixes #331732.
	(rhythmdb_process_metadata_load): Add a commit after removing an
	entry so we can recreate it with a different type without getting
	confused.

2006-03-11  James Livingston  <jrl@ids.org.au>

	* sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
	use the drive name for audio CDs, use "Unknown CD".

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

	patch by:  James Henstridge  <james@jamesh.id.au>

	* sources/rb-removable-media-source.c:
	(rb_removable_media_source_constructor):
	Get the device name from the GnomeVFSDrive if possible,
	since this is usually a more descriptive name.  Fixes #333080.

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

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

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
	Don't automatically download episodes when configured for manual
	updating.  Fixes #331564.

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

	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_iter_from_string):
	Return an iterator for the 'all' property when name == NULL,
	and don't write to *iter if iter == NULL.

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

	* shell/rb-shell-player.c: (rb_shell_player_do_next):
	When switching to the play queue, still call _go_next on the normal
	play order, so self-emptying auto playlists ("play count = 0" etc.)
	don't restart once the queue is empty.

	* shell/rb-tray-icon.c:
	Change shortcut for 'show notifications' to 'o' so it doesn't clash
	with 'next'.

2006-03-05  James Livingston  <jrl@ids.org.au>

	* shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
	don't submit tracks which could not be played. Fixed bug 333013.

	* shell/rb-shell-player.c: (eos_cb): Don't update statistics for
	tracks which could not be played.

2006-03-05  James Livingston  <jrl@ids.org.au>

	Sync musicbrainz lookup code from Sound-Juicer cvs.

	* metadata/sj-metadata-musicbrainz.c:
	(sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
	(get_offline_track_listing), (artist_and_title_from_title),
	(cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
	(mb_list_albums), (mb_get_submit_url):
	* metadata/sj-metadata.c: (sj_metadata_get_submit_url):
	* metadata/sj-metadata.h:
	* metadata/sj-structures.c: (track_details_free),
	(album_details_free):
	* metadata/sj-structures.h:

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

	* lib/rb-debug.h:
	* lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
	(rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
	(rb_profiler_reset), (rb_profiler_free):
	Filter debug output by matching the file and function names against a
	match string.

	* shell/main.c: (main):
	Add -D command line option to specify the debug match string.

	* shell/rb-removable-media-manager.c:
	(rb_removable_media_manager_mount_volume):
	Fix some typos in debug output.

2006-03-03  James Livingston  <jrl@ids.org.au>

	* shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
	* shell/rb-shell.c: (rb_shell_load_uri):
	* sources/rb-generic-player-source.c: (visit_playlist_dirs):
	* sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
	use the new "recurse" property from totem-plparser, if present. Stop
	RB hanging for new users who don't have a 'net connection. From bug
	331508.

2006-03-02  Bastien Nocera  <hadess@hadess.net>

	* shell/rb-removable-media-manager.c:
	(rb_removable_media_manager_mount_volume):
	* sources/Makefile.am:
	* sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
	Fix missing files on make dist (conditional files), only build the
	N770 support if there's HAL support, as we have no other ways of
	detecting it

2006-03-03  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell-clipboard.c:
	(rb_shell_clipboard_set_source_internal): really fix it this time.
	hopefully.

2006-03-03  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
	with the idle function not being removed.

2006-03-02  James Livingston  <jrl@ids.org.au>

	* widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
	* widgets/rb-entry-view.h: add function for determining whether all
	entries are selected.

	* shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
	(rb_shell_clipboard_set_source_internal),
	(rb_shell_clipboard_finalize),
	(rb_shell_clipboard_idle_poll_deletions),
	(rb_shell_clipboard_entryview_changed_cb),
	(rb_shell_clipboard_entries_changed_cb): watch for entry additions and
	removals, to update things.

	(rb_shell_clipboard_sync): update the Select All and Select None
	sensitivity, based on what is selected. Fixed bug 172220.

2006-03-02  James Livingston  <jrl@ids.org.au>

	* widgets/rb-library-browser.c: (rebuild_child_model): save and
	restore the selections of later models. This means that selecting the
	artist for the selected album does not reset the album selection.

2006-03-02  James Livingston  <jrl@ids.org.au>

	* data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
	Stops it emitting critical warnings.

2006-03-02  James Livingston  <jrl@ids.org.au>

	* lib/rb-file-helpers.c: (rb_uri_append_uri):
	* lib/rb-file-helpers.h: Add uri concatenation function for when the
	second fragment is already escaped.

	* sources/rb-generic-player-source.c:
	(rb_generic_player_source_class_init),
	(rb_generic_player_source_constructor), (impl_show_popup),
	(rb_generic_player_source_load_playlists),
	(rb_generic_player_source_transform_playlist_uri),
	(handle_playlist_entry_cb), (visit_playlist_dirs),
	(default_load_playlists), (default_transform_playlist_uri):
	* sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
	the device. Allow subclasses to override the playlist loading, and
	(playlist uri)->(actual uri) mapping. A lot of devices which have
	playlists won't work right now, but people will see them and hopefully
	file bugs.

	* sources/rb-psp-source.c: (rb_psp_source_class_init),
	(rb_psp_source_create_playlists): Adapt the PSP for the above change
	
	* sources/Makefile.am:
	+ sources/rb-nokia770-source.{c,h}:
	* shell/rb-removable-media-manager.c:
	(rb_removable_media_manager_mount_volume): Add support for reading
	playlists of Nokia 770s.

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

	* data/glade/podcast-properties.glade:
	* podcast/rb-podcast-properties-dialog.c:
	(rb_podcast_properties_dialog_init),
	(rb_podcast_properties_dialog_update),
	(rb_podcast_properties_dialog_update_location),
	(rb_podcast_properties_dialog_update_download_location):
	Add 'download location' field showing the path to the downloaded copy.
	Fixes #330696.

2006-03-01  Bastien Nocera  <hadess@hadess.net>

	* configure.ac: simplify HAVE_HAL define

2006-03-01  Bastien Nocera  <hadess@hadess.net>

	* configure.ac:
	* lib/rb-file-helpers.c: (rb_uri_append_path):
	* lib/rb-file-helpers.h:
	* shell/rb-removable-media-manager.c:
	(rb_removable_media_manager_mount_volume):
	* sources/Makefile.am:
	* sources/rb-ipod-source.c:
	* sources/rb-psp-source.*:
	Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
	support, additional HAL < 0.5 support by yours truly (Closes: #332337)

2006-03-02  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell-player.c: (rb_shell_player_set_property),
	(rb_shell_player_play), (rb_shell_player_jump_to_current),
	(swap_playing_source), (rb_shell_player_playpause),
	(rb_shell_player_sync_buttons), (actually_set_playing_source),
	(rb_shell_player_set_playing_source_internal): check for the entry
	view being NULL before trying to use it. Lets us support sources which
	don't have an entry view. From bug 331673.

2006-03-01  Bastien Nocera  <hadess@hadess.net>

	* shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
	use gnome_vfs_read_entire_file with a URI, not a local filename

2006-03-01  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
	first-seen and last-seen when merging duplicate entries.

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

	* widgets/rb-property-view.c: (rb_property_view_set_search_func):
	* widgets/rb-property-view.h:  New function, allowing custom 
	interactive search functions for property views.
	
	* sources/rb-podcast-source.c: 
	(feed_select_change_cb): Only do a new query when the selection
	actually changes.
	(rb_podcast_source_constructor),
	(rb_podcast_source_feed_title_search_func):
	Interactive search function for podcast feed titles.  Fixes #327451.

2006-03-01  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
	the uri in the callback, since it causes symbols to not be escaped.
	Fixes bug 332976.

	* data/ui/rhythmbox-ui.xml:
	* sources/rb-import-errors-source.c:
	(rb_import_errors_source_class_init),
	(rb_import_errors_source_constructor), (impl_get_status),
	(impl_move_to_trash),
	(rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
	import errors source
	
	* widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
	(rb_entry_view_append_column): unescape the URI for display.

2006-03-01  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
	(rhythmdb_process_metadata_load): fix crashers when the vfs get info
	function fails.

2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>

	* shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
	* shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
	* sources/rb-play-queue-source.c:
	(rb_play_queue_source_constructor), (rb_play_queue_source_new),
	(rb_play_queue_source_update_count):  Use "Play Queue" instead
	of "Queued Songs".

	Fixes #331637.

2006-03-01  James Livingston  <jrl@ids.org.au>

	* data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
	Fixes bug 332913.

2006-03-01  James Livingston  <jrl@ids.org.au>

	* daapsharing/rb-daap-mdns-browser-howl.c:
	(rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
	* daapsharing/rb-daap-mdns-publisher-avahi.c:
	(rb_daap_mdns_publisher_class_init),
	(rb_daap_mdns_publisher_finalize):
	* lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
	* player/rb-recorder-gst.c: (rb_recorder_class_init),
	(rb_recorder_finalize):
	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_constructor):
	* sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
	* sources/rb-ipod-source.c: (rb_ipod_source_constructor):
	* sources/rb-playlist-source-recorder.c:
	(rb_playlist_source_recorder_style_set),
	(rb_playlist_source_recorder_class_init),
	(rb_playlist_source_recorder_finalize):
	* widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
	other classes in the same way, so they don't break when derived from.

2006-03-01  James Livingston  <jrl@ids.org.au>

	* sources/rb-generic-player-source.c:
	(rb_generic_player_source_constructor): don't get the parent class in
	a dumb way, and it breaks when the class is derived from.

2006-02-28  Abel Cheung  <maddog@linuxhall.org>

	* configure.ac: Added "zh_HK" to ALL_LINGUAS.

2006-03-01  James Livingston  <jrl@ids.org.au>

	* rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
	not work in glib 2.8 systems.

2006-03-01  James Livingston  <jrl@ids.org.au>

	* lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
	prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
	say it is crap.

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
	(rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
	podcasts on ion-local places

	* rhythmdb/gsequence.c: (g_sequence_node_new),
	(g_sequence_node_free): use gslice if we are building against glib
	2.10.

	* rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
	local files too, so it doesn't block.

2006-02-28  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
	file:// prefix, instead of using gnome_vfs_uri_is_local, since that
	stats the file. Stops the UI blocking while stats are done.

2006-02-28  James Livingston  <jrl@ids.org.au>

	* sources/rb-static-playlist-source.c:
	(rb_static_playlist_source_class_init),
	(rb_static_playlist_source_constructor), (impl_reset_filters),
	(impl_get_property_views), (impl_browser_toggled),
	(rb_static_playlist_source_do_query),
	(rb_static_playlist_source_browser_changed_cb): add browsers to static
	playlists. From bug 118862.

	* sources/rb-play-queue-source.c:
	(rb_play_queue_source_class_init): disable them for the play queue.

2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>

	* data/glade/library-prefs.glade:  Add a mnemonic.
	* sources/rb-library-source.c:
	(rb_library_source_location_button_clicked_cb):  Use title
	capitalization for window title.

2006-02-28  James Livingston  <jrl@ids.org.au>

	* sources/rb-auto-playlist-source.c:
	(construct_query_from_selection): don't create a subquery for only one
	criteria, as it's a silly effifiency degredation.

2006-02-28  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.h:
	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
	(save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
	saved to disk

	* rhythmdb/rhythmdb.c: (set_props_from_metadata),
	(rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
	(rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
	(rhythmdb_entry_ignore_get_type): When loading a file, which is marked
	IGNORE (e.g. known video stream) create an entry of the Ignore type.
	This will make importing files quicker as we don't need to try files
	that we know are not going to be interesting - especially useful when
	using the library watching facility.

	Fixes bug 323179.

2006-02-28  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell.c: (rb_shell_constructor),
	(rb_shell_set_visibility): fix browser and source-list pane
	positioning, that I broke with the "remember visibility" patch.

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

	* metadata/rb-metadata-dbus-service.c: (main):
	Change argument handling so you can use --debug with the --load and
	--can-save test modes.
	* metadata/rb-metadata-dbus-client.c: (start_metadata_service):
	Use a separate GMainContext, not the default one.  Probably fixes
	#332344.

2006-02-27  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
	first starting up. Fixes bug 330342.

2006-02-27  James Livingston  <jrl@ids.org.au>

	* sources/rb-sourcelist-model.c:
	(rb_sourcelist_model_set_dnd_targets):
	* widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
	COPY action for draging sources and tracks, not MOVE as well. Stops
	Nautilus moving file away, and fixes bug 332488.

2006-02-27  James Livingston  <jrl@ids.org.au>

	patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>

	* sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
	and Last Played metadata off iPods. Closes bug 324648.

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

	* shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
	Disable audioscrobbler when run with the --no-registration flag, since
	last.fm doesn't allow multiple concurrent clients per user.

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

	* sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
	Rename renamable sources when F2 is pressed when the sourcelist has
	focus.  Fixes #330700.

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

	* shell/rb-playlist-manager.c: (cleanup_edit_data),
	(edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
	(rb_playlist_manager_cmd_edit_automatic_playlist):
	Fix various crashes when deleting auto playlists previously edited
	by disconnecting signal handlers when the query editor is closed or
	the playlist is deleted.

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

	* metadata/rb-metadata-gst.c:  Correct comment referring to the now
	removed load failure dialog, and actually use the friendly file type
	name in error messages.

2006-02-24  James Livingston  <jrl@ids.org.au>

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

	* sources/rb-library-source.c:
	(rb_library_source_location_button_clicked_cb),
	(rb_library_source_preferences_sync),
	(rb_library_source_library_location_cb): convert the library URI to
	for display, and back again. Fixes bug 332356.

2006-02-23  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
	(rhythmdb_process_metadata_load), (monitor_subdirectory),
	(rhythmdb_sync_library_location): don't monitor files at all if
	watching is turned off. From bug 323096.

2006-02-23  James Livingston  <jrl@ids.org.au>

	* data/rhythmbox.schemas:
	* lib/rb-preferences.h:
	* shell/rb-shell.c: (rb_shell_constructor),
	(rb_shell_set_visibility): remember main window visibility between
	sessions. Fixes bug 127320.

2006-02-23  James Livingston  <jrl@ids.org.au>

	* data/glade/library-prefs.glade:
	* sources/rb-library-source.c: (impl_get_config_widget),
	(rb_library_source_location_button_clicked_cb),
	(rb_library_source_preferences_sync),
	(rb_library_source_library_location_cb),
	(rb_library_source_watch_toggled_cb): change the library-location
	widgets from the file-chooser drop menu to a text entry and Browse
	button. This is needed to prevent the location from chaning if the
	directory cannot be found. Fixes bug 328414.

2006-02-23  James Livingston  <jrl@ids.org.au>

	* sources/rb-podcast-source.c: add icon to the Cancel Download menu
	item. Fixes bug 329042.

2006-02-23  James Livingston  <jrl@ids.org.au>

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

	* podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
	comma in some podcast feeds. Fixes bug 332194.

2006-02-23  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
	lower priority.

	* sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
	the internal audio cd URIs from "cdda://device:track" to
	"cdda://track#device" as it makes processing much easier.

	* shell/rb-shell-player.c: (rb_shell_player_open_location):
	* player/rb-player-gst.c: don't have the shell close the player
	between songs, as doing that should be backend-specific. Make the
	gstreamer backend close before starting a new track, unless the old
	and new ones are both tracks on the same audio cd. Just seek in that
	case.

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

	* doc/reference/rhythmbox.types: Fix doc build a bit more.

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

	* configure.ac: Enable more warnings in my stupid setup too.
	* shell/rb-shell.c: Fix compile errors from last commit.  Fixes
	#332210.

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

	* sources/rb-missing-files-source.h,
	* sources/rb-missing-files-source.c,
	* sources/rb-import-errors-source.h,
	* sources/rb-import-errors-source.c:
	Add library meta-sources, showing missing files and import errors.
	Fixes #167763, #142322.

	* sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
	* sources/rb-sourcelist-model.h:
	* sources/rb-sourcelist.c: (rb_sourcelist_append),
	(match_source_to_iter), (rb_sourcelist_source_to_iter),
	(rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
	(visibility_notify_cb):
	Store source visibility in the sourcelist model, so we can determine
	child source counts correctly and get the sourcelist expander column
	right.
	
	* widgets/rb-entry-view.h:
	* widgets/rb-entry-view.c: (rb_entry_view_class_init),
	(rb_entry_view_append_column), (set_column_visibility):
	Allow the creator of the entry view to specify which columns are
	always visible.

	* sources/rb-source.h:
	* sources/rb-source.c: (_autohide_update_visibility),
	(_rb_autohide_source_row_deleted_cb),
	(_rb_autohide_source_row_inserted_cb),
	(_rb_source_hide_when_empty):
	Allow sources to automatically hide themselves when empty.
	
	* sources/rb-iradio-source.c: (rb_iradio_source_constructor):
	* sources/rb-library-source.c: (rb_library_source_constructor):
	* sources/rb-playlist-source.c: (rb_playlist_source_constructor):
	* sources/rb-podcast-source.c: (rb_podcast_source_constructor):
	Explicitly specify which columns are always visible.
	
	* shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
	(rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
	Remove load error signal handling and load failure dialog.
	Create missing files and import errors sources for the library.

	* rhythmdb/rhythmdb.c: (rhythmdb_class_init),
	(rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
	Create DB entries for import errors rather than emitting the 'load
	error' signal; mark loaded entries visible.
	(rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
	(rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
	(rhythmdb_prop_get_type): Store string form of last seen time for
	hidden entries, since it's used in the missing files source.
	(rhythmdb_entry_import_error_get_type): 
	Add entry type for import errors.
	(rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
	(rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
	(rhythmdb_entry_move_to_trash_set_error),
	(rhythmdb_entry_move_to_trash):  
	Correct spelling, add missing rhythmdb_commit.
	* rhythmdb/rhythmdb.h:  
	Add import error entry type and last seen string property.
	* rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
	(save_entry):  Ignore string form of 'last seen' property.

	* shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
	Don't try to play hidden entries or import error entries.

	* data/ui/rhythmbox-ui.xml: Add popup for missing files source.
	* sources/Makefile.am: Add meta-source files
	* widgets/Makefile.am: Remove load failure dialog files

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

	update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
	* help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
	few bits and pieces.

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

	* metadata/test-metadata.c: (load_metadata_cb):
	Fix compile warning for ignoring return value from getcwd, #332064.

2006-02-21  James Livingston  <jrl@ids.org.au>

	* shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
	(edit_auto_playlist_deleted_cb),
	(rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
	playlist editor non-modal. Fixes bug 320030.

2006-02-21  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell.c: (rb_shell_constructor):
	* widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
	(rb_header_set_show_artist_album):
	* widgets/rb-song-display-box.c: (rb_song_display_box_init),
	(rb_song_display_box_sync): make the queue sidebar and song display
	not get affected by gtk_widget_show_all. Fixes bug 332001.

2006-02-21  James Livingston  <jrl@ids.org.au>

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

	* podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
	feeds which use timezone names instead of offsets. Doesn't actually
	parse the timezone name since they are not standardised. Fixes bug
	331691.

2006-02-21  James Livingston  <jrl@ids.org.au>

	* help/C/figures/rb-notification-area.png:
	* help/C/figures/rb-sidebar.png:
	* help/C/quick-reference.xml: remove obsolete files from CVS.

	* rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
	* rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
	(rhythmdb_query_free), (rhythmdb_query_serialize),
	(rhythmdb_query_deserialize), (rhythmdb_query_get_type):
	* rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.

	* widgets/rb-query-creator-properties.c: add prefix and suffix
	(escapedStringCriteriaGetWidgetData): use better escaping, so it
	doesn't escape the ':' separator in uris.

2006-02-21  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
	on startup.

2006-02-21  James Livingston  <jrl@ids.org.au>

	* NEWS: update with recent changes

2006-02-21  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell.c: (rb_shell_constructor),
	(rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
	* widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
	(rb_druid_browse_clicked_cb), (do_response):
	* widgets/rb-druid.h: Make running the druid not block RBShell
	starting up. This is required so that bonobo registration doesn't time
	out. Fixed bug 318766.

2006-02-21  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_entry_removed_cb): remove the entry from the
	hash table after using it, not before. Fixed bug 331922.

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

	* shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
	(rb_shell_view_queue_as_sidebar_changed_cb):
	When playing from the queue, only attempt to highlight the queue
	source in the source list if it's actually visible there.  Otherwise,
	leave the preempted source highlighted.  Mostly fixes #330819.

2006-02-20  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_row_inserted_cb),
	(rhythmdb_property_model_prop_changed_cb),
	(rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
	store the roperty value in the entry-mapping table, so that receiving
	the remove signal from a query model before we get notified of a
	change doesn't cause a crash. Fixes bug 331770.

2006-02-20  James Livingston  <jrl@ids.org.au>

	* data/ui/rhythmbox-ui.xml:
	* sources/rb-play-queue-source.c:
	(rb_play_queue_source_class_init),
	(rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
	playlist things in the queue popup source. From 330490.

	* widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
	previous commit

2006-02-20  James Livingston  <jrl@ids.org.au>

	* widgets/rb-song-info.c: (rb_song_info_response_cb),
	(rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
	attempt to sync data for non-editable entries when using
	next/previous. Don't write our Year if it wasn't changed. Fixes bug
	331762.

2006-02-19  Luca Ferretti  <elle.uca@libero.it>

	* .cvsignore:
	* Makefile.am:
	* autogen.sh:
	* configure.ac:
	* help/.cvsignore:
	* help/Makefile.am: ported to gnome-doc-utils
	* help/rhythmbox.omf.in: added, needed by gnome-doc-utils
	* help/ChangeLog: added, for translators
	* help/C/rhytmbox-C.omf: removed, no longer used
	Know issue: figures are installed, but some are not showed; manual
	description added, but not showed in Yelp while browsing. I'll
	investigate, maybe are needed some little changes to
	help/C/rhythmbox.xml.

2006-02-20  James Livingston  <jrl@ids.org.au>

	* data/ui/rhythmbox-ui.xml:
	* help/C/figures/rb-adv.png:
	* help/C/figures/rb-asst-finish.png:
	* help/C/figures/rb-asst-library.png:
	* help/C/figures/rb-asst-start.png:
	* help/C/figures/rb-basic.png:
	* help/C/figures/rb-browser.png:
	* help/C/figures/rb-context-menu.png:
	* help/C/figures/rb-empty.png:
	* help/C/figures/rb-full-play.png:
	* help/C/figures/rb-group-auto.png:
	* help/C/figures/rb-group-create.png:
	* help/C/figures/rb-group.png:
	* help/C/figures/rb-imported.png:
	* help/C/figures/rb-iradio-add.png:
	* help/C/figures/rb-iradio.png:
	* help/C/figures/rb-nextprev.png:
	* help/C/figures/rb-nobrowse-play.png:
	* help/C/figures/rb-notification-area-menu.png:
	* help/C/figures/rb-player.png:
	* help/C/figures/rb-prefs-general.png:
	* help/C/figures/rb-prefs-ipod.png:
	* help/C/figures/rb-prefs-library.png:
	* help/C/figures/rb-prefs.png:
	* help/C/figures/rb-repeat.png:
	* help/C/figures/rb-search.png:
	* help/C/figures/rb-shuffle.png:
	* help/C/figures/rb-stats.png:
	* help/C/figures/rb-toolbar-editor.png:
	* help/C/figures/rb-volume-mute.png:
	* help/C/figures/rhythmbox-group.png:
	* help/C/figures/rhythmbox-tray-icon.png:
	* help/C/user-guide.xml: remove old stuff from cvs

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

	* metadata/rb-metadata-dbus-client.c: 
	* metadata/rb-metadata-dbus-service.c:
	* metadata/rb-metadata-dbus.c:
	* metadata/rb-metadata-dbus.h:
	New files, adding an external service for reading and writing
	metadata, and an implementation of the RBMetaData interface that uses
	dbus to communicate with it.
	
	* metadata/rb-metadata.h,
	* metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
	(rb_metadata_get_field_name): Put metadata details in a static array
	instead of using a hash table, and add a field for language code (not
	used for anything)
	* metadata/rb-metadata-gst.c: Updates for changes in
	rb-metadata-common.c, fix signal handler closure leak for the typefind
	element's have-type signal, and add XML to the list of types we ignore.
	* rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
	Update for changes to rb_metadata_get_field_type
	(rhythmdb_entry_allocate): Don't make songs hidden initially, as
	rhythmdb_commit_internal do that for non-local files.  Saves us a stat
	here and there.
	
	* configure.ac: Add --enable-metadata-helper option (not enabled by
	default) to use the external metadata service
	* metadata/Makefile.am: Add new files
	* metadata/test-metadata.c:  Test program for the metadata service

	Fixes #329597. 

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

	* shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
	* sources/rb-podcast-source.c: (impl_get_ui_actions),
	(rb_podcast_source_cmd_new_podcast):
	Move 'new podcast' action to the podcast source, and add it to the
	toolbar.  Fixes #331562.

2006-02-19  James Livingston  <jrl@ids.org.au>

	* data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
	menus, and away from move-to-trash. Fixes bug 331013.

2006-02-19  James Livingston  <jrl@ids.org.au>

	* shell/rb-play-order.c: (default_playing_entry_removed): don't crash
	when deleting last entry. Fixes bug 331712.

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

	* widgets/rb-entry-view.c: (rb_entry_view_class_init),
	(rb_entry_view_button_press_cb):
	* widgets/rb-entry-view.h: Emit show-popup when right clicked
	anywhere, and include a flag indicating whether the click was over an
	entry or not.
	
	* sources/rb-playlist-source.c: (default_show_entry_view_popup),
	(rb_playlist_source_songs_show_popup_cb):
	* sources/rb-playlist-source.h:
	Add the 'over entry' flag to the class show popup method, and in the
	default handler, ignore right clicks when not over an entry.
	
	* sources/rb-iradio-source.c:
	(rb_iradio_source_songs_show_popup_cb):
	* sources/rb-library-source.c:
	(rb_library_source_songs_show_popup_cb):
	* sources/rb-podcast-source.c:
	(rb_podcast_source_songs_show_popup_cb):
	Show the source list popup menu when right clicked while not over an
	entry.

	* sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
	For the queue sidebar, always display the popup so the 'clear queue'
	action is available regardless of where you click.  For the queue
	source, only display the popup when right clicked over an entry.
	Fixes #331392.

2006-02-19  James Livingston  <jrl@ids.org.au>

	* daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
	* shell/rb-shell.c: (rb_shell_select_source): don't get the source's
	entry view, when we're not even using it

	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_row_inserted_cb): use the query-model utility
	function, rather than a copy of the code.

	* shell/rb-playlist-manager.c:
	(rb_playlist_manager_playlist_row_inserted_cb),
	(rb_playlist_manager_set_source_internal),
	(rb_playlist_manager_playlist_entries_changed): use the query-model
	directly, rather than the source's entry view.

	* shell/rb-source-header.c: don't use the entry view, just select the
	source widget.

2006-02-18  James Livingston  <jrl@ids.org.au>

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

	* help/C/figures/rb-iradio-main.png:
	* help/C/figures/rb-notification-area-menu.png:
	* help/C/figures/rb-notification-window.png:
	* help/C/figures/rb-notification-zone.png:
	* help/C/figures/rb-podcast-main.png:
	* help/C/figures/rb-statusbar.png:
	* help/C/figures/rb-toolbar-prevplaynext.png:
	* help/C/figures/rb-toolbar-repeat.png:
	* help/C/figures/rb-toolbar-shuffle.png:
	* help/C/figures/rb-toolbar.png:
	* help/C/figures/rb-volume-changer.png:
	* help/C/figures/rb-window-small.png:
	* help/C/figures/rb-window.png:
	* help/C/rhythmbox.xml: Update user guide with some of the changes
	that have occurred after 0.8.8. From bug 314001.

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

	* rhythmdb/rhythmdb-query-results.h,
	  rhythmdb/rhythmdb-query-results.c:
	New interface for objects that accept query results from RhythmDB.

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_query_results_init),
	(rhythmdb_query_model_set_query),
	(rhythmdb_query_model_add_results),
	(rhythmdb_query_model_query_complete):
	* rhythmdb/rhythmdb-query-model.h:
	Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.

	* rhythmdb/rhythmdb-tree.c: (handle_entry_match),
	(rhythmdb_tree_do_full_query):
	* rhythmdb/rhythmdb.c: (rhythmdb_event_free),
	(rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
	(rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
	(rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
	* rhythmdb/rhythmdb.h:
	Pass query results through the RhythmDBQueryResults interface, rather
	than directly to a RhythmDBQueryModel.

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
	(rb_podcast_manager_db_entry_deleted_cb):
	* sources/rb-auto-playlist-source.c:
	(rb_auto_playlist_source_do_query),
	(rb_auto_playlist_source_set_query):
	* sources/rb-iradio-source.c: (rb_iradio_source_do_query):
	* sources/rb-library-source.c: (rb_library_source_constructor),
	(rb_library_source_do_query):
	* sources/rb-podcast-source.c: (rb_podcast_source_constructor),
	(rb_podcast_source_do_query):
	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_drag_data_get):
	Cast the query model to RhythmDBQueryResults when passing to one of
	the RhythmDB query methods.

	* rhythmdb/Makefile.am: Add new files.

2006-02-18  James Livingston  <jrl@ids.org.au>

	* data/ui/rhythmbox-ui.xml:
	* shell/rb-playlist-manager.c:
	(_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
	"queue playlist" item to source context menu. Fixes bug 330490.

2006-02-18  James Livingston  <jrl@ids.org.au>

	* data/glade/general-prefs.glade:
	* shell/rb-shell-preferences.c:
	(rb_shell_preferences_column_check_changed_cb),
	(rb_shell_preferences_sync):
	* sources/rb-library-source.c: (rb_library_source_constructor):
	* sources/rb-playlist-source.c: (rb_playlist_source_constructor):
	* widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
	(rb_entry_view_append_column): Add a "quality" colume which indicates
	the bitrate of media. Part of bug 167659.

2006-02-18  James Livingston  <jrl@ids.org.au>

	* shell/rb-play-order.c: (do_next_idle_cb),
	(default_playing_entry_removed): move to next track when playing entry
	is deleted. Fixes bug 131150.

	* shell/rb-shell-player.h: remove ancient stuff

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

	* shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
	(rb_shell_clipboard_set_property): 
	* shell/rb-shell.c (rb_shell_sync_party_mode):
	Trigger a resync of the clipboard properties when changing party mode.

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

	* sources/rb-static-playlist-source.c: Fix includes.

	* sources/rb-source.c (rb_source_can_rename) 
	(rb_source_can_delete, rb_source_can_move_to_trash):
	Return FALSE if in party mode.

	* shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
	Replace fullscreen with party mode.
	(rb_shell_window_delete_cb): Don't quit if in party mode.
	(rb_shell_view_party_mode_changed_cb): Setup party mode.
	(window_state_event_cb): Try to deiconify shell when iconified
	in party mode.
	(rb_shell_sync_party_mode): Sync party mode properties.
	Currently, that means [de]sensitizing close, quit, and small-display,
	going into fullscreen mode with window stuck and kept above, and
	toggling queue-only for the shell player.
	(rb_shell_sync_smalldisplay): Sensitive party mode.
	(rb_shell_get_party_mode): Get party mode setting.

	* shell/rb-shell-player.c (rb_shell_player_class_init) 
	(rb_shell_player_set_property, rb_shell_player_get_property):
	Add queue-only property.
	(rb_shell_player_entry_activated_cb): If in party mode
	only queue the entry on activation.

	* shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
	Break out from set_properties.  Desensitize some actions when
	in party mode.
	(rb_playlist_manager_set_property): Break out set_source_internal.

	* data/rhythmbox.schemas: Remove fullscreen mode.

	* data/ui/rhythmbox-ui.xml: Replace fullscreen
	action with party mode.

	Partial fix for #323933

2006-02-17  James Livingston  <jrl@ids.org.au>

	* configure.ac:
	* shell/rb-removable-media-manager.c:
	(get_nautilus_burn_drive_for_path),
	(rb_removable_media_manager_playing_uri_changed_cb): only use
	nautilus_burn_drive_new_by_path when it exists, fall back to iterating
	over the list when it doesn't.

2006-02-17  James Livingston  <jrl@ids.org.au>

	* sources/rb-iradio-source.c: (rb_iradio_source_constructor),
	(rb_iradio_source_first_time_changed): Only do the import on the
	first change from FALSE to TRUE.

	* sources/rb-library-source.c:
	(rb_library_source_preferences_sync),
	(rb_library_source_library_location_cb): set the first-run done flag
	if the user presses close and then sets their watches library
	location. Fixes bug 325997.

2006-02-17  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell.c: (rb_shell_class_init): make the shell player and
	removable media manager gobject properties

	* shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
	(split_drive_from_cdda_uri),
	(rb_removable_media_manager_playing_uri_changed_cb),
	(rb_removable_media_manager_load_media): stop polling a cd drive
	when we are playing from it. Part of bug 330716.

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

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_set_property),
	(rhythmdb_query_model_finalize),
	(rhythmdb_query_model_base_entry_removed):
	Propagate entry removal from base models out to attached property
	models.  Fixes the rest of #331165.

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

	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_row_inserted_cb),
	(rhythmdb_property_model_prop_changed_cb),
	(rhythmdb_property_model_insert):
	Don't store NULL as a hash table value if we want to use
	g_hash_table_lookup to check if a key exists, and get the checks for
	how and whether to handle entry changes the right way around.
	Fixes #331211 and half of #331165.

2006-02-16  James Livingston  <jrl@ids.org.au>

	* sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
	the audio cd's TOC in a separate thread, so it doesn't block the UI.
	Fixes bug 329942.

2006-02-16  James Livingston  <jrl@ids.org.au>

	* widgets/rb-library-browser.c: (reset_view_cb): make View All
	actually reset the browsers.

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

	* widgets/eggtrayicon.c: (egg_tray_icon_notify):
	Escape the strings we pass into libnotify so we don't get blank
	notifications when the song name contains '&' etc.  Fixes #330784.

2006-02-16  James Livingston  <jrl@ids.org.au>

	* shell/rb-source-header.c: (rb_source_header_sync_control_state):
	enable "View All" when there is only a search box and no browser.
	Fixes bug 331395.

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

	* data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
	popup menu, which I forgot to commit with the patch for bug #330014.

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

	* shell/rb-shell-player.c: (open_location_thread):
	Sync button and entry view state once we've started the player, so the
	entry view gets into the playing state for iradio.

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

	* shell/rb-shell-player.c: (open_location_thread):
	Take GDK lock before doing anything UI-related.

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

	* shell/rb-shell.c: Move 'new iradio station' action to
	iradio source.

	* sources/rb-iradio-source.c: (rb_iradio_source_class_init),
	(rb_iradio_source_init), (rb_iradio_source_finalize),
	(rb_iradio_source_constructor):
	Remove some unused stuff.

	(guess_uri_scheme), (rb_iradio_source_add_station),
	(rb_iradio_source_add_from_playlist),
	(impl_get_ui_actions), (new_station_location_added),
	(rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
	action, include it in the toolbar, and make sure the URI we add has a
	scheme.  Fixes #327059, more or less.

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

	* sources/rb-play-queue-source.c:
	(rb_play_queue_source_class_init),
	(rb_play_queue_source_constructor),
	(rb_play_queue_source_update_count),
	(rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
	Add a toolbar button to clear the play queue, and make it sensitive
	only when there are entries in the queue.  Fixes #330014.

	* sources/rb-source.c: (_rb_source_register_action_group):
	* sources/rb-source.h:  Add helper function to register an
	action group for a source.

	* sources/rb-library-source.c: (rb_library_source_constructor):
	* sources/rb-podcast-source.c: (rb_podcast_source_constructor),
	(register_action_group):  Use _rb_source_register_action_group.

2006-02-15  James Livingston  <jrl@ids.org.au>

	* widgets/rb-song-info.c: (rb_song_info_add_completion),
	(rb_song_info_constructor), (rb_song_info_set_property): make
	tag-editing completion work for albums too.

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

	* widgets/rb-query-creator.c: (rb_query_creator_load_query):
	Check the 'limit' checkbox for time-limited playlists.

2006-02-14  Sven Herzberg  <herzi@gnome-de.org>

	* widgets/rb-song-info.c: Prove text-completion when editing title,
	artist or album

2006-02-14  James Livingston  <jrl@ids.org.au>

	* data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
	tray icon popup menu. Fixes bug 331026.

2006-02-14  James Livingston  <jrl@ids.org.au>

	* data/iradio-initial.pls: update the Virgin Radio stations to use the
	Ogg Vorbis streams, instead of the MP3 ones.

2006-02-14  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_class_init),
	(rhythmdb_property_model_drag_data_get):
	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_title_sort_func):
	* rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
	LOCATION as the key. Fixes bug 330601.

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

	* sources/rb-playlist-source.c: (playlist_iter_func):
	Make it compile with older versions of totem-plparser too.	

2006-02-13  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.h:
	* rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
	structure private, since things should use the accessor functions
	rather than manipulating it directly - Only RhythmDB and the
	implementation classes should access it directly. Part of the RhythmDB
	cleanup of bug 330226.

	* iradio/rb-station-properties-dialog.c:
	(rb_station_properties_dialog_update_title),
	(rb_station_properties_dialog_update_title_entry),
	(rb_station_properties_dialog_update_genre),
	(rb_station_properties_dialog_update_location),
	(rb_station_properties_dialog_update_play_count),
	(rb_station_properties_dialog_update_bitrate),
	(rb_station_properties_dialog_update_last_played),
	(rb_station_properties_dialog_update_rating),
	(rb_station_properties_dialog_update_playback_error),
	(rb_station_properties_dialog_sync_entries):
	* podcast/rb-feed-podcast-properties-dialog.c:
	(rb_feed_podcast_properties_dialog_update_title),
	(rb_feed_podcast_properties_dialog_update_title_label),
	(rb_feed_podcast_properties_dialog_update_author),
	(rb_feed_podcast_properties_dialog_update_location),
	(rb_feed_podcast_properties_dialog_update_copyright),
	(rb_feed_podcast_properties_dialog_update_language),
	(rb_feed_podcast_properties_dialog_update_summary):
	* podcast/rb-podcast-manager.c:
	(rb_podcast_manager_entry_downloaded),
	(rb_podcast_manager_db_entry_added_cb),
	(download_progress_update_cb),
	(rb_podcast_manager_db_entry_deleted_cb):
	* podcast/rb-podcast-properties-dialog.c:
	(rb_podcast_properties_dialog_update_title),
	(rb_podcast_properties_dialog_update_title_label),
	(rb_podcast_properties_dialog_update_feed),
	(rb_podcast_properties_dialog_update_location),
	(rb_podcast_properties_dialog_update_play_count),
	(rb_podcast_properties_dialog_update_bitrate),
	(rb_podcast_properties_dialog_update_last_played),
	(rb_podcast_properties_dialog_update_rating),
	(rb_podcast_properties_dialog_update_date),
	(rb_podcast_properties_dialog_update_description):
	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_entry_changed_cb),
	(rhythmdb_query_model_remove_from_main_list),
	(rhythmdb_query_model_update_limited_entries),
	(rhythmdb_query_model_drag_data_get),
	(rhythmdb_query_model_album_sort_func):
	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
	(save_entry):
	* rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
	(rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
	(rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
	(rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
	(rhythmdb_entry_get_double):
	* shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
	* shell/rb-play-order-random-by-age-and-rating.c:
	(rb_random_by_age_and_rating_get_entry_weight):
	* shell/rb-play-order-random-by-age.c:
	(rb_random_by_age_get_entry_weight):
	* shell/rb-play-order-random-by-rating.c:
	(rb_random_by_rating_get_entry_weight):
	* shell/rb-playlist-manager.c: (create_name_from_selection_data):
	* shell/rb-shell-player.c: (rb_shell_player_open_entry),
	(rb_shell_player_set_playing_entry),
	(rb_shell_player_sync_replaygain),
	(rb_shell_player_sync_with_source),
	(rb_shell_player_get_playing_song_duration), (info_available_cb):
	* sources/rb-playlist-source.c: (playlist_iter_func),
	(burn_playlist_iter_func), (rb_playlist_source_row_deleted),
	(rb_playlist_source_entry_added_cb):
	* sources/rb-podcast-source.c:
	(rb_podcast_source_post_status_cell_data_func):
	* sources/rb-source.c: (rb_source_update_play_statistics):
	* sources/rb-sourcelist-model.c:
	(rb_sourcelist_model_drag_data_get):
	* sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
	(rb_static_playlist_source_add_entry),
	(rb_static_playlist_source_remove_entry):
	* widgets/rb-entry-view.c: (type_ahead_search_func),
	(rb_entry_view_playing_cell_data_func),
	(rb_entry_view_rating_cell_data_func),
	(rb_entry_view_pixbuf_clicked_cb):
	* widgets/rb-header.c: (rb_header_get_duration):
	* widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
	(rb_song_info_populate_dialog),
	(rb_song_info_update_playback_error),
	(rb_song_info_update_bitrate), (rb_song_info_update_duration),
	(rb_song_info_update_location), (rb_song_info_update_play_count),
	(rb_song_info_update_last_played), (rb_song_info_update_rating),
	(rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
	(rb_song_info_sync_entry_single): fix the huge number of times that
	the internals got accessed directly.

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

	* data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
	trash' are grouped together.
	* shell/main.c: (main): Pass no-registration flag in to RBShell
	constructor, rather than mysteriously always passing TRUE.
	* sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
	Set dirty flag when entries are removed from the model, so the play
	queue is marked dirty appropriately.
	* AUTHORS: update my email address

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

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

	* widgets/rb-druid.c: (path_dialog_response_cb):
	If the URI is local, don't display the 'file://' prefix.  
	Fixes #330919.

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

	* widgets/eggtrayicon.c: (egg_tray_icon_notify):
	Attach the notification to the tray icon widget, so libnotify
	positions it less badly.  Fixes #330876.

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

	* widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
	Reverse the selection list before returning it, so we get it in the
	right order.  Fixes #330283 and some other weirdness.

2006-02-11  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell.c: (rb_shell_constructor),
	(rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
	* shell/rb-source-header.c: (rb_source_header_sync_control_state):
	make small-mode and fullscreen mutually exclusive, since they don't
	work together

	* data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
	Mode.

2006-02-10  James Livingston  <jrl@ids.org.au>

	* player/rb-player-gst.c: turn paranoia of when playing audio cds,
	since it can cause it to be slower than real-time. Should fix bug
	322270.

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

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_set_property):
	Think just a little bit harder about that last commit.

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

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_set_property):
	Get the check for hidden entries the right way around.
	Fixes #330527, #330514.

	(rhythmdb_query_model_set_sort_order):
	Ignore no-op sort order changes, so we don't get critical
	messages when selecting 'all' in auto playlist browsers.

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

	Patch by: Christophe Fergeau  <teuf@gnome.org>

	* sources/rb-removable-media-source.c:
	(rb_removable_media_source_init),
	(rb_removable_media_source_constructor):
	Move icon setup code to the constructor, as the volume property
	haven't been set yet when _init is called.

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

	* sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
	Make the source pixbuf a dynamic property.

	* sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
	(rb_source_set_pixbuf, rb_source_set_property) 
	(rb_source_get_property): Add icon property.

	* sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
	(rb_auto_playlist_source_init):
	* sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
	(rb_static_playlist_source_init):
	* sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
	(rb_removable_media_source_init): 
	* sources/rb-podcast-source.c (rb_podcast_source_class_init) 
	(rb_podcast_source_init): 
	* sources/rb-library-source.c (rb_library_source_class_init) 
	(rb_library_source_set_property, rb_library_source_get_property): 
	* sources/rb-iradio-source.c (rb_iradio_source_class_init) 
	(rb_iradio_source_init): Remove impl_get_pixbuf and
	set icon property on source base class.

	* sources/rb-daap-source.c (rb_daap_get_icon): Get
	a different icon for when the share is password protected
	and locked.
	(rb_daap_source_new): Set icon property.
	(composite_icons): Composite an emblem on a pixbuf.
	(create_pixbufs): Load global pixbufs.
	(destroy_pixbufs): unref global pixbufs.
	(rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
	(connection_auth_cb, connection_connected_cb) 
	(connection_disconnected_cb): Update icon when connection
	status changes.
	(rb_daap_source_activate): Connect signals.

	* daapsharing/rb-daap-share.c (name_collision_cb): Run
	dialog with parent.

	* daapsharing/rb-daap-marshal.list: Add new signal.

	* daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
	(rb_daap_collision_dialog_new_run): Set parent of dialog.

	* daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
	Add authenticate, connected, and disconnected signals.
	(connection_get_password): emit authenticate signal instead
	of running dialog directly.
	(connection_connected, connection_disconnected): Emit signals.
	(handle_login): Emit connected signal.
	(handle_logout): Emit disconnected signal.
	(rb_daap_connection_do_something): Fix leak.

	Fixes #330291

2006-02-09  James Livingston  <jrl@ids.org.au>

	* (rhythmdb_query_model_set_property): don't try to insert HIDDEN
	entries from the base model if we don't have show-hidden set. Fixes
	bug 330514.

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

	* daapsharing/rb-daap-share.c (message_get_session_id):
	Ugh. Use strtoul instead of atoi.
	(session_id_validate): Add debug statements.

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

	* daapsharing/rb-daap-connection.c (http_response_handler):
	Report the actual uri from the message in debug statements.

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

	* daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
	Add context argument.
	(message_get_session_id): New function to parse session id from
	the message.
	(message_get_revision_number): Break out function to parse
	revision number from the message.
	(session_id_validate): New function to validate given session id
	is valid for given context (ie. client address).
	(session_id_generate): Generate a random session id.
	(session_id_create): Create a unique session id and store it.
	(session_id_remove): Remove a session id from the store.
	(login_cb): Create a session id instead of using a constant one.
	(logout_cb): Validate session id.
	(update_cb): Use new message_get_revision_number function.
	(databases_cb): Validate session id.
	(server_cb): Add server context to argument list for callbacks.  It
	is needed to look up the remote host.
	(db_entry_changed_cb): Use braces.
	(soup_auth_callback): Remove FIXME.
	(rb_daap_share_server_start): Create session id store.
	(rb_daap_share_server_stop): Destroy session id store.

	* daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
	Don't base64-encode password here since it needs to be
	combined with the username first.

	* daapsharing/rb-daap-connection.c (build_message):
	Add username to Authorization token.
	(handle_login, handle_song_listing) 
	(rb_daap_connection_do_something): Session id
	must be an unsigned int.

	Fixes #329814

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

	* shell/rb-shell-player.c: (rb_shell_player_get_playing):
	Don't check if we've got a playing entry, ask the player object (duh).
	Might actually fix #329993.	

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

	* sources/rb-static-playlist-source.c:
	(rb_static_playlist_source_add_list_uri):
	Canonicalise URIs before trying to add them to the playlist, and 
	don't try to add files to the database for which there is 
	already an entry.

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

	* shell/rb-shell-player.c: (rb_shell_player_get_playing):
	Don't ask the entry view if we're playing, just check if we've got a
	playing entry.  Fixes #329993.

2006-02-08  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_set_property),
	(rhythmdb_query_model_finalize),
	(rhythmdb_query_model_base_complete): remove
	rhythmdb_query_model_base_entry_prop_changed, so that two signals
	don't get emitted for entry changes. Fixes bug 330301.

	* widgets/rb-library-browser.c: (rb_library_browser_class_init),
	(rb_library_browser_init), (rb_library_browser_constructor),
	(rb_library_browser_new): do stuff in the constructor, not the init
	function, so that the db property gets set on RBPropertyViews
	correctly. Fixes a crash when dragging properties to a playlist.

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

	* daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
	Actually stop soup server.  Fixes #329816.

2006-02-07  James Livingston  <jrl@ids.org.au>

	* lib/rb-util.h:
	* lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
	(rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
	(collate_values_cb), (rb_collate_hash_table_keys),
	(rb_collate_hash_table_values): add functions to compare, copy and
	free string-lists. add functions to collate the keys or values of a
	hash table into a list.

	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_class_init), (entry_from_tree_iter),
	(_remove_entry_cb), (_add_entry_cb),
	(rhythmdb_property_model_set_property),
	(rhythmdb_property_model_get_property),
	(rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
	(rhythmdb_property_model_row_inserted_cb),
	(rhythmdb_property_model_prop_changed_cb),
	(rhythmdb_property_model_entry_removed_cb): correctly handle entries
	that are hidden, storing those that we have counted in a hash-table.

	* shell/Makefile.am: fix build order issue

	* shell/rb-shell-player.c: (rb_shell_player_set_property):
	* sources/rb-source.h:
	* shell/rb-source-header.c: (rb_source_header_sync_control_state):
	* sources/rb-playlist-source.c: (rb_playlist_source_constructor):
	* sources/rb-podcast-source.c: (feed_select_change_cb): add
	browser-toggled method, rename _get_exta_views to _get_property_views,
	since several things depend on returning only that.

	* sources/rb-source.c: (rb_source_class_init),
	(rb_source_browser_toggled), (default_get_property_views),
	(rb_source_get_property_views), (rb_source_row_deleted_cb),
	(rb_source_gather_hash_keys),
	(rb_source_gather_selected_properties): above changes, and move some
	utility functions up from RBLibraryView

	* widgets/rb-property-view.c:
	(rb_property_view_selection_changed_cb): fix leak.

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_set_property),
	(rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
	(rhythmdb_query_model_set_sort_order),
	(rhythmdb_query_model_base_rows_reordered): fix handling of the base
	query model being resorted.

	* rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
	NULL query.

	* rhythmdb/rhythmdb.h:
	* rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
	(rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
	(rhythmdb_query_append_prop_multiple): Add a function to concatenate
	two queries. Add a function to append "property={X,Y,Z,...}" to a
	query.

	* sources/rb-library-source.c: (rb_library_source_class_init),
	(rb_library_source_finalize), (rb_library_source_constructor),
	(rb_library_source_cmd_choose_genre),
	(rb_library_source_cmd_choose_artist),
	(rb_library_source_cmd_choose_album), (impl_search),
	(impl_get_property_views), (impl_reset_filters),
	(rb_library_source_preferences_sync),
	(rb_library_source_browser_views_activated_cb),
	(rb_library_source_state_prefs_sync),
	(construct_query_from_selection), (rb_library_source_do_query),
	(rb_library_source_browser_changed_cb):
	* widgets/Makefile.am:
	* widgets/rb-library-browsers.{c,h}: Add a generalised "library
	browser" widgets, which contains several property views, based on the
	code from RBLibrarySource. Make RBLibrarySource use it.

	* sources/rb-auto-playlist-source.c:
	(rb_auto_playlist_source_class_init),
	(rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
	(rb_auto_playlist_source_constructor), (impl_reset_filters),
	(impl_get_property_views), (impl_browser_toggled),
	(construct_query_from_selection),
	(rb_auto_playlist_source_do_query),
	(rb_auto_playlist_source_set_query),
	(rb_auto_playlist_source_browser_changed_cb): Use the new
	library-browser widget to add browsers to automatic playlists.

2006-02-07  James Livingston  <jrl@ids.org.au>

	* player/rb-player-gst.c: (rb_player_bus_cb): check error type
	properly.
	* shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
	type of the source is taken into account. Fixes bug 329621.

2006-02-07  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
	(rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
	1.1, and perform URI canonicalistion when first upgrading. This should
	fix our remaining canonicalisation issues, such as bug 329988.

2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
	Track the playing entry when the entry view isn't in the playing
	state, so we don't have to get the state changes exactly right.
	Fixes #330135.

2006-02-06  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell-player.c: (open_location_thread),
	(rb_shell_player_open_location): fix several iradio issues: having to
	press play after double-clicking on a station, not working correctly
	without a http:// prefix, and ignoring totem-plparser results other
	than success or error (e.g. IGNORE).

2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>

	Addition of dbus methods for dealing with static playlists and the
	play queue.  Fixes #329958.

	* shell/Makefile.am:
	* shell/rb-playlist-manager.h:
	* shell/rb-playlist-manager.xml:
	* shell/rb-playlist-manager.c: (save_playlist_response_cb),
	(rb_playlist_manager_get_playlists),
	(rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
	(rb_playlist_manager_create_static_playlist),
	(rb_playlist_manager_delete_playlist),
	(rb_playlist_manager_add_to_playlist),
	(rb_playlist_manager_remove_from_playlist),
	(rb_playlist_manager_export_playlist):
	Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
	to create, delete, list, modify, export, and import  static playlists.
	
	* shell/main.c: (main): Register playlist manager object with dbus.

	* shell/rb-shell.h:
	* shell/rb-shell.xml:
	* shell/rb-shell.c: (rb_shell_get_playlist_manager),
	(rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
	(rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
	object, and implement the addToQueue and removeFromQueue methods.
	
	* sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
	* sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
	formats.

2006-02-05  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-tree.c: (parse_boolean),
	(rhythmdb_tree_parser_end_element), (save_entry_boolean),
	(save_entry): allow storage of booleans in the on-disk db, and
	save/load the HIDDEN property.

	* rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
	(rhythmdb_prop_get_type): restore the HIDDEN property of local files
	to the state it was when RB shutdown. This makes RB appear to start
	faster, as tracks can appear before the stat is done. Remote files
	still start hidden. From bug 325215.

2006-02-05  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.c: (rhythmdb_class_init):
	* rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
	really cares about the difference from "entry-added", and it isn't
	emitted by the tree backend anyway.

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_constructor):
	* sources/rb-playlist-source.c: (rb_playlist_source_constructor):
	remove the references to the entry-restored signal.

2006-02-05  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
	issue.

2006-02-05  James Livingston  <jrl@ids.org.au>

	* widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
	things are NULL before using g_object_unref. Fixes bug 327452.

	* player/rb-recorder-gst.c: (rb_recorder_construct):
	* shell/rb-shell-player.c: (rb_shell_player_error): return errors
	rather than assertion.

	* sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
	emit a warning, rather than asserting if an unknown playlist type is
	encountered.

2006-02-05  James Livingston  <jrl@ids.org.au>

	* widgets/Makefile.am:
	* widgets/rb-simple-view.c:
	* widgets/rb-simple-view.h: Move the two features that this class
	provides into RBPropertyView, and remove this class. Closes bug
	327500.

	* podcast/rb-feed-podcast-properties-dialog.c:
	* podcast/rb-feed-podcast-properties-dialog.h:
	* sources/rb-podcast-source.c: (rb_podcast_source_constructor),
	(rb_podcast_source_feeds_show_popup_cb):
	* sources/rb-podcast-source.h:
	* widgets/rb-property-view.c: (rb_property_view_class_init),
	(rb_property_view_constructor), (rb_property_view_popup_menu_cb),
	(rb_property_view_append_column_custom),
	(rb_property_view_button_press_cb):
	* widgets/rb-property-view.h: Updated for the above change.

2006-02-04  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
	too close to Move to Trash and people aren't likely to use it often.

2006-02-04  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address

