============ 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

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

	* rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
	passed a path instead of a URI.

	* sources/rb-generic-player-source.c: (default_get_mount_path):
	* widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
	the path. This fixes bug 329723.

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

	* daapsharing/rb-daap-structure.c:
	(rb_daap_content_code_string_as_int32):
	Use network byte order.

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

	* sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
	Use a hash for source lookup.
	(mdns_service_added, mdns_service_removed): Handle
	service-added and service-removed signals from RBDaapMdnsBrowser.
	(remove_source): GDestroyNotify function for when sources
	are removed from the hash.
	(start_browsing): Create RBDaapMdnsBrowser and source lookup.
	(stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
	(rb_daap_sources_shutdown): Update.
	(source_host_find): GHRFunc for finding a source by ip.
	(rb_daap_source_find_for_uri): Use the hash source lookup.

	* shell/rb-shell-preferences.c (share_check_button_toggled_cb):
	Namespace keys.
	(password_check_button_toggled_cb): Handle password enabled.
	(share_name_entry_focus_out_event_cb): Namespace keys.
	Handle changes more robustly.
	(share_password_entry_focus_out_event_cb): Handle password entry.
	(add_daap_preferences): Connect to password signals.

	* lib/rb-preferences.h: Add DAAP keys.

	* data/glade/daap-prefs.glade: Add password UI.

	* data/rhythmbox.schemas: Add password keys.

	* daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
	assert with warning.

	* daapsharing/rb-daap-sharing.c: Fix includes.  Move
	gconf keys to lib/rb-preferences.h.  Namespace
	the gconf keys.
	(create_share): Add password support.
	(enable_sharing_changed_cb): Namespaced keys.
	(require_password_changed_cb): Handle key change.
	(share_name_changed_cb): Namespaced keys.
	(share_password_changed_cb): Handle key change.
	(rb_daap_sharing_init): Namespaced keys.
	(rb_daap_sharing_shutdown): Ditto.

	* daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
	Add password property.
	(rb_daap_share_set_name): Break out prop set function.
	(published_cb): New RBDaapMdnsPublisher signal handler.
	(name_collision_cb): Ditto.
	(rb_daap_share_init): Create publisher object and
	connect to signals.
	(rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
	(rb_daap_share_set_property): Break out prop set functions.
	(rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
	Unref publisher.
	(rb_daap_share_new): Add password argument.  Start
	publishing and DAAP server.
	(message_set_from_rb_daap_structure): Change print to debug.
	(server_info_cb): Set auth method to publish.
	(logout_cb): Handle DAAP client logout.
	(update_cb): Remove C++ comments.
	(databases_cb): Ditto.  Make message a warning.  Make print a debug.
	(server_cb): Add debug.
	(soup_auth_callback): Handle auth requests.
	(rb_daap_share_server_start): Split up functions for starting
	server and publishing.  Add auth handling to server.
	(rb_daap_share_server_stop): Split stop server and publish.
	No C++ comments.
	(rb_daap_share_publish_start, rb_daap_share_publish_stop):
	Start and stop publishing.
	(rb_daap_share_restart): Restart server and publishing.
	(rb_daap_share_maybe_restart): Conditionally restart.

	* daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
	(rb_daap_collision_dialog_new_run): Don't use
	separators in dialogs.

	* daapsharing/rb-daap-connection.h: Add private
	data to class structure.

	* daapsharing/rb-daap-connection.c: Move
	some includes to top of file.  Make private
	data struct name consistent with others.
	(rb_daap_connection_class_init): Rename
	private.
	(rb_daap_connection_init): Get and store the pointer
	to the private data once instead of in every
	function.  Create a username value "Rhythmbox_VERSION".
	(connection_get_password): Don't get private.
	(build_message): Ditto.
	(http_response_handler): Don't init variables in
	declaration.  Add debug.  Spacing.
	(http_get, entry_set_string_prop, handle_server_info) 
	(handle_login, handle_update, handle_database_info) 
	(handle_song_listing, handle_playlists, handle_playlist_entries) 
	(rb_daap_connection_constructor, rb_daap_connection_logout) 
	(rb_daap_connection_state_done): Don't get private.
	(rb_daap_connection_get_headers): Ditto.  gchar yuck.
	spacing.  Correctly base64 encode the Authentication token.
	Add username to auth token.
	(rb_daap_connection_get_playlists): Don't get private.
	(rb_daap_connection_dispose): Ditto.  Free username.
	(rb_daap_connection_set_property) 
	(rb_daap_connection_get_property): Don't get private.

	* daapsharing/Makefile.am: Conditionally
	compile MDNS backends.  Add marshall stuff.

	* daapsharing/.cvsignore: Update.

	* configure.ac: Add conditional to see which
	MDNS backend we should use.

	* daapsharing/rb-daap-mdns.[ch]: Removed files.

	* daapsharing/rb-daap-marshal.list:
	* daapsharing/rb-daap-mdns-browser-avahi.c:
	* daapsharing/rb-daap-mdns-browser-howl.c:
	* daapsharing/rb-daap-mdns-browser.h:
	* daapsharing/rb-daap-mdns-publisher-avahi.c:
	* daapsharing/rb-daap-mdns-publisher-howl.c:
	* daapsharing/rb-daap-mdns-publisher.h:
	Split rb-daap-mdns.c into two classes.  One for
	publishing and one for browsing.  Split out
	the avahi and howl backends into different files.

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

	patch by: Jan Schmidt <thaytan@mad.scientist.com>

	* rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
	crash if metadata reader gives us NULL for strings.

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

	* shell/rb-shell-player.c: (open_location_thread),
	(rb_shell_player_open_location):
	retrieve iradio playlists files in a thread, so that with GStreamer
	0.10 the UI doesn't block while connecting to stations. The streamer
	connection is synchronous with 0.8, so that will still block (a bit).
	Fixed bug 128106.

	(rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
	because _open_entry does that automatically when it is ready to.

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

	* sources/rb-podcast-source.c: (rb_podcast_source_constructor),
	(rb_podcast_source_post_status_cell_data_func):
	Leave the podcast status column blank for episodes that have not been
	downloaded.

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

	Add support for source-specific toolbar items, and make the Burn
	Playlist item only available for playlists. Also add Update All
	(podcast), Eject and Rip (audio cds). Fixes bug 329041.

	* data/ui/rhythmbox-ui.xml:
	* sources/rb-playlist-source.c: (rb_playlist_source_class_init),
	(impl_get_ui_actions): make the Burn CD toolbar item only for
	playlists

	* lib/rb-stock-icons.c: (rb_stock_icons_init):
	* lib/rb-stock-icons.h: load the Eject icon as stock.

	* shell/rb-removable-media-manager.c: use the eject icon for the eject
	action

	* shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
	(rb_shell_select_source):
	* sources/rb-source.c: (rb_source_class_init),
	(rb_source_disconnect), (default_get_ui_actions),
	(rb_source_get_ui_actions):
	* sources/rb-source.h: add support for source-specific toolbar items

	* sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
	Eject and Rip toolbar items

	* sources/rb-podcast-source.c: (rb_podcast_source_class_init),
	(impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
	item.

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

	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
	* shell/main.c: (main):
	* shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
	Replace all g_critical calls with g_warning, since none of them are
	the sort of thing the process should die over.  Fixes #329398.

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

	* configure.ac: mention gst-plugins-base in the error message for not
	finding GStreamer 0.10, since not having that will cause it to fail.

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

	* configure.ac: fix typo that means you get the wrong error message if
	you explicity request a particular playback engine, and it can't be
	found.

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

	* data/glade/library-prefs.glade: allow the watched library location
	to be a non-local place.

============ Version 0.9.3


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

	* NEWS: update NEWS
	* configure.ac: bump version to 0.9.3

	* data/Makefile.am: pass make distcheck. patch from Christopher Aillon
	<caillon@redhat.com>, fixed bug 329517. 

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

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

	* widgets/rb-song-info.c: (rb_song_info_constructor):
	Make year and disc number fields non-editable if tag editing
	is disabled.  Fixes #329463.

2006-02-01  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_entry_removed_cb): handle hidden entries
	correctly. Fixes bug 327061.

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_entry_changed_cb): emit change notification of
	the HIDDEN property when an entry is removed for being hidden.

	* rhythmdb/rhythmdb-query-model.h:
	* sources/rb-iradio-source.c: (rb_iradio_source_do_query):
	* widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
	models's "connected" property. Whatever it was needed for seems to
	have gone.

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

	patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>

	* shell/rb-shell-player.c: (_idle_unblock_signal_cb),
	(rb_shell_player_playing_changed_cb): block the signal to prevent
	re-entrancy. Fixes bug 329329 and fixes the first click of the play
	button pausing.

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

	* metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
	/should/ now work, if the neccessary plugins get ported.

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

	* daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
	string properties to "Unknown" is the string is empty. Kind of fixes
	bug 327495.

	* rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
	gettext calls once, rather than once per time the function is used.
	This stops us making tens of thousands of gettext calls on startup,
	which reduces the cpu-time of startup by 10-20%

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

	* rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
	(rhythmdb_add_uri):
	* metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
	for files containing known video streams.


2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
	required.

2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* INSTALL.quick: More random updates

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_class_init),
	(rhythmdb_query_model_set_property),
	(rhythmdb_query_model_get_property),
	(rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
	Remove user sort data handling, take a property ID and a reverse
	flag instead.
	(rhythmdb_query_model_insert_into_main_list),
	(rhythmdb_query_model_insert_into_limited_list),
	(rhythmdb_query_model_do_reorder),
	(_reverse_sorting_func):
	Handle reverse sorting by calling _reverse_sorting_func, which
	calls the real sort function and reverses the result.
	(rhythmdb_query_model_set_sort_order):
	Allow this to be called to set the initial sort order for limited
	queries, and handle reverse sorting when reordering.
	(rhythmdb_query_model_location_sort_func),
	(rhythmdb_query_model_album_sort_func),
	(rhythmdb_query_model_artist_sort_func),
	(rhythmdb_query_model_genre_sort_func),
	(rhythmdb_query_model_track_sort_func),
	(rhythmdb_query_model_double_ceiling_sort_func),
	(rhythmdb_query_model_ulong_sort_func),
	(rhythmdb_query_model_date_sort_func),
	(rhythmdb_query_model_string_sort_func):
	Sort functions moved from rb-entry-view.c.
	* rhythmdb/rhythmdb-query-model.h:
	Add the sort functions, and update the changed functions.
	
	* widgets/rb-entry-view.c: (rb_entry_view_set_property):
	Just call _resort_model when the query model is set, since it
	does all the same things.
	(rb_entry_view_append_column):
	Rework bits so the rating column doesn't have to be so much of a
	special case.
	(rb_entry_view_append_column_custom):
	Take a property ID to sort on, rather than arbitrary custom data.
	(rb_entry_view_resort_model):
	Query model does all the reverse sort handling now.
	* widgets/rb-entry-view.h: Update _append_column_custom.

	* sources/rb-play-queue-source.c:
	(rb_play_queue_source_constructor):
	* sources/rb-playlist-source.c: (rb_playlist_source_constructor):
	* sources/rb-podcast-source.c: (rb_podcast_source_constructor),
	(rb_podcast_source_post_date_cell_sort_func),
	(rb_podcast_source_post_status_cell_sort_func),
	(rb_podcast_source_post_feed_cell_sort_func):
	Updates required by all the other changes.

	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_drag_data_get):
	Sort the query results on the selected property,
	so they arrive in the expected order.  All the other changes were made
	to make this possible.  Fixes bug #327494.

2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
	
	* shell/rb-shell-clipboard.c:
	Use GTK_STOCK_REMOVE icon for the remove action in
	the play queue too.

2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* sources/rb-play-queue-source.c:
	(rb_play_queue_source_constructor),
	(rb_play_queue_source_update_count):
	Don't make the 'queued songs' column clickable,
	and add the queued song count to the column title.

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

	* configure.ac: remove "experimental" marking from DAAP, and enable by
	default if the dependencies are found.

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

	* NEWS: update NEWS

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

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

	* sources/rb-podcast-source.c: (rb_podcast_source_constructor),
	(rb_podcast_source_feed_title_cell_data_func): Revert the change of
	property used for the feed list. Fixes problem with feeds with no
	episodes not showing up.

2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
	
	* shell/rb-play-order-random-by-age-and-rating.c:
	(rb_random_by_age_and_rating_get_entry_weight):
	Fix compile errors, bug #328978.

2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* INSTALL.quick, README: Random updates
	* README.lirc: Add notes on controlling Rhythmbox with LIRC

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

	* rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
	default rating back to 0 (from 2.5, which was needed for autorating).

	* 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-rating.c:
	(rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
	2.5 for the purposes of weighting entries.

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

	* lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
	translator comments, to make it clearer what the "friendly time"
	formatting strings mean.

2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* daapsharing/rb-daap-connection.c: (http_response_handler):
	Fix the sense of the overflow check so it'll accept valid input.

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

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

	* lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
	escape paths when using rb_uri_handle_recursively. Closes bug 139646.

2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>

	Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
	
	* shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
	Don't include the artist field in the window title if it's blank.
	Fixes #325973.

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

	* shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
	Use stock delete icon for move to trash and stock remove
	for remove menu item.

2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* shell/rb-shell.c: (rb_shell_constructor),
	(idle_handle_load_complete):  Don't start the playlist save
	timeout until we've loaded the playlists, otherwise we'll
	write an empty playlist file if startup takes too long.

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

	* shell/rb-shell.c: Make view toolbar toggle use
	shift+ctrl+t.  Fixes #327585.

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

	patch by: Christope Fergeau  <teuf@gnome.org>

	* daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
	(http_response_handler): fix a potential buffer overflow issue.

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

	* widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
	Year column wide enough to display "Unknown"

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

	* sources/rb-podcast-source.c: (rb_podcast_source_constructor),
	(rb_podcast_source_post_status_cell_data_func): make the episode
	status wording better. Part of bug 321607.

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

	* data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
	others with a separator.

	* shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
	stock Delete icon.

2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.

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

	* widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
	0.3.2. Fixed bug 328158.

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

	* metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
	(gulong_gst_date_transform), (rb_metadata_class_init):
	* metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.

2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
	(rhythmdb_commit_internal), (rhythmdb_entry_insert),
	(record_entry_change): Protect added_entries and changed_entries with
	a mutex, so it doesn't crash on startup on SMT/SMP machines.

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

	* sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
	the browser for audio CDs.

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

	* daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
	NEVER_FAIL as it causes the daemon-not-running error to never be
	reported, resulting in bug 319438 re-occurring.

2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
	Just call the podcast manager's update method.  Unbreaks the 'update
	all feeds' command.

2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* sources/Makefile.am: Fix typo.  Fixes bug #327970.

2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* configure.ac: Don't disable DAAP with gstreamer 0.10

	* daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
	(rb_daap_src_class_init), (rb_daap_src_init),
	(rb_daap_src_finalize), (rb_daap_src_set_property),
	(rb_daap_src_get_property), (rb_daap_src_write),
	(rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
	(_split_uri), (rb_daap_src_open):
	* daapsharing/rb-daap-src.h:
	Mostly fix seeking, handle chunked transfer encoding, and port to
	gstreamer 0.10.
	
	* player/rb-player-gst.c:
	* sources/rb-daap-source.c: (start_browsing), (stop_browsing):
	Remove rb_daap_src_initialize and rb_daap_src_shutdown.

	Fixes bugs #326738 and #318852, and brings #309609 one step closer to
	being fixed.

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

	patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
	for Year metadata in DAAP sources. Fixes bug 327700.

	* daapsharing/rb-daap-connection.c: (handle_song_listing):

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

	* widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
	enum values instead of magic numbers.

	* widgets/rb-property-view.c (rb_property_view_cell_data_func):
	Add number of songs that match each property title into
	the cell.  Also show the number of properties that match
	in the All entry.
	(rb_property_view_constructor): Use enum values instead of
	magic numbers.

	* sources/rb-podcast-source.c (rb_podcast_source_constructor):
	Query podcast posts instead of feeds for browser.  Use
	post SUBTITLE which is the location for the property view.
	(rb_podcast_source_feeds_show_popup_cb): Remove unused code.
	(construct_query_from_selection) 
	(rb_podcast_source_cmd_delete_feed) 
	(rb_podcast_source_cmd_properties_feed) 
	(rb_podcast_source_cmd_update_feed): Use variable to make
	it clear what the selection data represents.
	(rb_podcast_source_feed_title_cell_data_func): Add number
	of posts that belong to each feed in the browser.

	* rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
	(rhythmdb_property_model_delete_prop): Decrement the refcount
	for the All entry.
	(rhythmdb_property_model_get_column_type): Use column enum
	values instead of magic numbers.  Add NUMBER column.
	(rhythmdb_property_model_get_value): Use enum.
	Add NUMBER column that represents the refcount for
	the title of that property.
	(rhythmdb_property_model_perform_sync): Don't fake up
	a title for All here.

	Fixes #327372.
	
2006-01-21  James Livingston  <jrl@ids.org.au>

	Make Rhythmbox start faster by not blocking the UI while database
	initialisation and loading occurs. Closes bug 323348.

	* rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
	start 10 seconds later instead of immediately.
	
	(rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
	safe to call from any thread.

	(rhythmdb_process_metadata_load), (rhythmdb_process_events),
	(rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
	so the UI doesn't block.

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

	* sources/rb-static-playlist-source.c:
	(rb_static_playlist_source_do_query): fix dumb mistake I made that would
	cause crashes. Oops. fixes bug 327477.

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

	* player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
	Set GST element state to NULL before unreffing.
	Fixes #327422.

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

	* sources/rb-static-playlist-source.c:
	(rb_static_playlist_source_do_query): don't filter on the SONG entry
	type, since the playlists can contain non-song entries. Fixes bug
	327448.

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

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

	* sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
	dragging of podcast episodes. Fixed bug 327450.

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

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_drag_data_received): fix possible assertion when
	dragging to an emoty playlist.

2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* sources/rb-playlist-source-recorder.c:
	Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.

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

	patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>

	* sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
	different number of tracks than exist on the cd, since that happens
	with audio+data hybrid CDs. Part of bug 325046.

2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* sources/rb-playlist-source.c: (rb_playlist_source_constructor):
	Remove useless call to gtk_tree_view_column_set_clickable().

	* widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
	Don't store sort data for columns if the sort function is NULL,
	so only sortable columns will be in the column sort data map.
	(rb_entry_view_set_columns_clickable): Only make columns we can sort
	on clickable.
	(rb_entry_view_constructor):  The 'playing icon' column is never
	clickable, so don't connect a signal handler for it.

	Fixes bug 326811.

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

	* metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
	are 0.8 only. Fix element detection.

	* rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
	saving the new metadata failed

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

	* shell/rb-shell-player.c: (do_next_idle),
	(rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
	(eos_cb): release audio device when a playlist finishes. Fixes bug
	323679.

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

	* rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
	canonicalise the URIs when things are added via library watching.

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

	* sources/rb-playlist-source-recorder.c (update_speed_combobox):
	Off by one error in default speed index.

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

	* sources/rb-playlist-source-recorder.c (get_write_speeds) 
	(update_speed_combobox, update_speed_combobox):
	Get a list of the actually supported write speeds from
	n-c-b >= 2.13.90.  Otherwise use fallback list.

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

	* lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
	(rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
	don't get stuck on recursive symlinks. Fixed bug 125452.

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

	Add support for mass-storage audio players. Players are detected via
	either the HAL "audio_player" capability, or a ".is_audio_player" file
	in the root of the volume. Closes bug 325602.

	* configure.ac: separate using HAL from ipod support.

	* lib/rb-file-helpers.c: (rb_uri_is_local):
	* lib/rb-file-helpers.h: add function to determine whether a URI is
	local.

	* rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
	(rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
	(rhythmdb_process_file_created_or_modified), (queue_stat_uri),
	(queue_stat_uri_tad), (add_thread_main), (action_thread_main),
	(rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
	* rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
	directories can be scanned for files to add as  non-SONG entries.

	* shell/rb-removable-media-manager.c:
	(rb_removable_media_manager_mount_volume): add checking for
	mass-storage players.

	* sources/rb-audiocd-source.c: (rb_audiocd_source_new):
	* sources/rb-ipod-source.c: (rb_ipod_source_new),
	(hal_udi_is_ipod):
	* sources/rb-removable-media-source.c:
	(rb_removable_media_source_class_init),
	(rb_removable_media_source_constructor): move some things up to the
	RBRemovableMediaSource, rather than making subclasses do it.

	* sources/Makefile.am:
	* sources/rb-generic-player-source.c:
	* sources/rb-generic-player-source.h: add mass-storage player source.

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

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

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_base_row_deleted): fix build issue from last
	commit.

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

	Patch to add support for "chained queries" and putting hidden tracks
	in query models. Use chained queries to add search box support to
	normal playlists, and to make hidden entries not get lost. Fixes bug
	319278.

	* rhythmdb/rhythmdb-query-model.h:
	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_class_init),
	(rhythmdb_query_model_set_property),
	(rhythmdb_query_model_get_property):
	(rhythmdb_query_model_finalize): add "show-hidden" and
	"base-model" properties.

	(rhythmdb_query_model_set_connected),
	(rhythmdb_query_model_has_pending_changes),	
	(rhythmdb_query_model_entry_added_cb),
	(rhythmdb_query_model_entry_changed_cb), (idle_process_update),
	(rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
	(rhythmdb_query_model_remove_entry),
	(rhythmdb_query_model_drag_data_received),
	(rhythmdb_query_model_base_row_inserted),
	(rhythmdb_query_model_base_row_deleted),
	(rhythmdb_query_model_base_non_entry_dropped),
	(rhythmdb_query_model_base_complete),
	(rhythmdb_query_model_base_entry_prop_changed),
	(rhythmdb_query_model_base_rows_reordered),
	(rhythmdb_query_model_row_drop_possible): handle base-model by
	chaining events and operations where necessary. Make hidden entries
	not get added only if "show-hidden" is false.

	(rhythmdb_query_model_child_index_to_base_index),
	(rhythmdb_query_model_base_index_to_child_index),
	(rhythmdb_query_model_get_entry_index): utility functions for handling
	base-model entries.

	(rhythmdb_query_model_reapply_query): apply the current query, and
	remove entries that don't match it.

	* rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
	empty queries.

	* sources/rb-source.c: (rb_source_set_property): move the unref later
	to fix problem if it is the last reference.

	* sources/rb-static-playlist-source.c:
	(rb_static_playlist_source_class_init),
	(rb_static_playlist_source_init),
	(rb_static_playlist_source_finalize),
	(rb_static_playlist_source_constructor), (impl_reset_filters),
	(impl_search), (rb_static_playlist_source_do_query),
	(impl_save_contents_to_xml),
	(rb_static_playlist_source_add_location_internal): use a chained query
	model to filter out hidden entries and implement the search box.

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

	* sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
	the default playlist loading, which I broke earlier.

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

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

	* sources/rb-playlist-source.c: (playlist_iter_func): use
	totem-plparser's new API version macros to check for API changes.
	Handle the recent API change.

2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* sources/rb-library-source.c: (impl_get_config_widget):
	Ref the preferences object to match the unref in the
	finalizer.  Fixes some portion of #323505.

2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
	* shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
	Fix valgrind warnings about accessing uninitialised values.

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

	* sources/rb-playlist-source-recorder.c: Make build on 2.12 again.

2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
	Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
	Stops the 'now playing' icon from being displayed after the play
	order finishes.

2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* podcast/rb-podcast-manager.c:
	(rb_podcast_manager_db_entry_deleted_cb):
	Don't try to delete files we never downloaded, and cancel downloads
	for deleted episodes.  Fixes bug #326862.
	* sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
	Don't complain about NULL data items in the selection list.

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

	* shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
	Make the name ofthe queue non editable. Fixes bug 326918.

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

	* sources/rb-playlist-source-recorder.c (burn_cd) 
	(ask_rewrite_disc): Don't use our locally copied functions
	if we have at least 2.13.

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

	* podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
	Correct the argument type for the process_error signal.
	May fix bug #323154.

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

	save the queue to disk when exiting, and reload on startup. Fixed bug
	326677 .

	* shell/rb-playlist-manager.c:
	(rb_playlist_manager_load_playlists),
	(rb_playlist_manager_save_playlists_async): don't disable saving of
	the queue

	* shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
	add the queue source as a gobject property.

	* sources/rb-play-queue-source.c:
	(rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
	code to save the queue to xml

	* sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
	load the queue from xml.
	* sources/rb-playlist-xml.h:

	* sources/rb-static-playlist-source.c:
	(rb_static_playlist_source_load_from_xml),
	(rb_static_playlist_source_new_from_xml):
	* sources/rb-static-playlist-source.h: split the playlist xml loading
	from the static playlist creation function, so the queue can use it.

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

	* rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
	assertion that should be there. Fixes bug 325923.
	
	* rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
	return NULL if the entry already exists (e.g. as another type).
	* daapsharing/rb-daap-connection.c: (handle_song_listing):
	* podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
	(rb_podcast_manager_insert_feed):
	* sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
	* sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
	* sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
	for the above function returning NULL.

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

	* doc/reference/Makefile.am: make gtk-docs build again when libnotify
	is enabled. Fixes bug 326673.
	
	* doc/reference/tmpl/eggtrayicon.sgml:
	* doc/reference/tmpl/rb-daap-src.sgml:
	* doc/reference/tmpl/rb-source.sgml:
	* doc/reference/tmpl/rb-statusbar.sgml:
	* doc/reference/tmpl/rb-tree-model-sort.sgml:
	* doc/reference/tmpl/rhythmbox-unused.sgml:
	* doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs

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

	* widgets/rb-song-info.c: (rb_song_info_constructor),
	(rb_song_info_new), (rb_song_info_populate_dialog_multiple),
	(rb_song_info_populate_dialog): fill in the fields if all tracks have
	the same value for properties. From bug 326054.

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

	* sources/rb-source.h:
	* shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
	(rb_shell_player_set_playing_source_internal), (eos_cb):
	add support for RB_SOURCE_EOF_STOP, so that playback will stop after
	every entry.

	* sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
	source use this. Closes bug 322077.

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

	* widgets/eggtrayicon.c (egg_tray_icon_notify):
	In order for set_icon_data_from_pixbuf() to be
	effective, one must not set an icon in _new().

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

	* widgets/eggtrayicon.c (egg_tray_icon_init) 
	(egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
	(egg_tray_icon_notify): Add support for libnotify 0.3.
	* widgets/Makefile.am: Add missing NOTIFY_CLAGS.
	* configure.ac: Determine the version of libnotify.
	Fixes #326333.

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

	* daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
	trying to share a track with unknown length.

2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* shell/rb-shell-player.c: (rb_shell_player_init):
	Sync volume on startup so it doesn't default to 0.

2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* shell/rb-shell-player.c: (rb_shell_player_class_init),
	(rb_shell_player_get_property), (rb_shell_player_open_location),
	(info_available_cb):  Add the iradio streamed song title as a
	property, and emit a signal when it changes.

	* shell/rb-shell.c: (rb_shell_constructor),
	(rb_shell_player_elapsed_changed_cb),
	(rb_shell_player_stream_song_changed_cb):
	Issue a notification when the iradio song title changes.
	Fixes #326166.

2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* shell/rb-shell-player.c: (rb_shell_player_init),
	(rb_shell_player_finalize), (rb_shell_player_set_property),
	(rb_shell_player_get_property), (rb_shell_player_sync_volume),
	(rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
	(rb_shell_player_set_volume_relative),
	(rb_shell_player_get_volume), (rb_shell_player_set_mute),
	(rb_shell_player_get_mute):
	* shell/rb-shell-player.h:
	* shell/rb-shell-player.xml:
	Store volume as a property on RBShellPlayer, rather than in gconf.
	Add some methods to control volume via dbus.

	* shell/rb-shell.c: (rb_shell_constructor),
	(rb_shell_volume_widget_changed_cb),
	(rb_shell_player_volume_changed_cb):
	* shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
	Update volume using player properties rather than gconf, and sync the
	volume with the volume control button when something else changes it.
	Fixes #323840.

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

	* shell/rb-tray-icon.c (tray_popup_position_menu):
	Make tray menu align with edge of panel.

	patch from Jaap A. Haitsma <jaap@haitsma.org>
	Fixes #319913

2006-01-07  William Jon McCann  <mccann@jhu.edu>
	* shell/rb-shell.c (sourcelist_drag_received_cb): 
	* shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
	(rb_playlist_manager_new_playlist_from_selection_data):
	Make a reasonable default name for playlists created from
	dropped data.  Fixes #326116.

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

	* sources/rb-playlist-source-recorder.c (update_speed_combobox):
	Use new gconf key.
	(burn_cd): Always eject CD after burning.  Too many drives
	get confused if we don't.  Save the speed used if the burn
	was completed successfully.

	* data/rhythmbox.schemas: Use our own speed instead of from
	n-c-b. The situation is that the default_speed for n-c-b is most
	likely the maximum write speed.  This is fine for n-c-b because it
	has burn-proof turned on.  We can't turn it on for audio CDs
	because the results are poor in quality.  So we'll just pick a
	default that should work for everyone (4).

2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
	
	* shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
	(rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.

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

	* shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
	in my previous commit.  Fixes #326037.

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

	patch by: Jonathan Matthew

	* rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
	error on Fedora Rawhide.

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

	* shell/rb-shell.c: (rb_shell_guess_type_for_uri):
	Assume HTTP URLs ending with .xml or .rss are podcasts.
	(rb_shell_add_uri): Handle adding podcast feeds.

	* sources/rb-podcast-source.c: (rb_podcast_source_new):
	Register as the source for podcast feeds.

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

	* shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
	* shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
	(rb_shell_preferences_append_view_page):
	* shell/rb-shell-preferences.h:
	Fix typo in function name.  Fixes #325992.

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

	* shell/rb-audioscrobbler.c:
	Add '+' to the list of characters to URI-encode, so it doesn't get
	interpreted as a space.

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

	* daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
	(rb_daap_connection_do_something):  Don't crash if the DAAP server
	goes away while we're still trying to log in.

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

	* rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.

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

	Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
	support for Year to automatic playlists. Closes bug 321341.

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_set_property):
	* 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_internal),
	(rhythmdb_query_get_type), (rhythmdb_query_preprocess):
	* rhythmdb/rhythmdb.h: Support special
	RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
	year in date.

	* widgets/rb-query-creator-properties.c:
	(yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
	(yearCriteriaGetWidgetData): add Year to the list of criteria options.

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

	* configure.ac: make the playback backend selection work correctly

	* daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
	(rb_daap_src_class_init), (rb_daap_src_dispose),
	(rb_daap_src_change_state), (rb_daap_src_initialize):
	* daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
	doesn't work for this class. Fixes bug 325934

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

	* configure.ac: Fix check for libnotify.

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

	* sources/rb-playlist-source.c (xml_get_and_trim_names):
	Get name element for current lang and remove all name nodes
	from the XML tree.
	(get_playlist_name_from_xml): Try to get name element or
	fall back to name attribute.
	(rb_playlist_source_new_from_xml): Get name before turning over
	to sub-types for parsing so that we can remove name elements
	from the tree if necessary.

	* shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
	Load default playlists file if per user playlists are not found.

	* data/playlists.xml.in: 
	* data/Makefile.am: 
	* data/.cvsignore: Add default set of playlists.
	Fixes #323004

2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* shell/main.c: (main): Don't use the dbus interface to show the
	window if we're also going to use the bonobo interface.

2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* shell/rb-history.c: (rb_history_set_playing):
	Allow setting the playing song to NULL.
	(rb_history_append), (rb_history_delete_link):
	Don't randomly change position when entries are added and removed,
	it confuses play orders.
	
	* shell/rb-play-order-random.c: (rb_random_play_order_class_init):
	Random orders always have a next entry if the model is not empty.
	(rb_random_play_order_get_next), (rb_random_play_order_go_next):
	Go back to the start of the history if we're past its end.

	* shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
	(rb_shuffle_play_order_go_next): Go back to the start of the history
	if we're past its end.
	(rb_shuffle_sync_history_with_query_model): Go back to the start of
	the history if the current entry is removed.

	* shell/rb-play-order.c: (rb_play_order_entry_added_cb),
	(rb_play_order_entry_deleted_cb): Only update have next/previous for
	the play order when the query has finished. This wasted about 10% CPU
	while the query was running.

	Fixes #324641: assertion failures when the query model was changed
	such that the playing song was no longer present.

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

	* daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
	(rb_daap_src_dispose), (rb_daap_src_change_state):
	* rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
	(rhythmdb_gda_finalize):
	* widgets/rb-cell-renderer-pixbuf.c:
	* widgets/rb-cell-renderer-rating.c:
	(rb_cell_renderer_rating_class_init),
	(rb_cell_renderer_rating_finalize):
	* widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
	* widgets/rb-load-failure-dialog.c:
	(rb_load_failure_dialog_class_init),
	(rb_load_failure_dialog_finalize):
	* widgets/rb-rating.c: (rb_rating_class_init),
	(rb_rating_finalize):
	* widgets/rb-search-entry.c: (rb_search_entry_class_init),
	(rb_search_entry_finalize): use G_DEFINE_TYPE

	* widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.

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

	patch by: Lubomir Marinov <lubomir.marinov@gmail.com>

	* shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
	the tarball.

	* shell/rb-history.c: (rb_history_class_init),
	(rb_history_finalize):
	* shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
	(rb_playlist_manager_finalize):
	* shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
	(rb_remote_init): use G_DEFINE_TYPE.

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

	* configure.ac: don't try to use libnotify >= 0.3.0 because of API
	changes

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

	* shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
	Disable burn action when source is not a playlist.
	Fixes #323578.

2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>

	Optionally use libnotify to display song change and other
	notifications, and provide an option to disable notifications.
	Fixes #320355 and innumerable informal complaints.

	* widgets/eggtrayicon.c: (egg_tray_icon_init),
	(egg_tray_icon_unrealize), (egg_tray_icon_send_message),
	(egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
	(egg_tray_icon_notify):
	* widgets/eggtrayicon.h:
	* configure.ac:
	* shell/Makefile.am:
	Optionally use libnotify instead of eggnotificationbubble.

	* shell/rb-tray-icon.c: (rb_tray_icon_class_init),
	(rb_tray_icon_constructor), 
	(rb_tray_icon_show_notifications_changed_cb),
	(rb_tray_icon_hide_notify_cb)
	(rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
	Add 'show notifications' action handling, use G_DEFINE_TYPE, move
	EggNotificationBubble pointer to eggtrayicon.

	* data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
	* lib/rb-preferences.h: Add #define for /ui/show_notifications key
	* data/rhythmbox.schemas: Add schema for /ui/show_notification key

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

	* sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
	Request a minimum size for the progress bar so that
	the window doesn't shrink too small.

2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
	(add_db_entry), (db_entry_deleted_cb):
	Don't track the number of songs currently present, track the next ID
	to assign.  Fixes potential ID conflict problems.
	
	(db_entry_changed_cb), (rb_daap_share_start_publish),
	(rb_daap_share_stop_publish):
	Watch for db entry changes, and when songs become non-hidden after
	a successful stat, add them to the mapping tables.   Fixes #325178,
	making the DAAP server usable again.

2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
	
	* shell/rb-statusbar.c: (rb_statusbar_class_init),
	(rb_statusbar_construct), (rb_statusbar_init),
	(rb_statusbar_finalize), (rb_statusbar_set_property),
	(rb_statusbar_get_property), (rb_statusbar_new),
	(rb_statusbar_sync_with_source):
	* shell/rb-statusbar.h:
	Remove visibility management code, stop watching for play order
	changes (status bar doesn't show play order any more), remove unused
	'player' property, and some other minor cleanup.
	
	* shell/rb-shell.c: (rb_shell_constructor),
	(rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
	(rb_shell_sync_statusbar_visibility):
	Manage status bar visibility here rather than in the status bar
	itself, so we can take small mode into account.  Fixes #323589.

2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* widgets/eggnotificationbubble.c: (draw_bubble):
	Move the bubble off the visible screen while setting up bevels.  
	Fixes #316810.

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

	* shell/rb-shell-player.c: (rb_shell_player_init),
	(rb_shell_player_finalize): 
	Remove unused structure members.
	
	(do_next_idle), (rb_shell_player_error):
	Only queue one call to do_next_idle, so we don't skip tracks if we get
	two errors for the same song.  Fixes #325216.

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

	* data/glade/podcast-feed-properties.glade,
	 podcast/rb-feed-podcast-properties-dialog.c:
	(rb_feed_podcast_properties_dialog_init),
	(rb_feed_podcast_properties_dialog_update):
	Add 'last episode' field to the podcast feed properties dialog.

	* podcast/rb-feed-podcast-properties-dialog.c:
	(rb_feed_podcast_properties_dialog_update_last_update),
	(rb_feed_podcast_properties_dialog_update_last_episode),
	 podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
	Use last-seen property for the time at which we last updated the feed,
	and post-time for the time the last episode was published.

	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
	Handle upgrades from 0.9.2; if no post-time was found for a podcast
	feed, use last-seen (which in 0.9.2 was the last post time).

	Fixes #323894.

2006-01-01  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 playcount and
	year from the ipod database.

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

	* metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
	Only set the pipeline back to NULL state for really uninteresting
	files.  This was causing deadlocks with various video files.
	Fixes #324912.

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

	* data/glade/song-info-multiple.glade:
	Add disc number label and field.
	* widgets/rb-song-info.c: (rb_song_info_construct_single),
	(rb_song_info_constructor): 
	Handle widgets for disc number.
	(rb_song_info_sync_entries_multiple):
	Set disc number property on selected entries.
	Fixes #324777.

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

	* iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
	* podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
	Activate the default widget when enter is pressed in these dialogs.
	Fixes #322887.

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

	* shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
	Use rb_shell_player_get_playing_entry, so we get the right entry
	when playing from the queue.  Fixes #325379.

2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
	Include podcast posts with no publication date.  Typically
	seen in static collections rather than feeds.

2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* shell/main.c: (main): Don't attempt to handle
	bonobo-only arguments if we couldn't get a bonobo
	client proxy.

2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
	(rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
	abort if daap sharing is disabled and then re-enabled.

2005-12-29  William Jon McCann  <mccann@jhu.edu>

	* podcast/rb-podcast-parse.c (rb_insert_item):
	Add debugging.
	(rb_podcast_parser_start_element): Support itunes:image.
	Add debugging.  Don't abuse the break statement.  Warn
	if state is unknown.
	(rb_podcast_parser_end_element): Add debugging.  Warn
	if state is unknown.
	(rb_podcast_parser_characters): Warn if state is unknown.

	Fixes parsing of feeds that use the itunes:image element.
	Fixes #324632

2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* sources/rb-iradio-source.c: (handle_playlist_entry_cb),
	(stations_view_drag_data_received_cb):
	Remove calls to rhythmdb_entry_lookup_by_location, as
	rb_iradio_source_add_station does that anyway.
	
	(rb_iradio_source_add_from_playlist):
	If the URL doesn't point to a playlist, add it as the stream
	URL instead.

2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
	just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
	so we don't get an assertion failure.
	Fixes #325025.

2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* shell/main.c: (load_uri_args): don't compile this in if
	neither bonobo nor dbus are enabled.  Fixes #324890.

2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* sources/rb-audiocd-source.c:
	(rb_audiocd_scan_songs): Always return the pipeline to NULL state,
	so it closes the device.

2005-12-20  James Livingston  <jrl@ids.org.au>

	* metadata/rb-metadata-gst.c: make the state changes time-out again,
	so that it doesn't spend forever getting stuck on the one file. Don't
	report errors for failing to change state on known non-audio files.

	* player/rb-player-gst.c: (rb_player_construct): let playbin deal with
	audio sink creation if we can't create the gconfaudiosink. This lets
	it work with only gst-plugins-base on 0.10.

2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_set_sort_order):
	Fix a tiny memory leak in the previous commit.

2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_set_sort_order):
	Don't try to emit reorders for empty query models, since it doesn't
	achieve anything and it results in a few warnings.

2005-12-19  William Jon McCann  <mccann@jhu.edu>

	* sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
	Make burn dialog non-resizable so that the expander can shrink.
	Fixes #308951.

2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
	add entries without a location, rather than those with one.

2005-12-19  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
	the error isn't set.

2005-12-19  James Livingston  <jrl@ids.org.au>
	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
	add entries without a location. Fixes bug 324290.

	* rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
	without a location.

	* shell/main.c: (main): don't crash if dbus initialisation fails
	without setting an error

2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* sources/rb-library-source.c: Remove unused structure members
	(rb_library_source_do_query): Actually use the cached 'all' query.
	Fixes #324025.
	
2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* sources/rb-audiocd-source.c 
	(rb_audiocd_get_cd_info): tab
	(rb_audiocd_scan_songs): Return boolean success/failure,
	fix error messages a bit.
	(metadata_cb): Don't crash if we have no tracks
	(rb_audiocd_load_songs): Don't try to read metadata if we can't read
	the CD.
	Fixes #324222.

2005-12-15  William Jon McCann  <mccann@jhu.edu>

	* shell/rb-shell.c (rb_shell_sync_fullscreen) 
	(rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
	key.

	Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
	Fixes #324157

2005-12-14  William Jon McCann  <mccann@jhu.edu>

	* shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
	(rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
	(fullscreen_changed_cb): 
	* lib/rb-preferences.h: 
	* data/ui/rhythmbox-ui.xml: 
	* data/rhythmbox.schemas:
	Add fullscreen mode.

	Fixes #324075.

2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>

	* configure.ac: Removed DBUS_SERVICES_DIR from top-level
        configure.  It was not working with RPM.
	* data/Makefile.am: Switched dbus directory location to use
	datadir instead of variable that was not working.

2005-12-13  James Livingston  <jrl@ids.org.au>

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

	* sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
	the podcast browser work again. Closes bug 323856.

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

	* sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
	Remove C99ism.

	* lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
	(rb_utf_friendly_time):
	* lib/rb-cut-and-paste-code.h:

	* podcast/rb-feed-podcast-properties-dialog.c:
	(rb_feed_podcast_properties_dialog_parse_time):
	* podcast/rb-podcast-properties-dialog.c:
	(rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
	to display the date in a more user friendly way.
	For example, if the feed was updated yesterday it will say:
	Last updated: Yesterday 10:00 AM
	instead of printing the date.

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

	* podcast/rb-podcast-parse.c (rb_set_channel_value) 
	(rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
	(rb_validate_item_propert, rb_podcast_parser_start_element) 
	(rb_podcast_parser_end_element, rb_podcast_parser_characters):
	Use RB style.  Check for NULL before strcmp.  No C++ comments.
	(rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
	Don't set invalid mime type when mime type is NULL.  Fix leaks.
	(rb_podcast_parse_date): Add support for some real world
	date formats.
	(rb_podcast_parse_time, rb_podcast_parse_channel_free) 
	(rb_podcast_parse_item_free): Style and no need to check
	for NULL before g_free.

	May fix #323742

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

	* player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
	with gstreamer 0.10, which replaced audioscale.

	* shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
	function to free the SoupSession

	* shell/rb-source-header.c: (rb_source_header_set_property),
	(rb_source_header_disclosure_toggled_cb),
	(rb_source_header_view_browser_changed_cb),
	(rb_source_header_sync_control_state):
	* sources/rb-iradio-source.c: (rb_iradio_source_class_init):
	* sources/rb-library-source.c: (rb_library_source_class_init):
	* sources/rb-source.c: (rb_source_class_init),
	(rb_source_get_status), (default_get_browser_key),
	(rb_source_get_browser_key), (rb_source_can_browse),
	(rb_source_notify_status_changed),
	(rb_source_notify_filter_changed):
	* sources/rb-source.h: seperate the enabling of browsers from the use
	of a gconf key.

2005-12-11  William Jon McCann  <mccann@jhu.edu>

	* data/glade/podcast-feed-properties.glade: 
	* data/glade/podcast-properties.glade: Use scrolled viewports
	for description text.  Fix regression of #320509.

2005-12-11  James Livingston  <jrl@ids.org.au>

	* sources/rb-auto-playlist-source.c:
	(rb_auto_playlist_source_class_init), (impl_reset_filters),
	(impl_search), (rb_auto_playlist_source_do_query),
	(rb_auto_playlist_source_set_query),
	(rb_auto_playlist_source_get_query): add support for the search box
	to automatic playlists.

	* sources/rb-library-source.c: (rb_library_source_dispose): fix minor
	memory leak.

2005-12-11  James Livingston  <jrl@ids.org.au>

	* NEWS: update NEWS

2005-12-11  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
	(rhythmdb_load), (monitor_subdirectory),
	(rhythmdb_sync_library_location):  start the library sync and
	monitoring in an idle callback.

2005-12-10  William Jon McCann  <mccann@jhu.edu>

	* sources/rb-podcast-source.c (rb_podcast_source_class_init) 
	(rb_podcast_source_constructor): Remove unused pixbuf column.
	(rb_podcast_source_set_property, rb_podcast_source_get_property):
	Use consistent style.

	Fixes #322961.

2005-12-11  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
	(rhythmdb_property_model_insert),
	(rhythmdb_property_model_delete_prop):
	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
	(rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
	(destroy_tree_property):
	* rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
	(rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
	GMemChunks, they are crap and deprecated. Improves startup-time and
	memory usage slightly.

2005-12-10  William Jon McCann  <mccann@jhu.edu>

	* shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
	Added license and website info.

	* MAINTAINERS.old: Add Colin.
	* MAINTAINERS: Add James.
	* AUTHORS: Put back in order.  Add extra space between name and email
	to make it easier to read.  Add James and jonathan.

	* widgets/rb-song-info.c (rb_song_info_init) 
	(rb_song_info_constructor): Make sure close button is primary/rightmost.

2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>

	Play queue implementation. Closes bug 107787.

	* data/rhythmbox.schemas: add items for whether the queue should be
	displayed as a sidebar, and the height of the sourcelist if it is.

	* data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
	playlist, and podcast popups; add 'view queue as sidebar' menu item,
	add popups for queue as source and as sidebar.  We need a separate
	popup for the sidebar view because otherwise it's hard to tell which
	of the visible entry views the action came from.

	* lib/rb-preferences.h: Add constant for queue-as-sidebar preference

	* po/POTFILES.in: Add new file

	* podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
	Add helper function for deciding if a podcast episode is available for
	playback.

	* rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
	reorder entries in the query model.
	(idle_process_update): Handle new update type used to insert entries
	at a particular position in the query model.
	(rhythmdb_query_model_add_entry): Use new update type, take an 'index'
	parameter to specify the position (-1 meaning 'at the end').
	(rhythmdb_query_model_insert_into_main_list): Handle the 'index'
	parameter.
	(rhythmdb_query_model_remove_from_main_list): Abort if we're getting
	bad entry removal updates for entries that aren't in the model.
	(rhythmdb_query_model_emit_reorder): Add helper function for
	reordering rows.
	(rhythmdb_query_model_move_entry): New method for moving entries
	around in the model
	(rhythmdb_query_model_entry_added_cb),
	(rhythmdb_query_model_update_limited_entries),
	(rhythmdb_query_model_do_reorder),
	(rhythmdb_query_model_do_insert): Pass through the index parameter,
	use rhythmdb_query_model_emit_reorder where appropriate.

	* shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
	Don't allow the queue to be deleted.
	(handle_playlist_entry_cb): Update for method signature change
	(rb_playlist_manager_save_playlists_async),
	(rb_playlist_manager_get_playlists): Don't save the play queue,
	don't report it as a playlist.

	* shell/rb-play-order.c: Include queue play order in the list of
	available orders.

	* shell/rb-shell.c
	(rb_shell_class_init), (rb_shell_get_property): Add new property 
	for access to the clipboard object.
	(rb_shell_constructor): Handle playing-from-queue signal to update the
	sourcelist display; add queue sidebar in to UI, listen for queue
	sidebar pane changes, and read initial settings from gconf.
	(rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
	Only tell the sourcelist the source has changed if the new source is 
	not the queue, as we update the sourcelist differently in that case.
	(rb_shell_set_window_title): Only use the cached window title if the
	playing state was the same when it was created.
	(rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
	(rb_shell_sync_pane_visibility): Only hide the side pane if the
	sourcelist is hidden and the queue is shown as a source.
	(rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
	mode, since it doesn't make any sense.
	(sourcelist_visibility_changed_cb): Update the visibility of the pane
	too.
	(rb_shell_sync_paned): Update the queue sidebar pane separator too.
	(sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
	(rb_shell_jump_to_entry_with_source): Handle jump to entry when
	playing from queue shown as sidebar.

	* shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
	MusicProperties action here from rb-shell-player.c, since it acts like
	cut/copy/paste etc.
	(rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
	(rb_shell_clipboard_get_property): new property for queue source.
	Watch for selection changes in the sidebar entry view as well as the
	normal one.
	(rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
	actions and MusicProperties.
	(rb_shell_clipboard_cmd_queue_delete),
	(rb_shell_clipboard_cmd_add_song_to_queue),
	(rb_shell_clipboard_cmd_song_info),
	(rb_shell_clipboard_cmd_queue_song_info): New action handlers.

	* shell/rb-shell-player.{c,h}: Track the source the current playing entry
	actually came from (could be the playing source, or the queue), add a 
	new play order object for the queue, add a property for the queue
	source, add a signal for when we switch between playing from the
	source and from the queue.
	(rb_shell_player_set_property): Handle playing directly from the
	queue so we stop once the queue is empty.  Create queue play order
	when we get the queue source.
	(rb_shell_player_get_playing_source): Return the source we're actually
	playing from.
	(rb_shell_player_get_playing_entry): Get playing entry from queue if
	that's where it is.
	(rb_shell_player_set_playing_entry): Update the queue play order if 
	that's where we're playing from.
	(rb_shell_player_play_order_update_cb): Take has next/previous for the
	queue into consideration too.
	(swap_playing_source): Helper function for switching the playing
	source.
	(rb_shell_player_do_previous): Check the queue, even though there's
	never a previous entry in it (yet), swap playing source if it changed.
	(rb_shell_player_do_next): Check the queue for entries to play before
	the normal play order, and swap playing source if it changed.
	(rb_shell_player_do_previous_or_seek): Check the queue for previous
	entries to go to as well.
	(rb_shell_player_playpause): Check the queue before the selection and
	the play order, and swap playing source if it changed.
	(rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
	(rb_shell_player_entry_activated_cb): Use
	rb_podcast_manager_entry_downloaded, do some tapdancing to make
	activating queue entries work properly (move the activated entry to
	the start of the queue and then play it); if we were playing from the
	queue, clear its playing entry so it'll start again from the start
	after the activated entry.
	(rb_shell_player_sync_buttons): MusicProperties action handler moved
	to rb-shell-clipboard.c
	(actually_set_playing_source): Add helper for updating the playing
	source.
	(rb_shell_player_set_playing_source_internal): Emit playing-from-queue
	signal if we stop or start doing so; use actually_set_playing_source; 
	emit playing-source-changed if we actually did change source.

	* sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
	rb_static_playlist_source_add_location.

	* sources/rb-library-source.c (rb_library_source_class_init): Allow
	enqueueing of songs from the library.

	* sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
	enqueueing of sonsg from playlists.
	(rb_playlist_source_entry_added_cb): Add extra parameter for
	rhythmdb_query_model_add_entry.
	
	* sources/rb-podcast-source.c (rb_podcast_source_class_init):
	Implement (can_)add_to_queue for this class.
	(rb_podcast_source_entry_activated): Use
	rb_podcast_manager_entry_downloaded.
	(impl_can_add_to_queue): Return TRUE if at least one entry that has
	been downloaded is selected.
	(impl_add_to_queue): Only add downloaded entries to the queue.

	* sources/rb-source.{c,h}:
	(rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
	methods.
	(rb_source_class_init): Don't allow enqueueing by default; implement 
	add_to_queue though.
	(default_add_to_queue): Add all selected entries to the queue.
	
	* sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
	would be playing if there wasn't anything in the queue).
	(set_source_playing): Helper function for manipulating tree store.
	(rb_sourcelist_set_playing_source): Use set_source_playing
	(rb_sourcelist_preempt_playing_source): Update preempted source
	pointer, manipulate source states.

	* sources/rb-static-playlist-source.{c,h}:
	(rb_static_playlist_source_add_location_internal),
	(rb_static_playlist_source_add_location),
	(rb_static_playlist_source_add_entry): Add index parameter for
	specifying where in the playlist the new entry goes.
	(rb_static_playlist_source_new_from_xml), (impl_paste),
	(rb_static_playlist_source_add_list_uri),
	(rb_static_playlist_source_add_location_swapped),
	(rb_static_playlist_source_add_locations),
	(rb_static_playlist_source_non_entry_dropped),
	(rb_static_playlist_source_row_inserted):
	Handle new index parameter everywhere it appears
	(rb_static_playlist_source_move_entry): New method for moving entries
	around in the playlist.

	* widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
	warnings when trying to scroll entry views that have never been
	displayed.

	* shell/rb-play-order-queue.{c,h}: New files, implementing a linear
	play order that removes the old entry when switching to a new one.

	* sources/rb-play-queue-source.{c,h}: New files, implementing a
	static playlist subclass that has a second entry view for the sidebar
	view using alternate formatting, and that displays the number of
	entries it contains in its source list entry.

2005-12-10  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_add_entry),
	(rhythmdb_query_model_drag_data_received):
	* sources/rb-static-playlist-source.c:
	(rb_static_playlist_source_non_entry_dropped): when things are
	dropped, ignore any blank lines in the list of uris. Make the source
	responsible for adding new items to the db.

	* rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
	empty string.

2005-12-10  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell-player.c: (rb_shell_player_set_property),
	(rb_shell_player_sync_buttons),
	(rb_shell_player_selection_changed_cb): watch for the
	"selection-changed" signal, so that the Song Properties get enabled.
	Closes bug 323694.

2005-12-10  James Livingston  <jrl@ids.org.au>

	* data/rhythmbox.schemas: fix the gconf schema

2005-12-10  James Livingston  <jrl@ids.org.au>

	* metadata/rb-metadata-gst.c: don't set the state to NULL when inside
	the decoded-pad callback with gstreamer 0.8, it causes problems.

2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>

	Remove more junk from RBEntryView. Closes bug 323640.

	* widgets/rb-entry-view.{c,h}:
	Remove unused private structure members, replace 'playing' boolean
	with an enum (so we know if we're paused too), and store a pointer to
	the RBShellPlayer too.	
	(rb_entry_view_class_init), (rb_entry_view_set_property),
	(rb_entry_view_get_property):
	Remove 'entry-selected' and 'changed' signals and
	'playing-entry' property, add 'selection-changed' signal and
	'shell-player' and 'playing-state' properties.
	(rb_entry_view_new): Take the shell player object reference
	(rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
	(rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
	No longer needed, shell player is the place to get this information.
	(rb_entry_view_busy), (rb_entry_view_get_duration),
	(rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
	(rb_entry_view_get_next_from_entry),
	(rb_entry_view_get_previous_from_entry),
	(rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
	(rb_entry_view_get_num_entries):
	Removed, callers should go to the query model directly.
	(rb_entry_view_playing_song_changed): Update active query model, emit
	row changed signals to update pixbufs, and scroll to the playing song
	when the playing song changes, based on a signal from the shell
	player.
	(queue_changed_sig), (rb_entry_view_row_changed_cb),
	(emit_entry_changed): Evil, removed.
	(rb_entry_view_selection_changed_cb): Remove old signals, add new
	selection-changed signal.
	(rb_entry_view_select_none), (rb_entry_view_select_entry):
	Remove selection lock.	It didn't work anyway.
	(rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
	(rb_entry_view_emit_row_changed): Simple helper function to emit
	row-changed signals.

	* widgets/Makefile.am: Entry view needs headers from the shell/
	directory.
	* widgets/rb-song-info.{c,h}: Use the query model for everything except

	scrolling the entry view to show the entry being displayed.
	(rb_song_info_class_init), (rb_song_info_get_property): Add new 
	'source' property so we can watch for query model changes.
	(rb_song_info_finalize): Unref objects, disconnect signal handlers
	(rb_song_info_set_property): Watch for query model changes, don't
	watch for entry view changes.
	(rb_song_info_new): Take source as a parameter, use the source's entry
	view unless one was specifically supplied.
	(rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
	Use query model rather than entry view to move between songs.
	(rb_song_info_update_buttons): Use query model.
	(rb_song_info_query_model_changed_cb): Handle query model changes.

	* shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
	Only one copy of the code to enable/disable the CD burning action
	(rb_playlist_manager_playlist_entries_changed):
	Use the query model to get the number of entries, not the entry view.

	* shell/rb-play-order-random-by-age-and-rating.c,
	shell/rb-play-order-random-by-age.c,
	shell/rb-play-order-random-by-rating.c,
	shell/rb-play-order-random-equal-weights.c:
	Use G_DEFINE_TYPE

	* shell/rb-shell-player.{c,h}:
	Remove a few unused entries from the structure.
	(rb_shell_player_set_property):
	Don't use the 'changed' signal on the entry view (it's evil)
	(rb_shell_player_have_first): No longer needed
	(rb_shell_player_play): Just tell the entry view it's playing
	(rb_shell_player_playpause): Tell the entry view it's paused
	when pausing.
	(rb_shell_player_entry_view_changed_cb): No longer used, removed.
	(rb_shell_player_property_row_activated_cb):
	Get the entry to play using the query model, not the entry view.
	(rb_shell_player_sync_buttons): Update entry view state while we're
	here.
	(rb_shell_player_set_playing_source_internal): Update entry view state
	(rb_shell_player_get_playing): Ask the entry view, not the player.
	This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
	and rb_shell_set_window_title work properly, so you get "(Paused)" in
	the window title and tray icon tooltip.
	(rb_shell_player_get_mm_player): Not used anywhere, so removed.

	* sources/rb-iradio-source.c, sources/rb-library-source.c,
	sources/rb-podcast-source.c, sources/rb-playlist-source.c:
	(rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
	view constructor, pass the source in to the song info widget
	constructor.

	* shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
	Use 'selection-changed' instead of 'changed', since that's what the
	clipboard cares about.
	(rb_shell_clipboard_set_source): Don't die if source == NULL

2005-12-10  James Livingston  <jrl@ids.org.au>

	* player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
	* sources/rb-playlist-source-recorder.c:
	(_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
	stuff not use the deprecated API when compiled against 2.13

2005-12-10  James Livingston  <jrl@ids.org.au>

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

	* widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
	problem where the genre tag was getting set to the artist. Closes bug
	323642.

2005-12-09  William Jon McCann  <mccann@jhu.edu>

	* rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
	Return NULL if can't get first iter.

	Fixes #323663

2005-12-09  William Jon McCann  <mccann@jhu.edu>

	* sources/rb-iradio-source.[ch] (impl_song_properties): Use
	updated rb_station_properties_dialog_new API.
	(rb_iradio_source_add_from_playlist): New public function.
	(rb_iradio_source_first_time_changed): Use add_from_playlist.

	* shell/rb-shell.c (new_station_location_added): Handle
	iradio location added signal.
	(rb_shell_cmd_new_station): Use new iradio station dialog.

	* iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
	(rb_station_properties_dialog_new): Don't squeeze new
	station functionality into this class.
	(rb_station_properties_dialog_response_cb): ditto.
	(rb_station_properties_dialog_update_title): Make
	consistent with other properties dialogs.
	(rb_station_properties_dialog_location_changed_cb): Do nothing.

	* iradio/rb-new-station-dialog.[ch]: 
	* iradio/Makefile.am: Add new station dialog.

	* data/glade/station-new.glade: New file based on
	new podcast feed dialog.
	* data/glade/station-properties.glade: Updated to
	be consistent with song properties dialog.

	Fixes #323306.

2005-12-10  James Livingston  <jrl@ids.org.au>

	patch by: Ståle Lyngaas <staale@lyngaas.com>

	* shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
	submit songs longer than 30 minutes. Fixes bug 323639.

2005-12-09  William Jon McCann  <mccann@jhu.edu>

	* shell/rb-shell.c (idle_save_playlist_manager): Use new
	async save function.
	(rb_shell_finalize): Remove save timeout sources.  Reorder
	steps a bit to make saving db and playlists a bit more
	failsafe in case something goes wrong later.
	(rb_shell_constructor): Keep track of save timeout source.
	(add_to_library_response_cb): Keep track of db save timeout source.

	* shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
	g_atomic.
	(rb_playlist_manager_shutdown): New function to shutdown
	threads etc. before exit.
	(rb_playlist_manager_finalize): Moved handling outstanding
	threads stuff to shutdown since if there are outstanding threads
	they hold a ref and finalize is never called.
	(rb_playlist_manager_save_thread_main): Use cond broadcast instead
	of signal which may be required for sync save.
	(rb_playlist_manager_save_playlists_async): Renamed old
	save_playlists to save_playlists_async.  Use g_atomic.
	(rb_playlist_manager_save_playlists): New function to
	perform sync saves (symmetric with RhythmDB API).
	(rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.

	* rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
	Style consistency anality.
	(rhythmdb_finalize): Remove save timeout source.
	(rhythmdb_set_property, rhythmdb_get_property) 
	(rhythmdb_process_events): More anality and keep track of
	save timeout source.
	(action_thread_main): No need to call g_thread_exit.
	(rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
	(rhythmdb_query_parse_valist, rhythmdb_query_free) 
	(write_encoded_gvalue, read_encoded_property): La la la.

	Fixes #322940.

2005-12-10  James Livingston  <jrl@ids.org.au>

	* metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
	non-audio files.

2005-12-10  James Livingston  <jrl@ids.org.au>

	* Makefile.am:
	* configure.ac: remove the rpm spec files, so that automake works.
	oops

	* rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
	locking issue

2005-12-09  James Livingston  <jrl@ids.org.au>

	* debian/: try to get cvs to actually remove the files

2005-12-09  James Livingston  <jrl@ids.org.au>

	* rhythmbox.spec.in:
	* debian/: remove the distro package stuff, they are *really* old, and
	downstream manage it anyway.

2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>

	Rework play orders to work off query models rather than 
	entry views, and track the playing entry themselves rather
	than relying on the entry view to do it.  This makes the entry
	view mostly just a widget. Closes bug 323612.

	* daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
	Use query model rather than entry view to get the number
	of entries in playlists.

	* rhythmdb/rhythmdb-query-model.{c.h}
	(rhythmdb_query_model_tree_path_to_entry),
	(rhythmdb_query_model_iter_to_entry),
	(rhythmdb_query_model_get_next_from_entry),
	(rhythmdb_query_model_get_previous_from_entry):
	New utility functions for iterating through query models.
	(rhythmdb_query_model_compute_status_normal):
	Have one copy of this code, not four.

	* shell/rb-play-order.{c,h}:
	Add signals for when next/previous availability changes, and
	when the playing entry is removed, and add a property for
	the current playing entry.  Add gtkdoc comments too.
	(rb_play_order_class_init): Add new property and signals.
	(rb_play_order_finalize), (rb_play_order_playing_source_changed),
	(rb_play_orer_query_model_changed_cb),
	(rb_play_order_query_model_changed): 
	Use query model rather than entry view.
	(rb_play_order_set_property), (rb_play_order_get_property):
	Handle new playing-entry property.  Call playing_entry_changed virtual
	method so subclasses can do any processing required.
	(rb_play_order_is_playing), (rb_play_order_get_playing_entry),
	(rb_play_order_set_playing_entry):
	Just use the playing-entry property.
	(rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
	Utility methods for subclasses.
	(rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
	Update next/previous availability, check if the playing entry
	was removed.
	(default_playing_entry_removed):
	Keep the current behaviour of just stopping playback when the 
	playing entry is deleted.
	(rb_play_order_go_next), (rb_play_order_go_previous): Implement
	these for subclasses that don't have go_next/go_previous, but do
	have get_next/get_previous.
	(rb_play_order_update_have_next_previous): Emit signal if the
	availability of next/previous entries has changed.

	* shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
	shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
	Use G_DEFINE_TYPE, replace entry view iterator with query model 
	methods.
	(rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
	on the last song in the shuffled order, go back to the start. This
	means if you press 'play' again you'll get the whole order again, not
	just one song.

	* shell/rb-shell-player.c:
	(rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
	play order rather than the entry view.
	(rb_shell_player_set_property): Update the play order when the
	selected source changes and we aren't playing anything.
	(rb_shell_player_sync_play_order): Copy the playing entry across to
	the new play order so playback continues from the same song, and watch
	for updates to have_next/have_previous.
	(rb_shell_player_play_order_update_cb): Enable/disable the
	next/previous actions when next/previous entry availability changes.
	(rb_shell_player_jump_to_current): Just use the play order's idea of
	what's playing, not the entry view's; if not playing anything, clear
	the selection, so when a playlist ends and you hit play again, it'll
	start at the start rather than the end.
	(rb_shell_player_do_previous): restructure a bit.
	(rb_shell_player_do_next): restructure, jump to new playing entry in
	an idle handler instead of directly.
	(rb_shell_player_do_previous_or_seek): Only try to go to the previous
	song if there is one.
	(rb_shell_player_playpause): Jump to playing song, don't update the
	play order if we got the song from the selection.
	(rb_shell_player_playing_entry_deleted_cb): Not needed.
	(rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
	looks after next/previous actions now.	Don't break if called while
	there is no selected source.
	(rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
	(rb_shell_player_set_playing_source_internal),
	(rb_shell_player_error): No need to track the attempted playing entry
	any more, since the play order does that.

	* shell/rb-shell.c:
	(rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
	rb_shell_player_get_playing_entry rather than going through the entry
	view.

	* shell/rb-statusbar.c (rb_statusbar_set_property),
	(rb_statusbar_source_status_changed_cb): Listen to the source rather 
	than the entry view for status bar text changes.
	(rb_statusbar_sync_status): Ask the query model directly

	* sources/rb-source.{c}: Add query model property.
	(default_get_status): Get status text from query model, should be
	suitable for most sources.
	(rb_source_set_property): Listen for changes to the query model 
	to update the status text.
	(rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
	(idle_emit_status_changed): Emit status-changed signals when query
	model changes. 

	* sources/rb-library-source.c, sources/rb-podcast-source.c:
	(impl_get_status): Not needed, RBSource does this now
	(rb_library_source_do_query) (rb_podcast_source_do_query): 
	Update RBSource's query model reference.

	* sources/rb-playlist-source.c:
	Remove query-model property, since RBSource has one now
	(impl_get_status): Not needed, RBSource does this now
	(rb_playlist_source_row_deleted): Use query model iterator helper
	function.
	(rb_playlist_source_set_query_model): Update RBSource's query model
	reference too.

	* sources/rb-iradio-source.c:
	(impl_get_status): Ask the query model directly.
	(rb_iradio_source_do_query): Update RBSource's query model reference
	when we create a new query.

	* sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
	Use query model rather than entry view.

	* widgets/rb-entry-view.{c,h}: 
	Remove playing_entry_deleted signal (now in play order).
	(entry_from_tree_path), (entry_from_tree_iter): Not needed
	 as RhythmDBQueryModel has equivalent helper functions.
	(rb_entry_view_*): Use query model helpers instead of the above two
	functions.

2005-12-09  James Livingston  <jrl@ids.org.au>

	* configure.ac:
	* player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
	(rb_recorder_enabled):
	* shell/rb-removable-media-manager.c: (poll_tray_opened):
	* sources/rb-playlist-source-recorder.c:
	(_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
	whether libnautilusburn has the _drive_unref function, and if so use
	it. Stops it complaining about deprecated API.

2005-12-09  James Livingston  <jrl@ids.org.au>

	* configure.ac: drop the minimum gstreamer version back down, it
	accidently got pushed up in the gst 0.10 patch. Closes bug 323561.

2005-12-09  James Livingston  <jrl@ids.org.au>

	* widgets/rb-song-info.c: (rb_song_info_class_init),
	(rb_song_info_show), (rb_song_info_constructor),
	(rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
	(rb_song_info_forward_clicked_cb): save metadata changes when the
	Next/Previous buttons are pressed (closes bug 320952). use
	G_DEFINE_TYPE.

2005-12-09  James Livingston  <jrl@ids.org.au>

	Patch by: <jonathan@kaolin.hn.org>

	* sources/rb-iradio-source.c:
	(stations_view_drag_data_received_cb):
	* sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
	of urls. Fixes bug 323610.

2005-12-09  James Livingston  <jrl@ids.org.au>

	 patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
	 GStreamer 0.10. DAAP support for 0.10 isn't done yet.

	* configure.ac:
	* metadata/rb-metadata-gst.c:
	* player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
	(rb_player_construct), (rb_player_new):
	* player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
	(rb_recorder_gst_signal_error), (pipe_message),
	(rb_recorder_new_pad_cb), (rb_recorder_construct),
	(rb_recorder_new):
	* shell/main.c: (main):
	* sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
	(rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.

2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>

        * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency

        * shell/rb-playlist-manager.c:
          (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
          (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
          (rb_playlist_manager_set_automatic_playlist),
          (rb_playlist_manager_cmd_new_automatic_playlist),
          (rb_playlist_manager_cmd_edit_automatic_playlist):
           Use new playlist subclasses.
          (rb_playlist_manager_save_playlists): Only read the dirty flag
           for local playlists, minor pointless reformatting

        * sources/Makefile.am: add new files

        * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
          split lots of stuff out into two
          new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
          make RBPlaylistSource abstract, add virtual methods for showing a
          popup for the entry view and saving the playlist to XML.
          Other stuff is subclass-specific, or already virtual in RBSource.

        * sources/rb-playlist-xml: Define playlist XML tags and attributes
          in one place, since they're used across three source files now

        * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
          Use new static playlist class

        * sources/rb-ipod-source.c: (add_rb_playlist):
          Use new static playlist class

	* sources/rb-static-playlist-source.{c,h},
	source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
	files.

	* po/POTFILES.in: add new files

2005-12-07  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
	(rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
	metadata loads not attempt to write changes to disk.

2005-12-07  James Livingston  <jrl@ids.org.au>

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

	* data/glade/song-info-multiple.glade:
	* widgets/rb-song-info.c: (rb_song_info_constructor),
	(rb_song_info_sync_entries_multiple): allow the year to be changed on
	multiple songs at once.

2005-12-06  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
	(rhythmdb_entry_set_visibility): emit signal when visibility changes.

2005-12-06  James Livingston  <jrl@ids.org.au>

	* sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
	names rather than adding a horizontal scroll bar.

2005-12-06  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_update_limited_entries),
	(rhythmdb_query_model_drag_data_received): remove some pointless debug
	messages

	* rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
	(rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
	always hide rather than remove DB entries, which will make RB not lose
	information when tag editing happens or people move files to trash and
	then change their mind. Also fix some races where the monitoring code
	would notice the temporary files generated by saving metadata.

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

	* widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
	Hide internals and add tooltips.
	(rb_song_display_box_size_allocate): Hide internals.
	(sanitize_string, info_url): Copied from rb-header.
	(rb_song_display_box_sync): New public function.

	* widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
	(rb_header_init): Use a separate row for the seek bar.
	(rb_header_finalize): Don't unref widgets.
	(rb_header_sync): Use rb_song_display_box_sync.
	(rb_header_set_urldata)
	(rb_header_set_show_artist_album): Hide instead of remove widgets.
	(rb_header_set_show_position_slider): Set visibility of seek bar.
	(rb_header_set_show_timeline): Set sensitivity of seek bar.
	(rb_header_get_elapsed_string): Don't shift when you first start playback.

	* shell/rb-statusbar.c (rb_statusbar_init)
	(rb_statusbar_sync_state): Remove shuffle and repeat controls.

	* shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
	(rb_shell_constructor): Remove hseparator.  Monitor
	toolbar visibility settings.  Add toolbar.  Add
	volume button to toolbar.  Add tooltips for volume button.
	(rb_shell_view_toolbar_changed_cb) 
	(rb_shell_sync_toolbar_visibility)
	(toolbar_visibility_changed_cb): Set visibility of
	toolbar.
	(rb_shell_sync_smalldisplay): Set the toolbar style to
	icons only when in small display mode.
	(rb_shell_volume_widget_changed_cb): Save volume setting.

	* shell/rb-shell-player.c (rb_shell_player_constructor):
	Remove pause and stop actions.  Make play action "important"
	so that text is visible in horizontal toolbar position.
	Remove control buttons.
	(rb_shell_player_init) 
	(rb_shell_player_sync_song_position_slider_visibility):
	Set visbibility of seek bar.
	(rb_shell_player_cmd_play, rb_shell_player_playpause):
	Make play action a toggle.
	(rb_shell_player_sync_volume): Volume control moved
	to player.
	(gconf_song_position_slider_visibility_changed):
	Set visbibility of seek bar.
	(rb_shell_player_sync_buttons):
	Set sensitivity of actions instead of buttons.
	(rb_shell_player_playing_changed_cb): Add callback
	for player notify::playing changes.

	* lib/rb-preferences.h: Add hide toolbar and seek
	bar key names.

	* data/ui/rhythmbox-ui.xml: Add hide toolbar and
	seek bar menu items.  Remove pause and stop actions
	from the control menu.  Add a toolbar.

	* data/rhythmbox.schemas: Add toolbar_hidden
	song_position_slider_hidden keys.

	Patch by: James Livingston  <jrl@ids.org.au>
	          William Jon McCann  <mccann@jhu.edu>
	Fixes #316238.

2005-12-05  James Livingston  <jrl@ids.org.au>

	* data/glade/library-prefs.glade:
	* data/rhythmbox.schemas:
	* lib/rb-preferences.h:
	* rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
	(rhythmdb_sync_library_location):
	* sources/rb-library-source.c: (rb_library_source_class_init),
	(rb_library_source_finalize), (rb_library_source_constructor),
	(impl_get_config_widget), (rb_library_source_preferences_sync),
	(rb_library_source_watch_toggled_cb): allow people to disable library
	monitoring, because with nothing set the file chooser button selects
	the Home folder (and hence that will get monitored).

2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>

	* podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
	attempt to fix problem with RSS parsing showing invalid feed types.
	Fixes bug 323153

2005-12-04  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
	(rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
	importing a remote directory not block the UI.

2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>

	* data/glade/podcast-feed-properties.glade:
	* data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.

2005-12-04  James Livingston  <jrl@ids.org.au>

	patch by: Dennis Cranston <dennis_cranston@yahoo.com>

	* podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
	to && to fix a mistake in the earlier podcast patch.

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

	* data/glade/podcast-new.glade:
	* podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
	(rb_new_podcast_dialog_text_changed): remove some unused stuff.

	* player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
	GValue, which stops occasional errors.

	* podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
	compile issue.

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

	patch by: Dennis Cranston <dennis_cranston@yahoo.com>

	* podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
	crasher with some podcasts feeds.

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

	* data/rhythmbox.schemas: fix the gconf schema

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

	patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
	add a selection timeout to the sourcelist. This lets you hold a track
	over the playlist source, and then have the view switch so you can
	insert the track in the middle of the playlist. Closes bug 323044.

	* lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
	(select_on_drag_timeout), (remove_select_on_drag_timeout),
	(rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
	(rb_tree_dnd_add_drag_dest_support):
	* lib/rb-tree-dnd.h: Add an option for tree views to have a selection
	timeout.

	* sources/rb-sourcelist-model.c:
	(rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
	the source list.

2005-12-02  Bastien Nocera  <hadess@hadess.net>

	* data/glade/audioscrobbler-prefs.glade: add a space before the web
	links, so that the text doesn't touch the button

2005-12-02  James Livingston  <jrl@ids.org.au>

	Add full support for gnome-vfs remote files. Closes bug 140355.

	* rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
	(rhythmdb_execute_stat): perform stats asynchronously, so that waiting
	for authentication information from the user doesn't block the UI.

	(rhythmdb_entry_set_visibility): don't emit the signal twice.

	* rhythmdb/rhythmdb.c: (rhythmdb_action_free),
	(rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
	(rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
	(rhythmdb_process_stat_event), (emit_load_error_idle),
	(rhythmdb_process_metadata_load),
	(rhythmdb_process_queued_entry_set_event),
	(rhythmdb_process_file_created_or_modified),
	(rhythmdb_process_file_deleted), (rhythmdb_process_events),
	(queue_stat_uri), (add_thread_main),
	(emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
	(rhythmdb_load), (rhythmdb_save_thread_main),
	(threadsafe_entry_set), (rhythmdb_query_internal),
	(query_thread_main), (rhythmdb_do_full_query_async_parsed),
	(rhythmdb_do_full_query_internal),
	(entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
	(rhythmdb_volume_unmounted_cb),
	(rhythmdb_check_changed_file): trivial changes to support the
	asynchronous stats.

	* shell/main.c: (main): activate the authentication manager.

	* shell/rb-playlist-manager.c:
	(rb_playlist_manager_cmd_load_playlist),
	(rb_playlist_manager_cmd_save_playlist):
	* shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
	(rb_shell_cmd_add_file_to_library):
	* sources/rb-playlist-source.c: (rb_playlist_source_add_location):
	* widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
	remote files.

2005-12-02  James Livingston  <jrl@ids.org.au>

	* shell/rb-playlist-manager.c: makes playlist menu items use the
	elipses correctly. Fixes bug 322283.

2005-12-02  James Livingston  <jrl@ids.org.au>

	* shell/rb-playlist-manager.c:
	(rb_playlist_manager_load_playlists): fix silly mistake

2005-12-02  James Livingston  <jrl@ids.org.au>

	* metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
	print out metadata-write unless --debug was passed.

	* rhythmdb/rhythmdb.c: (rhythmdb_load):
	* shell/rb-playlist-manager.c:
	(rb_playlist_manager_load_playlists): block writes to disk if they are
	still being loaded.

2005-12-02  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
	ctrl-T, because Ctrl-D is used by "small mode"

2005-12-02  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell-preferences.c:
	(rb_shell_preferences_append_view_page):
	* sources/rb-library-source.c: (impl_get_config_widget):
	* sources/rb-podcast-source.c: (impl_get_config_widget):
	* sources/rb-source.c: (rb_source_get_config_widget):
	* sources/rb-source.h: Make the preference actually work.

	* shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
	if Rhythmbox is being run for the first time.

2005-12-02  James Livingston  <jrl@ids.org.au>

	Add support for Rhythmbox to watch your library, and automatically add
	new tracks. Fixes bug 160159.

	* data/glade/library-prefs.glade: add "library location" preference
	* data/rhythmbox.schemas: add gconf key for the library location

	* rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
	(rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
	(rhythmdb_finalize), (rhythmdb_directory_change_cb),
	(rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
	(rhythmdb_process_metadata_load), (rhythmdb_process_events),
	(rhythmdb_load_thread_main), (rhythmdb_load),
	(monitor_subdirectory), (monitor_library_directory),
	(monitor_entry_file), (rhythmdb_sync_library_location),
	(library_location_changed_cb), (rhythmdb_check_changed_file),
	(rhythmdb_process_changed_files): Let Rhythmbox watch the directories
	specifiec in the gconf key for new additions. Also fix monitoring code
	so that it works properly, and notices deletions.

	* lib/rb-preferences.h:
	* shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
	(rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
	* shell/rb-audioscrobbler.h:
	* shell/rb-shell-preferences.c: (rb_shell_references_append_page),
	(rb_shell_preferences_append_view_page),
	(rb_shell_preferences_new):
	* shell/rb-shell-preferences.h: rework the way audioscrobbler adds
	it's preferences pane, so that we don't need #ifdef's through
	rb-shell-preferences.

	* shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
	(rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
	"preferences" property, so that sources can acccess it. This is needed
	because the library location pref needs to take effect when the window
	is closed.

	* sources/rb-library-source.c:
	(rb_library_source_library_location_changed),
	(rb_library_source_dispose), (rb_library_source_finalize),
	(rb_library_source_constructor), (impl_get_config_widget),
	(rb_library_source_preferences_sync),
	(rb_library_source_process_library_location_change),
	(rb_library_source_prefs_update),
	(rb_library_source_process_library_handle_selection),
	(rb_library_source_library_location_cb): set up and control the
	"library location" preference.

	* sources/rb-audiocd-source.c:(rb_source_class_init):
	* sources/rb-source.c: (rb_source_class_init): remove some pointless
	code.

2005-12-01  William Jon McCann  <mccann@jhu.edu>

	* podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
	(rb_feed_podcast_properties_dialog_update_title): 
	* data/glade/podcast-feed-properties.glade:
	Make the feed properties dialog consistent with the podcast
	properties dialog.

2005-12-01  William Jon McCann  <mccann@jhu.edu>

	* metadata/.cvsignore: 
	* po/.cvsignore: 
	* podcast/.cvsignore: Updated.

	* shell/main.c (main): Support DBus 0.6 flags.

2005-11-30  Bastien Nocera  <hadess@hadess.net>

	* data/ui/rhythmbox-ui.xml:
	* rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
	(rhythmbd_entry_move_to_trash_set_error),
	(rhythmdb_entry_move_to_trash):
	* rhythmdb/rhythmdb.h:
	* shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
	(rb_shell_clipboard_cmd_delete),
	(rb_shell_clipboard_cmd_move_to_trash):
	* sources/rb-library-source.c: (rb_library_source_class_init),
	(impl_delete), (impl_move_to_trash):
	* sources/rb-playlist-source.c: (rb_playlist_source_class_init),
	(impl_delete), (impl_move_to_trash):
	* sources/rb-removable-media-source.c:
	(rb_removable_media_source_class_init):
	* sources/rb-source.c: (rb_source_class_init),
	(rb_source_can_move_to_trash), (rb_source_delete),
	(rb_source_move_to_trash):
	* sources/rb-source.h:
	Add move_to_trash member for the sources, implement move to trash for
	the library and playlists
	Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
	local files to the trash, and deleting them from the database
	(Closes: #315389)

2005-11-30  William Jon McCann  <mccann@jhu.edu>

	* shell/rb-tray-icon.c (rb_tray_icon_class_init) 
	(rb_tray_icon_init, rb_tray_icon_finalize): 
	* shell/rb-statusbar.c (rb_statusbar_class_init) 
	(rb_statusbar_init, rb_statusbar_finalize): 
	* shell/rb-source-header.c (rb_source_header_class_init) 
	(rb_source_header_init, rb_source_header_finalize): 
	* shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
	(rb_shell_finalize): 
	* shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
	(rb_shell_preferences_init, rb_shell_preferences_finalize): 
	* shell/rb-shell-player.c (rb_shell_player_class_init) 
	(rb_shell_player_init, rb_shell_player_finalize): 
	* shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
	(rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
	* shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
	(rb_playlist_manager_init, rb_playlist_manager_finalize): 
	* shell/rb-play-order.c (rb_play_order_class_init) 
	(rb_play_order_init, rb_play_order_finalize): 
	* shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
	(rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
	* shell/rb-play-order-random.c (rb_random_play_order_class_init) 
	(rb_random_play_order_init, rb_random_play_order_finalize): 
	* shell/rb-history.c (rb_history_class_init, rb_history_init) 
	(rb_history_finalize): 
	* shell/rb-commander.c (rb_commander_class_init) 
	(rb_commander_init, rb_commander_finalize): 
	* shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
	(rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
	* remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
	(rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
	* podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
	(rb_podcast_properties_dialog_init) 
	(rb_podcast_properties_dialog_finalize): 
	* podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
	(rb_podcast_manager_init, rb_podcast_manager_finalize): 
	* podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
	(rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
	* podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
	(rb_feed_podcast_properties_dialog_init) 
	(rb_feed_podcast_properties_dialog_finalize): 
	* metadata/rb-metadata-gst.c (rb_metadata_class_init) 
	(rb_metadata_init, rb_metadata_finalize): 
	* iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
	(rb_station_properties_dialog_init) 
	(rb_station_properties_dialog_finalize): 
	* daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
	(rb_daap_share_init, rb_daap_share_dispose): 

	Use g_type_class_add_private in all classes. Closes bug 313688.
	
2005-11-30  James Livingston  <jrl@ids.org.au>

	patch by: William Jon McCann <mccann@jhu.edu> to use
	g_type_class_add_private in all classes. Closes bug 313688.

	* lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
	(rb_thread_finalize):
	* player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
	(rb_player_finalize):
	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_class_init),
	(rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
	(rhythmdb_query_model_finalize):
	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
	(rhythmdb_tree_init), (rhythmdb_tree_finalize):
	* rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
	(rhythmdb_finalize):
	* sources/rb-daap-source.c: (rb_daap_source_class_init),
	(rb_daap_source_init), (rb_daap_source_dispose):
	* sources/rb-iradio-source.c: (rb_iradio_source_class_init),
	(rb_iradio_source_init), (rb_iradio_source_finalize):
	* sources/rb-library-source.c: (rb_library_source_class_init),
	(rb_library_source_init), (rb_library_source_finalize):
	* sources/rb-playlist-source.c: (rb_playlist_source_class_init),
	(rb_playlist_source_init), (rb_playlist_source_dispose):
	* sources/rb-podcast-source.c: (rb_podcast_source_class_init),
	(rb_podcast_source_init), (rb_podcast_source_finalize):
	* sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
	(rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
	* sources/rb-sourcelist-model.h:
	* sources/rb-sourcelist.c: (rb_sourcelist_class_init),
	(rb_sourcelist_init), (rb_sourcelist_finalize):
	* sources/rb-sourcelist.h:
	* widgets/disclosure-widget.c: (finalize), (class_init), (init):
	* widgets/rb-cell-renderer-rating.c:
	(rb_cell_renderer_rating_init),
	(rb_cell_renderer_rating_class_init),
	(rb_cell_renderer_rating_finalize):
	* widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
	(rb_druid_finalize):
	* widgets/rb-entry-view.c: (rb_entry_view_class_init),
	(rb_entry_view_init), (rb_entry_view_finalize):
	* widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
	(rb_header_finalize):
	* widgets/rb-load-failure-dialog.c:
	(rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
	(rb_load_failure_dialog_finalize):
	* widgets/rb-property-view.c: (rb_property_view_class_init),
	(rb_property_view_init), (rb_property_view_finalize):
	* widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
	(rb_rating_finalize):
	* widgets/rb-search-entry.c: (rb_search_entry_class_init),
	(rb_search_entry_init), (rb_search_entry_finalize):
	* widgets/rb-simple-view.c: (rb_simple_view_class_init),
	(rb_simple_view_init), (rb_simple_view_finalize):
	* widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
	(rb_song_display_box_init), (rb_song_display_box_finalize):
	* widgets/rb-song-info.c: (rb_song_info_class_init),
	(rb_song_info_init), (rb_song_info_finalize):
	* widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
	(rb_tree_model_sort_init), (rb_tree_model_sort_finalize):

2005-11-30  James Livingston  <jrl@ids.org.au>

	* iradio/rb-station-properties-dialog.c:
	(rb_station_properties_dialog_init),
	(rb_station_properties_dialog_new):
	* lib/rb-glade-helpers.c: (rb_glade_boldify_label):
	* lib/rb-glade-helpers.h:
	* podcast/rb-feed-podcast-properties-dialog.c:
	(rb_feed_podcast_properties_dialog_init),
	(rb_feed_podcast_properties_dialog_new):
	* podcast/rb-podcast-properties-dialog.c:
	(rb_podcast_properties_dialog_init),
	(rb_podcast_properties_dialog_new):
	* shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
	* shell/rb-shell-preferences.c: (rb_shell_preferences_init):
	* sources/rb-library-source.c: (impl_get_config_widget):
	* sources/rb-playlist-source-recorder.c:
	(rb_playlist_source_recorder_init):
	* widgets/rb-song-info.c: (rb_song_info_construct_single),
	(rb_song_info_constructor): create a single rb_glade_boldify_label()
	in rb-glade-helpers, rather than having eight implementation
	throughout the code.

2005-11-30  James Livingston  <jrl@ids.org.au>

	* lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
	* lib/rb-util.h:
	* widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
	move the duration->string function into rb-utils, as it gets used in a
	few places.

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

	* 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_title),
	(rb_podcast_properties_dialog_update_feed),
	(rb_podcast_properties_dialog_update_duration),
	(rb_podcast_properties_dialog_update_bitrate): Make the podcast
	info dialog look more like the song info dialog. Use the same "Feed"
	value that is displayed in the treeview (ie. the album field), displays
	the duration, uses units in the bitrate field, and sort the fields in
	the same order.

2005-11-29  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-marshal.list:
	* rhythmdb/rhythmdb.h:
	* rhythmdb/rhythmdb.c: (rhythmdb_class_init),
	(emit_load_error_idle), (rhythmdb_process_metadata_load),
	(entry_to_rb_metadata), (emit_save_error_idle),
	(action_thread_main): emit error signal when metadata write fails.

	* shell/rb-shell.c: (rb_shell_constructor),
	(rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
	"metadata save" error and display it to the user.

2005-11-29  James Livingston  <jrl@ids.org.au>

	* data/ui/rhythmbox-ui.xml:
	* sources/rb-podcast-source.c:
	(rb_podcast_source_songs_show_popup_cb),
	(rb_podcast_source_cmd_download_post),
	(rb_podcast_source_cmd_cancel_download): split download and cancel
	download commands. Replace usage of "Post" with "Esisode". Fixes bug
	321653.

2005-11-18  William Jon McCann  <mccann@jhu.edu>

	* widgets/rb-dialog.c (rb_error_dialog): Don't use a
	title on alert dialogs per the HIG.

	* sources/rb-playlist-source-recorder.c (burn_cd): Don't use
	the term Burn.
	(free_song_list): Routine to free song list.
	(rb_playlist_source_recorder_finalize): Use free_song_list.
	(rb_playlist_source_recorder_add_from_model): Return FALSE
	if unable to add all songs.  Check that duration of all
	songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
	Fixes #321753.

	* sources/rb-playlist-source-recorder.c (check_media_length)
	(rb_playlist_source_recorder_start): Only check the duration
	and current media if the playlist length is longer than a
	standard CD (74 min).  Otherwise, just let the Recorder do the
	check.
	* player/rb-recorder-gst.c (rb_recorder_init): Get a default
	drive at init.
	(rb_recorder_set_device): Don't leak drives.
	(rb_recorder_get_media_length): Use drive that was already set.
	(rb_recorder_burn): Let the recorder handle checking media type/size.
	Fixes bug 321754.

2005-11-29  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_set_sort_order):
	* rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
	emitting the tree-model "resorted" signal.

	* widgets/rb-entry-view.c: (rb_entry_view_class_init),
	(rb_entry_view_finalize), (rb_entry_view_set_property),
	(rb_entry_view_constructor), (rb_entry_view_resort_model):
	* widgets/rb-entry-view.h: add a function to resort the entry view,
	using the above function.

	* sources/rb-iradio-source.c:
	(rb_iradio_source_songs_view_sort_order_changed_cb):
	* sources/rb-library-source.c: (rb_library_source_finalize),
	(songs_view_sort_order_changed_cb), (rb_library_source_do_query):
	* sources/rb-playlist-source.c:
	(rb_playlist_source_songs_sort_order_changed_cb):
	* sources/rb-podcast-source.c:
	(rb_podcast_source_posts_view_sort_order_changed_cb),
	(rb_podcast_source_do_query): use the above function instead of
	re-creating the query model. This makes changing the sorting an order
	of magnitude faster, as it uses a single resorted signal rather than
	deleting and re-adding everything (which emits 2N signals). Closes bug
	315389.

2005-11-29  James Livingston  <jrl@ids.org.au>

	patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
	autosizing, which results in large speedups. Closes bug 312122.

	* po/ja.po: change the date format, so that it is a constant width

	* sources/rb-playlist-source.c: (rb_playlist_source_constructor):
	* sources/rb-podcast-source.c: (rb_podcast_source_constructor):
	* widgets/rb-entry-view.c: (rb_entry_view_append_column),
	(rb_entry_view_constructor): make columns use fixed widths,
	disable column autosizing, and enable fixed-height mode.

	* widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
	(rb_entry_view_get_time_date_column_sample):
	* widgets/rb-entry-view.h: functions to set a column to a fixed width,
	and get the canonical date format for the locale.

============ Version 0.9.2

2005-11-28  James Livingston  <jrl@ids.org.au>

	* configure.ac: bump version to 0.9.2
	* NEWS: update with changes for 0.9.2

2005-11-28  James Livingston  <jrl@ids.org.au>

	patch by: Jonathan Matthew <jonathan@kaolin.hn.org>

	* shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
	Disable saving, renaming and delting for DAAP playlists.
	Fixes bug 322627.

2005-11-28  James Livingston  <jrl@ids.org.au>

	* podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
	gnome_vfs_get_file_info is returning NULL for the mime-type. Should
	prevent bug 322619.

	* sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
	* sources/rb-removable-media-source.c:
	(rb_removable_media_source_class_init): fix ipod browser visibility
	problem.

2005-11-28  James Livingston  <jrl@ids.org.au>

	* daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
	Avahi 0.6 support actually work. Fixes bug 322519.

2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>

	* configure.ac: Fix configure check for Avahi 0.6/0.5 when
        avahi is specified in --with-mdns

2005-11-27  James Livingston  <jrl@ids.org.au>

	patch by: Bastien Nocera <hadess@hadess.net>

	* podcast/rb-podcast-parse.c: use the #define we are supposed to use,
	not the private one. Fixes bug 322485.

2005-11-26  James Livingston  <jrl@ids.org.au>

	patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
	Avahi 0.6, as well as 0.5.

	* configure.ac:
	* daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
	(rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
	(add_service):

2005-11-25  James Livingston  <jrl@ids.org.au>

	* configure.ac: Make --enable-ipod not confuse configure. Closes bug
	321926.

2005-11-25  James Livingston  <jrl@ids.org.au>

	* metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
	correct type for checking the date against 0. Stops a warning when
	saving metadata.

2005-11-25  James Livingston  <jrl@ids.org.au>

	* player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
	adjustment to be inside the element's limits. Without this songs that
	have large ReplayGain values will recieve no increase because they are
	outside the acceptable range, causing them to remain quiet.

2005-11-25  James Livingston  <jrl@ids.org.au>

	* sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
	* sources/rb-daap-source.c: (rb_daap_source_class_init):
	* sources/rb-ipod-source.c:
	* sources/rb-source.h:
	* sources/rb-library-source.h:
	* sources/rb-library-source.c: (rb_library_source_class_init),
	(rb_library_source_constructor),
	(rb_library_source_has_first_added_column),
	(rb_library_source_has_drop_support):
	* sources/rb-removable-media-source.c:
	(rb_removable_media_source_class_init): Make library-derived sources
	not show the Date Added column, as it doesn't make sense. Fixes bug
	322269.
	Move some of the feature funcs from the ipod and audio cd sources up to
	the removable media source.

2005-11-24  James Livingston  <jrl@ids.org.au>

	* sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
	errors. oops.

2005-11-24  James Livingston  <jrl@ids.org.au>

	* sources/rb-iradio-source.c: (rb_iradio_source_class_init),
	(rb_iradio_source_dispose), (rb_iradio_source_finalize),
	(rb_iradio_source_constructor): Chain up dispose method and use
	G_DEFINE_TYPE

2005-11-24  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
	mistake in the last commit that can cause crashes.

2005-11-24  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
	instead of g_printerr.

	* widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
	rb_debug instead of g_warning. The message happens every time for
	removable media/daap shares, so it's not unusual.

2005-11-24  James Livingston  <jrl@ids.org.au>

	patch by: Tom Parker <palfrey@tevp.net>

	* configure.ac: fix libsoup test for enabling daap

2005-11-23  James Livingston  <jrl@ids.org.au>

	* widgets/rb-query-creator.c: (rb_query_creator_class_init),
	(rb_query_creator_init), (rb_query_creator_constructor),
	(rb_query_creator_dispose), (rb_query_creator_load_query): don't add
	empty row to queries with no criteria. Fixes bug 322078. use
	G_DEFINE_TYPE.

2005-11-23  James Livingston  <jrl@ids.org.au>

	patch by:  <baptiste.millemathias@gmail.com>

	* help/C/quick-reference.xml: update the quick reference to have the
	correct key bindings.

2005-11-22  James Livingston  <jrl@ids.org.au>

	* sources/rb-library-source.c: (genres_selection_reset_cb),
	(artists_selection_reset_cb), (albums_selection_reset_cb): Properly
	reset the query when all browser selections are removed.

2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* podcast/rb-podcast-manager.c:
	(rb_podcast_manager_db_entry_deleted_cb):
	Use a custom loop to remove podcast posts, rather than
	gtk_tree_model_foreach(), as deleting the entries within
	that loop causes the iterator to return the first entry
	twice.	Instead, we need to find the next entry before
	removing the current one. Fixes bug 321956.
	(rb_podcast_manager_entry_remove_cb): No longer needed.

2005-11-22  James Livingston  <jrl@ids.org.au>

	* sources/rb-playlist-source.c: (rb_playlist_source_class_init),
	(rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
	up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.

2005-11-22  James Livingston  <jrl@ids.org.au>

	* sources/rb-podcast-source.c:
	(rb_podcast_source_post_date_cell_sort_func),
	(rb_podcast_source_post_status_cell_sort_func),
	(rb_podcast_source_post_feed_cell_sort_func):
	* widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
	(rb_entry_view_album_sort_func),
	(rb_entry_view_double_ceiling_sort_func),
	(rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
	the entry's location as a last resort when sorting, so the sort order
	is stable. This will stop entries moving around when two entries have
	the same sorting, and one of them gets played.

2005-11-22  James Livingston  <jrl@ids.org.au>

	* daapsharing/rb-daap-connection.c:
	(rb_daap_connection_class_init), (rb_daap_connection_init),
	(connection_get_password), (build_message),
	(http_response_handler), (http_get), (handle_server_info),
	(handle_login), (handle_update), (handle_database_info),
	(handle_song_listing), (handle_playlists),
	(handle_playlist_entries), (rb_daap_connection_new),
	(rb_daap_connection_constructor), (rb_daap_connection_logout),
	(rb_daap_connection_state_done), (rb_daap_connection_do_something),
	(rb_daap_connection_get_headers),
	(rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
	(rb_daap_connection_set_property),
	(rb_daap_connection_get_property):
	* daapsharing/rb-daap-connection.h:
	* sources/rb-daap-source.c: (rb_daap_source_dispose),
	(rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
	(rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
	of destroying the object when it is going to be used by a callback and
	fixes a double-free. Fixes bugs 321930 and 322007.

2005-11-22  James Livingston  <jrl@ids.org.au>

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
	(rb_podcast_manager_insert_feed): Don't show the "new episodes"
	notification if there aren't any. Fixes bug 321968.

2005-11-22  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_set_property),
	(rhythmdb_property_model_finalize),
	(rhythmdb_property_model_compare),
	(rhythmdb_property_model_insert),
	(rhythmdb_property_model_delete_prop): Fix property model sorting
	where the display and sort keys are different. Fixes bug 321980.

2005-11-22  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell.c: (add_to_library_response_cb): detect playlists
	when import as a file or passed on the command line, and load them as
	playlists.

2005-11-22  James Livingston  <jrl@ids.org.au>

	patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>

	* daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
	(gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
	a broken daap server. Fixes bug 321919.

2005-11-22  James Livingston  <jrl@ids.org.au>

	* sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
	drag-and-drop for both the episodes and feeds list.
	
	(posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
	consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
	From Jonathan Matthew  <jonathan@kaolin.hn.org>.

	* widgets/rb-property-view.c: (rb_property_view_class_init),
	(rb_property_view_set_property), (rb_property_view_get_property),
	(rb_property_view_new), (rb_property_view_constructor):
	* widgets/rb-simple-view.c: (rb_simple_view_class_init),
	(rb_simple_view_new), (rb_simple_view_constructor):
	* widgets/rb-simple-view.h: add a "draggable" property to property
	views and set it to false for the feed list. Fixes bug 321284.

2005-11-22  James Livingston  <jrl@ids.org.au>

	Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>

	* shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
	* sources/rb-daap-source.c: (rb_daap_source_connection_cb):
	* sources/rb-ipod-source.c: (add_rb_playlist):
	* sources/rb-playlist-source.c: (rb_playlist_source_class_init),
	(rb_playlist_source_set_property),
	(rb_playlist_source_get_property), (rb_playlist_source_new),
	(impl_receive_drag), (rb_playlist_source_add_location),
	(rb_playlist_source_new_from_xml):
	* sources/rb-playlist-source.h: give playlists and (optional)
	entry-type, and reject entries that don't match. Fixes bug 322006.

2005-11-21  James Livingston  <jrl@ids.org.au>

	* shell/rb-source-header.c: (rb_source_header_source_weak_unref),
	(rb_source_header_finalize): remove the weak references when the
	source header is finalised. Stops the callbacks being called after the
	object is destroyed.

2005-11-21  James Livingston  <jrl@ids.org.au>

	* shell/main.c: (main): don't try to acquite bonobo/dbus when
	--no-registration was passed. It causes warnings that make it
	impossible to run with --no-registration --g-fatal-warnings

2005-11-21  James Livingston  <jrl@ids.org.au>

	* daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
	of strings when they are still in use. Fixes bug 321547.

	(rb_daap_connection_destroy): fix memory leak

2005-11-21  James Livingston  <jrl@ids.org.au>

	* daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
	(rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
	(rb_daap_mdns_resolve_cancel), (publish_cb),
	(rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
	support.

2005-11-21  James Livingston  <jrl@ids.org.au>

	* widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
	sorting by genre

2005-11-20  James Livingston  <jrl@ids.org.au>

	* podcast/rb-podcast-manager.c:
	(rb_podcast_manager_subscribe_feed): make threads non-joinable, so
	that we don't leak thread structures. Fixes bug 321636, and probably
	321775.

2005-11-20  James Livingston  <jrl@ids.org.au>

	* metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
	(lookup_cd):
	* podcast/rb-podcast-manager.c: (start_job),
	(rb_podcast_manager_db_entry_deleted_cb),
	(rb_podcast_manager_entry_remove_cb):
	* podcast/rb-podcast-parse.c: (rb_insert_item),
	(rb_podcast_parse_load_feed):
	* rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
	* shell/rb-removable-media-manager.c:
	(rb_removable_media_manager_append_media_source):
	* shell/rb-shell.c: (add_to_library_response_cb):
	* shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
	* sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
	* sources/rb-iradio-source.c:
	(stations_view_drag_data_received_cb):
	* sources/rb-library-source.c: (string_list_equal),
	(impl_get_extra_views), (impl_receive_drag):
	* sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
	* sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
	(impl_receive_drag):
	* widgets/rb-entry-view.c: (rb_entry_view_finalize),
	(rb_entry_view_append_column_custom), (harvest_entries):
	* widgets/rb-property-view.c:
	(rb_property_view_selection_changed_cb):
	* widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
	switch from using g_list_append to g_list_prepend. This changes
	operations from O(n^2) to O(n), which in cases like deleting a lot of
	tracks can give huge improvements in speed. Closes bug 321696.

2005-11-20  James Livingston  <jrl@ids.org.au>

	* sources/rb-sourcelist.c: (rb_sourcelist_init),
	(rb_sourcelist_update_expander_visibility): fix indenting of child
	sources.

2005-11-20  James Livingston  <jrl@ids.org.au>

	* daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
	(resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
	(rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
	(rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
	(add_service), (entry_group_cb): dynamically allocate memory, rather
	than using static variables.

	* daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
	re-enable the daap share if the name hasn't changed.
	* shell/rb-shell-preferences.c:
	(share_name_entry_focus_out_event_cb): don't ask the daap share to
	change it's name when the checkbox is disabled. Fixed bug 321748.

2005-11-18  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
	as hidden if it is on the current workspace.

2005-11-17  William Jon McCann  <mccann@jhu.edu>

	* sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
	* podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
	(rb_podcast_properties_dialog_parse_time): 
	* podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
	(rb_feed_podcast_properties_dialog_parse_time):
	Rework the way the last mod time strings are created.  It was using
	thread unsafe functions, not creating value UTF, and not not checking
	the value of the result before modifying it.  This new method fixes
	these problems.

2005-11-18  James Livingston  <jrl@ids.org.au>

	Don't reset the search box when viewing a different source, because it
	will change what is being played. Closes 321593.

	* shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
	the search box

	* shell/rb-source-header.c: (rb_source_header_class_init),
	(rb_source_header_init), (rb_source_header_finalize): use
	G_DEFINE_TYPE.

	(rb_source_header_set_property),
	(rb_source_header_source_weak_destroy_cb),
	(rb_source_header_search_cb): store the search text when leaving a
	source and put it in the search box when viewing it again.

2005-11-18  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
	(save_entry):
	* rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
	(rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
	* rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
	time stamp.

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
	last-seen as the timestamp of the last update of the feed. Don't
	re-add episodes that have been deleted. Closes 319759.

2005-11-18  James Livingston  <jrl@ids.org.au>

	* podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
	that don't have the day name at the start. Closes 321645.

2005-11-18  James Livingston  <jrl@ids.org.au>

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
	(rb_podcast_manager_copy_post),
	(rb_podcast_manager_get_podcast_dir):
	* podcast/rb-podcast-manager.h:
	* sources/rb-podcast-source.c: (impl_get_config_widget),
	(rb_podcast_source_btn_file_change_cb): fix problem of podcast
	download location switching to / if the prefs were opened before
	downloading an episode. Closes 321611.

2005-11-18  James Livingston  <jrl@ids.org.au>

	* data/glade/podcast-new.glade:
	* podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
	(rb_new_podcast_dialog_set_property),
	(rb_new_podcast_dialog_get_property),
	(rb_new_podcast_dialog_response_cb),
	(rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
	for entering new podcast urls in. Closes bug 321610.

2005-11-18  James Livingston  <jrl@ids.org.au>

	* sources/rb-podcast-source.c: (construct_query_from_selection),
	(rb_podcast_source_do_query): allow podcast list to be re-sorted
	without restarting RB. Closes bug 321612.

2005-11-18  James Livingston  <jrl@ids.org.au>

	* widgets/rb-entry-view.c: (set_column_visibility),
	(rb_entry_view_sync_columns_visible): when changing visibility of one
	column, don't hide and re-show all the others. Makes a show/hide
	column operation a lot faster.

2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>

	Closes bug 321702.

	* iradio/rb-station-properties-dialog.c
	 (rb_station_properties_dialog_update_bitrate):
	Mark the bitrate value as being kbps, using the same
	translatable format string as rb-song-info.c

	* player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
	 as a ulong, translating it to RB_METADATA_FIELD_BITRATE.

	* shell/rb-shell-player.c (info_available_cb):
	 Use RB_METADATA_FIELD_BITRATE to update the iradio
	 station's bitrate value.

2005-11-17  James Livingston  <jrl@ids.org.au>

	patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699

	* rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
	free a NULL date.

2005-11-17  James Livingston  <jrl@ids.org.au>

	Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698

	* lib/rb-stock-icons.c: emit a single warning rather than multiple
	assertions. Lookup the icon size correctly.

2005-11-16  William Jon McCann  <mccann@jhu.edu>

	* daapsharing/rb-daap-mdns.c (get_sw_discovery) 
	(rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
	Fix build errors.

2005-11-16  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
	(rb_shell_preferences_finalize), (rb_shell_preferences_sync),
	(rb_shell_preferences_sync_column_button): block the toggle signal of
	the column checkboxes while setting their initial state. This stops
	the visibility being re-set, which causes a lot of time being spent
	measuring the columns aagin when opening the prefs window.

	Use G_DEFINE_TYPE.

2005-11-16  James Livingston  <jrl@ids.org.au>

	* sources/rb-sourcelist.c: (rb_sourcelist_init),
	(rb_sourcelist_edit_source_name): don't assume that the editable
	source name is in the first column, because it isn't. Fixes bug
	320137.

2005-11-16  James Livingston  <jrl@ids.org.au>

	* daapsharing/rb-daap-mdns.h:
	* daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
	(get_sw_discovery), (get_avahi_client): use GErrors, so that other
	parts can know why operations failed. Avahi can report that the daemon
	was not running. Howl doesn't do this (yet).
	
	(rb_daap_mdns_browse), (rb_daap_mdns_resolve),
	(rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
	(browse_cb): don't display mdns errors to the user, if it wa because
	the daemon was not running.

2005-11-16  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
	(rhythmdb_property_model_compare),
	(rhythmdb_property_model_insert),
	(rhythmdb_property_model_insert_prop),
	(rhythmdb_property_model_delete),
	(rhythmdb_property_model_delete_prop),
	(rhythmdb_property_model_get_value): use RBRefStrings rather than
	copying the string and re-creating the sort key. Saves a little bit of
	memory and time.

	(rhythmdb_property_model_perform_sync),
	(rhythmdb_property_model_sync): perform the count sync in an idle
	callback, so that it doesn't have to be re-run once per value when
	loading.

2005-11-16  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_entry_deleted_cb),
	(rhythmdb_query_model_remove_entry): remove deleted entries from the
	limited list. Stops problems if they are deleted, and then things on
	the main list are

2005-11-16  James Livingston  <jrl@ids.org.au>

	* NEWS: update NEWS

	* shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
	button's minimise-to-tray action

2005-11-16  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
	leak. Disable adding newly created files for now, because it doesn't
	work properly.

	* sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
	(rb_sourcelist_model_finalize):
	* sources/rb-sourcelist.c: (rb_sourcelist_class_init),
	(rb_sourcelist_finalize): use G_DEFINE_TYPE,

2005-11-16  James Livingston  <jrl@ids.org.au>

	* sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
	problem where a GError* wasn't being set to NULL. Actually check the
	result.

2005-11-16  James Livingston  <jrl@ids.org.au>

	* doc/reference/tmpl/rb-entry-view.sgml:
	* doc/reference/tmpl/rhythmbox-unused.sgml:
	* doc/reference/tmpl/rhythmdb-query-model.sgml:
	* doc/reference/tmpl/rhythmdb.sgml:
	* rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
	docs, including the patch that was on bug 

	* rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
	API, because it should only be used by RhythmDB itself.

2005-11-16  James Livingston  <jrl@ids.org.au>

	* shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
	pausing by middle clicking on the tray icon.

2005-11-15  James Livingston  <jrl@ids.org.au>

	* configure.ac: enable audioscrobbler support by default, if libsoup
	is present.

2005-11-15  James Livingston  <jrl@ids.org.au>

	patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
	Closes bug 321157.

	* configure.ac:
	* daapsharing/rb-daap-connection.c: (build_message),
	(g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
	support gzip encoded daap connections.

	(handle_song_listing): fix leak

2005-11-15  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
	* sources/rb-podcast-source.c:
	(rb_podcast_source_post_date_cell_data_func): make the date format
	translatable again, so that translators can choose the best format for
	their locale (%x is huge in some locales)

2005-11-15  James Livingston  <jrl@ids.org.au>

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
	(end_job): mark podcast episodes as failed, if the metadata load
	fails. This will prevent people playing non-audio enclosures, helping
	stop bug 320366.

2005-11-14  James Livingston  <jrl@ids.org.au>

	* player/rb-player-gst.c: (rb_player_construct): Explicitly set the
	video sink to fakesink. This will stop problems (potentially crashers)
	that will occur if the file contains a video stream.

	* rhythmdb/rhythmdb.h: define the podcast status number in an enum,
	rather than using magic numbers everywhere.

	* shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
	* sources/rb-podcast-source.c:
	(rb_podcast_source_songs_show_popup_cb),
	(rb_podcast_source_cmd_download_post),
	(rb_podcast_source_post_status_cell_data_func),
	(rb_podcast_source_entry_activated_cb): use the above constants.

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
	(rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
	(rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
	(write_job_data), (rb_podcast_manager_cancel_all), (end_job),
	(cancel_job), (download_progress_cb),
	(rb_podcast_manager_cancel_download),
	(rb_podcast_manager_insert_feed): use the constants, and fix a
	trhead-safety issue.

2005-11-14  Bastien Nocera  <hadess@hadess.net>

	* rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
	Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
	entry-changed events after stats on startup, fixes entry deleted from
	filtered views not disappearing

2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>

	Fix rhythmdb query model refcount and polling problems. Closes bug
	321410.

	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_finalize):
	 Unref the query model if we have one.

	* rhythmdb/rhythmdb-query-model.h:
	 Remove poll and cancel methods.  Query cancellation
	 never did anything anyway.

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_init): Remove GAsyncQueues.
	 Replace the GAsyncQueue-based update processing
	 with a simpler g_idle_add approach; still has the
	 same queueing properties, but now we don't poll the
	 model forever and updates are processed immediately.

	(_unref_entry), (rhythmdb_query_model_finalize):
	 Unref DB entries when finalized

	(rhythmdb_query_model_has_pending_changes):
	 Use our own counter to decide if there are updates pending

	(rhythmdb_query_model_process_update), (idle_process_update):
	 Process updates using g_idle_add, or directly if possible

	(rhythmdb_query_model_signal_complete),
	(rhythmdb_query_model_add_entries):
	 Change to new update processing method

	(idle_poll_model), (rhythmdb_query_model_poll):
	 Remove GAsyncQueue-based update processing.

	* rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
	 No need to poll the model any more - updates are processed
	 directly for synchronous queries.

	* sources/rb-iradio-source.c: (rb_iradio_source_do_query):
	 Property model needs to be unref'd here

	* sources/rb-library-source.c: (rb_library_source_do_query):
	 Don't try to cancel the active query (it never worked anyway),
	 remove obsolete poll call, unref property models as required,
	 and don't unref the cached 'all' query, since hold on to it.
	 We unref it when the sort order changes, which forces the query
	 to be rerun.

	* sources/rb-podcast-source.c: (rb_podcast_source_constructor):
	 Unref the property model as required

	(rb_podcast_source_do_query):
	 Treat any query with no selected feeds and no search text as
	 an 'all' query.  Unref query models except for the cached
	 'all' query, since we hold on to that.

	(rb_podcast_source_cmd_update_all):
	 Unref the property model as required.

	* widgets/rb-entry-view.c: (rb_entry_view_set_property):
	 Don't try to cancel the query (it never worked anyway)

	(rb_entry_view_poll_model):
	 No need for this any more.

	* widgets/rb-entry-view.h:
	 Remove obsolete function rb_entry_view_poll_model

	* widgets/rb-property-view.c: (rb_property_view_set_property):
	 Ref and unref the property model as required.

2005-11-14  James Livingston  <jrl@ids.org.au>

	patch by: Jonathan Matthew <jonathan@kaolin.hn.org>

	* shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
	for error. Closes bug 321416.

2005-11-14  James Livingston  <jrl@ids.org.au>

	patch by: Jonathan Matthew <jonathan@kaolin.hn.org>

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
	a crasher if a feed's last-post value isn't set. Closes bug 321353.

2005-11-14  James Livingston  <jrl@ids.org.au>

	* shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
	* shell/rb-removable-media-manager.c:
	(rb_removable_media_manager_set_uimanager):
	* shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
	translation domain for GTK action groups.

2005-11-12  James Livingston  <jrl@ids.org.au>

	* po/POTFILES.in: remove the old station-new files

2005-11-12  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
	(rhythmdb_tree_parser_end_element), (save_entry_ulong),
	(save_entry): cause Rhythmbox to re-read the metadata from a file,
	when upgrading from a pre-Date-supporting version to a version that
	supports Date metadata. Closes bug 320760.

2005-11-12  James Livingston  <jrl@ids.org.au>

	Add "update all podcast feeds" command. Closes bug 319954.

	* data/ui/rhythmbox-ui.xml: add to source context menu.

	* sources/rb-podcast-source.c: (rb_podcast_source_constructor),
	(register_action_group), (rb_podcast_source_cmd_download_post),
	(rb_podcast_source_cmd_delete_feed),
	(rb_podcast_source_cmd_properties_feed),
	(rb_podcast_source_cmd_update_feed): pass the source to the actions,
	rather than the shell.

	(rb_podcast_source_update_feed_func),
	(rb_podcast_source_cmd_update_all): update every feed.

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

	* shell/rb-shell-player.c: (rb_shell_player_class_init),
	(rb_shell_player_constructor), (rb_shell_player_finalize):
	* shell/rb-shell.c: fix some conflicting keybindings, and mak some
	others follow the HIG recommentations.

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

	* podcast/rb-podcast-manager.c:
	(rb_podcast_manager_subscribe_feed): check that the url is valid,
	before trying to use it.

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

	* widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
	(rb_entry_view_append_column): When sorting by year, sort by album
	within a particular year.

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

	* NEWS: updates

2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
	* daapsharing/rb-daap-connection.c: (build_message): Fixed the
	spelling of "Language."

2005-11-11  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_entry_removed_cb),
	(rhythmdb_property_model_insert_prop),
	(rhythmdb_property_model_sync): display the count after the "All"
	entry of a property model.

	* widgets/rb-property-view.c: (rb_property_view_class_init),
	(rb_property_view_finalize), (rb_property_view_constructor): use
	G_DEFINE_TYPE

2005-11-10  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_remove_entry):
	* rhythmdb/rhythmdb-query-model.h: make
	rhythmdb_query_model_remove_entry return whether the entry was in the
	model.

	* sources/rb-playlist-source.c: (rb_playlist_source_add_location):
	don't add non-SONG entries, as it doesn't really work and can cause
	crashes.

	(rb_playlist_source_remove_location): assert if the playlist and model
	differ on whether the entry is in the playlist

2005-11-10  James Livingston  <jrl@ids.org.au>

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
	(rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
	(rb_podcast_manager_thread_parse_feed),
	(rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
	(rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
	emulating one with a list and mutex. Fixes a couple of threading
	issues.
	
	(rb_podcast_manager_insert_feed): fix some problems with ignoring
	updated feeds.
	
	(rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
	(rb_podcast_manager_copy_post),	(end_job), (cancel_job),
	(download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
	* podcast/rb-podcast-parse.c: (rb_insert_item),
	(rb_podcast_parse_channel_free):
	* podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
	fix some typos, and make a bit of code clearer.

2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>

	Make the "delete podcast" dialog better. Closes bug 320899.

	* shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
	Add PROP_WINDOW for rb_shell_get_property so we can access the
	GtkWindow widget of the main window. 
	* sources/rb-podcast-source.c: (impl_delete):  Set parent window &
	fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
	podcast feed delete dialog less confusing as well.

2005-11-09  James Livingston  <jrl@ids.org.au>

	* shell/rb-removable-media-manager.c:
	(rb_removable_media_manager_mount_volume),
	(rb_removable_media_manager_scan): Fix a crasher where we were getting
	NULL for a cd volume.

2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
	method return a gboolean indicating whether the changes
	to the entry have already been applied.

	* rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
	only modify the entry if impl_entry_set returns FALSE.

	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
	When setting the location of an entry, update the
	hash table mapping locations to entries.

2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* data/glade/Makefile.am:
	* iradio/Makefile.am:
	  Remove 'new station' dialog.

	* iradio/rb-station-properties-dialog.h:
	* sources/rb-iradio-source.c: (impl_song_properties):
	* shell/rb-shell.c: (rb_shell_cmd_new_station):
	 Add 'new station' mode parameter to
	 rb_station_properties_dialog_new.

	* (rb_station_properties_dialog_response_cb),
	(rb_station_properties_dialog_create_station):
	 When in 'new station' mode, create the station
	 when OK button is pressed.

	* iradio/rb-station-properties-dialog.c:
	(rb_station_properties_dialog_location_changed_cb):
	 Only enable OK button if a location is specified
	(rb_station_properties_dialog_init),
	(rb_station_properties_dialog_new),
	(rb_station_properties_dialog_update),
	(rb_station_properties_dialog_update_title),
	(rb_station_properties_dialog_rated_cb),
	(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_show):
	 Handle 'new station' mode, where there's no current
	 station to edit.

2005-11-08  James Livingston  <jrl@ids.org.au>

	* sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
	keybinding for track columns consistent between library and playlist
	sources.

2005-11-07  James Livingston  <jrl@ids.org.au>

	* data/ui/rhythmbox-ui.xml:
	* shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
	"Edit" item to playlist menu. Closes bug 311470.

2005-11-07  James Livingston  <jrl@ids.org.au>

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

	* widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
	confirmation to save dialogs, with gtk 2.8 or higher.

2005-11-07 James Livingston  <jrl@ids.org.au>
	* configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
	requirement to a general on, because people are going to have it for
	the other dependencies.

2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>

	* sources/rb-podcast-source.c: (impl_delete): Make the podcast
	delete dialog less confusing.  Use HIG recommended button order.
	Closes bug 320840.

2005-11-06  James Livingston  <jrl@ids.org.au>

	* sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
	drag-and-drop error.
	
	* sources/rb-library-source.c: (rb_library_source_constructor): only
	add drag-and-drop for the Library itself, subclasses can add support
	themselves if they want it.

	* sources/rb-removable-media-source.c:
	(rb_removable_media_source_class_init): by default removable media
	sources do not support dnd

2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>

	* data/glade/station-properties.glade:
	 Add box containing error icon and error message label
	* iradio/rb-station-properties-dialog.c:
	(rb_station_properties_dialog_class_init),
	(rb_station_properties_dialog_finalize):
	 Change this class to use G_DEFINE_TYPE
	(rb_station_properties_dialog_init),
	(rb_station_properties_dialog_update),
	(rb_station_properties_dialog_update_playback_error):
	 Display error icon and message when there is one, and hide the error
	 box otherwise.
	(rb_station_properties_dialog_show): Hack widget show
	 method to update the visibility of the error info box when showing
	 the widget.  Otherwise the icon is displayed all the time (same thing
	 is done in rb-song-info). Closes bug 320749.

2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>

	* podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
	parsing of the duration of podcast episodes from the feed. Closes bug
	320748.

2005-11-05  James Livingston  <jrl@ids.org.au>

	patch by Christophe Fergeau <teuf@gnome.org> to add support for the
	release date metadata ("Year"). Closes bug 166093.

	* metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
	* metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
	(rb_metadata_gst_add_tag_data):
	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
	(save_entry):
	* rhythmdb/rhythmdb.c: (metadata_field_from_prop),
	(extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
	(set_props_from_metadata), (rhythmdb_entry_set_internal),
	(rhythmdb_prop_get_type):
	* rhythmdb/rhythmdb.h: add support for "date" property
	
	* data/glade/general-prefs.glade:
	* shell/rb-shell-preferences.c: (rb_shell_preferences_init):
	* widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
	(rb_entry_view_append_column):
	* widgets/rb-entry-view.h:
	* sources/rb-library-source.c: (rb_library_source_constructor):
	* sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
	"Year" colums

	* data/glade/song-info.glade:
	* widgets/rb-song-info.c: (rb_song_info_boldify_label),
	(rb_song_info_construct_single), (rb_song_info_constructor),
	(rb_song_info_populate_dialog), (rb_song_info_update_year),
	(rb_song_info_sync_entry_single): Add "Year" to song info window

	* widgets/rb-query-creator-properties.c: Allow auto playlists to be
	sorted by year.

2005-11-05  James Livingston  <jrl@ids.org.au>

	* data/glade/podcast-properties.glade: Add a scrollbar to the podcast
	description if it's very long.

2005-11-05  James Livingston  <jrl@ids.org.au>

	pathc by: Artem Baguinski <femistofel@gmail.com>

	* help/C/Makefile.am:
	* help/ja/Makefile.am: allow Anjuta to import the RB source tree.
	Closes bug 320613.

2005-11-05  James Livingston  <jrl@ids.org.au>

	patch by: Jonathan Matthew <jonathan@kaolin.hn.org>

	* daapsharing/rb-daap-share.c: (write_next_chunk),
	(message_finished), (databases_cb): Use chunked file loading and
	sending in the DAAP server. This should reduce the amount of memory
	required to send files to the client.

2005-11-05  James Livingston  <jrl@ids.org.au>

	* configure.ac: make the nautilus_burn_drive_door_is_open detection
	work better on some systems. Closes 320622.

2005-11-05  James Livingston  <jrl@ids.org.au>

	* data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
	homepage, so that users can find out what AudioScrobbler is. Add
	access keys.

	* data/glade/daap-prefs.glade:
	* data/glade/general-prefs.glade:
	* data/glade/library-prefs.glade: make the indent be more consistent

	* data/glade/podcast-prefs.glade: 
	* sources/rb-podcast-source.c: (rb_podcast_source_constructor),
	(impl_get_config_widget): move thing out of code into glade, where
	they belong

2005-11-05  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
	related to WITH_CD_BURNER_SUPPORT that I missed in the other commit

2005-11-04  James Livingston  <jrl@ids.org.au>

	* configure.ac: don't print DAAP configure info twice

2005-11-04  James Livingston  <jrl@ids.org.au>

	* shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
	* sources/rb-playlist-source.c: (burn_playlist_iter_func),
	(rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
	#ifdefs, since we removed the symbol. Oops

2005-11-04  James Livingston  <jrl@ids.org.au>

	* sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
	after the connect line, not before. Oops.

2005-11-04  James Livingston  <jrl@ids.org.au>

	* sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
	fix some warnings

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

	* NEWS: update the news file

	* data/glade/general-prefs.glade: make the prefs refer to "time" not
	"duration" column.

	* data/ui/rhythmbox-ui.xml:
	* shell/rb-playlist-manager.c:
	* sources/rb-podcast-source.c: (rb_podcast_source_constructor),
	(rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
	and "delete" for feeds.

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

	* sources/rb-podcast-source.c: (impl_delete),
	(rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
	feed. Closes 319760.

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

	Don't start playing from the remote site when a un-downloaded podcast
	is activated. Closes 319983.
	

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
	(write_job_data), (download_progress_cb): write the local location as
	soon as any data is recieved

	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
	the mountpoint to NULL for podcast episodes that haven't yet been
	downloaded.
	
	* shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
	start playing a podcast if it hasn't been downloaded.
	
	* sources/rb-podcast-source.c: (rb_podcast_source_constructor),
	(rb_podcast_source_entry_activated_cb): begin downloading when the
	podcast is activated.

2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>

	* data/glade/general-prefs.glade:  Fix capitalization.
	* shell/rb-removable-media-manager.c:  Add a mnemonic.
	* sources/rb-podcast-source.c:
	(rb_podcast_source_songs_show_popup_cb),
	(rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.

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

	patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>

	* shell/rb-removable-media-manager.c:
	(rb_removable_media_manager_mount_volume): don't check network or
	autofs mounts, as they're not going to be removable media. Stops
	sending lots of warnings to syslog. Closes 320571.

	* sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
	DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
	320570.

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

	Add support for playing audio CDs. Metadata lookup is done using
	SoundJuicer's MusicBrainz lookup code, which can be switched to using
	the library when it gets broken out of S-J.
	
	Add a "rescan media" menu item, and commands for ejecting removable
	media.

	Move nautilus-cd-burner from optional to required depenency.

	* configure.ac:
	* data/ui/rhythmbox-ui.xml:
	* metadata/Makefile.am:
	+ metadata/sj-error.c:
	+ metadata/sj-error.h:
	+ metadata/sj-metadata-marshal.list:
	+ metadata/sj-metadata-musicbrainz.c:
	+ metadata/sj-metadata-musicbrainz.h:
	+ metadata/sj-metadata.c:
	+ metadata/sj-metadata.h:
	+ metadata/sj-structures.c:
	+ metadata/sj-structures.h:
	* player/Makefile.am:
	* player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
	* po/POTFILES.in:
	* shell/Makefile.am:
	* shell/rb-removable-media-manager.c:
	(rb_removable_media_manager_dispose), (poll_tray_opened),
	(end_cd_drive_monitor), (begin_cd_drive_monitor),
	(rb_removable_media_manager_load_media),
	(rb_removable_media_manager_mount_volume),
	(rb_removable_media_manager_cmd_eject_medium),
	(rb_removable_media_manager_cmd_scan_media),
	(rb_removable_media_manager_check_volume),
	(rb_removable_media_manager_unmount_volume_swap),
	(rb_removable_media_manager_scan):
	* sources/Makefile.am:
	+ sources/rb-audiocd-source.c:
	+ sources/rb-audiocd-source.h:
	* tests/Makefile.am:

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

	patch by: Jonathan Matthew <jonathan@kaolin.hn.org>

	* sources/rb-iradio-source.c:
	(stations_view_drag_data_received_cb):
	* sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
	don't crash when the second uri is missing frm the drop, which
	browsers sometimes do.

2005-11-01  James Livingston  <jrl@ids.org.au>

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
	(rb_podcast_manager_insert_feed):
	* podcast/rb-podcast-manager.h:
	* podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
	(rb_set_item_value), (rb_validate_item_propert),
	(rb_podcast_parse_date), (rb_podcast_parse_time):
	* podcast/rb-podcast-parse.h: get the duration of podcast episodes
	from the feed.

2005-10-31  James Livingston  <jrl@ids.org.au>

	* ChangeLog:
	* ChangeLog0.8: break off the older Changelog entries, so it isn't so
	huge

2005-10-31  James Livingston  <jrl@ids.org.au>

	* sources/rb-podcast-source.c:
	(rb_podcast_source_post_date_cell_data_func): generate the date string
	in a way that is correct in all locales.
	
	* rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
	(rhythmdb_entry_sync_mirrored): make the last played/date added
	columns use the same format.

2005-10-30  James Livingston  <jrl@ids.org.au>


	* podcast/rb-podcast-manager.c:
	(rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
	
	* shell/rb-shell-player.c: (rb_shell_player_open_location): report
	iradio errors better.

2005-10-30  James Livingston  <jrl@ids.org.au>

	patch by: Artem Baguinski <femistofel@gmail.com>

	* metadata/rb-metadata-gst.c: (rb_metadata_init):

2005-10-30  James Livingston  <jrl@ids.org.au>

	* podcast/rb-podcast-manager.c:
	(rb_podcast_manager_subscribe_feed),
	(rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
	already been added, usually as a radio station. Closes 319434.

2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>

	* data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
	mnemonics & resize issues)
	* data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
	& mnemonics)
	* sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
	widget for the "download location" label.

	Closes bug 320184.

2005-10-29  James Livingston  <jrl@ids.org.au>

	Allow the search box to match words from multiple properties. Closes
	bug 139196. Thanks to the person from IRC who did a lot of the initial
	work.


	* lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
	* lib/rb-util.h: Add functions to split a string into words, and one
	to perform "search folding" which is currently like casefolding but
	also strips punctuation
	
	* rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
	(rhythmdb_query_preprocess):
	* rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
	against title, artist, album and genre (for the search box)
	
	* rhythmdb/rb-refstring.c: (rb_refstring_new_full):
	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
	(save_entry), (search_match_properties),
	(evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
	splitting into words and matching across multiple properties.
	
	* sources/rb-library-source.c: (construct_query_from_selection): use
	the new SEARCH_MATCH property for the search box
	
	* widgets/rb-entry-view.c: (type_ahead_search_func):

2005-10-29  James Livingston  <jrl@ids.org.au>

	* lib/rb-stock-icons.c: (rb_stock_icons_init):
	* lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
	
	* shell/rb-playlist-manager.c:
	* shell/rb-shell.c: use the above stock ids, so that the icons get set
	correctly.
	
	* shell/rb-shell-player.c: (rb_shell_player_constructor): set the
	initial state of the shuffle/repeat menu items correctly. Patch from
	Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.

2005-10-29  James Livingston  <jrl@ids.org.au>

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
	double-free.
	
	* widgets/rb-cell-renderer-pixbuf.c:
	(rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
	icon go black when row is not selected
	
	* doc/reference/tmpl/rb-daap-connection.sgml:
	* doc/reference/tmpl/rhythmdb.sgml: doc updates

2005-10-29  James Livingston  <jrl@ids.org.au>

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
	silly mistake, where it could think partial downloads has been
	completed.

2005-10-29  James Livingston  <jrl@ids.org.au>

	patch by: Jonathan Matthew <jonathan@kaolin.hn.org>

	* data/glade/song-info.glade:
	* widgets/rb-song-info.c: (rb_song_info_construct_single),
	(rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
	(rb_song_info_sync_entry_single): show the disc number in the song
	info window. From bug 311199.

2005-10-29  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.c: (rhythmdb_process_events),
	(rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
	regularly. Closes 155306.

2005-10-29  James Livingston  <jrl@ids.org.au>

	* podcast/rb-podcast-manager.c:
	(rb_podcast_manager_download_entry),
	(rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
	(rb_podcast_manager_insert_feed):
	* podcast/rb-podcast-manager.h:
	* podcast/rb-podcast-parse.c: (rb_set_item_value),
	(rb_podcast_parser_start_element):
	* podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
	don't download them again. However, it can't resume
	partially-downloaded ones.

2005-10-28  James Livingston  <jrl@ids.org.au>

	* metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
	(rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
	work. Don't attempt to write duration as a tag.

	Thanks to Artem Baguinski <femistofel@gmail.com>

2005-10-28  James Livingston  <jrl@ids.org.au>

	* shell/rb-source-header.c: (rb_source_header_sync_control_state):
	don't disable the status-bar menu item when the current source doesn't
	use the search box.

2005-10-28  James Livingston  <jrl@ids.org.au>

	* podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
	crash if the file has unknown length

2005-10-27  James Livingston  <jrl@ids.org.au>

	* daapsharing/rb-daap-connection.c:
	(rb_daap_connection_state_done): don't assert when a daap server
	doesn't have any playlists

2005-10-27  James Livingston  <jrl@ids.org.au>

	* sources/rb-sourcelist-model.c:
	(rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
	source for the sourcelist. Closes bug 319817.

2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>

	Patch by: Renato Araujo <renatox@gmail.com>

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
          Fix for a crasher caused by previous patch.

2005-10-26  James Livingston  <jrl@ids.org.au>

	* data/glade/podcast-prefs.glade:
	* podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
	* podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
	* sources/rb-podcast-source.c: (rb_podcast_source_new):
	* podcast/rb-podcast-manager.c:
	(rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
	(rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
	* shell/rb-shell.c: Change some strings to make them more consistent.
	"Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
	makes it clearer which is which. "Episode" may not be the best term,
	but it seems to be widely used.
	
	Also fix some strings that weren't marked as translatable.
	
	* podcast/rb-feed-podcast-properties-dialog.c:
	(rb_feed_podcast_properties_dialog_class_init),
	(rb_feed_podcast_properties_dialog_finalize):
	* podcast/rb-new-podcast-dialog.c:
	(rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
	* widgets/rb-simple-view.c: (rb_simple_view_class_init),
	(rb_simple_view_finalize), (rb_simple_view_constructor):
	* podcast/rb-podcast-properties-dialog.c:
	(rb_podcast_properties_dialog_class_init),
	(rb_podcast_properties_dialog_finalize):
	* podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
	(rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
	* sources/rb-podcast-source.c: (rb_podcast_source_class_init),
	(rb_podcast_source_finalize), (rb_podcast_source_constructor):
	use G_DEFINE_TYPE, instead of doing it manually.

2005-10-26  James Livingston  <jrl@ids.org.au>

	Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
	<jrl@ids.org.au>

	* metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
	(rb_metadata_init): Check that the necessary plugins are present to do
	id3 editing.
	(rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
	corrupted before replacing the original.

2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>

	reviewed by: James Livingston <jrl@ids.org.au>

	Assign sequential IDs to playlists for DAAP rather than using the
	address of the playlist object.  Less flaky, and should work on 64bit
	platforms. Closes bug 319304.

	* daapsharing/rb-daap-share.c: 
	(rb_daap_share_set_property): watch for playlist creation
	(_find_by_id), (_find_by_source): playlist list search functions
	(rb_daap_share_playlist_created),
	(rb_daap_share_process_playlist),
	(rb_daap_share_playlist_destroyed):
	 update playlist list as it changes, use weak refs on 
	 playlists to get notified on destroy.
	(rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
	 destroy playlist list on shutdown
	(add_playlist_to_mlcl): use playlist ID rather than pointer in
	 DAAP response
	(databases_cb): search for playlist ID in list rather than just
	 converting it to a pointer; return HTTP 404 if playlist not 
	 found.
	(rb_daap_share_start_publish): playlist IDs start at 2, since 1
	 is already used for the main library

2005-10-26  James Livingston  <jrl@ids.org.au>

	patch by: Jonathan Matthew <jonathan@kaolin.hn.org>

	* daapsharing/rb-daap-connection.c: (build_message),
	(http_response_handler), (http_get), (handle_server_info),
	(handle_login), (handle_update), (handle_database_info),
	(handle_song_listing), (handle_playlists),
	(handle_playlist_entries), (handle_logout),
	(rb_daap_connection_new), (rb_daap_connection_logout),
	(rb_daap_connection_state_done), (rb_daap_connection_do_something),
	(rb_daap_connection_get_headers), (rb_daap_connection_destroy):
	* daapsharing/rb-daap-connection.h:
	* sources/rb-daap-source.c: (rb_daap_source_activate),
	(rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
	(rb_daap_source_disconnect): Make connecting to DAAP sources
	asynchronous, so that non-responsive servers don't hang the UI. Closes
	316225.

2005-10-26  James Livingston  <jrl@ids.org.au>

	patch by: Jonathan Matthew <jonathan@kaolin.hn.org>

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_do_reorder): generate the row re-order map
	correctly.
	
	* widgets/rb-entry-view.c: (rb_entry_view_set_property),
	(rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
	Update selection when rows get re-ordered. Closes 319718.

2005-10-26  James Livingston  <jrl@ids.org.au>

	patch from Jonathan Matthew <jonathan@kaolin.hn.org> 

	* shell/rb-play-order.c: (rb_play_order_playing_source_changed):
	actually set the db pointer in play orders. Closes 319818.

2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>

	Patch by: Renato Araujo <renatox@gmail.com>

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
	(rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
	(rb_podcast_manager_update_synctime),
	(rb_podcast_manager_config_changed),
	(rb_podcast_manager_insert_feed):
	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
	(save_entry):
	* rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
	(rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
	* rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.

2005-10-25  James Livingston  <jrl@ids.org.au>

	* daapsharing/rb-daap-share.c: (db_entry_added_cb),
	(db_entry_deleted_cb): don't share tracks that are hidden because the
	file is missing.

2005-10-22  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
	crash if an entry couldn't be playerd, without streamer setting an
	error.

	
	Patch from Jonathan Matthew <jonathan@kaolin.hn.org>

	* podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
	(rb_new_podcast_dialog_text_changed): enable the add button when a url
	is pasted into the dialog.
	
	* podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
	* podcast/rb-podcast-parse.c: (rb_set_channel_value),
	(rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
	(rb_podcast_parse_channel_free):
	* podcast/rb-podcast-parse.h: handle per-entry author names in podcast
	feeds

2005-10-22  James Livingston  <jrl@ids.org.au>

	* sources/rb-iradio-source.c:
	(rb_iradio_source_first_time_changed): Make merging the default
	stations actually work.
	
	* sources/rb-podcast-source.c:
	(rb_podcast_source_post_status_cell_data_func): fix problem where some
	people weren't seing the percentages in the stats column.

2005-10-21  James Livingston  <jrl@ids.org.au>

	Patch from Caio Marcelo <cmarcelo@gmail.com>

	* shell/rb-shell.c: (rb_shell_window_state_cb),
	(rb_shell_get_visibility), (idle_hide_mainwindow),
	(rb_shell_set_visibility): Make the "show window" item in the tray
	icon menu show the toggle state correctly. Use a better policy on
	deciding whether the window is "visible" or not. Closes bug 308053.

2005-10-21  James Livingston  <jrl@ids.org.au>

	* doc/reference/tmpl/rb-shell-preferences.sgml:
	* shell/Makefile.am: fix building with gtk-doc

	* shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
	don't submit podcasts to audioscrobbler
	
	
	Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
	
	* podcast/rb-podcast-parse.c: (rb_set_channel_value),
	(rb_set_item_value): strip spaces surrounding podcast urls
	

	Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
	
	* rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction

2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>

	Patch from Ruben Vermeersch <ruben@lambda1.be> to add
         Audioscrobbler/Last.fm support

	* configure.ac:
	* data/glade/Makefile.am:
	* data/glade/audioscrobbler-prefs.glade:
	* data/rhythmbox.schemas:
	* lib/Makefile.am:
	* lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
	* lib/md5.h:
	* lib/rb-preferences.h:
	* po/POTFILES.in:
	* shell/Makefile.am:
	* shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
	(rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
	(rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
	(rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
	(rb_audioscrobbler_timeout_cb), (mkmd5),
	(rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
	(rb_audioscrobbler_do_handshake),
	(rb_audioscrobbler_do_handshake_cb),
	(rb_audioscrobbler_submit_queue),
	(rb_audioscrobbler_submit_queue_cb),
	(rb_audioscrobbler_import_settings),
	(rb_audioscrobbler_preferences_sync),
	(rb_audioscrobbler_get_config_widget), (get_proxy_uri),
	(rb_audioscrobbler_gconf_changed_cb),
	(rb_audioscrobbler_song_changed_cb),
	(rb_audioscrobbler_username_entry_changed_cb),
	(rb_audioscrobbler_username_entry_activate_cb),
	(rb_audioscrobbler_password_entry_changed_cb),
	(rb_audioscrobbler_password_entry_activate_cb),
	(rb_audioscrobbler_enabled_check_changed_cb),
	(audioscrobbler_entry_init), (audioscrobbler_entry_free),
	(rb_audioscrobbler_load_entry_from_string),
	(rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
	(rb_audioscrobbler_print_queue),
	(rb_audioscrobbler_free_queue_entries):
	* shell/rb-audioscrobbler.h:
	* shell/rb-shell-preferences.c:
	(rb_shell_preferences_append_audioscrobbler_config):
	* shell/rb-shell-preferences.h:
	* shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
	(rb_shell_select_source), (rb_shell_cmd_preferences):
	* sources/Makefile.am:

2005-10-21  James Livingston  <jrl@ids.org.au>

	Patch from Renato Araujo <renatox@gmail.com> to add Podcast support

	* Makefile.am:
	* NEWS:
	* configure.ac:
	* data/art/Makefile.am:
	* data/glade/Makefile.am:
	* data/rhythmbox.schemas:
	* data/ui/rhythmbox-ui.xml:
	* doc/reference/Makefile.am:
	* doc/reference/tmpl/rhythmdb.sgml:
	* lib/rb-stock-icons.c: (rb_stock_icons_init):
	* lib/rb-stock-icons.h:
	* po/POTFILES.in:
	* podcast/Makefile.am:
	+ podcast/rb-feed-podcast-properties-dialog.c:
	+ podcast/rb-feed-podcast-properties-dialog.h:
	+ podcast/rb-new-podcast-dialog.c:
	+ podcast/rb-new-podcast-dialog.h:
	+ podcast/rb-podcast-manager.c:
	+ podcast/rb-podcast-manager.h:
	+ podcast/rb-podcast-marshal.list:
	+ podcast/rb-podcast-parse.c:
	+ podcast/rb-podcast-parse.h:
	+ podcast/rb-podcast-properties-dialog.c:
	+ podcast/rb-podcast-properties-dialog.h:
	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_set_property),
	(rhythmdb_property_model_enable_drag):
	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
	(rhythmdb_tree_parser_end_element), (save_entry),
	(rhythmdb_tree_save):
	* rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
	(rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
	(rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
	(rhythmdb_entry_podcast_feed_get_type):
	* rhythmdb/rhythmdb.h:
	* shell/Makefile.am:
	* shell/rb-shell-player.c: (rb_shell_player_open_entry):
	* shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
	(add_to_library_response_cb), (rb_shell_cmd_new_podcast),
	(rb_shell_quit):
	* sources/Makefile.am:
	+ sources/rb-podcast-source.c:
	+ sources/rb-podcast-source.h:
	* widgets/Makefile.am:
	* widgets/rb-property-view.c: (rb_property_view_class_init),
	(rb_property_view_constructor),
	(rb_property_view_selection_changed_cb),
	(rb_property_view_get_treeview):
	* widgets/rb-property-view.h:
	+ widgets/rb-simple-view.c:
	+ widgets/rb-simple-view.h:

2005-10-20  James Livingston  <jrl@ids.org.au>

	* NEWS: update with changes since 0.9.1

	* configure.ac: check whether collate_key_for_filename is available
	* lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
	* lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
	it if it isn't available in glib (i.e. building against 2.6)
	* rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
	collation to get "natural sorting". Closes bug 158599.

2005-10-20  James Livingston  <jrl@ids.org.au>

	Patch from Paul Kuliniewicz <kuliniew@purdue.edu>

	* doc/reference/tmpl/rb-shell-player.sgml:
	* shell/rb-shell-player.c: (rb_shell_player_class_init),
	(volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
	(rb_shell_player_get_playing),
	(rb_shell_player_get_playing_time_string),
	(rb_shell_player_get_playing_time),
	(rb_shell_player_set_playing_time), (tick_cb),
	(rb_shell_player_get_playing_path), (filter_mmkeys):
	* shell/rb-shell-player.h:
	* shell/rb-shell-player.xml:
	* shell/rb-shell.c: (rb_shell_constructor),
	(rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
	(rb_shell_set_window_title), (rb_shell_playing_impl),
	(rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
	Merge the duration_changed and elapsed_changed DBUS signals into one
	elapsed_changed signal. Check that the output argument isn't NULL
	before trying to put things in it.

2005-10-20  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_entry_added_cb),
	(rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
	problem where hidden entries could be shown in playlists.
	
	* shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
	issues when switching in and out of small mode.

2005-10-19  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
	(rb_shell_constructor), (rb_shell_window_state_cb),
	(rb_shell_set_visibility), (rb_shell_window_configure_cb),
	(rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
	(rb_shell_view_smalldisplay_changed_cb),
	(rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
	(rb_shell_sync_paned): remove gconf window-state races, prevent
	changing small mode too often, fix window event races. Closes 122806.

	
	Patch from Caio Marcelo <cmarcelo@gmail.com>

	* data/rhythmbox.schemas:
	* shell/rb-shell.c: (rb_shell_window_state_cb),
	(rb_shell_window_configure_cb), (rb_shell_sync_window_state):
	Remember the position of the window. Closes 315289.

2005-10-19  James Livingston  <jrl@ids.org.au>

	Patch from Christophe Fergeau  <teuf@gnome.org>

	* configure.ac: determine whether libgpod is present when neither
	--with-ipod nor --without-ipod is passed

2005-10-19  James Livingston  <jrl@ids.org.au>

	Patch from Caio Marcelo <cmarcelo@gmail.com>

	* shell/rb-shell-player.c: (do_next_idle),
	(rb_shell_player_do_previous), (rb_shell_player_do_next),
	(rb_shell_player_do_previous_or_seek),
	(rb_shell_player_previous_button_cb),
	(rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
	(rb_shell_player_cmd_next), (eos_cb):
	* widgets/rb-header.c: (rb_header_sync): Stop playback when the
	end of the playlist is reached.

2005-10-19  Christopher Aillon  <caillon@redhat.com>

	* lib/rb-thread.c: fix a few GSource leaks

2005-10-19  James Livingston  <jrl@ids.org.au>

	* doc/reference/tmpl/bacon-volume.sgml:
	* doc/reference/tmpl/disclosure-widget.sgml:
	* doc/reference/tmpl/eel-gconf-extensions.sgml:
	* doc/reference/tmpl/eggnotificationbubble.sgml:
	* doc/reference/tmpl/eggtrayicon.sgml:
	* doc/reference/tmpl/gsequence.sgml:
	* doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
	* doc/reference/tmpl/rb-cell-renderer-rating.sgml:
	* doc/reference/tmpl/rb-daap-connection.sgml:
	* doc/reference/tmpl/rb-daap-dialog.sgml:
	* doc/reference/tmpl/rb-daap-mdns.sgml:
	* doc/reference/tmpl/rb-daap-share.sgml:
	* doc/reference/tmpl/rb-daap-sharing.sgml:
	* doc/reference/tmpl/rb-daap-source.sgml:
	* doc/reference/tmpl/rb-daap-src.sgml:
	* doc/reference/tmpl/rb-daap-structure.sgml:
	* doc/reference/tmpl/rb-debug.sgml:
	* doc/reference/tmpl/rb-dialog.sgml:
	* doc/reference/tmpl/rb-druid.sgml:
	* doc/reference/tmpl/rb-entry-view.sgml:
	* doc/reference/tmpl/rb-enums.sgml:
	* doc/reference/tmpl/rb-file-helpers.sgml:
	* doc/reference/tmpl/rb-glade-helpers.sgml:
	* doc/reference/tmpl/rb-header.sgml:
	* doc/reference/tmpl/rb-history.sgml:
	* doc/reference/tmpl/rb-ipod-source.sgml:
	* doc/reference/tmpl/rb-iradio-source.sgml:
	* doc/reference/tmpl/rb-library-source.sgml:
	* doc/reference/tmpl/rb-load-failure-dialog.sgml:
	* doc/reference/tmpl/rb-metadata.sgml:
	* doc/reference/tmpl/rb-new-station-dialog.sgml:
	* doc/reference/tmpl/rb-play-order-linear-loop.sgml:
	* doc/reference/tmpl/rb-play-order-linear.sgml:
	* doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
	* doc/reference/tmpl/rb-play-order-random-by-age.sgml:
	* doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
	* doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
	* doc/reference/tmpl/rb-play-order-random.sgml:
	* doc/reference/tmpl/rb-play-order-shuffle.sgml:
	* doc/reference/tmpl/rb-play-order.sgml:
	* doc/reference/tmpl/rb-player.sgml:
	* doc/reference/tmpl/rb-playlist-manager.sgml:
	* doc/reference/tmpl/rb-playlist-source-recorder.sgml:
	* doc/reference/tmpl/rb-playlist-source.sgml:
	* doc/reference/tmpl/rb-preferences.sgml:
	* doc/reference/tmpl/rb-property-view.sgml:
	* doc/reference/tmpl/rb-query-creator-private.sgml:
	* doc/reference/tmpl/rb-query-creator.sgml:
	* doc/reference/tmpl/rb-rating-helper.sgml:
	* doc/reference/tmpl/rb-rating.sgml:
	* doc/reference/tmpl/rb-recorder.sgml:
	* doc/reference/tmpl/rb-refstring.sgml:
	* doc/reference/tmpl/rb-removable-media-manager.sgml:
	* doc/reference/tmpl/rb-removable-media-source.sgml:
	* doc/reference/tmpl/rb-search-entry.sgml:
	* doc/reference/tmpl/rb-shell-clipboard.sgml:
	* doc/reference/tmpl/rb-shell-glue.sgml:
	* doc/reference/tmpl/rb-shell-player-glue.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-display-box.sgml:
	* doc/reference/tmpl/rb-song-info.sgml:
	* doc/reference/tmpl/rb-source-header.sgml:
	* doc/reference/tmpl/rb-source.sgml:
	* doc/reference/tmpl/rb-sourcelist-model.sgml:
	* doc/reference/tmpl/rb-sourcelist.sgml:
	* doc/reference/tmpl/rb-station-properties-dialog.sgml:
	* doc/reference/tmpl/rb-statusbar.sgml:
	* doc/reference/tmpl/rb-stock-icons.sgml:
	* doc/reference/tmpl/rb-string-helpers.sgml:
	* doc/reference/tmpl/rb-thread.sgml:
	* doc/reference/tmpl/rb-tray-icon.sgml:
	* doc/reference/tmpl/rb-tree-dnd.sgml:
	* doc/reference/tmpl/rb-tree-model-sort.sgml:
	* doc/reference/tmpl/rb-util.sgml:
	* doc/reference/tmpl/rhythmbox-unused.sgml:
	* doc/reference/tmpl/rhythmdb-property-model.sgml:
	* doc/reference/tmpl/rhythmdb-query-model.sgml:
	* doc/reference/tmpl/rhythmdb-tree.sgml:
	* doc/reference/tmpl/rhythmdb.sgml: update for changes
	
	* doc/reference/Makefile.am: make docs build with changed ipod support
	
	* po/POTFILES.in: remove sources/itunesdb

2005-10-18  Christophe Fergeau  <teuf@gnome.org>

	* sources/itunesdb.c:
	* sources/itunesdb.h: removed now useless files

2005-10-03  Christophe Fergeau  <teuf@gnome.org>

	* configure.ac:
	* shell/Makefile.am:
	* sources/Makefile.am:
	* sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
	code
	[1]: http://www.gtkpod.org/libgpod.html


2005-10-18  James Livingston  <jrl@ids.org.au>

	patch from Funda Wang <fundawang@linux.net.cn>

	* shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
	the notification bubble string translatable.

============ Version 0.9.1

2005-10-16  James Livingston  <jrl@ids.org.au>

	* configure.ac: bump version to 0.9.1
	* NEWS: update translation credits

2005-10-16  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_class_init),
	(rhythmdb_query_model_drag_data_received): 
	* rhythmdb/rhythmdb-query-model.h: Allow sources to be
	notified when things are dropped into the entry view.
	
	* sources/rb-playlist-source.c: (rb_playlist_source_constructor),
	(rb_playlist_source_add_location_swapped),
	(rb_playlist_source_add_location), (rb_playlist_source_do_query),
	(rb_playlist_source_non_entry_dropped),
	(rb_playlist_source_row_inserted): Use the new signal so that dropping
	things onto a playlist's entry view work correctly, and doesn't cause
	crashes. Allow folders to be dropped as well. (Closes 318308)

2005-10-16  James Livingston  <jrl@ids.org.au>

	* NEWS: Update some more

	* shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
	(rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
	with the paned size, so that it doesn't move when the window is
	maximised/restored. Closes bug 315852.

	* sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
	display the playcount column, as it's useless (it never get changed).

2005-10-14  James Livingston  <jrl@ids.org.au>

	* Makefile.am:
	* data/Makefile.am:
	* doc/reference/Makefile.am: get "make distcheck" to pass again

2005-10-11  James Livingston  <jrl@ids.org.au>

	* daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
	destroy the connection when retrieving the playlists fails, because
	tracks have already been added. Closes 318380.

2005-10-11  James Livingston  <jrl@ids.org.au>

	* sources/rb-sourcelist.c: (rb_sourcelist_append),
	(rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
	(source_name_edited_cb): Ask for the columns to be resized when a
	source is added, deleted or changes name.

2005-10-11  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
	create a thread when processing a directory. This stops up created one
	thread for each file in a playlist we're trying to load. Closes
	317850.

	* widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
	typo that made sort-by-artist not work correctly.

2005-10-11  James Livingston  <jrl@ids.org.au>

	* doc/reference/Makefile.am: Make gtk-doc generation work when daap
	support is enabled

2005-10-11  James Livingston  <jrl@ids.org.au>

	* lib/rb-file-helpers.c: (rb_canonicalise_uri):
	* lib/rb-file-helpers.h: add a function to turn uris into our
	canonical path-escaped form
	* shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
	above function when import playlists. This will fix the problem of
	duplicate entries due to different representations of the uri (bug
	158211).

2005-10-11  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell.c: (rb_shell_get_visibility),
	(rb_shell_set_visibility), (rb_shell_window_delete_cb),
	(rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
	window hiding so that Alt-F4 works again.

	* widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
	(rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
	(rb_entry_view_string_sort_func): Stop some crashes where a string
	property was set to NULL.

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

	* doc/reference/rhythmbox.types: fix gtk-doc generation

2005-10-09  James Livingston  <jrl@ids.org.au>

	* sources/rb-sourcelist.c: (rb_sourcelist_init):
	* widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
	accelerators, so that we don't have as many conflicting keys.

2005-10-08  James Livingston  <jrl@ids.org.au>

	* data/iradio-initial.pls: Update the list of radio stations. Thanks
	to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
	bug 129285.

2005-10-07  James Livingston  <jrl@ids.org.au>

	* shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
	local path names in the same way as every other URI. This should stop
	duplicates occurring due to different escapings. Closes bug 158211.

2005-10-06  James Livingston  <jrl@ids.org.au>

	* NEWS: more updates
	
	patch from Jaap Haitsma <jaap@haitsma.org>:

	* configure.ac:
	* data/Makefile.am:
	* data/art/Makefile.am:
	- data/art/rhythmbox-paused.png:
	- data/art/rhythmbox-playback-error.png:
	- data/art/rhythmbox-playing.png:
	- data/art-clearlooks/:
	* lib/rb-file-helpers.c: (rb_file):
	* lib/rb-stock-icons.c: (rb_stock_icons_init):
	* lib/rb-stock-icons.h:
	* shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
	* widgets/rb-cell-renderer-pixbuf.c:
	(rb_cell_renderer_pixbuf_render):
	* widgets/rb-entry-view.c: (rb_entry_view_init),
	(rb_entry_view_set_playing):
	* widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
	stock icons instead of custom art. Drop remanents of art-clearlooks.

2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>

	* configure.ac: Added ne in ALL_LINGUAS

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

	* data/glade/Makefile.am: actually install the daap prefs glade file

2005-09-30  James Livingston  <jrl@ids.org.au>

	* po/POTFILES.in: mremove rb-string-helper.c from the list of
	translatable files, so that make check works and we don't annoy the
	translators.
	
	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
	sanity checking, in case a db entry is missing some properties.

2005-09-29  James Livingston  <jrl@ids.org.au>

	- lib/rb-string-helpers.c:
	- lib/rb-string-helpers.h:
	* lib/Makefile.am:
	* rhythmdb/rhythmdb-tree.c:
	* rhythmdb/rhythmdb.c:
	* shell/main.c: (main):
	* shell/rb-shell.c:
	* widgets/rb-entry-view.c:
	* widgets/rb-property-view.c: remove rb-string-helpers, as they
	utility functions haven't been used in a while.

2005-09-27  James Livingston  <jrl@ids.org.au>

	* data/art-clearlooks/Makefile.am:
	- data/art-clearlooks/rhythmbox-album.png:
	- data/art-clearlooks/rhythmbox-audiocd.png:
	- data/art-clearlooks/rhythmbox-automatic-playlist.png:
	- data/art-clearlooks/rhythmbox-dnd.png:
	- data/art-clearlooks/rhythmbox-ipod.png:
	- data/art-clearlooks/rhythmbox-iradio.png:
	- data/art-clearlooks/rhythmbox-library.png:
	- data/art-clearlooks/rhythmbox-next.png:
	- data/art-clearlooks/rhythmbox-pause.png:
	- data/art-clearlooks/rhythmbox-play.png:
	- data/art-clearlooks/rhythmbox-playlist-menu.png:
	- data/art-clearlooks/rhythmbox-playlist.png:
	- data/art-clearlooks/rhythmbox-previous.png:
	- data/art-clearlooks/rhythmbox-repeat.png:
	- data/art-clearlooks/rhythmbox-rewind.png:
	- data/art-clearlooks/rhythmbox-shuffle.png:
	- data/art-clearlooks/rhythmbox-stop.png:
	- data/art-clearlooks/rhythmbox-visuals.png:
	- data/art-clearlooks/rhythmbox-volume-max.png:
	- data/art-clearlooks/rhythmbox-volume-medium.png:
	- data/art-clearlooks/rhythmbox-volume-min.png:
	- data/art-clearlooks/rhythmbox-volume-mute.png:
	- data/art-clearlooks/rhythmbox-volume-zero.png:
	* data/art/Makefile.am:
	- data/art/rhythmbox-album.png:
	- data/art/rhythmbox-audiocd.png:
	- data/art/rhythmbox-automatic-playlist.png:
	- data/art/rhythmbox-dnd.png:
	- data/art/rhythmbox-ipod.png:
	- data/art/rhythmbox-iradio.png:
	- data/art/rhythmbox-library.png:
	- data/art/rhythmbox-next.png:
	- data/art/rhythmbox-pause.png:
	- data/art/rhythmbox-play.png:
	- data/art/rhythmbox-playlist-menu.png:
	- data/art/rhythmbox-playlist.png:
	- data/art/rhythmbox-previous.png:
	- data/art/rhythmbox-repeat.png:
	- data/art/rhythmbox-rewind.png:
	- data/art/rhythmbox-shuffle.png:
	- data/art/rhythmbox-stop.png:
	- data/art/rhythmbox-visuals.png:
	- data/art/rhythmbox-volume-max.png:
	- data/art/rhythmbox-volume-medium.png:
	- data/art/rhythmbox-volume-min.png:
	- data/art/rhythmbox-volume-mute.png:
	- data/art/rhythmbox-volume-zero.png:
	* lib/rb-stock-icons.c: (rb_stock_icons_init):
	* lib/rb-stock-icons.h:
	* shell/rb-playlist-manager.c:
	* shell/rb-shell-player.c:
	* sources/rb-daap-source.c: (rb_daap_get_icon):
	* sources/rb-ipod-source.c:
	* sources/rb-iradio-source.c: (rb_iradio_source_init):
	* sources/rb-library-source.c: (rb_library_source_new):
	* sources/rb-playlist-source.c: (rb_playlist_source_constructor):
	* sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
	that hasn't been used in a LONG time, and also remove art that are
	now stock icons.

2005-09-27  James Livingston  <jrl@ids.org.au>

	* README: point to the gnome.org web sites, and update the example
	gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
	
	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_set_property),
	(rhythmdb_query_model_get_property),
	(rhythmdb_query_model_finalize):
	* rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
	(rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
	* rhythmdb/rhythmdb.h:
	* sources/rb-iradio-source.c: (impl_search):
	* sources/rb-library-source.c: (impl_search): Add query
	"preprocessing", which performs operations such as casefolding any
	strings that will be compared to any of the *_FOLDED properties.
	Closes bug 316039

2005-09-27  James Livingston  <jrl@ids.org.au>

	* data/glade/daap-prefs.glade:
	* shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
	file for the daap preferences pane
	
	* sources/rb-sourcelist.c: (rb_sourcelist_init),
	(rb_sourcelist_append), (rb_sourcelist_remove),
	(visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
	don't display the column for source expanders unless there is an
	expandable source.

2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>

	* .cvsignore:
	* Makefile.am:
	* configure.ac:
	* doc/.cvsignore:
	* doc/Makefile.am:
	* doc/reference/.cvsignore:
	* doc/reference/Makefile.am:
	* doc/reference/rhythmbox-docs.sgml:
	* doc/reference/rhythmbox-sections.txt:
	* doc/reference/rhythmbox.types:
	* doc/reference/tmpl/bacon-volume.sgml:
	* doc/reference/tmpl/disclosure-widget.sgml:
	* doc/reference/tmpl/eel-gconf-extensions.sgml:
	* doc/reference/tmpl/eggnotificationbubble.sgml:
	* doc/reference/tmpl/eggtrayicon.sgml:
	* doc/reference/tmpl/gsequence.sgml:
	* doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
	* doc/reference/tmpl/rb-cell-renderer-rating.sgml:
	* doc/reference/tmpl/rb-daap-connection.sgml:
	* doc/reference/tmpl/rb-daap-dialog.sgml:
	* doc/reference/tmpl/rb-daap-mdns.sgml:
	* doc/reference/tmpl/rb-daap-share.sgml:
	* doc/reference/tmpl/rb-daap-sharing.sgml:
	* doc/reference/tmpl/rb-daap-source.sgml:
	* doc/reference/tmpl/rb-daap-src.sgml:
	* doc/reference/tmpl/rb-daap-structure.sgml:
	* doc/reference/tmpl/rb-debug.sgml:
	* doc/reference/tmpl/rb-dialog.sgml:
	* doc/reference/tmpl/rb-druid.sgml:
	* doc/reference/tmpl/rb-entry-view.sgml:
	* doc/reference/tmpl/rb-enums.sgml:
	* doc/reference/tmpl/rb-file-helpers.sgml:
	* doc/reference/tmpl/rb-glade-helpers.sgml:
	* doc/reference/tmpl/rb-header.sgml:
	* doc/reference/tmpl/rb-history.sgml:
	* doc/reference/tmpl/rb-ipod-source.sgml:
	* doc/reference/tmpl/rb-iradio-source.sgml:
	* doc/reference/tmpl/rb-library-source.sgml:
	* doc/reference/tmpl/rb-load-failure-dialog.sgml:
	* doc/reference/tmpl/rb-metadata.sgml:
	* doc/reference/tmpl/rb-new-station-dialog.sgml:
	* doc/reference/tmpl/rb-play-order-linear-loop.sgml:
	* doc/reference/tmpl/rb-play-order-linear.sgml:
	* doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
	* doc/reference/tmpl/rb-play-order-random-by-age.sgml:
	* doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
	* doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
	* doc/reference/tmpl/rb-play-order-random.sgml:
	* doc/reference/tmpl/rb-play-order-shuffle.sgml:
	* doc/reference/tmpl/rb-play-order.sgml:
	* doc/reference/tmpl/rb-player.sgml:
	* doc/reference/tmpl/rb-playlist-manager.sgml:
	* doc/reference/tmpl/rb-playlist-source-recorder.sgml:
	* doc/reference/tmpl/rb-playlist-source.sgml:
	* doc/reference/tmpl/rb-preferences.sgml:
	* doc/reference/tmpl/rb-property-view.sgml:
	* doc/reference/tmpl/rb-query-creator-private.sgml:
	* doc/reference/tmpl/rb-query-creator.sgml:
	* doc/reference/tmpl/rb-rating-helper.sgml:
	* doc/reference/tmpl/rb-rating.sgml:
	* doc/reference/tmpl/rb-recorder.sgml:
	* doc/reference/tmpl/rb-refstring.sgml:
	* doc/reference/tmpl/rb-removable-media-manager.sgml:
	* doc/reference/tmpl/rb-removable-media-source.sgml:
	* doc/reference/tmpl/rb-search-entry.sgml:
	* doc/reference/tmpl/rb-shell-clipboard.sgml:
	* doc/reference/tmpl/rb-shell-glue.sgml:
	* doc/reference/tmpl/rb-shell-player-glue.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-display-box.sgml:
	* doc/reference/tmpl/rb-song-info.sgml:
	* doc/reference/tmpl/rb-source-header.sgml:
	* doc/reference/tmpl/rb-source.sgml:
	* doc/reference/tmpl/rb-sourcelist-model.sgml:
	* doc/reference/tmpl/rb-sourcelist.sgml:
	* doc/reference/tmpl/rb-station-properties-dialog.sgml:
	* doc/reference/tmpl/rb-statusbar.sgml:
	* doc/reference/tmpl/rb-stock-icons.sgml:
	* doc/reference/tmpl/rb-string-helpers.sgml:
	* doc/reference/tmpl/rb-thread.sgml:
	* doc/reference/tmpl/rb-tray-icon.sgml:
	* doc/reference/tmpl/rb-tree-dnd.sgml:
	* doc/reference/tmpl/rb-tree-model-sort.sgml:
	* doc/reference/tmpl/rb-util.sgml:
	* doc/reference/tmpl/rhythmdb-property-model.sgml:
	* doc/reference/tmpl/rhythmdb-query-model.sgml:
	* doc/reference/tmpl/rhythmdb-tree.sgml:
	* doc/reference/tmpl/rhythmdb.sgml:
	* macros/.cvsignore:
	* shell/Makefile.am:
	* sources/rb-source.c: (rb_source_class_init), (rb_source_init),
	(rb_source_finalize), (rb_source_set_property),
	(rb_source_get_property), (default_get_pixbuf),
	(_rb_source_show_popup):
	* sources/rb-source.h:
	Add support for gtk-doc in rhythmbox.
	Convert RBSource to use newer glib functions, such as add_private.
	Gives RBSource a default get_pixbuf implementation.

2005-09-25  James Livingston  <jrl@ids.org.au>

	* NEWS: Update with about a months worth of changes

	* data/glade/song-info-multiple.glade:
	* data/glade/song-info.glade:
	* data/rhythmbox.schemas:
	* lib/rb-preferences.h:
	* rhythmdb/rhythmdb.h:
	* shell/rb-shell-player.c:
	* widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
	few remaining parts of autorating.

2005-09-24  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell.c: (rb_shell_constructor),
	(rb_shell_window_state_cb), (rb_shell_set_visibility),
	(rb_shell_window_configure_cb): store window state in the gconf keys,
	so that it gets used. Closes bugs 313893 and 137068.

2005-09-20  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
	crash if the entry has a NULL string in a property
	
	* shell/rb-removable-media-manager.c:
	(rb_removable_media_manager_load_media): fix some memory leaks
	
	(rb_removable_media_manager_mount_volume),
	(rb_removable_media_manager_eject_medium_cb),
	(rb_removable_media_manager_cmd_eject_medium): use
	gnome_vfs_volume_ref/unref instead of g_object_ref/unref
	
	* sources/rb-removable-media-source.c:
	(rb_removable_media_source_set_property),
	(rb_removable_media_source_get_property): use
        gnome_vfs_volume_ref/unref instead of g_object_ref/unref

2005-09-18  James Livingston  <jrl@ids.org.au>

	Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
	column

	* data/glade/general-prefs.glade:
	* shell/rb-shell-preferences.c: (rb_shell_preferences_init),
	(rb_shell_preferences_column_check_changed_cb),
	(rb_shell_preferences_sync): add checkbox to control visibility
	of the column
	
	
	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
	(save_entry):
	* rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
	(rhythmdb_prop_get_type):
	* rhythmdb/rhythmdb.h: add string version of "first seen", in the same
	was as "last played" is handled
	
	* sources/rb-library-source.c: (rb_library_source_constructor):
	* sources/rb-playlist-source.c: (rb_playlist_source_constructor):
	Make the column show in the library and playlists
	
	* widgets/rb-entry-view.c: (rb_entry_view_append_column):
	* widgets/rb-entry-view.h: add the column
	
	* widgets/rb-query-creator-properties.c: allow automatic playlists to
	be sorted by the column

2005-09-16  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell-player.c: (rb_shell_player_init),
	(rb_shell_player_do_previous_or_seek),
	(rb_shell_player_previous_button_cb),
	(rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
	(rb_shell_player_playpause_button_cb): Make the previous button act
	the same as the menu item. Fix an inversion of the "previous track or
	seek" logic.
	
	Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
	
	(rb_shell_player_playpause): make --play-pause stop source that can't
	be paused

2005-09-15  James Livingston  <jrl@ids.org.au>

	* configure.ac: increase totem-plparser requirements to 1.1.5

	* shell/rb-playlist-manager.c: (playlist_load_start_cb),
	(playlist_load_end_cb), (rb_playlist_manager_parse_file):
	* sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
	use the newer playlist APIs to save the name of the playlist, and use
	the name of a loaded playlist.

	Closes bug 309817.

2005-09-15  James Livingston  <jrl@ids.org.au>

	Patch from Jonathan Matthew <jonathan@kaolin.hn.org>

	* shell/Makefile.am: stop some linker warnings

	* shell/main.c: (main): make --no-registration work with dbus

2005-09-15  James Livingston  <jrl@ids.org.au>

	* daapsharing/rb-daap-sharing.c: (create_share):
	* widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
	reference sinking and counting issues that I caused.

2005-09-15  James Livingston  <jrl@ids.org.au>

	* widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
	playing" icon in the "now playing" column header.

2005-09-14  James Livingston  <jrl@ids.org.au>

	* daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
	daap shares, when sharing is turned off.

2005-09-12  Bastien Nocera  <hadess@hadess.net>

	* sources/rb-daap-source.c: (rb_daap_sources_init): Check
	the GConf value's default, especially for badly installed schema
	files

2005-09-12  James Livingston  <jrl@ids.org.au>

	* daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl

	Patch from Paolo Borelli <pborelli@katamail.com>

	* shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
	grip when maximised. Closes bug 316055.

2005-09-11  James Livingston  <jrl@ids.org.au>

	Patch from William Jon McCann <mccann@jhu.edu>

	* shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
	subclass of GtkStatusbar instead of GtkHBox.
	(rb_statusbar_construct): Don't set border width.
	(rb_statusbar_init): Use resize grip.  Don't use
	markup.
	(set_statusbar_tooltip, unset_statusbar_tooltip) 
	(rb_statusbar_connect_action_group, rb_statusbar_set_property):
	Connect tooltips for actions.
	(rb_statusbar_sync_status): Push new message to statusbar.
	(rb_statusbar_set_progress): Don't use markup.
	(rb_statusbar_entry_view_changed_cb): Don't set syncing_state
	flag here since it prevents actually showing or hiding.
	(rb_statusbar_sync_with_source): Push new message to statusbar.

2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>

	* daapsharing/rb-daap-structure.c:
	(rb_daap_structure_parse_container_buffer: Forgot to remove comments
	around debugging definition.

2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
	
	* daapsharing/rb-daap-structure.c:
	(rb_daap_structure_parse_container_buffer): Read the patch from daap 
	type = version.

	* daapsharing/rb-daap-mdns.c/h:
	(resolve_cb): Updated mDNS resolve callback to send service-name &
	name (read from Machine Name in the TXT data or equal to service-name
	if not in TXT).

	* daapsharing/rb-daap-source.c:
	(rb_daap_source_class_init), (rb_daap_source_set_property), 
	(rb_daap_source_get_property), (rb_daap_source_new),
	(find_source_by_service_name), (resolve_cb), (browse_cb), 
	(stop_resolver), (start_browsing), (stop_browsing), 
	(enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
	and added 'host' and 'port' gobject properties.  Updated to use new
	mDNS resolve callback sending service-name & name arguments.

2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>

	* daapsharing/rb-daap-mdns.c:
	(howl_strerror): New function to report errors from Howl
	(rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
	(get_sw_discovery), (get_avahi_client): Better error reporting from
	Howl & Avahi.

	* sources/rb-daap-source.:
	(start_browsing), (stop_browsing): Fixed a bug where browsing would
	not get started or stopped in some situations.
	
2005-09-12  James Livingston  <jrl@ids.org.au>

	* shell/rb-removable-media-manager.c: add a missing include, that
	would stop compilation if ipod support wasn't turned on

2005-09-11  James Livingston  <jrl@ids.org.au>

	* daapsharing/rb-daap-dialog.c: (encode_base64),
	(rb_daap_password_dialog_new_run),
	(rb_daap_collision_dialog_new_run): fix a translatable string, so that
	it is no broken in to two pieces, and remove a use of a goto
	
	* daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
	(setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
	(rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
	(get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
	(rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
	memory leaks, and some code style things.
	
	* daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
	(rb_daap_share_init), (rb_daap_share_set_property),
	(rb_daap_share_dispose), (rb_daap_share_new),
	(rb_daap_share_get_property): make the DB and the playlist manager
	gobject properties.
	
	(message_add_standard_headers),
	(message_set_from_rb_daap_structure), (server_info_cb),
	(content_codes_cb), (login_cb), (update_cb), (databases_cb),
	(server_cb), (add_db_entry), (db_entry_added_cb),
	(db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
	(rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
	style and use CONF_PREFIX in the gconf keys
	
	* daapsharing/rb-daap-sharing.c: (create_share),
	(enable_sharing_changed_cb), (share_name_changed_cb),
	(rb_daap_sharing_init), (rb_daap_sharing_shutdown):
	* daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
	(rb_daap_src_instance_init), (rb_daap_src_dispose),
	(rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
	(rb_daap_src_get_property), (rb_daap_src_getcaps),
	(rb_daap_src_close_file), (rb_daap_src_srcpad_event),
	(rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
	(rb_daap_src_get_time): Deal with gconf callbacks where the key
	hasn't actually changed, fix some memory leaks, code style and release
	gconf notifications when the object is destroyed.
	
	* sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
	(rb_daap_source_class_init), (rb_daap_source_init),
	(rb_daap_source_dispose), (rb_daap_source_set_property),
	(rb_daap_source_get_property), (rb_daap_source_new),
	(find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
	(start_browsing), (stop_browsing), (enable_browsing_changed_cb),
	(rb_daap_sources_init), (rb_daap_sources_shutdown),
	(rb_daap_source_activate), (rb_daap_source_disconnect),
	(rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
	(rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
	release gconf notifications, handle gconf callbacks where the key
	hasn't changed, make "real name" and "password protected" gobject
	properties, fix some code style and fix a memory leak.

2005-09-11  James Livingston  <jrl@ids.org.au>

	Patch from Jonathan Matthew <jonathan@kaolin.hn.org>

	* shell/rb-playlist-manager.c:
	(rb_playlist_manager_save_playlists),
	(rb_playlist_manager_get_playlists): don't unref the sourcelist model
	when we aren't supposed to. (Closes bug 315886)

2005-09-11  James Livingston  <jrl@ids.org.au>

	* 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_set_property),
	(rb_removable_media_manager_get_property),
	(rb_removable_media_manager_new),
	(rb_removable_media_manager_load_media),
	(rb_removable_media_manager_volume_mounted_cb),
	(rb_removable_media_manager_volume_unmounted_cb),
	(rb_removable_media_manager_mount_volume),
	(rb_removable_media_manager_unmount_volume),
	(rb_removable_media_manager_source_deleted_cb),
	(rb_removable_media_manager_append_media_source),
	(rb_removable_media_manager_set_uimanager),
	(rb_removable_media_manager_eject_medium_cb),
	(rb_removable_media_manager_cmd_eject_medium):
	* shell/rb-removable-media-manager.h:
	* sources/rb-removable-media-source.c:
	(rb_removable_media_source_class_init),
	(rb_removable_media_source_init),
	(rb_removable_media_source_dispose),
	(rb_removable_media_source_set_property),
	(rb_removable_media_source_get_property), (impl_get_pixbuf),
	(impl_delete_thyself):
	* sources/rb-removable-media-source.h: Add the four files that I
	somehow managed not to add to cvs in the last commit. Oops.

2005-09-11  James Livingston  <jrl@ids.org.au>

	* shell/Makefile.am: Add rb-removable-media-manager.{c,h}
	* sources/Makefile.am: Add rb-removable-media-source.{c,h} 
	
	* shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
	(rb_shell_medium_added_cb), (rb_shell_select_source): create the
	removable-media-manager on startup, and handle creation of sources.
	
	* sources/rb-ipod-source.h:
	* sources/rb-ipod-source.c: (rb_ipod_source_class_init),
	(rb_ipod_source_init), (rb_ipod_source_constructor),
	(rb_ipod_source_dispose), (rb_ipod_source_new),
	(load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
	the iPod source over to the removable media framework.
	
	* sources/rb-library-source.c: (paned_size_allocate_cb),
	(rb_library_source_get_paned_key): fix a potential bug is a
	library-derived source doesn't have a paned-key

2005-09-11  Bastien Nocera  <hadess@hadess.net>

	* daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
	mp3 when we can't get the suffix of a file (Closes: #315941)

2005-09-10  James Livingston  <jrl@ids.org.au>

	* configure.ac: fix the mdns tests, so that it doesn't complain about
	not finding one, if daap support isn't being compiled in

2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>

	* configure.ac: Updated to require avahi >= 0.5.  Small fixes.

	* daapsharing/rb-daap-dialog.c:
	(rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
	HIG compliancy & images.

	* daapsharing/rb-daap-mdns.c:
	(browse_cb), (resolve_cb): Better detection of local services.  
	Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
	Howl's limitations.  Fix the way collision handling is done under
	Avahi.

	* daapsharing/rb-daap-share.c:
	(publish_cb): Better name collision handling (at least for Avahi).

2005-09-10  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
	Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
	preferences more HIG compliant (Closes #315889)
	
	* po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
	list of files to be translated

2005-09-10  James Livingston  <jrl@ids.org.au>

	* configure.ac: fix it so that --enable-daap=no works
	* lib/rb-file-helpers.c: (rb_file): allow use of new art when running
	uninstalled

2005-09-10  James Livingston  <jrl@ids.org.au>

	Patch from Christophe Fergeau <teuf@gnome.org>

	* sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
	the ipod code.

2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
	* README.daap: Updating documentation

2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
	* AUTHORS: Added myself.

	* daapsharing/rb-daap-connection.c:
	(connection_login), (rb_connection_new): Reorganized password
	handling.

	* po/POTFILES.in: Added daapsharing/rb-daap-dialog.c

	* shell/rb-shell.c:
	(rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.

	* sources/rb-daap-source.c:
	(rb_daap_source_activate): Better error handling when we are unable to
	connect.
	
2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
	* README.daap: Fixed some terminology.

	* configure.ac: Better automatic detection of mDNS/DNS-SD library.
	New --with-mdns=auto|howl|avahi flag to specify.

	* daapsharing/rb-daap-dialog.c/h: New files to handle password &
	name collision dialogs.

	* daapsharing/rb-daap-connection.c:
	(connection_get_password), (build_message), (http_get)
	(connection_login): Ask for & use a password if the share demands it.

	* daapsharing/rb-daap-connection.h: Changed prototype of
	rb_daap_connection_new.
	
	* daapsharing/rb-daap-mdns.c: 
	(resolve_cb): Better detection of your own music share so it doesn't 
	appear in the sourcelist.

	* daapsharing/rb-daap-share.c:
	(rb_daap_share_start_publish): Attempt to start on port 3689, failing
	that start on any available port.

	* daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.

	* sources/rb-daap-source.c:
	(find_source_by_name), (rb_daap_source_new), (resolve_cb),
	(browse_cb): Handle passworded shares. Resolve the host immediately
	instead of when activated.
	(rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
	(rb_daap_source_new): New GConf keys for UI state.
	(rb_daap_source_activate): Use RBPlaylistSource instead of
	RBDAAPPlaylistSource
	
	* sources/rb-daap-playlist-source.c/h: Removed

	* sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
	if the playlist is local (i.e. not DAAP or iPod).
	
	* shell/rb-playlist-manager.c:
	(rb_playlist_manager_save_playlists): Fixed a bug where the playlists
	wouldn't get saved if the last playlist hadn't changed.  Only save
	local playlists.
	
2005-09-09  James Livingston  <jrl@ids.org.au>

	* sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
	iPod preferences pane, as it already uses the browser views as the
	library.

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

	* sources/rb-library-source.c: (rb_library_source_finalize),
	(rb_library_source_constructor): fix gconf monitoring of library
	preference keys.
	* sources/rb-library-source.h: remove declaration of function that
	does not exist

2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>

	* player/rb-player-gst.c:
	(rb_player_set_time): Fix seeking in daap streams.

2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>

	* data/rhythmbox.schemas: Turn music share browsing on by default.

2005-09-07  James Livingston  <jrl@ids.org.au>

	* configure.ac: include daapsharing/Makefile in AC_OUTPUT

2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
	* player/rb-player-gst.c: 
	(rb_player_get_time): Fix for extra << & == that accidentally made
	it in.

	* player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
	
2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
	* configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
	it in last time.  Sorry.

2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
	
	* player/rb-player-gst.c:
	(rb_player_get_time): Fix a small crash appearing when
	the uri isn't set in the player, but rb_player_get_time() is
	still called.

	* configure.ac: Also check for libsoup 2.4, which is what ships with
	Gnome 2.12.

	* po/POTFILES.in: Added music sharing files that have translatable 
	strings.

	* README.daap: New file explaining "How Music Sharing Works"  

2005-09-06  Bastien Nocera  <hadess@hadess.net>

	* daapsharing/.cvsignore: added

2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>

	* daapsharing/*: Music sharing library.
	
	* sources/rb-daap-source.c/h: Music share RBSource.
	* sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.

	* configure.ac: --enable-daap flag to turn on music sharing. Requires
	libsoup and a mutlicast DNS implementation (howl or avahi).

	* data/rhythmbox.schemas: New GConf keys for music sharing.

	* data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
	source right click menu.

	* player/rb-player-gst.c: Changes to properly play & seek in remote
	music share files.

	* shell/rb-playlist-manager.c/h:
	(rb_playlist_manager_get_playlists): New function to get a GList * of
	the playlists.
	(rb_playlist_manager_save_playlists): Don't save music share playlists
	and fixed a GObject reference leak.

	* shell/rb-shell.c/h:
	(rb_shell_append_source): No longer a local function.  Now takes a
	parent RBSource * argument, NULL to append a toplevel source.
	(rb_shell_cmd_source_disconnect): New function to 'disconnect' a
	source (useful for disconnecting from remote music share,
	specifically).
	(rb_shell_quit): Stop music sharing/browsing.
	(rb_shell_playlist_added_cb): Work with tree source structure.
	(rb_shell_get_property): "playlist-manager" property accessor.
	(rb_shell_class_init): New "playlist-manager" property.
	(rb_shell_construor): Append sources as toplevel sources.  Initialize
	daap sharing/browsing.
	(rb_shell_select_source): Notify source of activation/deactivation.

	* shell/rb-shell-prefernces.c: Music sharing preferences.

	* sources/rb-source.c/h: New activate, deactivate and disconnect
	class functions.  Activate & deactivate are notification style 
	functions that will tell a source when it is selected/unselected.
	Disconnect can be hooked up to a UI object to disconnect the source.

	* sources/rb-sourcelist-model.c:
	* sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
	(rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
	append a toplevel source.

2005-09-05  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_entry_changed_cb),
	(rhythmdb_query_model_do_reorder): Update the query model's totals if
	the duration of filesize of an entry changes.  Emit the row-changed
	signals that I forgot to put back in, when I was doing query sorting.

	* rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
	out "0 minutes" or "0 bytes".

2005-09-04  James Livingston  <jrl@ids.org.au>

	* shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
	remove a leftover bit of the "internal-name" property of sources.

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

	* rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
	extraneous debug message
	* sources/rb-library-source.c: (rb_library_source_do_query): fix a
	crasher would affect any library-derived sources (which was also a
	memory leak).

2005-09-02  Colin Walters  <walters@verbum.org>

	* configure.ac: Fix sytnax error.

	* shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
	code to disable minimization icons - need to figure out
	why it doesn't work...

2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>

	* data/glade/song-info-multiple.glade:
	* data/glade/song-info.glade:
	* widgets/rb-song-info.c: (rb_song_info_constructor):
	Add a mnemonic to the newly added "Automatically rate" label
	in the properties dialog and use a bold typeface like all the 
	other labels in the dialog. (Closes bug 315089)

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

	* sources/rb-library-source.c: (rb_library_source_class_init),
	(rb_library_source_finalize), (rb_library_source_constructor),
	(rb_library_source_set_property), (rb_library_source_get_property),
	(impl_get_paned_key), (paned_size_allocate_cb),
	(rb_library_source_state_prefs_sync), (impl_show_popup),
	(rb_library_source_get_paned_key):
	* sources/rb-library-source.h: Allow sources derived from
	RBLibrarySource to use different gconf keys for sort order, browser
	visibility and browser pane position. Fix a crasher if a derived
	source overrides _get_pixbuf.

2005-09-02  Colin Walters  <walters@verbum.org>

	* shell/rb-shell.c (rb_shell_set_visibility): Move
	hint setting which seems to avoid races more.
	
2005-09-03  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell.c: fix compilation with iPod support enabled
	
2005-09-02  Colin Walters  <walters@verbum.org>

	* shell/rb-shell.c (struct RBShellPrivate): Add
	idle_hide_mainwindow_id.
	(rb_shell_constructor): Move taskbar skipping hint into
	rb_shell_set_visibility.
	(idle_hide_mainwindow): New function.
	(rb_shell_set_visibility): Taskbar hinting moved here; add evil
	racy hack to avoid rb appearing in taskbar when minimized.

2005-09-01  Colin Walters  <walters@verbum.org>

	* widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.

	* widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
	from gtkstatusicion.c.

	* shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.

	* shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
	TrayShowWindow entry.
	(rb_tray_icon_class_init): Make GtkActionGroup readable only.
	(rb_tray_icon_constructor): Create action group here.
	(rb_tray_icon_finalize): Destroy action group.
	(rb_tray_icon_set_property): Don't take an action group.
	(rb_tray_icon_new): Ditto.
	(tray_popup_position_menu): Some mostly boilerplate code
	to position menu.
	(rb_tray_icon_button_press_event_cb): Position menu.
	(rb_tray_icon_get_geom): New function used for the shell
	to set minimization hints.

	* shell/rb-shell.h: Prototype rb_shell_toggle_visibility.

	* shell/rb-shell.c (rb_shell_actions): Add MusicClose.
	(struct RBShellPrivate): Change visible to iconified.
	(set_icon_geometry): New function from Søren Sandmann to
	tell Metacity where to draw the minimization animiation.
	(rb_shell_window_state_cb): Update iconified.
	(rb_shell_get_visibility): New function to say whether
	or not we're currently visible.
	(rb_shell_set_visibility): Update to minimize to
	tray or present as appropriate.
	(rb_shell_window_delete_cb): On window close, just
	minimize to tray if we're deleted.
	(rb_shell_set_window_title): Kill old notification code.
	(rb_shell_toggle_visibility): Nwe function.
	(rb_shell_cmd_toggle_visibility): Call it.
	(rb_shell_constructor): Skip the taskbar.
	(tray_destroy_cb): Better debugging.
	
2005-09-01  Colin Walters  <walters@verbum.org>

	* data/ui/rhythmbox-ui.xml: Add MusicClose.

	* configure.ac: Enable bonobo by default.
	
2005-09-01  Colin Walters  <walters@verbum.org>

	* configure.ac: Default to old art.  Add macros subdir.

	* Makefile.am (SUBDIRS): Add macros.

	* macros/Makefile.am: New.
	
2005-09-01  Colin Walters  <walters@verbum.org>

	* shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
	rb-shell-player.xml.

	* remote/dbus/rb-remote-dbus.h: Deleted.
	
	* remote/dbus/Makefile.am: Delete all the junk, just dist
	rb-print-playing.py and rb-set-rating.py.

	* remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.

	* data/Makefile.am (EXTRA_DIST): Add service_in_files.

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

	- data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
	file from cvs

	* shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
	(rb_shell_constructor): Patches from Jonathan Matthew
	<jonathan@kaolin.hn.org> to fix compilation without ipod support, and
	a crash when using "browse this artist".

2005-08-31  Colin Walters  <walters@verbum.org>

	* configure.ac: Add --with-old-art configure switch.  Also
	add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
	but it doesn't work.

	* widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
	Don't use eel_create_colorized_pixbuf for new art.
	* widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.

	* data/art-clearlooks: New artwork.
	
2005-08-31  Colin Walters  <walters@verbum.org>

	* shell/main.c (main): Fix Bastien's commit to continue to focus
	the window with GTK+ 2.8 at least.
	
2005-08-31  Colin Walters  <walters@verbum.org>

	* shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
	is already loaded.

	* shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.

2005-08-31  Bastien Nocera  <hadess@hadess.net>

	* README: remove mentions of the xine-lib backend
	* shell/main.c: (main): make it compilable with gtk+ < 2.8

2005-08-30  Colin Walters  <walters@verbum.org>

	* shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
	Make non-visible sources insensitive.
	
2005-08-30  Colin Walters  <walters@verbum.org>

	* shell/rb-shell.c: Don't use GConf for selected source; it's
	confusing to have the selected source change after startup,
	and since we don't save other things it's not worth saving this.

	* sources/rb-playlist-source.c:
	* sources/rb-library-source.c:
	* sources/rb-iradio-source.c:
	* sources/rb-ipod-source.c: Delete internal-name property usage.
	* sources/rb-source.c: Delete internal-name property.

	* data/rhythmbox.schemas: Delete selected_source.
	
2005-08-30  Colin Walters  <walters@verbum.org>

	* sources/rb-sourcelist.c: Make playing source bold instead of
	displaying a pixbuf; it's much less ugly.
	
2005-08-30  Colin Walters  <walters@verbum.org>

	* sources/rb-source.c:
	* sources/rb-source.h: New virtual method try_playlist.

	* sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
	impl_try_playlist.
	(rb_iradio_source_add_station): Remove validation; we do that elsewhere.
	(impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
	(handle_playlist_entry_cb): Don't check for iradio uris, we don't
	need to.
	(stations_view_drag_data_received_cb): Don't check for iradio uris;
	in theory we should though...

	* shell/rb-shell.c (known_sources): Delete; we just hardcode the
	list in rb_shell_construct now.
	(struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
	RBiPodSource.
	(rb_shell_constructor): Create library, iradio, ipod here.
	(rb_shell_source_deleted_cb): Use source directly instead of
	indirecting through type.
	(rb_shell_sync_selected_source): Ditto.
	(rb_shell_jump_to_entry_with_source): Just use the source reutrned
	from the type instead of special-casing.
	(rb_shell_guess_type_for_uri) 
	(rb_shell_add_uri)
	(handle_one_uri_with_possible_metadata): New functions.
	(rb_shell_load_uri): Refactor to allow loading playlists again,
	also use other URI infrastructure.

	* shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
	(rb_shell_player_error): Always set entry error on error, instead
	of depending on EOF behavior.

	* shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
	to just invoke rb_shell_add_uri.
	(rb_playlist_manager_parse_file): Return error instead of tossing
	up dialog box directly.
	(load_playlist_response_cb): Display error here.
	(add_uri_to_playlist): Delete.
	(handle_playlist_entry_into_playlist_cb): Renamed to
	handle_playlist_entry_cb.

	* shell/rb-playlist-manager.h: Add error, update prototype.

	* lib/rb-file-helpers.c:
	* lib/rb-file-helpers.h: Delete rb_uri_is_iradio.

2005-08-29  Colin Walters  <walters@verbum.org>

	* sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
	if entry already exists.  Use rhythmdb_entry_set_uninserted.

	* sources/rb-ipod-source.c (entry_set_string_prop): Avoid
	needlessly duping string, and use rhythmdb_entry_set_uninserted.
	(load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.

	* shell/rb-shell.h (enum RBShellError): Add some more errors.
	Prototype rb_shell_set_song_property.

	* shell/rb-shell.xml: Export setSongProperty.

	* shell/rb-shell.c (rb_shell_set_song_property): New function.
	(rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
	rhythmdb_entry_set_nonotify, and call rhythmdb_commit.

	* shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
	rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
	want to notify of the change.
	(rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.

	* rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
	logic error; idle functions would be enqueued for each set.
	(rhythmdb_entry_set): Fix assertion logic error.

	* iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
	Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
	Return if the entry already exists.
	
2005-08-29  Colin Walters  <walters@verbum.org>

	* rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
	"inserted" member which we use to keep track of
	whether or not an entry is in the DB.  Prototype
	rhythmdb_entry_set_uninserted.

	* rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
	flag.
	(rhythmdb_entry_insert): Assert entry is not already inserted.
	(rhythmdb_process_metadata_load): Update to call _set_uninserted
	just after creating entry.
	(rhythmdb_entry_set): Document, and fail on uninserted entries.
	(rhythmdb_entry_set_nonotify): Ditto.
	(rhythmdb_entry_set_uninserted): Document, and fail on inserted
	entries.
	(rhythmdb_entry_set_internal): Change notify flag to
	notify_if_inserted.  Also move notification after assertions.

	Update all existing callers of rhythmdb_entry_set_internal
	to give TRUE for notify_if_inserted; this should be what
	we want but may be an efficiency hit.
	
2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>

	* shell/rb-shell-player.c: (rb_shell_player_init),
	(rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
	(rb_shell_player_set_playing_source_internal),
	(rb_shell_player_sync_with_selected_source): Notify the player when an
	entry has updated the title, album or artist field, and resync the big
	display.
	
	* sources/rb-iradio-source.c: (rb_iradio_source_class_init):
	* sources/rb-library-source.c: (rb_library_source_class_init),
	(impl_get_config_widget):
	* sources/rb-playlist-source.c: (rb_playlist_source_class_init):
	* sources/rb-source.c:
	* sources/rb-source.h: Removed unused have_artist_album, get_artist, and
	get_album functions in rb-source and adapted other sources accordingly.
	
2005-08-29  Colin Walters  <walters@verbum.org>

	* rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
	signal_change member.
	(threadsafe_entry_set): New function.
	(rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
	(rhythmdb_entry_set_nonotify): New function; just call
	threadsafe_entry_set with FALSE.
	(rhythmdb_entry_set_internal): Take a notify flag; if true
	add the change to our pending set.

	Also update all internal callers of rhythmdb_entry_set_internal
	to pass FALSE.  Some of these may be bugs however and need to
	pass TRUE...

	* rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
	rhythmdb_entry_set, and rename rhythmdb_entry_set to
	rhythmdb_entry_set_nonotify.

	* rhythmdb/rhythmdb.h (enum RhythmDBProp)
	(rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.

	* widgets/rb-song-info.c: Kill off vestiges of auto rating.

	* widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
	* sources/rb-source.c (rb_source_update_play_statistics): 
	* sources/rb-iradio-source.c (rb_iradio_source_add_station): 
	* sources/rb-ipod-source.c (entry_set_string_prop) 
	(load_ipod_db_idle_cb): 
	* shell/rb-shell.c (rb_shell_set_rating_impl): 
	* shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
	(info_available_cb): 
	* iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
	(rb_station_properties_dialog_sync_entries): 
	* iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 

	Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
	and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
	
2005-08-29  Colin Walters  <walters@verbum.org>

	* sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.

	* shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
	linking insanity.

	* widgets/rb-header.c (sanitize_string): New function, extracted
	from old info_url.  Be sure to always strip the string.
	(info_url): Rewrite to take artist/album, and generate a sane
	URL for them from last.fm, which is better than allmusic.com in
	that they support Rhythmbox, and have a *SANE* URL scheme.
	(artist_info_url, album_info_url): Delete.
	(rb_header_sync): Use info_url.

2005-08-29  James Livingston  <jrl@ids.org.au>

	* sources/rb-source.c: (rb_source_search): Check to ensure that this
	is implemented before calling it. Many sources don't implement the
	method.

2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>

	* data/glade/create-playlist.glade:  Cleanup the layout,
	and add a few more mnemonics.
	* shell/rb-playlist-manager.c:
	(rb_playlist_manager_cmd_load_playlist),
	(rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
	capitalization for window titles.
	* widgets/rb-query-creator-properties.c: Add mnemonics
	to checkbutton labels.
	* widgets/rb-query-creator.c: (rb_query_creator_constructor),
	(limit_toggled_cb):  Toggle the sortLabel sensitivity.

2005-08-28  Colin Walters  <walters@verbum.org>

	* data/rhythmbox.schemas: Delete search_text for library
	and iradio; this isn't a persistent value anymore.
	Closes #313757.
	
	* sources/rb-source.h:
	* sources/rb-source.c: Delete impl_can_search.

	* sources/rb-iradio-source.c: Delete search_text usage.
	* sources/rb-library-source.c: Ditto.

	* shell/rb-source-header.c: Don't use GConf for search key.  Reset
	search when source is set, and just do rb_source_search in
	rb_source_header_search_cb.

	* shell/rb-shell.c (rb_shell_append_source): Don't
	initiate search.

	* shell/Makefile.am: Don't dist dashboard.c.

2005-08-28  Colin Walters  <walters@verbum.org>

	* shell/main.c: Remove include of dead file rb-remote-dbus.h.
	
2005-08-28  Colin Walters  <walters@verbum.org>

	* data/org.gnome.Rhythmbox.service.in: New.

	* data/Makefile.am: Install service file.

	* configure.ac: Define DBUS_SERVICES_DIR.

	* autogen.sh: Set ACLOCAL_FLAGS.

	* macros/acinclude.m4: New.
	
2005-08-28  Colin Walters  <walters@verbum.org>

	Initial patch from Jonathan Matthew; closes 313684.

	* rhythmdb/rhythmdb-tree.c:
	(RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
	(save_entry): Return on error.
	(rhythmdb_tree_save): Handle error when saving the
	db; additionally, handle errors from fclose and unlink,
	and print error too.

2005-08-28  Colin Walters  <walters@verbum.org>

	* sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
	extra _.
	
2005-08-28  Colin Walters  <walters@verbum.org>

	* configure.ac: Change iPod support to --with-ipod;
	  automatically enable it if we have HAL.  Try to
	  support both HAL 0.5 and HAL 0.2.  Break out
	  totem-plparser into its own check so later we
	  can do version tests there too.
	  Kill dashboard support.
	
	* sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
	to support HAL > 0.5, but preserve the old code for HAL < 0.5
	Closes #310017.
	
	* shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
	(INCLUDES): Add TOTEM_PLPARSER_CFLAGS.

	* sources/Makefile.am: Also handle
	TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.

	* shell/dashboard.c: Delete; someone should just write a little
	python shim which lists on the D-BUS interface and writes the
	stuff to Dashboard.  Even better Dashboard should be ported
	to D-BUS and do the listening itself, perhaps on an abstract
	"org.gnome.MusicPlayer" interface or something.

	* shell/rb-shell.c: Kill dashboard support.

2005-08-28  Colin Walters  <walters@verbum.org>

	* remote/dbus/rb-print-playing.py: New file.

2005-08-28  Colin Walters  <walters@verbum.org>

	* rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
	* rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.

	* shell/rb-shell-player.h:
	* shell/rb-shell-player.c: Add playing-uri-changed signal.
	* shell/rb-shell-player.xml: Export it.

	* shell/rb-shell.c (rb_shell_get_song_properties): New function.
	(rb_shell_error_quark): New.

	* shell/rb-shell.h: Prototype.  Also add RBShellError.
	* shell/rb-shell.xml: Export rb_shell_get_song_properties.
	
2005-08-28  Colin Walters  <walters@verbum.org>

	* remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
	(rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
	bonobo_unlock.
	(rb_remote_bonobo_preinit): Lock setting moved here.
	(rb_remote_bonobo_init): From here.

	* shell/main.c (main): Call rb_remote_bonobo_preinit very early.
	Also invoke handle_cmdline in the right place.
	(handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
	GFunc.

2005-08-28  James Livingston  <jrl@ids.org.au>

	* NEWS: keep the NEWS file up to date, so we don't have to do it all
	when 0.9.1 comes around.

2005-08-28  James Livingston  <jrl@ids.org.au>

	* iradio/rb-new-station-dialog.c:
	(rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
	bug 314477.

2005-08-28  James Livingston  <jrl@ids.org.au>

	Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>

	* widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
	* widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
	is a song is longer than 60 minutes. Closes bug 313311.

2005-08-27  James Livingston  <jrl@ids.org.au>

	* data/glade/create-playlist.glade:
	* widgets/rb-query-creator.c: (rb_query_creator_load_query),
	(rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
	"minutes" as an option in the playlist limit menu.

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_class_init),
	(rhythmdb_query_model_set_property),
	(rhythmdb_query_model_get_property),
	(rhythmdb_query_model_update_limited_entries): Allow query models to
	have a time limit
	
	* shell/rb-playlist-manager.c:
	(rb_playlist_manager_set_automatic_playlist),
	(rb_playlist_manager_cmd_edit_automatic_playlist):
	* sources/rb-playlist-source.c: (rb_playlist_source_set_query),
	(rb_playlist_source_get_query), (impl_receive_drag),
	(rb_playlist_source_new_from_xml),
	(rb_playlist_source_save_to_xml),
	(rb_playlist_source_songs_sort_order_changed_cb),
	(rb_playlist_source_do_query):
	* sources/rb-playlist-source.h:
	* widgets/rb-query-creator.h: Allow playlists to be limited by time

2005-08-27  James Livingston  <jrl@ids.org.au>

	Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.

	* configure.ac:
	* shell/Makefile.am: work correctly if dbus-binding-tool is in a
	non-standard location. Closes bug 314640.

2005-08-26  Colin Walters  <walters@verbum.org>
	
	Patch from Olivier Blin <oblin@mandriva.com>

	* widgets/eggnotificationbubble.c (draw_bubble): 
	Handle extreme-left case as well.
	
2005-08-26  Colin Walters  <walters@verbum.org>

	* shell/rb-shell.c (idle_save_state): Don't do this.
	(rb_shell_construct): Remove idle calls to idle_save_state.
	We should save the playlists automatically when they're
	modified.
	(rb_shell_load_uri): Don't try to re-stat entry if it already
	exists.

	* shell/rb-shell-player.c: Keep track of entry we are attempting
	to play.
	(rb_shell_player_set_playing_entry): Set playing_attempt_entry.
	Don't double-free error.
	(rb_shell_player_play_entry): Signal errors.
	(rb_shell_player_entry_activated_cb): Ditto.
	(rb_shell_player_property_row_activated_cb): Ditto.
	(rb_shell_player_set_playing_source_internal): Unset attempted
	playing entry.
	(rb_shell_player_error): Refactor to be usable both sync and
	async.  Handle case where displayed entry differs from entry.
	(error_cb): Move GDK locking here.

	* shell/main.c (main): Drop most commandline arguments for D-BUS;
	people can just use dbus-send or python.  We only support focusing
	and loading files.
	(load_uri_args): New function, extracted from handle_cmdline.
	(dbus_load_uri, bonobo_load_uri): New functions.

	* shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
	appropriate.

	* remote/Makefile.am: Don't compile dbus subdir, it's not used.
	* remote/dbus/rb-remote-dbus.c: Deleted.

	* player/rb-player-gst.c: Clear any pending idle handlers when we
	close the player.  Signal errors generated during open/play etc
	as synchronous errors.

	* configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
	
2005-08-26  Colin Walters  <walters@verbum.org>

	* shell/rb-shell.c (rb_shell_present): Try harder.

2005-08-26  Colin Walters  <walters@verbum.org>

	* shell/rb-shell.c (rb_shell_present): Try to handle
	GTK_MINOR_VERSION < 8.

2005-08-26  James Livingston  <jrl@ids.org.au>

	* shell/main.c: (main): compilation fixes. Patch from Peter Robinson
	<pbrobinson@gmail.com>

2005-08-26  Colin Walters  <walters@verbum.org>

	* remote/dbus/rb-remote-dbus.c: Various compilation fixes.

2005-08-25  Colin Walters  <walters@verbum.org>

	* shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
	Delete.
	(rb_shell_player_do_next_with_rating): Move back into
	rb_shell_player_do_next.
	(rb_shell_player_entry_activated_cb): Remove call to
	rb_shell_player_auto_adjust_rating.
	(do_next_idle): Just call rb_shell_player_do_next.

	* shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.

2005-08-25  Colin Walters  <walters@verbum.org>

	* shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
	before gtk_window_present_with_time.
	
2005-08-25  Colin Walters  <walters@verbum.org>

	* configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
	default.

	* shell/rb-shell.c (rb_shell_constructor): Adapted from
	rb_shell_construct.  This is so we only have to do g_object_new.
	(rb_shell_get_player): New function.
	(rb_shell_get_player_path): Ditto.
	(rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
	
	* shell/rb-shell.h: Prototype them.

	* shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
	export over D-BUS.
	(reemit_playing_signal): New function.
	(rb_shell_player_open_playlist_location): Use return values from
	rb_player_open, rb_player_close, etc. instead of checking "error".
	Return a gboolean on failure.
	(rb_shell_player_open_entry): Just open entry location, don't
	print to stderr.
	(rb_shell_player_play): Handle retval from rb_player_play.  Return
	a gboolean.
	(do_next_idle): Move logic for handling of end of playlist here.
	(rb_shell_player_set_playing_entry): Take a GError, return a
	gboolean.  Update to use gboolean return values.
	(rb_shell_player_do_previous): Delete lots of crazy duplicate
	logic.  Signal an error on end of playlist.  Also signal error if
	we're not playing.  Move heuristic for replaying the song into
	rb_shell_player_cmd_previous.
	(rb_shell_player_do_next_with_rating): Signal error on end of
	playlist.
	(rb_shell_player_do_next): Return errors.
	(rb_shell_player_cmd_previous): Heuristic for restarting song
	moved here; the idea is you generally only want that from the GUI.
	(rb_shell_player_cmd_play): Handle error.
	(rb_shell_player_playpause): Signal errors.
	(filter_mmkeys): Use rb_shell_player_cmd_previous and
	rb_shell_player_cmd_next in favor of the internal _do functions.
	
	* shell/rb-shell-player.h (enum RBShellPlayerError): Add some
	errors.  Update prototypes for above changes.

	* shell/main.c: More tightly integrate D-BUS; register various
	major singleton objects here.  Fix handle_cmdline so we only
	process extra arguments, not every argument.

	* shell/Makefile.am: Generate D-BUS glue headers.

	* remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
	into shell/main.c.  Now this file just acts as a client library.
	Not heavily tested.

	* remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
	Moved here.
	(rb_remote_bonobo_init): Move long CORBA rant here along with
	setting of lock functions.

	* player/rb-player-gst.c (rb_player_construct)
	(rb_player_play, rb_player_open, rb_player_close): Return gboolean
	on error.

	* player/rb-player.h: Update prototypes.

	* lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
	rb-remote-bonobo.c.
	(rb_threads_init): Don't set gdk lock functions here.

2005-08-25  James Livingston  <jrl@ids.org.au>

	Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>

	* lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
	* lib/rb-tree-dnd.h:
	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_class_init),
	(rhythmdb_property_model_drag_source_init),
	(rhythmdb_property_model_iter_parent),
	(rhythmdb_property_model_row_draggable),
	(rhythmdb_property_model_drag_data_delete), (query_model_cb),
	(rhythmdb_property_model_drag_data_get),
	(rhythmdb_property_model_enable_drag):
	* rhythmdb/rhythmdb-property-model.h:
	* shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
	(rb_playlist_manager_set_property), (append_new_playlist_source),
	(rb_playlist_manager_save_playlists):
	* shell/rb-shell.c: (rb_shell_construct),
	(sourcelist_drag_received_cb):
	* sources/rb-iradio-source.c: (rb_iradio_source_class_init):
	* sources/rb-playlist-source.c: (impl_receive_drag):
	* sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
	(rb_sourcelist_model_drag_dest_init),
	(rb_sourcelist_model_set_dnd_targets),
	(rb_sourcelist_model_drag_data_received), (path_is_reorderable),
	(rb_sourcelist_model_row_drop_position),
	(rb_sourcelist_model_get_drag_target),
	(rb_sourcelist_model_drag_data_get):
	* sources/rb-sourcelist-model.h:
	* sources/rb-sourcelist.c: (rb_sourcelist_class_init),
	(rb_sourcelist_init), (rb_sourcelist_get_property),
	(rb_sourcelist_selection_changed_cb):
	* sources/rb-sourcelist.h:
	* widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
	improve drag-n-drop support. Allow dragging of item from property
	views to the source list, to create new automatic playlists. Allow
	playlist re-ordering. Fix dragging from Rhythmbox to other
	applications. (Closes bug 147337)

2005-08-24  Colin Walters  <walters@verbum.org>

	Patch from Olivier Blin <oblin@mandriva.com>

	* widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
	correctly in the case where the window is next to monitor edge.

2005-08-24  James Livingston  <jrl@ids.org.au>

	* sources/rb-playlist-source.c: (rb_playlist_source_class_init),
	(rb_playlist_source_get_property), (rb_playlist_source_do_query): add
	a gobject property to get the query model that backs the playlist.

2005-08-24  James Livingston  <jrl@ids.org.au>

	* shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
	(handle_playlist_entry_into_playlist_cb),
	(rb_playlist_manager_playlist_entries_changed): Disable the "create
	audio cd" menu item when a non-playlist source is selected, or the
	playlist is empty. (Closes Bug 313253)

2005-08-24  James Livingston  <jrl@ids.org.au>

	* sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
	Fix the playlist length checkso it doesn't report 0 for automatic
	playlists. This was stopping automati playlists being burnt to cd.

2005-08-24  James Livingston  <jrl@ids.org.au>

	* configure.ac:
	* sources/rb-playlist-source-recorder.c: (burn_cd):
	* sources/rb-playlist-source.c:
	(rb_playlist_source_songs_sort_order_changed_cb):
	* widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
	more warnings that occur when compiling RPMs on Fedora.

2005-08-24  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
	was stopping some distros gcc version compiling.

2005-08-24  James Livingston  <jrl@ids.org.au>

	* NEWS:
	* data/glade/create-playlist.glade:
	* 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:
	* shell/rb-playlist-manager.c:
	(rb_playlist_manager_set_automatic_playlist),
	(rb_playlist_manager_cmd_edit_automatic_playlist):
	* sources/rb-playlist-source.c: (rb_playlist_source_constructor),
	(rb_playlist_source_set_query), (rb_playlist_source_get_query),
	(impl_receive_drag), (rb_playlist_source_new_from_xml),
	(rb_playlist_source_save_to_xml),
	(rb_playlist_source_songs_sort_order_changed_cb),
	(rb_playlist_source_do_query):
	* sources/rb-playlist-source.h:
	* widgets/Makefile.am:
	* widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
	(rb_entry_view_set_sorting_order):
	* widgets/rb-query-creator-private.h:
	* widgets/rb-query-creator-properties.c:
	(stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
	(stringCriteriaGetWidgetData),
	(escapedStringCriteriaSetWidgetData),
	(escapedStringCriteriaGetWidgetData), (set_rating_score),
	(ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
	(ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
	(integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
	(durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
	(durationCriteriaGetWidgetData), (create_time_unit_option_menu),
	(relativeTimeCriteriaCreateWidget),
	(relativeTimeCriteriaSetWidgetData),
	(relativeTimeCriteriaGetWidgetData):
	* widgets/rb-query-creator.c: (rb_query_creator_get_type),
	(rb_query_creator_class_init), (rb_query_creator_constructor),
	(rb_query_creator_dispose), (rb_query_creator_set_property),
	(rb_query_creator_get_property), (rb_query_creator_load_query),
	(rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
	(get_entry_for_property), (rb_query_creator_get_query),
	(rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
	(limit_toggled_cb), (lookup_row_by_widget),
	(remove_button_click_cb), (append_row),
	(get_property_index_from_proptype), (select_criteria_from_value),
	(property_option_menu_changed), (create_property_option_menu),
	(create_criteria_option_menu), (sort_option_menu_changed),
	(setup_sort_option_menu):
	* widgets/rb-query-creator.h: A fairly huge patch to improve automatic
	playlists. The two most notable improvements are 1) adding more
	properties to the query creator, making it much easier to add more in
	the future, and 2) allow playlists to be sorted, from the query editor
	if they gave limits, and by clicking on column headers if they don't.

	Files added: widgets/rb-query-creator-private.h,
	sources/rb-query-creator-properties.c

2005-08-21  James Livingston  <jrl@ids.org.au>

	* player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
	error=NULL. This stops some crashes.

2005-08-19  Colin Walters  <walters@verbum.org>

	Patch from Olivier Blin <oblin@mandriva.com>

	* widgets/eggnotificationbubble.c (force_window): Support top
	orientation.
	* widgets/eggnotificationbubble.h: Remove
	egg_notification_bubble_force_window from header.
	
2005-08-18  James Livingston  <jrl@ids.org.au>

	* NEWS: Give a bit of detail on the major changes in 0.9.0, and update
	with the changes since then.

2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* shell/rb-shell-player.c: (rb_shell_player_init),
	(rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
	(rb_shell_player_volume_widget_changed_cb):
	* sources/rb-iradio-source.c:
	* sources/rb-library-source.c:
	* sources/rb-playlist-source.c:
	* widgets/Makefile.am:
	* widgets/bacon-volume.c: (bacon_volume_button_get_type),
	(bacon_volume_button_class_init), (bacon_volume_button_init),
	(bacon_volume_button_dispose), (bacon_volume_button_new),
	(bacon_volume_button_get_value), (bacon_volume_button_set_value),
	(bacon_volume_button_scroll), (bacon_volume_button_press),
	(cb_button_timeout), (cb_button_press), (cb_button_release),
	(bacon_volume_release_grab), (cb_dock_press),
	(bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
	(bacon_volume_scale_new), (bacon_volume_scale_press),
	(bacon_volume_scale_release), (bacon_volume_scale_value_changed):
	* widgets/bacon-volume.h:
	* widgets/rb-volume.c:
	* widgets/rb-volume.h:
	  Use BaconVolumeButton (#300867).

2005-08-17  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.c: (set_props_from_metadata),
	(rhythmdb_process_metadata_load): don't reset the First Seen time
	whenever we recheck the metadata.

2005-08-17  James Livingston  <jrl@ids.org.au>

	* sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
	temporary workaround to stop crashes when trying to burn an empty
	playlist. Doesn't disable the menu item which is the better solution
	(Bug 313253).

2005-08-15  James Livingston  <jrl@ids.org.au>

	* shell/rb-source-header.c: (rb_source_header_init),
	(rb_source_header_sync_control_state),
	(rb_source_header_search_activate_cb):
	* widgets/rb-entry-view.c: (rb_entry_view_class_init),
	(rb_entry_view_poll_model), (rb_entry_view_grab_focus):
	* widgets/rb-search-entry.c: (rb_search_entry_class_init),
	(rb_search_entry_init), (rb_search_entry_searching),
	(rb_search_entry_activate_cb):
	* widgets/rb-search-entry.h: Move focus to the entry view when user
	presses enter in the search box. Patch from Paolo Borelli
	<pborelli@katamail.com> (Closes bug 128110)

2005-08-15  James Livingston  <jrl@ids.org.au>

	* shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
	(rb_playlist_manager_new_playlist):
	* shell/rb-playlist-manager.h:
	* shell/rb-shell.c: (rb_shell_construct),
	(rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
	the source list to be shown when a new playlist is created. (Closes
	bug 161935)

2005-08-15  James Livingston  <jrl@ids.org.au>

	* widgets/rb-header.c: (rb_header_init),
	(rb_header_set_show_timeline): disable the seek slider, rather than
	hiding it, which more closely follows the HIG. (Closes bug 139102)

2005-08-13  Colin Walters  <walters@verbum.org>

	* shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
	rb_shell_hidden_notify.
	(rb_shell_hidden_notify): Notify if the shell is hidden.
	(rb_shell_set_visibility_impl): Debug goo.

	* shell/rb-shell.h: Export rb_shell_hidden_notify.

	* shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
	when the user clicks on notification.

	* sources/rb-playlist-source-recorder.c (burn_cd): Notify when
	CD burn is complete.
	(rb_playlist_source_recorder_finalize): Unref shell.
	(rb_playlist_source_recorder_new): Take shell.

	* sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
	Pass shell to RBPlaylistSourceRecorder.
	
2005-08-13  Colin Walters  <walters@verbum.org>

	* lib/rb-thread.c:
	* lib/rb-thread.h: Not used yet, but put in CVS in case we get
          time to convert.

2005-08-13  Colin Walters  <walters@verbum.org>

	* widgets/eggnotificationbubble.h:
	* widgets/eggnotificationbubble.c: New files, will likely go in libegg.
	* widgets/eggtrayicon.c:
	* widgets/eggtrayicon.h: Add notification API.
	* shell/rb-tray-icon.c:
	* shell/rb-tray-icon.h: Add notification API.
	* shell/rb-shell.c: Notify on song change.

2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>

	* sources/rb-ipod-source.c: (rb_ipod_unplugged):
	Correct an inversion of two lines causing NULL to be unreffed

============ Version 0.9.0

2005-08-10  Bastien Nocera  <hadess@hadess.net>

	* configure.ac: 0.9.0, whee!
	* NEWS: badly updated
	* remote/bonobo/Makefile.am:
	* remote/bonobo/rb-remote-bonobo.h:
	* shell/Makefile.am:
	* shell/main.c: make distcheck fixes
