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