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

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

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

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

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

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

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

	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_row_inserted_cb),
	(rhythmdb_property_model_prop_changed_cb),
	(rhythmdb_property_model_entry_removed_cb): handle hidden entries
	correctly. Fixes bug 327061.

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

	* INSTALL.quick: More random updates

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

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

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

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

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

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

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

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

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

	* NEWS: update NEWS

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

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

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

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

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

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

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

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

	* shell/rb-play-order-random-by-age-and-rating.c:
	(rb_random_by_age_and_rating_get_entry_weight):
	* shell/rb-play-order-random-by-rating.c:
	(rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
	2.5 for the purposes of weighting entries.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Fixes bug 326811.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	patch by: Jonathan Matthew

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_set_property):
	* rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
	* rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
	(rhythmdb_query_free), (rhythmdb_query_serialize),
	(rhythmdb_query_deserialize), (rhythmdb_query_internal),
	(rhythmdb_query_get_type), (rhythmdb_query_preprocess):
	* rhythmdb/rhythmdb.h: Support special
	RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
	year in date.

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

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

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

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

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

	* configure.ac: Fix check for libnotify.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Fixes #323894.

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

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

	* sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
	year from the ipod database.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Fixes #324075.

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

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

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

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

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

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

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

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

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

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

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

	May fix #323742

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

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

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

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

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

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

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

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

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

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

	* NEWS: update NEWS

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

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

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

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

	Fixes #322961.

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

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

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

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

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

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

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

	Play queue implementation. Closes bug 107787.

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

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

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

	* po/POTFILES.in: Add new file

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* data/rhythmbox.schemas: fix the gconf schema

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

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

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

	Remove more junk from RBEntryView. Closes bug 323640.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Fixes #323663

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

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

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

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

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

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

	Fixes #323306.

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

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

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

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

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

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

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

	Fixes #322940.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        * sources/Makefile.am: add new files

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

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

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

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

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

	* po/POTFILES.in: add new files

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* data/rhythmbox.schemas: fix the gconf schema

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* data/glade/podcast-properties.glade:
	* podcast/rb-podcast-properties-dialog.c:
	(rb_podcast_properties_dialog_init),
	(rb_podcast_properties_dialog_update),
	(rb_podcast_properties_dialog_update_title),
	(rb_podcast_properties_dialog_update_feed),
	(rb_podcast_properties_dialog_update_duration),
	(rb_podcast_properties_dialog_update_bitrate): Make the podcast
	info dialog look more like the song info dialog. Use the same "Feed"
	value that is displayed in the treeview (ie. the album field), displays
	the duration, uses units in the bitrate field, and sort the fields in
	the same order.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* configure.ac: fix libsoup test for enabling daap

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	(rb_daap_connection_destroy): fix memory leak

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Closes bug 321702.

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

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

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

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

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

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

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

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

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

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

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

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

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

	Use G_DEFINE_TYPE.

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

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

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

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

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

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

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

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

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

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

	* NEWS: update NEWS

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	(handle_song_listing): fix leak

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	(rb_podcast_source_cmd_update_all):
	 Unref the property model as required.

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

	(rb_entry_view_poll_model):
	 No need for this any more.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* data/ui/rhythmbox-ui.xml: add to source context menu.

	* sources/rb-podcast-source.c: (rb_podcast_source_constructor),
	(register_action_group), (rb_podcast_source_cmd_download_post),
	(rb_podcast_source_cmd_delete_feed),
	(rb_podcast_source_cmd_properties_feed),
	(rb_podcast_source_cmd_update_feed): pass the source to the actions,
	rather than the shell.

	(rb_podcast_source_update_feed_func),
	(rb_podcast_source_cmd_update_all): update every feed.

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

	* shell/rb-shell-player.c: (rb_shell_player_class_init),
	(rb_shell_player_constructor), (rb_shell_player_finalize):
	* shell/rb-shell.c: fix some conflicting keybindings, and mak some
	others follow the HIG recommentations.

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

	* podcast/rb-podcast-manager.c:
	(rb_podcast_manager_subscribe_feed): check that the url is valid,
	before trying to use it.

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

	* widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
	(rb_entry_view_append_column): When sorting by year, sort by album
	within a particular year.

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

	* NEWS: updates

2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
	* daapsharing/rb-daap-connection.c: (build_message): Fixed the
	spelling of "Language."

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

	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_row_inserted_cb),
	(rhythmdb_property_model_prop_changed_cb),
	(rhythmdb_property_model_entry_removed_cb),
	(rhythmdb_property_model_insert_prop),
	(rhythmdb_property_model_sync): display the count after the "All"
	entry of a property model.

	* widgets/rb-property-view.c: (rb_property_view_class_init),
	(rb_property_view_finalize), (rb_property_view_constructor): use
	G_DEFINE_TYPE

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

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_remove_entry):
	* rhythmdb/rhythmdb-query-model.h: make
	rhythmdb_query_model_remove_entry return whether the entry was in the
	model.

	* sources/rb-playlist-source.c: (rb_playlist_source_add_location):
	don't add non-SONG entries, as it doesn't really work and can cause
	crashes.

	(rb_playlist_source_remove_location): assert if the playlist and model
	differ on whether the entry is in the playlist

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

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
	(rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
	(rb_podcast_manager_thread_parse_feed),
	(rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
	(rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
	emulating one with a list and mutex. Fixes a couple of threading
	issues.
	
	(rb_podcast_manager_insert_feed): fix some problems with ignoring
	updated feeds.
	
	(rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
	(rb_podcast_manager_copy_post),	(end_job), (cancel_job),
	(download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
	* podcast/rb-podcast-parse.c: (rb_insert_item),
	(rb_podcast_parse_channel_free):
	* podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
	fix some typos, and make a bit of code clearer.

2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>

	Make the "delete podcast" dialog better. Closes bug 320899.

	* shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
	Add PROP_WINDOW for rb_shell_get_property so we can access the
	GtkWindow widget of the main window. 
	* sources/rb-podcast-source.c: (impl_delete):  Set parent window &
	fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
	podcast feed delete dialog less confusing as well.

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

	* shell/rb-removable-media-manager.c:
	(rb_removable_media_manager_mount_volume),
	(rb_removable_media_manager_scan): Fix a crasher where we were getting
	NULL for a cd volume.

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

	* rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
	method return a gboolean indicating whether the changes
	to the entry have already been applied.

	* rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
	only modify the entry if impl_entry_set returns FALSE.

	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
	When setting the location of an entry, update the
	hash table mapping locations to entries.

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

	* data/glade/Makefile.am:
	* iradio/Makefile.am:
	  Remove 'new station' dialog.

	* iradio/rb-station-properties-dialog.h:
	* sources/rb-iradio-source.c: (impl_song_properties):
	* shell/rb-shell.c: (rb_shell_cmd_new_station):
	 Add 'new station' mode parameter to
	 rb_station_properties_dialog_new.

	* (rb_station_properties_dialog_response_cb),
	(rb_station_properties_dialog_create_station):
	 When in 'new station' mode, create the station
	 when OK button is pressed.

	* iradio/rb-station-properties-dialog.c:
	(rb_station_properties_dialog_location_changed_cb):
	 Only enable OK button if a location is specified
	(rb_station_properties_dialog_init),
	(rb_station_properties_dialog_new),
	(rb_station_properties_dialog_update),
	(rb_station_properties_dialog_update_title),
	(rb_station_properties_dialog_rated_cb),
	(rb_station_properties_dialog_update_play_count),
	(rb_station_properties_dialog_update_bitrate),
	(rb_station_properties_dialog_update_last_played),
	(rb_station_properties_dialog_update_rating),
	(rb_station_properties_dialog_update_playback_error),
	(rb_station_properties_dialog_show):
	 Handle 'new station' mode, where there's no current
	 station to edit.

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

	* sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
	keybinding for track columns consistent between library and playlist
	sources.

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

	* data/ui/rhythmbox-ui.xml:
	* shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
	"Edit" item to playlist menu. Closes bug 311470.

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

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

	* widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
	confirmation to save dialogs, with gtk 2.8 or higher.

2005-11-07 James Livingston  <jrl@ids.org.au>
	* configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
	requirement to a general on, because people are going to have it for
	the other dependencies.

2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>

	* sources/rb-podcast-source.c: (impl_delete): Make the podcast
	delete dialog less confusing.  Use HIG recommended button order.
	Closes bug 320840.

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

	* sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
	drag-and-drop error.
	
	* sources/rb-library-source.c: (rb_library_source_constructor): only
	add drag-and-drop for the Library itself, subclasses can add support
	themselves if they want it.

	* sources/rb-removable-media-source.c:
	(rb_removable_media_source_class_init): by default removable media
	sources do not support dnd

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

	* data/glade/station-properties.glade:
	 Add box containing error icon and error message label
	* iradio/rb-station-properties-dialog.c:
	(rb_station_properties_dialog_class_init),
	(rb_station_properties_dialog_finalize):
	 Change this class to use G_DEFINE_TYPE
	(rb_station_properties_dialog_init),
	(rb_station_properties_dialog_update),
	(rb_station_properties_dialog_update_playback_error):
	 Display error icon and message when there is one, and hide the error
	 box otherwise.
	(rb_station_properties_dialog_show): Hack widget show
	 method to update the visibility of the error info box when showing
	 the widget.  Otherwise the icon is displayed all the time (same thing
	 is done in rb-song-info). Closes bug 320749.

2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>

	* podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
	parsing of the duration of podcast episodes from the feed. Closes bug
	320748.

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

	patch by Christophe Fergeau <teuf@gnome.org> to add support for the
	release date metadata ("Year"). Closes bug 166093.

	* metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
	* metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
	(rb_metadata_gst_add_tag_data):
	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
	(save_entry):
	* rhythmdb/rhythmdb.c: (metadata_field_from_prop),
	(extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
	(set_props_from_metadata), (rhythmdb_entry_set_internal),
	(rhythmdb_prop_get_type):
	* rhythmdb/rhythmdb.h: add support for "date" property
	
	* data/glade/general-prefs.glade:
	* shell/rb-shell-preferences.c: (rb_shell_preferences_init):
	* widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
	(rb_entry_view_append_column):
	* widgets/rb-entry-view.h:
	* sources/rb-library-source.c: (rb_library_source_constructor):
	* sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
	"Year" colums

	* data/glade/song-info.glade:
	* widgets/rb-song-info.c: (rb_song_info_boldify_label),
	(rb_song_info_construct_single), (rb_song_info_constructor),
	(rb_song_info_populate_dialog), (rb_song_info_update_year),
	(rb_song_info_sync_entry_single): Add "Year" to song info window

	* widgets/rb-query-creator-properties.c: Allow auto playlists to be
	sorted by year.

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

	* data/glade/podcast-properties.glade: Add a scrollbar to the podcast
	description if it's very long.

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

	pathc by: Artem Baguinski <femistofel@gmail.com>

	* help/C/Makefile.am:
	* help/ja/Makefile.am: allow Anjuta to import the RB source tree.
	Closes bug 320613.

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

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

	* daapsharing/rb-daap-share.c: (write_next_chunk),
	(message_finished), (databases_cb): Use chunked file loading and
	sending in the DAAP server. This should reduce the amount of memory
	required to send files to the client.

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

	* configure.ac: make the nautilus_burn_drive_door_is_open detection
	work better on some systems. Closes 320622.

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

	* data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
	homepage, so that users can find out what AudioScrobbler is. Add
	access keys.

	* data/glade/daap-prefs.glade:
	* data/glade/general-prefs.glade:
	* data/glade/library-prefs.glade: make the indent be more consistent

	* data/glade/podcast-prefs.glade: 
	* sources/rb-podcast-source.c: (rb_podcast_source_constructor),
	(impl_get_config_widget): move thing out of code into glade, where
	they belong

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

	* shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
	related to WITH_CD_BURNER_SUPPORT that I missed in the other commit

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

	* configure.ac: don't print DAAP configure info twice

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

	* shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
	* sources/rb-playlist-source.c: (burn_playlist_iter_func),
	(rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
	#ifdefs, since we removed the symbol. Oops

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

	* sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
	after the connect line, not before. Oops.

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

	* sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
	fix some warnings

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

	* NEWS: update the news file

	* data/glade/general-prefs.glade: make the prefs refer to "time" not
	"duration" column.

	* data/ui/rhythmbox-ui.xml:
	* shell/rb-playlist-manager.c:
	* sources/rb-podcast-source.c: (rb_podcast_source_constructor),
	(rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
	and "delete" for feeds.

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

	* sources/rb-podcast-source.c: (impl_delete),
	(rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
	feed. Closes 319760.

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

	Don't start playing from the remote site when a un-downloaded podcast
	is activated. Closes 319983.
	

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
	(write_job_data), (download_progress_cb): write the local location as
	soon as any data is recieved

	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
	the mountpoint to NULL for podcast episodes that haven't yet been
	downloaded.
	
	* shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
	start playing a podcast if it hasn't been downloaded.
	
	* sources/rb-podcast-source.c: (rb_podcast_source_constructor),
	(rb_podcast_source_entry_activated_cb): begin downloading when the
	podcast is activated.

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

	* data/glade/general-prefs.glade:  Fix capitalization.
	* shell/rb-removable-media-manager.c:  Add a mnemonic.
	* sources/rb-podcast-source.c:
	(rb_podcast_source_songs_show_popup_cb),
	(rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.

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

	patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>

	* shell/rb-removable-media-manager.c:
	(rb_removable_media_manager_mount_volume): don't check network or
	autofs mounts, as they're not going to be removable media. Stops
	sending lots of warnings to syslog. Closes 320571.

	* sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
	DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
	320570.

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

	Add support for playing audio CDs. Metadata lookup is done using
	SoundJuicer's MusicBrainz lookup code, which can be switched to using
	the library when it gets broken out of S-J.
	
	Add a "rescan media" menu item, and commands for ejecting removable
	media.

	Move nautilus-cd-burner from optional to required depenency.

	* configure.ac:
	* data/ui/rhythmbox-ui.xml:
	* metadata/Makefile.am:
	+ metadata/sj-error.c:
	+ metadata/sj-error.h:
	+ metadata/sj-metadata-marshal.list:
	+ metadata/sj-metadata-musicbrainz.c:
	+ metadata/sj-metadata-musicbrainz.h:
	+ metadata/sj-metadata.c:
	+ metadata/sj-metadata.h:
	+ metadata/sj-structures.c:
	+ metadata/sj-structures.h:
	* player/Makefile.am:
	* player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
	* po/POTFILES.in:
	* shell/Makefile.am:
	* shell/rb-removable-media-manager.c:
	(rb_removable_media_manager_dispose), (poll_tray_opened),
	(end_cd_drive_monitor), (begin_cd_drive_monitor),
	(rb_removable_media_manager_load_media),
	(rb_removable_media_manager_mount_volume),
	(rb_removable_media_manager_cmd_eject_medium),
	(rb_removable_media_manager_cmd_scan_media),
	(rb_removable_media_manager_check_volume),
	(rb_removable_media_manager_unmount_volume_swap),
	(rb_removable_media_manager_scan):
	* sources/Makefile.am:
	+ sources/rb-audiocd-source.c:
	+ sources/rb-audiocd-source.h:
	* tests/Makefile.am:

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

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

	* sources/rb-iradio-source.c:
	(stations_view_drag_data_received_cb):
	* sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
	don't crash when the second uri is missing frm the drop, which
	browsers sometimes do.

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

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
	(rb_podcast_manager_insert_feed):
	* podcast/rb-podcast-manager.h:
	* podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
	(rb_set_item_value), (rb_validate_item_propert),
	(rb_podcast_parse_date), (rb_podcast_parse_time):
	* podcast/rb-podcast-parse.h: get the duration of podcast episodes
	from the feed.

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

	* ChangeLog:
	* ChangeLog0.8: break off the older Changelog entries, so it isn't so
	huge

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

	* sources/rb-podcast-source.c:
	(rb_podcast_source_post_date_cell_data_func): generate the date string
	in a way that is correct in all locales.
	
	* rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
	(rhythmdb_entry_sync_mirrored): make the last played/date added
	columns use the same format.

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


	* podcast/rb-podcast-manager.c:
	(rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
	
	* shell/rb-shell-player.c: (rb_shell_player_open_location): report
	iradio errors better.

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

	patch by: Artem Baguinski <femistofel@gmail.com>

	* metadata/rb-metadata-gst.c: (rb_metadata_init):

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

	* podcast/rb-podcast-manager.c:
	(rb_podcast_manager_subscribe_feed),
	(rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
	already been added, usually as a radio station. Closes 319434.

2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>

	* data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
	mnemonics & resize issues)
	* data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
	& mnemonics)
	* sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
	widget for the "download location" label.

	Closes bug 320184.

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

	Allow the search box to match words from multiple properties. Closes
	bug 139196. Thanks to the person from IRC who did a lot of the initial
	work.


	* lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
	* lib/rb-util.h: Add functions to split a string into words, and one
	to perform "search folding" which is currently like casefolding but
	also strips punctuation
	
	* rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
	(rhythmdb_query_preprocess):
	* rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
	against title, artist, album and genre (for the search box)
	
	* rhythmdb/rb-refstring.c: (rb_refstring_new_full):
	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
	(save_entry), (search_match_properties),
	(evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
	splitting into words and matching across multiple properties.
	
	* sources/rb-library-source.c: (construct_query_from_selection): use
	the new SEARCH_MATCH property for the search box
	
	* widgets/rb-entry-view.c: (type_ahead_search_func):

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

	* lib/rb-stock-icons.c: (rb_stock_icons_init):
	* lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
	
	* shell/rb-playlist-manager.c:
	* shell/rb-shell.c: use the above stock ids, so that the icons get set
	correctly.
	
	* shell/rb-shell-player.c: (rb_shell_player_constructor): set the
	initial state of the shuffle/repeat menu items correctly. Patch from
	Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.

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

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
	double-free.
	
	* widgets/rb-cell-renderer-pixbuf.c:
	(rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
	icon go black when row is not selected
	
	* doc/reference/tmpl/rb-daap-connection.sgml:
	* doc/reference/tmpl/rhythmdb.sgml: doc updates

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

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
	silly mistake, where it could think partial downloads has been
	completed.

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

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

	* data/glade/song-info.glade:
	* widgets/rb-song-info.c: (rb_song_info_construct_single),
	(rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
	(rb_song_info_sync_entry_single): show the disc number in the song
	info window. From bug 311199.

2005-10-29  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.c: (rhythmdb_process_events),
	(rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
	regularly. Closes 155306.

2005-10-29  James Livingston  <jrl@ids.org.au>

	* podcast/rb-podcast-manager.c:
	(rb_podcast_manager_download_entry),
	(rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
	(rb_podcast_manager_insert_feed):
	* podcast/rb-podcast-manager.h:
	* podcast/rb-podcast-parse.c: (rb_set_item_value),
	(rb_podcast_parser_start_element):
	* podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
	don't download them again. However, it can't resume
	partially-downloaded ones.

2005-10-28  James Livingston  <jrl@ids.org.au>

	* metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
	(rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
	work. Don't attempt to write duration as a tag.

	Thanks to Artem Baguinski <femistofel@gmail.com>

2005-10-28  James Livingston  <jrl@ids.org.au>

	* shell/rb-source-header.c: (rb_source_header_sync_control_state):
	don't disable the status-bar menu item when the current source doesn't
	use the search box.

2005-10-28  James Livingston  <jrl@ids.org.au>

	* podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
	crash if the file has unknown length

2005-10-27  James Livingston  <jrl@ids.org.au>

	* daapsharing/rb-daap-connection.c:
	(rb_daap_connection_state_done): don't assert when a daap server
	doesn't have any playlists

2005-10-27  James Livingston  <jrl@ids.org.au>

	* sources/rb-sourcelist-model.c:
	(rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
	source for the sourcelist. Closes bug 319817.

2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>

	Patch by: Renato Araujo <renatox@gmail.com>

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
          Fix for a crasher caused by previous patch.

2005-10-26  James Livingston  <jrl@ids.org.au>

	* data/glade/podcast-prefs.glade:
	* podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
	* podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
	* sources/rb-podcast-source.c: (rb_podcast_source_new):
	* podcast/rb-podcast-manager.c:
	(rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
	(rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
	* shell/rb-shell.c: Change some strings to make them more consistent.
	"Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
	makes it clearer which is which. "Episode" may not be the best term,
	but it seems to be widely used.
	
	Also fix some strings that weren't marked as translatable.
	
	* podcast/rb-feed-podcast-properties-dialog.c:
	(rb_feed_podcast_properties_dialog_class_init),
	(rb_feed_podcast_properties_dialog_finalize):
	* podcast/rb-new-podcast-dialog.c:
	(rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
	* widgets/rb-simple-view.c: (rb_simple_view_class_init),
	(rb_simple_view_finalize), (rb_simple_view_constructor):
	* podcast/rb-podcast-properties-dialog.c:
	(rb_podcast_properties_dialog_class_init),
	(rb_podcast_properties_dialog_finalize):
	* podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
	(rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
	* sources/rb-podcast-source.c: (rb_podcast_source_class_init),
	(rb_podcast_source_finalize), (rb_podcast_source_constructor):
	use G_DEFINE_TYPE, instead of doing it manually.

2005-10-26  James Livingston  <jrl@ids.org.au>

	Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
	<jrl@ids.org.au>

	* metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
	(rb_metadata_init): Check that the necessary plugins are present to do
	id3 editing.
	(rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
	corrupted before replacing the original.

2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>

	reviewed by: James Livingston <jrl@ids.org.au>

	Assign sequential IDs to playlists for DAAP rather than using the
	address of the playlist object.  Less flaky, and should work on 64bit
	platforms. Closes bug 319304.

	* daapsharing/rb-daap-share.c: 
	(rb_daap_share_set_property): watch for playlist creation
	(_find_by_id), (_find_by_source): playlist list search functions
	(rb_daap_share_playlist_created),
	(rb_daap_share_process_playlist),
	(rb_daap_share_playlist_destroyed):
	 update playlist list as it changes, use weak refs on 
	 playlists to get notified on destroy.
	(rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
	 destroy playlist list on shutdown
	(add_playlist_to_mlcl): use playlist ID rather than pointer in
	 DAAP response
	(databases_cb): search for playlist ID in list rather than just
	 converting it to a pointer; return HTTP 404 if playlist not 
	 found.
	(rb_daap_share_start_publish): playlist IDs start at 2, since 1
	 is already used for the main library

2005-10-26  James Livingston  <jrl@ids.org.au>

	patch by: Jonathan Matthew <jonathan@kaolin.hn.org>

	* daapsharing/rb-daap-connection.c: (build_message),
	(http_response_handler), (http_get), (handle_server_info),
	(handle_login), (handle_update), (handle_database_info),
	(handle_song_listing), (handle_playlists),
	(handle_playlist_entries), (handle_logout),
	(rb_daap_connection_new), (rb_daap_connection_logout),
	(rb_daap_connection_state_done), (rb_daap_connection_do_something),
	(rb_daap_connection_get_headers), (rb_daap_connection_destroy):
	* daapsharing/rb-daap-connection.h:
	* sources/rb-daap-source.c: (rb_daap_source_activate),
	(rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
	(rb_daap_source_disconnect): Make connecting to DAAP sources
	asynchronous, so that non-responsive servers don't hang the UI. Closes
	316225.

2005-10-26  James Livingston  <jrl@ids.org.au>

	patch by: Jonathan Matthew <jonathan@kaolin.hn.org>

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_do_reorder): generate the row re-order map
	correctly.
	
	* widgets/rb-entry-view.c: (rb_entry_view_set_property),
	(rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
	Update selection when rows get re-ordered. Closes 319718.

2005-10-26  James Livingston  <jrl@ids.org.au>

	patch from Jonathan Matthew <jonathan@kaolin.hn.org> 

	* shell/rb-play-order.c: (rb_play_order_playing_source_changed):
	actually set the db pointer in play orders. Closes 319818.

2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>

	Patch by: Renato Araujo <renatox@gmail.com>

	* podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
	(rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
	(rb_podcast_manager_update_synctime),
	(rb_podcast_manager_config_changed),
	(rb_podcast_manager_insert_feed):
	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
	(save_entry):
	* rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
	(rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
	* rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.

2005-10-25  James Livingston  <jrl@ids.org.au>

	* daapsharing/rb-daap-share.c: (db_entry_added_cb),
	(db_entry_deleted_cb): don't share tracks that are hidden because the
	file is missing.

2005-10-22  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
	crash if an entry couldn't be playerd, without streamer setting an
	error.

	
	Patch from Jonathan Matthew <jonathan@kaolin.hn.org>

	* podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
	(rb_new_podcast_dialog_text_changed): enable the add button when a url
	is pasted into the dialog.
	
	* podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
	* podcast/rb-podcast-parse.c: (rb_set_channel_value),
	(rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
	(rb_podcast_parse_channel_free):
	* podcast/rb-podcast-parse.h: handle per-entry author names in podcast
	feeds

2005-10-22  James Livingston  <jrl@ids.org.au>

	* sources/rb-iradio-source.c:
	(rb_iradio_source_first_time_changed): Make merging the default
	stations actually work.
	
	* sources/rb-podcast-source.c:
	(rb_podcast_source_post_status_cell_data_func): fix problem where some
	people weren't seing the percentages in the stats column.

2005-10-21  James Livingston  <jrl@ids.org.au>

	Patch from Caio Marcelo <cmarcelo@gmail.com>

	* shell/rb-shell.c: (rb_shell_window_state_cb),
	(rb_shell_get_visibility), (idle_hide_mainwindow),
	(rb_shell_set_visibility): Make the "show window" item in the tray
	icon menu show the toggle state correctly. Use a better policy on
	deciding whether the window is "visible" or not. Closes bug 308053.

2005-10-21  James Livingston  <jrl@ids.org.au>

	* doc/reference/tmpl/rb-shell-preferences.sgml:
	* shell/Makefile.am: fix building with gtk-doc

	* shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
	don't submit podcasts to audioscrobbler
	
	
	Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
	
	* podcast/rb-podcast-parse.c: (rb_set_channel_value),
	(rb_set_item_value): strip spaces surrounding podcast urls
	

	Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
	
	* rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction

2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>

	Patch from Ruben Vermeersch <ruben@lambda1.be> to add
         Audioscrobbler/Last.fm support

	* configure.ac:
	* data/glade/Makefile.am:
	* data/glade/audioscrobbler-prefs.glade:
	* data/rhythmbox.schemas:
	* lib/Makefile.am:
	* lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
	* lib/md5.h:
	* lib/rb-preferences.h:
	* po/POTFILES.in:
	* shell/Makefile.am:
	* shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
	(rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
	(rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
	(rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
	(rb_audioscrobbler_timeout_cb), (mkmd5),
	(rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
	(rb_audioscrobbler_do_handshake),
	(rb_audioscrobbler_do_handshake_cb),
	(rb_audioscrobbler_submit_queue),
	(rb_audioscrobbler_submit_queue_cb),
	(rb_audioscrobbler_import_settings),
	(rb_audioscrobbler_preferences_sync),
	(rb_audioscrobbler_get_config_widget), (get_proxy_uri),
	(rb_audioscrobbler_gconf_changed_cb),
	(rb_audioscrobbler_song_changed_cb),
	(rb_audioscrobbler_username_entry_changed_cb),
	(rb_audioscrobbler_username_entry_activate_cb),
	(rb_audioscrobbler_password_entry_changed_cb),
	(rb_audioscrobbler_password_entry_activate_cb),
	(rb_audioscrobbler_enabled_check_changed_cb),
	(audioscrobbler_entry_init), (audioscrobbler_entry_free),
	(rb_audioscrobbler_load_entry_from_string),
	(rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
	(rb_audioscrobbler_print_queue),
	(rb_audioscrobbler_free_queue_entries):
	* shell/rb-audioscrobbler.h:
	* shell/rb-shell-preferences.c:
	(rb_shell_preferences_append_audioscrobbler_config):
	* shell/rb-shell-preferences.h:
	* shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
	(rb_shell_select_source), (rb_shell_cmd_preferences):
	* sources/Makefile.am:

2005-10-21  James Livingston  <jrl@ids.org.au>

	Patch from Renato Araujo <renatox@gmail.com> to add Podcast support

	* Makefile.am:
	* NEWS:
	* configure.ac:
	* data/art/Makefile.am:
	* data/glade/Makefile.am:
	* data/rhythmbox.schemas:
	* data/ui/rhythmbox-ui.xml:
	* doc/reference/Makefile.am:
	* doc/reference/tmpl/rhythmdb.sgml:
	* lib/rb-stock-icons.c: (rb_stock_icons_init):
	* lib/rb-stock-icons.h:
	* po/POTFILES.in:
	* podcast/Makefile.am:
	+ podcast/rb-feed-podcast-properties-dialog.c:
	+ podcast/rb-feed-podcast-properties-dialog.h:
	+ podcast/rb-new-podcast-dialog.c:
	+ podcast/rb-new-podcast-dialog.h:
	+ podcast/rb-podcast-manager.c:
	+ podcast/rb-podcast-manager.h:
	+ podcast/rb-podcast-marshal.list:
	+ podcast/rb-podcast-parse.c:
	+ podcast/rb-podcast-parse.h:
	+ podcast/rb-podcast-properties-dialog.c:
	+ podcast/rb-podcast-properties-dialog.h:
	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_set_property),
	(rhythmdb_property_model_enable_drag):
	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
	(rhythmdb_tree_parser_end_element), (save_entry),
	(rhythmdb_tree_save):
	* rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
	(rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
	(rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
	(rhythmdb_entry_podcast_feed_get_type):
	* rhythmdb/rhythmdb.h:
	* shell/Makefile.am:
	* shell/rb-shell-player.c: (rb_shell_player_open_entry):
	* shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
	(add_to_library_response_cb), (rb_shell_cmd_new_podcast),
	(rb_shell_quit):
	* sources/Makefile.am:
	+ sources/rb-podcast-source.c:
	+ sources/rb-podcast-source.h:
	* widgets/Makefile.am:
	* widgets/rb-property-view.c: (rb_property_view_class_init),
	(rb_property_view_constructor),
	(rb_property_view_selection_changed_cb),
	(rb_property_view_get_treeview):
	* widgets/rb-property-view.h:
	+ widgets/rb-simple-view.c:
	+ widgets/rb-simple-view.h:

2005-10-20  James Livingston  <jrl@ids.org.au>

	* NEWS: update with changes since 0.9.1

	* configure.ac: check whether collate_key_for_filename is available
	* lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
	* lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
	it if it isn't available in glib (i.e. building against 2.6)
	* rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
	collation to get "natural sorting". Closes bug 158599.

2005-10-20  James Livingston  <jrl@ids.org.au>

	Patch from Paul Kuliniewicz <kuliniew@purdue.edu>

	* doc/reference/tmpl/rb-shell-player.sgml:
	* shell/rb-shell-player.c: (rb_shell_player_class_init),
	(volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
	(rb_shell_player_get_playing),
	(rb_shell_player_get_playing_time_string),
	(rb_shell_player_get_playing_time),
	(rb_shell_player_set_playing_time), (tick_cb),
	(rb_shell_player_get_playing_path), (filter_mmkeys):
	* shell/rb-shell-player.h:
	* shell/rb-shell-player.xml:
	* shell/rb-shell.c: (rb_shell_constructor),
	(rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
	(rb_shell_set_window_title), (rb_shell_playing_impl),
	(rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
	Merge the duration_changed and elapsed_changed DBUS signals into one
	elapsed_changed signal. Check that the output argument isn't NULL
	before trying to put things in it.

2005-10-20  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_entry_added_cb),
	(rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
	problem where hidden entries could be shown in playlists.
	
	* shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
	issues when switching in and out of small mode.

2005-10-19  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
	(rb_shell_constructor), (rb_shell_window_state_cb),
	(rb_shell_set_visibility), (rb_shell_window_configure_cb),
	(rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
	(rb_shell_view_smalldisplay_changed_cb),
	(rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
	(rb_shell_sync_paned): remove gconf window-state races, prevent
	changing small mode too often, fix window event races. Closes 122806.

	
	Patch from Caio Marcelo <cmarcelo@gmail.com>

	* data/rhythmbox.schemas:
	* shell/rb-shell.c: (rb_shell_window_state_cb),
	(rb_shell_window_configure_cb), (rb_shell_sync_window_state):
	Remember the position of the window. Closes 315289.

2005-10-19  James Livingston  <jrl@ids.org.au>

	Patch from Christophe Fergeau  <teuf@gnome.org>

	* configure.ac: determine whether libgpod is present when neither
	--with-ipod nor --without-ipod is passed

2005-10-19  James Livingston  <jrl@ids.org.au>

	Patch from Caio Marcelo <cmarcelo@gmail.com>

	* shell/rb-shell-player.c: (do_next_idle),
	(rb_shell_player_do_previous), (rb_shell_player_do_next),
	(rb_shell_player_do_previous_or_seek),
	(rb_shell_player_previous_button_cb),
	(rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
	(rb_shell_player_cmd_next), (eos_cb):
	* widgets/rb-header.c: (rb_header_sync): Stop playback when the
	end of the playlist is reached.

2005-10-19  Christopher Aillon  <caillon@redhat.com>

	* lib/rb-thread.c: fix a few GSource leaks

2005-10-19  James Livingston  <jrl@ids.org.au>

	* doc/reference/tmpl/bacon-volume.sgml:
	* doc/reference/tmpl/disclosure-widget.sgml:
	* doc/reference/tmpl/eel-gconf-extensions.sgml:
	* doc/reference/tmpl/eggnotificationbubble.sgml:
	* doc/reference/tmpl/eggtrayicon.sgml:
	* doc/reference/tmpl/gsequence.sgml:
	* doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
	* doc/reference/tmpl/rb-cell-renderer-rating.sgml:
	* doc/reference/tmpl/rb-daap-connection.sgml:
	* doc/reference/tmpl/rb-daap-dialog.sgml:
	* doc/reference/tmpl/rb-daap-mdns.sgml:
	* doc/reference/tmpl/rb-daap-share.sgml:
	* doc/reference/tmpl/rb-daap-sharing.sgml:
	* doc/reference/tmpl/rb-daap-source.sgml:
	* doc/reference/tmpl/rb-daap-src.sgml:
	* doc/reference/tmpl/rb-daap-structure.sgml:
	* doc/reference/tmpl/rb-debug.sgml:
	* doc/reference/tmpl/rb-dialog.sgml:
	* doc/reference/tmpl/rb-druid.sgml:
	* doc/reference/tmpl/rb-entry-view.sgml:
	* doc/reference/tmpl/rb-enums.sgml:
	* doc/reference/tmpl/rb-file-helpers.sgml:
	* doc/reference/tmpl/rb-glade-helpers.sgml:
	* doc/reference/tmpl/rb-header.sgml:
	* doc/reference/tmpl/rb-history.sgml:
	* doc/reference/tmpl/rb-ipod-source.sgml:
	* doc/reference/tmpl/rb-iradio-source.sgml:
	* doc/reference/tmpl/rb-library-source.sgml:
	* doc/reference/tmpl/rb-load-failure-dialog.sgml:
	* doc/reference/tmpl/rb-metadata.sgml:
	* doc/reference/tmpl/rb-new-station-dialog.sgml:
	* doc/reference/tmpl/rb-play-order-linear-loop.sgml:
	* doc/reference/tmpl/rb-play-order-linear.sgml:
	* doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
	* doc/reference/tmpl/rb-play-order-random-by-age.sgml:
	* doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
	* doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
	* doc/reference/tmpl/rb-play-order-random.sgml:
	* doc/reference/tmpl/rb-play-order-shuffle.sgml:
	* doc/reference/tmpl/rb-play-order.sgml:
	* doc/reference/tmpl/rb-player.sgml:
	* doc/reference/tmpl/rb-playlist-manager.sgml:
	* doc/reference/tmpl/rb-playlist-source-recorder.sgml:
	* doc/reference/tmpl/rb-playlist-source.sgml:
	* doc/reference/tmpl/rb-preferences.sgml:
	* doc/reference/tmpl/rb-property-view.sgml:
	* doc/reference/tmpl/rb-query-creator-private.sgml:
	* doc/reference/tmpl/rb-query-creator.sgml:
	* doc/reference/tmpl/rb-rating-helper.sgml:
	* doc/reference/tmpl/rb-rating.sgml:
	* doc/reference/tmpl/rb-recorder.sgml:
	* doc/reference/tmpl/rb-refstring.sgml:
	* doc/reference/tmpl/rb-removable-media-manager.sgml:
	* doc/reference/tmpl/rb-removable-media-source.sgml:
	* doc/reference/tmpl/rb-search-entry.sgml:
	* doc/reference/tmpl/rb-shell-clipboard.sgml:
	* doc/reference/tmpl/rb-shell-glue.sgml:
	* doc/reference/tmpl/rb-shell-player-glue.sgml:
	* doc/reference/tmpl/rb-shell-player.sgml:
	* doc/reference/tmpl/rb-shell-preferences.sgml:
	* doc/reference/tmpl/rb-shell.sgml:
	* doc/reference/tmpl/rb-song-display-box.sgml:
	* doc/reference/tmpl/rb-song-info.sgml:
	* doc/reference/tmpl/rb-source-header.sgml:
	* doc/reference/tmpl/rb-source.sgml:
	* doc/reference/tmpl/rb-sourcelist-model.sgml:
	* doc/reference/tmpl/rb-sourcelist.sgml:
	* doc/reference/tmpl/rb-station-properties-dialog.sgml:
	* doc/reference/tmpl/rb-statusbar.sgml:
	* doc/reference/tmpl/rb-stock-icons.sgml:
	* doc/reference/tmpl/rb-string-helpers.sgml:
	* doc/reference/tmpl/rb-thread.sgml:
	* doc/reference/tmpl/rb-tray-icon.sgml:
	* doc/reference/tmpl/rb-tree-dnd.sgml:
	* doc/reference/tmpl/rb-tree-model-sort.sgml:
	* doc/reference/tmpl/rb-util.sgml:
	* doc/reference/tmpl/rhythmbox-unused.sgml:
	* doc/reference/tmpl/rhythmdb-property-model.sgml:
	* doc/reference/tmpl/rhythmdb-query-model.sgml:
	* doc/reference/tmpl/rhythmdb-tree.sgml:
	* doc/reference/tmpl/rhythmdb.sgml: update for changes
	
	* doc/reference/Makefile.am: make docs build with changed ipod support
	
	* po/POTFILES.in: remove sources/itunesdb

2005-10-18  Christophe Fergeau  <teuf@gnome.org>

	* sources/itunesdb.c:
	* sources/itunesdb.h: removed now useless files

2005-10-03  Christophe Fergeau  <teuf@gnome.org>

	* configure.ac:
	* shell/Makefile.am:
	* sources/Makefile.am:
	* sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
	code
	[1]: http://www.gtkpod.org/libgpod.html


2005-10-18  James Livingston  <jrl@ids.org.au>

	patch from Funda Wang <fundawang@linux.net.cn>

	* shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
	the notification bubble string translatable.

============ Version 0.9.1

2005-10-16  James Livingston  <jrl@ids.org.au>

	* configure.ac: bump version to 0.9.1
	* NEWS: update translation credits

2005-10-16  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_class_init),
	(rhythmdb_query_model_drag_data_received): 
	* rhythmdb/rhythmdb-query-model.h: Allow sources to be
	notified when things are dropped into the entry view.
	
	* sources/rb-playlist-source.c: (rb_playlist_source_constructor),
	(rb_playlist_source_add_location_swapped),
	(rb_playlist_source_add_location), (rb_playlist_source_do_query),
	(rb_playlist_source_non_entry_dropped),
	(rb_playlist_source_row_inserted): Use the new signal so that dropping
	things onto a playlist's entry view work correctly, and doesn't cause
	crashes. Allow folders to be dropped as well. (Closes 318308)

2005-10-16  James Livingston  <jrl@ids.org.au>

	* NEWS: Update some more

	* shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
	(rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
	with the paned size, so that it doesn't move when the window is
	maximised/restored. Closes bug 315852.

	* sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
	display the playcount column, as it's useless (it never get changed).

2005-10-14  James Livingston  <jrl@ids.org.au>

	* Makefile.am:
	* data/Makefile.am:
	* doc/reference/Makefile.am: get "make distcheck" to pass again

2005-10-11  James Livingston  <jrl@ids.org.au>

	* daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
	destroy the connection when retrieving the playlists fails, because
	tracks have already been added. Closes 318380.

2005-10-11  James Livingston  <jrl@ids.org.au>

	* sources/rb-sourcelist.c: (rb_sourcelist_append),
	(rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
	(source_name_edited_cb): Ask for the columns to be resized when a
	source is added, deleted or changes name.

2005-10-11  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
	create a thread when processing a directory. This stops up created one
	thread for each file in a playlist we're trying to load. Closes
	317850.

	* widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
	typo that made sort-by-artist not work correctly.

2005-10-11  James Livingston  <jrl@ids.org.au>

	* doc/reference/Makefile.am: Make gtk-doc generation work when daap
	support is enabled

2005-10-11  James Livingston  <jrl@ids.org.au>

	* lib/rb-file-helpers.c: (rb_canonicalise_uri):
	* lib/rb-file-helpers.h: add a function to turn uris into our
	canonical path-escaped form
	* shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
	above function when import playlists. This will fix the problem of
	duplicate entries due to different representations of the uri (bug
	158211).

2005-10-11  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell.c: (rb_shell_get_visibility),
	(rb_shell_set_visibility), (rb_shell_window_delete_cb),
	(rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
	window hiding so that Alt-F4 works again.

	* widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
	(rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
	(rb_entry_view_string_sort_func): Stop some crashes where a string
	property was set to NULL.

2005-10-10  James Livingston  <jrl@ids.org.au>

	* doc/reference/rhythmbox.types: fix gtk-doc generation

2005-10-09  James Livingston  <jrl@ids.org.au>

	* sources/rb-sourcelist.c: (rb_sourcelist_init):
	* widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
	accelerators, so that we don't have as many conflicting keys.

2005-10-08  James Livingston  <jrl@ids.org.au>

	* data/iradio-initial.pls: Update the list of radio stations. Thanks
	to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
	bug 129285.

2005-10-07  James Livingston  <jrl@ids.org.au>

	* shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
	local path names in the same way as every other URI. This should stop
	duplicates occurring due to different escapings. Closes bug 158211.

2005-10-06  James Livingston  <jrl@ids.org.au>

	* NEWS: more updates
	
	patch from Jaap Haitsma <jaap@haitsma.org>:

	* configure.ac:
	* data/Makefile.am:
	* data/art/Makefile.am:
	- data/art/rhythmbox-paused.png:
	- data/art/rhythmbox-playback-error.png:
	- data/art/rhythmbox-playing.png:
	- data/art-clearlooks/:
	* lib/rb-file-helpers.c: (rb_file):
	* lib/rb-stock-icons.c: (rb_stock_icons_init):
	* lib/rb-stock-icons.h:
	* shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
	* widgets/rb-cell-renderer-pixbuf.c:
	(rb_cell_renderer_pixbuf_render):
	* widgets/rb-entry-view.c: (rb_entry_view_init),
	(rb_entry_view_set_playing):
	* widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
	stock icons instead of custom art. Drop remanents of art-clearlooks.

2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>

	* configure.ac: Added ne in ALL_LINGUAS

2005-10-02  James Livingston  <jrl@ids.org.au>

	* data/glade/Makefile.am: actually install the daap prefs glade file

2005-09-30  James Livingston  <jrl@ids.org.au>

	* po/POTFILES.in: mremove rb-string-helper.c from the list of
	translatable files, so that make check works and we don't annoy the
	translators.
	
	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
	sanity checking, in case a db entry is missing some properties.

2005-09-29  James Livingston  <jrl@ids.org.au>

	- lib/rb-string-helpers.c:
	- lib/rb-string-helpers.h:
	* lib/Makefile.am:
	* rhythmdb/rhythmdb-tree.c:
	* rhythmdb/rhythmdb.c:
	* shell/main.c: (main):
	* shell/rb-shell.c:
	* widgets/rb-entry-view.c:
	* widgets/rb-property-view.c: remove rb-string-helpers, as they
	utility functions haven't been used in a while.

2005-09-27  James Livingston  <jrl@ids.org.au>

	* data/art-clearlooks/Makefile.am:
	- data/art-clearlooks/rhythmbox-album.png:
	- data/art-clearlooks/rhythmbox-audiocd.png:
	- data/art-clearlooks/rhythmbox-automatic-playlist.png:
	- data/art-clearlooks/rhythmbox-dnd.png:
	- data/art-clearlooks/rhythmbox-ipod.png:
	- data/art-clearlooks/rhythmbox-iradio.png:
	- data/art-clearlooks/rhythmbox-library.png:
	- data/art-clearlooks/rhythmbox-next.png:
	- data/art-clearlooks/rhythmbox-pause.png:
	- data/art-clearlooks/rhythmbox-play.png:
	- data/art-clearlooks/rhythmbox-playlist-menu.png:
	- data/art-clearlooks/rhythmbox-playlist.png:
	- data/art-clearlooks/rhythmbox-previous.png:
	- data/art-clearlooks/rhythmbox-repeat.png:
	- data/art-clearlooks/rhythmbox-rewind.png:
	- data/art-clearlooks/rhythmbox-shuffle.png:
	- data/art-clearlooks/rhythmbox-stop.png:
	- data/art-clearlooks/rhythmbox-visuals.png:
	- data/art-clearlooks/rhythmbox-volume-max.png:
	- data/art-clearlooks/rhythmbox-volume-medium.png:
	- data/art-clearlooks/rhythmbox-volume-min.png:
	- data/art-clearlooks/rhythmbox-volume-mute.png:
	- data/art-clearlooks/rhythmbox-volume-zero.png:
	* data/art/Makefile.am:
	- data/art/rhythmbox-album.png:
	- data/art/rhythmbox-audiocd.png:
	- data/art/rhythmbox-automatic-playlist.png:
	- data/art/rhythmbox-dnd.png:
	- data/art/rhythmbox-ipod.png:
	- data/art/rhythmbox-iradio.png:
	- data/art/rhythmbox-library.png:
	- data/art/rhythmbox-next.png:
	- data/art/rhythmbox-pause.png:
	- data/art/rhythmbox-play.png:
	- data/art/rhythmbox-playlist-menu.png:
	- data/art/rhythmbox-playlist.png:
	- data/art/rhythmbox-previous.png:
	- data/art/rhythmbox-repeat.png:
	- data/art/rhythmbox-rewind.png:
	- data/art/rhythmbox-shuffle.png:
	- data/art/rhythmbox-stop.png:
	- data/art/rhythmbox-visuals.png:
	- data/art/rhythmbox-volume-max.png:
	- data/art/rhythmbox-volume-medium.png:
	- data/art/rhythmbox-volume-min.png:
	- data/art/rhythmbox-volume-mute.png:
	- data/art/rhythmbox-volume-zero.png:
	* lib/rb-stock-icons.c: (rb_stock_icons_init):
	* lib/rb-stock-icons.h:
	* shell/rb-playlist-manager.c:
	* shell/rb-shell-player.c:
	* sources/rb-daap-source.c: (rb_daap_get_icon):
	* sources/rb-ipod-source.c:
	* sources/rb-iradio-source.c: (rb_iradio_source_init):
	* sources/rb-library-source.c: (rb_library_source_new):
	* sources/rb-playlist-source.c: (rb_playlist_source_constructor):
	* sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
	that hasn't been used in a LONG time, and also remove art that are
	now stock icons.

2005-09-27  James Livingston  <jrl@ids.org.au>

	* README: point to the gnome.org web sites, and update the example
	gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
	
	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_set_property),
	(rhythmdb_query_model_get_property),
	(rhythmdb_query_model_finalize):
	* rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
	(rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
	* rhythmdb/rhythmdb.h:
	* sources/rb-iradio-source.c: (impl_search):
	* sources/rb-library-source.c: (impl_search): Add query
	"preprocessing", which performs operations such as casefolding any
	strings that will be compared to any of the *_FOLDED properties.
	Closes bug 316039

2005-09-27  James Livingston  <jrl@ids.org.au>

	* data/glade/daap-prefs.glade:
	* shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
	file for the daap preferences pane
	
	* sources/rb-sourcelist.c: (rb_sourcelist_init),
	(rb_sourcelist_append), (rb_sourcelist_remove),
	(visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
	don't display the column for source expanders unless there is an
	expandable source.

2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>

	* .cvsignore:
	* Makefile.am:
	* configure.ac:
	* doc/.cvsignore:
	* doc/Makefile.am:
	* doc/reference/.cvsignore:
	* doc/reference/Makefile.am:
	* doc/reference/rhythmbox-docs.sgml:
	* doc/reference/rhythmbox-sections.txt:
	* doc/reference/rhythmbox.types:
	* doc/reference/tmpl/bacon-volume.sgml:
	* doc/reference/tmpl/disclosure-widget.sgml:
	* doc/reference/tmpl/eel-gconf-extensions.sgml:
	* doc/reference/tmpl/eggnotificationbubble.sgml:
	* doc/reference/tmpl/eggtrayicon.sgml:
	* doc/reference/tmpl/gsequence.sgml:
	* doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
	* doc/reference/tmpl/rb-cell-renderer-rating.sgml:
	* doc/reference/tmpl/rb-daap-connection.sgml:
	* doc/reference/tmpl/rb-daap-dialog.sgml:
	* doc/reference/tmpl/rb-daap-mdns.sgml:
	* doc/reference/tmpl/rb-daap-share.sgml:
	* doc/reference/tmpl/rb-daap-sharing.sgml:
	* doc/reference/tmpl/rb-daap-source.sgml:
	* doc/reference/tmpl/rb-daap-src.sgml:
	* doc/reference/tmpl/rb-daap-structure.sgml:
	* doc/reference/tmpl/rb-debug.sgml:
	* doc/reference/tmpl/rb-dialog.sgml:
	* doc/reference/tmpl/rb-druid.sgml:
	* doc/reference/tmpl/rb-entry-view.sgml:
	* doc/reference/tmpl/rb-enums.sgml:
	* doc/reference/tmpl/rb-file-helpers.sgml:
	* doc/reference/tmpl/rb-glade-helpers.sgml:
	* doc/reference/tmpl/rb-header.sgml:
	* doc/reference/tmpl/rb-history.sgml:
	* doc/reference/tmpl/rb-ipod-source.sgml:
	* doc/reference/tmpl/rb-iradio-source.sgml:
	* doc/reference/tmpl/rb-library-source.sgml:
	* doc/reference/tmpl/rb-load-failure-dialog.sgml:
	* doc/reference/tmpl/rb-metadata.sgml:
	* doc/reference/tmpl/rb-new-station-dialog.sgml:
	* doc/reference/tmpl/rb-play-order-linear-loop.sgml:
	* doc/reference/tmpl/rb-play-order-linear.sgml:
	* doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
	* doc/reference/tmpl/rb-play-order-random-by-age.sgml:
	* doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
	* doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
	* doc/reference/tmpl/rb-play-order-random.sgml:
	* doc/reference/tmpl/rb-play-order-shuffle.sgml:
	* doc/reference/tmpl/rb-play-order.sgml:
	* doc/reference/tmpl/rb-player.sgml:
	* doc/reference/tmpl/rb-playlist-manager.sgml:
	* doc/reference/tmpl/rb-playlist-source-recorder.sgml:
	* doc/reference/tmpl/rb-playlist-source.sgml:
	* doc/reference/tmpl/rb-preferences.sgml:
	* doc/reference/tmpl/rb-property-view.sgml:
	* doc/reference/tmpl/rb-query-creator-private.sgml:
	* doc/reference/tmpl/rb-query-creator.sgml:
	* doc/reference/tmpl/rb-rating-helper.sgml:
	* doc/reference/tmpl/rb-rating.sgml:
	* doc/reference/tmpl/rb-recorder.sgml:
	* doc/reference/tmpl/rb-refstring.sgml:
	* doc/reference/tmpl/rb-removable-media-manager.sgml:
	* doc/reference/tmpl/rb-removable-media-source.sgml:
	* doc/reference/tmpl/rb-search-entry.sgml:
	* doc/reference/tmpl/rb-shell-clipboard.sgml:
	* doc/reference/tmpl/rb-shell-glue.sgml:
	* doc/reference/tmpl/rb-shell-player-glue.sgml:
	* doc/reference/tmpl/rb-shell-player.sgml:
	* doc/reference/tmpl/rb-shell-preferences.sgml:
	* doc/reference/tmpl/rb-shell.sgml:
	* doc/reference/tmpl/rb-song-display-box.sgml:
	* doc/reference/tmpl/rb-song-info.sgml:
	* doc/reference/tmpl/rb-source-header.sgml:
	* doc/reference/tmpl/rb-source.sgml:
	* doc/reference/tmpl/rb-sourcelist-model.sgml:
	* doc/reference/tmpl/rb-sourcelist.sgml:
	* doc/reference/tmpl/rb-station-properties-dialog.sgml:
	* doc/reference/tmpl/rb-statusbar.sgml:
	* doc/reference/tmpl/rb-stock-icons.sgml:
	* doc/reference/tmpl/rb-string-helpers.sgml:
	* doc/reference/tmpl/rb-thread.sgml:
	* doc/reference/tmpl/rb-tray-icon.sgml:
	* doc/reference/tmpl/rb-tree-dnd.sgml:
	* doc/reference/tmpl/rb-tree-model-sort.sgml:
	* doc/reference/tmpl/rb-util.sgml:
	* doc/reference/tmpl/rhythmdb-property-model.sgml:
	* doc/reference/tmpl/rhythmdb-query-model.sgml:
	* doc/reference/tmpl/rhythmdb-tree.sgml:
	* doc/reference/tmpl/rhythmdb.sgml:
	* macros/.cvsignore:
	* shell/Makefile.am:
	* sources/rb-source.c: (rb_source_class_init), (rb_source_init),
	(rb_source_finalize), (rb_source_set_property),
	(rb_source_get_property), (default_get_pixbuf),
	(_rb_source_show_popup):
	* sources/rb-source.h:
	Add support for gtk-doc in rhythmbox.
	Convert RBSource to use newer glib functions, such as add_private.
	Gives RBSource a default get_pixbuf implementation.

2005-09-25  James Livingston  <jrl@ids.org.au>

	* NEWS: Update with about a months worth of changes

	* data/glade/song-info-multiple.glade:
	* data/glade/song-info.glade:
	* data/rhythmbox.schemas:
	* lib/rb-preferences.h:
	* rhythmdb/rhythmdb.h:
	* shell/rb-shell-player.c:
	* widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
	few remaining parts of autorating.

2005-09-24  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell.c: (rb_shell_constructor),
	(rb_shell_window_state_cb), (rb_shell_set_visibility),
	(rb_shell_window_configure_cb): store window state in the gconf keys,
	so that it gets used. Closes bugs 313893 and 137068.

2005-09-20  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
	crash if the entry has a NULL string in a property
	
	* shell/rb-removable-media-manager.c:
	(rb_removable_media_manager_load_media): fix some memory leaks
	
	(rb_removable_media_manager_mount_volume),
	(rb_removable_media_manager_eject_medium_cb),
	(rb_removable_media_manager_cmd_eject_medium): use
	gnome_vfs_volume_ref/unref instead of g_object_ref/unref
	
	* sources/rb-removable-media-source.c:
	(rb_removable_media_source_set_property),
	(rb_removable_media_source_get_property): use
        gnome_vfs_volume_ref/unref instead of g_object_ref/unref

2005-09-18  James Livingston  <jrl@ids.org.au>

	Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
	column

	* data/glade/general-prefs.glade:
	* shell/rb-shell-preferences.c: (rb_shell_preferences_init),
	(rb_shell_preferences_column_check_changed_cb),
	(rb_shell_preferences_sync): add checkbox to control visibility
	of the column
	
	
	* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
	(save_entry):
	* rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
	(rhythmdb_prop_get_type):
	* rhythmdb/rhythmdb.h: add string version of "first seen", in the same
	was as "last played" is handled
	
	* sources/rb-library-source.c: (rb_library_source_constructor):
	* sources/rb-playlist-source.c: (rb_playlist_source_constructor):
	Make the column show in the library and playlists
	
	* widgets/rb-entry-view.c: (rb_entry_view_append_column):
	* widgets/rb-entry-view.h: add the column
	
	* widgets/rb-query-creator-properties.c: allow automatic playlists to
	be sorted by the column

2005-09-16  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell-player.c: (rb_shell_player_init),
	(rb_shell_player_do_previous_or_seek),
	(rb_shell_player_previous_button_cb),
	(rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
	(rb_shell_player_playpause_button_cb): Make the previous button act
	the same as the menu item. Fix an inversion of the "previous track or
	seek" logic.
	
	Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
	
	(rb_shell_player_playpause): make --play-pause stop source that can't
	be paused

2005-09-15  James Livingston  <jrl@ids.org.au>

	* configure.ac: increase totem-plparser requirements to 1.1.5

	* shell/rb-playlist-manager.c: (playlist_load_start_cb),
	(playlist_load_end_cb), (rb_playlist_manager_parse_file):
	* sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
	use the newer playlist APIs to save the name of the playlist, and use
	the name of a loaded playlist.

	Closes bug 309817.

2005-09-15  James Livingston  <jrl@ids.org.au>

	Patch from Jonathan Matthew <jonathan@kaolin.hn.org>

	* shell/Makefile.am: stop some linker warnings

	* shell/main.c: (main): make --no-registration work with dbus

2005-09-15  James Livingston  <jrl@ids.org.au>

	* daapsharing/rb-daap-sharing.c: (create_share):
	* widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
	reference sinking and counting issues that I caused.

2005-09-15  James Livingston  <jrl@ids.org.au>

	* widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
	playing" icon in the "now playing" column header.

2005-09-14  James Livingston  <jrl@ids.org.au>

	* daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
	daap shares, when sharing is turned off.

2005-09-12  Bastien Nocera  <hadess@hadess.net>

	* sources/rb-daap-source.c: (rb_daap_sources_init): Check
	the GConf value's default, especially for badly installed schema
	files

2005-09-12  James Livingston  <jrl@ids.org.au>

	* daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl

	Patch from Paolo Borelli <pborelli@katamail.com>

	* shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
	grip when maximised. Closes bug 316055.

2005-09-11  James Livingston  <jrl@ids.org.au>

	Patch from William Jon McCann <mccann@jhu.edu>

	* shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
	subclass of GtkStatusbar instead of GtkHBox.
	(rb_statusbar_construct): Don't set border width.
	(rb_statusbar_init): Use resize grip.  Don't use
	markup.
	(set_statusbar_tooltip, unset_statusbar_tooltip) 
	(rb_statusbar_connect_action_group, rb_statusbar_set_property):
	Connect tooltips for actions.
	(rb_statusbar_sync_status): Push new message to statusbar.
	(rb_statusbar_set_progress): Don't use markup.
	(rb_statusbar_entry_view_changed_cb): Don't set syncing_state
	flag here since it prevents actually showing or hiding.
	(rb_statusbar_sync_with_source): Push new message to statusbar.

2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>

	* daapsharing/rb-daap-structure.c:
	(rb_daap_structure_parse_container_buffer: Forgot to remove comments
	around debugging definition.

2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
	
	* daapsharing/rb-daap-structure.c:
	(rb_daap_structure_parse_container_buffer): Read the patch from daap 
	type = version.

	* daapsharing/rb-daap-mdns.c/h:
	(resolve_cb): Updated mDNS resolve callback to send service-name &
	name (read from Machine Name in the TXT data or equal to service-name
	if not in TXT).

	* daapsharing/rb-daap-source.c:
	(rb_daap_source_class_init), (rb_daap_source_set_property), 
	(rb_daap_source_get_property), (rb_daap_source_new),
	(find_source_by_service_name), (resolve_cb), (browse_cb), 
	(stop_resolver), (start_browsing), (stop_browsing), 
	(enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
	and added 'host' and 'port' gobject properties.  Updated to use new
	mDNS resolve callback sending service-name & name arguments.

2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>

	* daapsharing/rb-daap-mdns.c:
	(howl_strerror): New function to report errors from Howl
	(rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
	(get_sw_discovery), (get_avahi_client): Better error reporting from
	Howl & Avahi.

	* sources/rb-daap-source.:
	(start_browsing), (stop_browsing): Fixed a bug where browsing would
	not get started or stopped in some situations.
	
2005-09-12  James Livingston  <jrl@ids.org.au>

	* shell/rb-removable-media-manager.c: add a missing include, that
	would stop compilation if ipod support wasn't turned on

2005-09-11  James Livingston  <jrl@ids.org.au>

	* daapsharing/rb-daap-dialog.c: (encode_base64),
	(rb_daap_password_dialog_new_run),
	(rb_daap_collision_dialog_new_run): fix a translatable string, so that
	it is no broken in to two pieces, and remove a use of a goto
	
	* daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
	(setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
	(rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
	(get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
	(rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
	memory leaks, and some code style things.
	
	* daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
	(rb_daap_share_init), (rb_daap_share_set_property),
	(rb_daap_share_dispose), (rb_daap_share_new),
	(rb_daap_share_get_property): make the DB and the playlist manager
	gobject properties.
	
	(message_add_standard_headers),
	(message_set_from_rb_daap_structure), (server_info_cb),
	(content_codes_cb), (login_cb), (update_cb), (databases_cb),
	(server_cb), (add_db_entry), (db_entry_added_cb),
	(db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
	(rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
	style and use CONF_PREFIX in the gconf keys
	
	* daapsharing/rb-daap-sharing.c: (create_share),
	(enable_sharing_changed_cb), (share_name_changed_cb),
	(rb_daap_sharing_init), (rb_daap_sharing_shutdown):
	* daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
	(rb_daap_src_instance_init), (rb_daap_src_dispose),
	(rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
	(rb_daap_src_get_property), (rb_daap_src_getcaps),
	(rb_daap_src_close_file), (rb_daap_src_srcpad_event),
	(rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
	(rb_daap_src_get_time): Deal with gconf callbacks where the key
	hasn't actually changed, fix some memory leaks, code style and release
	gconf notifications when the object is destroyed.
	
	* sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
	(rb_daap_source_class_init), (rb_daap_source_init),
	(rb_daap_source_dispose), (rb_daap_source_set_property),
	(rb_daap_source_get_property), (rb_daap_source_new),
	(find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
	(start_browsing), (stop_browsing), (enable_browsing_changed_cb),
	(rb_daap_sources_init), (rb_daap_sources_shutdown),
	(rb_daap_source_activate), (rb_daap_source_disconnect),
	(rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
	(rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
	release gconf notifications, handle gconf callbacks where the key
	hasn't changed, make "real name" and "password protected" gobject
	properties, fix some code style and fix a memory leak.

2005-09-11  James Livingston  <jrl@ids.org.au>

	Patch from Jonathan Matthew <jonathan@kaolin.hn.org>

	* shell/rb-playlist-manager.c:
	(rb_playlist_manager_save_playlists),
	(rb_playlist_manager_get_playlists): don't unref the sourcelist model
	when we aren't supposed to. (Closes bug 315886)

2005-09-11  James Livingston  <jrl@ids.org.au>

	* shell/rb-removable-media-manager.c:
	(rb_removable_media_manager_class_init),
	(rb_removable_media_manager_init),
	(rb_removable_media_manager_dispose),
	(rb_removable_media_manager_set_property),
	(rb_removable_media_manager_get_property),
	(rb_removable_media_manager_new),
	(rb_removable_media_manager_load_media),
	(rb_removable_media_manager_volume_mounted_cb),
	(rb_removable_media_manager_volume_unmounted_cb),
	(rb_removable_media_manager_mount_volume),
	(rb_removable_media_manager_unmount_volume),
	(rb_removable_media_manager_source_deleted_cb),
	(rb_removable_media_manager_append_media_source),
	(rb_removable_media_manager_set_uimanager),
	(rb_removable_media_manager_eject_medium_cb),
	(rb_removable_media_manager_cmd_eject_medium):
	* shell/rb-removable-media-manager.h:
	* sources/rb-removable-media-source.c:
	(rb_removable_media_source_class_init),
	(rb_removable_media_source_init),
	(rb_removable_media_source_dispose),
	(rb_removable_media_source_set_property),
	(rb_removable_media_source_get_property), (impl_get_pixbuf),
	(impl_delete_thyself):
	* sources/rb-removable-media-source.h: Add the four files that I
	somehow managed not to add to cvs in the last commit. Oops.

2005-09-11  James Livingston  <jrl@ids.org.au>

	* shell/Makefile.am: Add rb-removable-media-manager.{c,h}
	* sources/Makefile.am: Add rb-removable-media-source.{c,h} 
	
	* shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
	(rb_shell_medium_added_cb), (rb_shell_select_source): create the
	removable-media-manager on startup, and handle creation of sources.
	
	* sources/rb-ipod-source.h:
	* sources/rb-ipod-source.c: (rb_ipod_source_class_init),
	(rb_ipod_source_init), (rb_ipod_source_constructor),
	(rb_ipod_source_dispose), (rb_ipod_source_new),
	(load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
	the iPod source over to the removable media framework.
	
	* sources/rb-library-source.c: (paned_size_allocate_cb),
	(rb_library_source_get_paned_key): fix a potential bug is a
	library-derived source doesn't have a paned-key

2005-09-11  Bastien Nocera  <hadess@hadess.net>

	* daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
	mp3 when we can't get the suffix of a file (Closes: #315941)

2005-09-10  James Livingston  <jrl@ids.org.au>

	* configure.ac: fix the mdns tests, so that it doesn't complain about
	not finding one, if daap support isn't being compiled in

2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>

	* configure.ac: Updated to require avahi >= 0.5.  Small fixes.

	* daapsharing/rb-daap-dialog.c:
	(rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
	HIG compliancy & images.

	* daapsharing/rb-daap-mdns.c:
	(browse_cb), (resolve_cb): Better detection of local services.  
	Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
	Howl's limitations.  Fix the way collision handling is done under
	Avahi.

	* daapsharing/rb-daap-share.c:
	(publish_cb): Better name collision handling (at least for Avahi).

2005-09-10  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
	Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
	preferences more HIG compliant (Closes #315889)
	
	* po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
	list of files to be translated

2005-09-10  James Livingston  <jrl@ids.org.au>

	* configure.ac: fix it so that --enable-daap=no works
	* lib/rb-file-helpers.c: (rb_file): allow use of new art when running
	uninstalled

2005-09-10  James Livingston  <jrl@ids.org.au>

	Patch from Christophe Fergeau <teuf@gnome.org>

	* sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
	the ipod code.

2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
	* README.daap: Updating documentation

2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
	* AUTHORS: Added myself.

	* daapsharing/rb-daap-connection.c:
	(connection_login), (rb_connection_new): Reorganized password
	handling.

	* po/POTFILES.in: Added daapsharing/rb-daap-dialog.c

	* shell/rb-shell.c:
	(rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.

	* sources/rb-daap-source.c:
	(rb_daap_source_activate): Better error handling when we are unable to
	connect.
	
2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
	* README.daap: Fixed some terminology.

	* configure.ac: Better automatic detection of mDNS/DNS-SD library.
	New --with-mdns=auto|howl|avahi flag to specify.

	* daapsharing/rb-daap-dialog.c/h: New files to handle password &
	name collision dialogs.

	* daapsharing/rb-daap-connection.c:
	(connection_get_password), (build_message), (http_get)
	(connection_login): Ask for & use a password if the share demands it.

	* daapsharing/rb-daap-connection.h: Changed prototype of
	rb_daap_connection_new.
	
	* daapsharing/rb-daap-mdns.c: 
	(resolve_cb): Better detection of your own music share so it doesn't 
	appear in the sourcelist.

	* daapsharing/rb-daap-share.c:
	(rb_daap_share_start_publish): Attempt to start on port 3689, failing
	that start on any available port.

	* daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.

	* sources/rb-daap-source.c:
	(find_source_by_name), (rb_daap_source_new), (resolve_cb),
	(browse_cb): Handle passworded shares. Resolve the host immediately
	instead of when activated.
	(rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
	(rb_daap_source_new): New GConf keys for UI state.
	(rb_daap_source_activate): Use RBPlaylistSource instead of
	RBDAAPPlaylistSource
	
	* sources/rb-daap-playlist-source.c/h: Removed

	* sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
	if the playlist is local (i.e. not DAAP or iPod).
	
	* shell/rb-playlist-manager.c:
	(rb_playlist_manager_save_playlists): Fixed a bug where the playlists
	wouldn't get saved if the last playlist hadn't changed.  Only save
	local playlists.
	
2005-09-09  James Livingston  <jrl@ids.org.au>

	* sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
	iPod preferences pane, as it already uses the browser views as the
	library.

2005-09-09  James Livingston  <jrl@ids.org.au>

	* sources/rb-library-source.c: (rb_library_source_finalize),
	(rb_library_source_constructor): fix gconf monitoring of library
	preference keys.
	* sources/rb-library-source.h: remove declaration of function that
	does not exist

2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>

	* player/rb-player-gst.c:
	(rb_player_set_time): Fix seeking in daap streams.

2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>

	* data/rhythmbox.schemas: Turn music share browsing on by default.

2005-09-07  James Livingston  <jrl@ids.org.au>

	* configure.ac: include daapsharing/Makefile in AC_OUTPUT

2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
	* player/rb-player-gst.c: 
	(rb_player_get_time): Fix for extra << & == that accidentally made
	it in.

	* player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
	
2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
	* configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
	it in last time.  Sorry.

2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
	
	* player/rb-player-gst.c:
	(rb_player_get_time): Fix a small crash appearing when
	the uri isn't set in the player, but rb_player_get_time() is
	still called.

	* configure.ac: Also check for libsoup 2.4, which is what ships with
	Gnome 2.12.

	* po/POTFILES.in: Added music sharing files that have translatable 
	strings.

	* README.daap: New file explaining "How Music Sharing Works"  

2005-09-06  Bastien Nocera  <hadess@hadess.net>

	* daapsharing/.cvsignore: added

2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>

	* daapsharing/*: Music sharing library.
	
	* sources/rb-daap-source.c/h: Music share RBSource.
	* sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.

	* configure.ac: --enable-daap flag to turn on music sharing. Requires
	libsoup and a mutlicast DNS implementation (howl or avahi).

	* data/rhythmbox.schemas: New GConf keys for music sharing.

	* data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
	source right click menu.

	* player/rb-player-gst.c: Changes to properly play & seek in remote
	music share files.

	* shell/rb-playlist-manager.c/h:
	(rb_playlist_manager_get_playlists): New function to get a GList * of
	the playlists.
	(rb_playlist_manager_save_playlists): Don't save music share playlists
	and fixed a GObject reference leak.

	* shell/rb-shell.c/h:
	(rb_shell_append_source): No longer a local function.  Now takes a
	parent RBSource * argument, NULL to append a toplevel source.
	(rb_shell_cmd_source_disconnect): New function to 'disconnect' a
	source (useful for disconnecting from remote music share,
	specifically).
	(rb_shell_quit): Stop music sharing/browsing.
	(rb_shell_playlist_added_cb): Work with tree source structure.
	(rb_shell_get_property): "playlist-manager" property accessor.
	(rb_shell_class_init): New "playlist-manager" property.
	(rb_shell_construor): Append sources as toplevel sources.  Initialize
	daap sharing/browsing.
	(rb_shell_select_source): Notify source of activation/deactivation.

	* shell/rb-shell-prefernces.c: Music sharing preferences.

	* sources/rb-source.c/h: New activate, deactivate and disconnect
	class functions.  Activate & deactivate are notification style 
	functions that will tell a source when it is selected/unselected.
	Disconnect can be hooked up to a UI object to disconnect the source.

	* sources/rb-sourcelist-model.c:
	* sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
	(rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
	append a toplevel source.

2005-09-05  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_entry_changed_cb),
	(rhythmdb_query_model_do_reorder): Update the query model's totals if
	the duration of filesize of an entry changes.  Emit the row-changed
	signals that I forgot to put back in, when I was doing query sorting.

	* rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
	out "0 minutes" or "0 bytes".

2005-09-04  James Livingston  <jrl@ids.org.au>

	* shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
	remove a leftover bit of the "internal-name" property of sources.

2005-09-03  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
	extraneous debug message
	* sources/rb-library-source.c: (rb_library_source_do_query): fix a
	crasher would affect any library-derived sources (which was also a
	memory leak).

2005-09-02  Colin Walters  <walters@verbum.org>

	* configure.ac: Fix sytnax error.

	* shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
	code to disable minimization icons - need to figure out
	why it doesn't work...

2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>

	* data/glade/song-info-multiple.glade:
	* data/glade/song-info.glade:
	* widgets/rb-song-info.c: (rb_song_info_constructor):
	Add a mnemonic to the newly added "Automatically rate" label
	in the properties dialog and use a bold typeface like all the 
	other labels in the dialog. (Closes bug 315089)

2005-09-03  James Livingston  <jrl@ids.org.au>

	* sources/rb-library-source.c: (rb_library_source_class_init),
	(rb_library_source_finalize), (rb_library_source_constructor),
	(rb_library_source_set_property), (rb_library_source_get_property),
	(impl_get_paned_key), (paned_size_allocate_cb),
	(rb_library_source_state_prefs_sync), (impl_show_popup),
	(rb_library_source_get_paned_key):
	* sources/rb-library-source.h: Allow sources derived from
	RBLibrarySource to use different gconf keys for sort order, browser
	visibility and browser pane position. Fix a crasher if a derived
	source overrides _get_pixbuf.

2005-09-02  Colin Walters  <walters@verbum.org>

	* shell/rb-shell.c (rb_shell_set_visibility): Move
	hint setting which seems to avoid races more.
	
2005-09-03  James Livingston  <jrl@ids.org.au>

	* shell/rb-shell.c: fix compilation with iPod support enabled
	
2005-09-02  Colin Walters  <walters@verbum.org>

	* shell/rb-shell.c (struct RBShellPrivate): Add
	idle_hide_mainwindow_id.
	(rb_shell_constructor): Move taskbar skipping hint into
	rb_shell_set_visibility.
	(idle_hide_mainwindow): New function.
	(rb_shell_set_visibility): Taskbar hinting moved here; add evil
	racy hack to avoid rb appearing in taskbar when minimized.

2005-09-01  Colin Walters  <walters@verbum.org>

	* widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.

	* widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
	from gtkstatusicion.c.

	* shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.

	* shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
	TrayShowWindow entry.
	(rb_tray_icon_class_init): Make GtkActionGroup readable only.
	(rb_tray_icon_constructor): Create action group here.
	(rb_tray_icon_finalize): Destroy action group.
	(rb_tray_icon_set_property): Don't take an action group.
	(rb_tray_icon_new): Ditto.
	(tray_popup_position_menu): Some mostly boilerplate code
	to position menu.
	(rb_tray_icon_button_press_event_cb): Position menu.
	(rb_tray_icon_get_geom): New function used for the shell
	to set minimization hints.

	* shell/rb-shell.h: Prototype rb_shell_toggle_visibility.

	* shell/rb-shell.c (rb_shell_actions): Add MusicClose.
	(struct RBShellPrivate): Change visible to iconified.
	(set_icon_geometry): New function from Søren Sandmann to
	tell Metacity where to draw the minimization animiation.
	(rb_shell_window_state_cb): Update iconified.
	(rb_shell_get_visibility): New function to say whether
	or not we're currently visible.
	(rb_shell_set_visibility): Update to minimize to
	tray or present as appropriate.
	(rb_shell_window_delete_cb): On window close, just
	minimize to tray if we're deleted.
	(rb_shell_set_window_title): Kill old notification code.
	(rb_shell_toggle_visibility): Nwe function.
	(rb_shell_cmd_toggle_visibility): Call it.
	(rb_shell_constructor): Skip the taskbar.
	(tray_destroy_cb): Better debugging.
	
2005-09-01  Colin Walters  <walters@verbum.org>

	* data/ui/rhythmbox-ui.xml: Add MusicClose.

	* configure.ac: Enable bonobo by default.
	
2005-09-01  Colin Walters  <walters@verbum.org>

	* configure.ac: Default to old art.  Add macros subdir.

	* Makefile.am (SUBDIRS): Add macros.

	* macros/Makefile.am: New.
	
2005-09-01  Colin Walters  <walters@verbum.org>

	* shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
	rb-shell-player.xml.

	* remote/dbus/rb-remote-dbus.h: Deleted.
	
	* remote/dbus/Makefile.am: Delete all the junk, just dist
	rb-print-playing.py and rb-set-rating.py.

	* remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.

	* data/Makefile.am (EXTRA_DIST): Add service_in_files.

2005-09-02  James Livingston  <jrl@ids.org.au>

	- data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
	file from cvs

	* shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
	(rb_shell_constructor): Patches from Jonathan Matthew
	<jonathan@kaolin.hn.org> to fix compilation without ipod support, and
	a crash when using "browse this artist".

2005-08-31  Colin Walters  <walters@verbum.org>

	* configure.ac: Add --with-old-art configure switch.  Also
	add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
	but it doesn't work.

	* widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
	Don't use eel_create_colorized_pixbuf for new art.
	* widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.

	* data/art-clearlooks: New artwork.
	
2005-08-31  Colin Walters  <walters@verbum.org>

	* shell/main.c (main): Fix Bastien's commit to continue to focus
	the window with GTK+ 2.8 at least.
	
2005-08-31  Colin Walters  <walters@verbum.org>

	* shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
	is already loaded.

	* shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.

2005-08-31  Bastien Nocera  <hadess@hadess.net>

	* README: remove mentions of the xine-lib backend
	* shell/main.c: (main): make it compilable with gtk+ < 2.8

2005-08-30  Colin Walters  <walters@verbum.org>

	* shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
	Make non-visible sources insensitive.
	
2005-08-30  Colin Walters  <walters@verbum.org>

	* shell/rb-shell.c: Don't use GConf for selected source; it's
	confusing to have the selected source change after startup,
	and since we don't save other things it's not worth saving this.

	* sources/rb-playlist-source.c:
	* sources/rb-library-source.c:
	* sources/rb-iradio-source.c:
	* sources/rb-ipod-source.c: Delete internal-name property usage.
	* sources/rb-source.c: Delete internal-name property.

	* data/rhythmbox.schemas: Delete selected_source.
	
2005-08-30  Colin Walters  <walters@verbum.org>

	* sources/rb-sourcelist.c: Make playing source bold instead of
	displaying a pixbuf; it's much less ugly.
	
2005-08-30  Colin Walters  <walters@verbum.org>

	* sources/rb-source.c:
	* sources/rb-source.h: New virtual method try_playlist.

	* sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
	impl_try_playlist.
	(rb_iradio_source_add_station): Remove validation; we do that elsewhere.
	(impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
	(handle_playlist_entry_cb): Don't check for iradio uris, we don't
	need to.
	(stations_view_drag_data_received_cb): Don't check for iradio uris;
	in theory we should though...

	* shell/rb-shell.c (known_sources): Delete; we just hardcode the
	list in rb_shell_construct now.
	(struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
	RBiPodSource.
	(rb_shell_constructor): Create library, iradio, ipod here.
	(rb_shell_source_deleted_cb): Use source directly instead of
	indirecting through type.
	(rb_shell_sync_selected_source): Ditto.
	(rb_shell_jump_to_entry_with_source): Just use the source reutrned
	from the type instead of special-casing.
	(rb_shell_guess_type_for_uri) 
	(rb_shell_add_uri)
	(handle_one_uri_with_possible_metadata): New functions.
	(rb_shell_load_uri): Refactor to allow loading playlists again,
	also use other URI infrastructure.

	* shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
	(rb_shell_player_error): Always set entry error on error, instead
	of depending on EOF behavior.

	* shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
	to just invoke rb_shell_add_uri.
	(rb_playlist_manager_parse_file): Return error instead of tossing
	up dialog box directly.
	(load_playlist_response_cb): Display error here.
	(add_uri_to_playlist): Delete.
	(handle_playlist_entry_into_playlist_cb): Renamed to
	handle_playlist_entry_cb.

	* shell/rb-playlist-manager.h: Add error, update prototype.

	* lib/rb-file-helpers.c:
	* lib/rb-file-helpers.h: Delete rb_uri_is_iradio.

2005-08-29  Colin Walters  <walters@verbum.org>

	* sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
	if entry already exists.  Use rhythmdb_entry_set_uninserted.

	* sources/rb-ipod-source.c (entry_set_string_prop): Avoid
	needlessly duping string, and use rhythmdb_entry_set_uninserted.
	(load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.

	* shell/rb-shell.h (enum RBShellError): Add some more errors.
	Prototype rb_shell_set_song_property.

	* shell/rb-shell.xml: Export setSongProperty.

	* shell/rb-shell.c (rb_shell_set_song_property): New function.
	(rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
	rhythmdb_entry_set_nonotify, and call rhythmdb_commit.

	* shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
	rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
	want to notify of the change.
	(rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.

	* rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
	logic error; idle functions would be enqueued for each set.
	(rhythmdb_entry_set): Fix assertion logic error.

	* iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
	Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
	Return if the entry already exists.
	
2005-08-29  Colin Walters  <walters@verbum.org>

	* rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
	"inserted" member which we use to keep track of
	whether or not an entry is in the DB.  Prototype
	rhythmdb_entry_set_uninserted.

	* rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
	flag.
	(rhythmdb_entry_insert): Assert entry is not already inserted.
	(rhythmdb_process_metadata_load): Update to call _set_uninserted
	just after creating entry.
	(rhythmdb_entry_set): Document, and fail on uninserted entries.
	(rhythmdb_entry_set_nonotify): Ditto.
	(rhythmdb_entry_set_uninserted): Document, and fail on inserted
	entries.
	(rhythmdb_entry_set_internal): Change notify flag to
	notify_if_inserted.  Also move notification after assertions.

	Update all existing callers of rhythmdb_entry_set_internal
	to give TRUE for notify_if_inserted; this should be what
	we want but may be an efficiency hit.
	
2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>

	* shell/rb-shell-player.c: (rb_shell_player_init),
	(rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
	(rb_shell_player_set_playing_source_internal),
	(rb_shell_player_sync_with_selected_source): Notify the player when an
	entry has updated the title, album or artist field, and resync the big
	display.
	
	* sources/rb-iradio-source.c: (rb_iradio_source_class_init):
	* sources/rb-library-source.c: (rb_library_source_class_init),
	(impl_get_config_widget):
	* sources/rb-playlist-source.c: (rb_playlist_source_class_init):
	* sources/rb-source.c:
	* sources/rb-source.h: Removed unused have_artist_album, get_artist, and
	get_album functions in rb-source and adapted other sources accordingly.
	
2005-08-29  Colin Walters  <walters@verbum.org>

	* rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
	signal_change member.
	(threadsafe_entry_set): New function.
	(rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
	(rhythmdb_entry_set_nonotify): New function; just call
	threadsafe_entry_set with FALSE.
	(rhythmdb_entry_set_internal): Take a notify flag; if true
	add the change to our pending set.

	Also update all internal callers of rhythmdb_entry_set_internal
	to pass FALSE.  Some of these may be bugs however and need to
	pass TRUE...

	* rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
	rhythmdb_entry_set, and rename rhythmdb_entry_set to
	rhythmdb_entry_set_nonotify.

	* rhythmdb/rhythmdb.h (enum RhythmDBProp)
	(rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.

	* widgets/rb-song-info.c: Kill off vestiges of auto rating.

	* widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
	* sources/rb-source.c (rb_source_update_play_statistics): 
	* sources/rb-iradio-source.c (rb_iradio_source_add_station): 
	* sources/rb-ipod-source.c (entry_set_string_prop) 
	(load_ipod_db_idle_cb): 
	* shell/rb-shell.c (rb_shell_set_rating_impl): 
	* shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
	(info_available_cb): 
	* iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
	(rb_station_properties_dialog_sync_entries): 
	* iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 

	Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
	and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
	
2005-08-29  Colin Walters  <walters@verbum.org>

	* sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.

	* shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
	linking insanity.

	* widgets/rb-header.c (sanitize_string): New function, extracted
	from old info_url.  Be sure to always strip the string.
	(info_url): Rewrite to take artist/album, and generate a sane
	URL for them from last.fm, which is better than allmusic.com in
	that they support Rhythmbox, and have a *SANE* URL scheme.
	(artist_info_url, album_info_url): Delete.
	(rb_header_sync): Use info_url.

2005-08-29  James Livingston  <jrl@ids.org.au>

	* sources/rb-source.c: (rb_source_search): Check to ensure that this
	is implemented before calling it. Many sources don't implement the
	method.

2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>

	* data/glade/create-playlist.glade:  Cleanup the layout,
	and add a few more mnemonics.
	* shell/rb-playlist-manager.c:
	(rb_playlist_manager_cmd_load_playlist),
	(rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
	capitalization for window titles.
	* widgets/rb-query-creator-properties.c: Add mnemonics
	to checkbutton labels.
	* widgets/rb-query-creator.c: (rb_query_creator_constructor),
	(limit_toggled_cb):  Toggle the sortLabel sensitivity.

2005-08-28  Colin Walters  <walters@verbum.org>

	* data/rhythmbox.schemas: Delete search_text for library
	and iradio; this isn't a persistent value anymore.
	Closes #313757.
	
	* sources/rb-source.h:
	* sources/rb-source.c: Delete impl_can_search.

	* sources/rb-iradio-source.c: Delete search_text usage.
	* sources/rb-library-source.c: Ditto.

	* shell/rb-source-header.c: Don't use GConf for search key.  Reset
	search when source is set, and just do rb_source_search in
	rb_source_header_search_cb.

	* shell/rb-shell.c (rb_shell_append_source): Don't
	initiate search.

	* shell/Makefile.am: Don't dist dashboard.c.

2005-08-28  Colin Walters  <walters@verbum.org>

	* shell/main.c: Remove include of dead file rb-remote-dbus.h.
	
2005-08-28  Colin Walters  <walters@verbum.org>

	* data/org.gnome.Rhythmbox.service.in: New.

	* data/Makefile.am: Install service file.

	* configure.ac: Define DBUS_SERVICES_DIR.

	* autogen.sh: Set ACLOCAL_FLAGS.

	* macros/acinclude.m4: New.
	
2005-08-28  Colin Walters  <walters@verbum.org>

	Initial patch from Jonathan Matthew; closes 313684.

	* rhythmdb/rhythmdb-tree.c:
	(RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
	(save_entry): Return on error.
	(rhythmdb_tree_save): Handle error when saving the
	db; additionally, handle errors from fclose and unlink,
	and print error too.

2005-08-28  Colin Walters  <walters@verbum.org>

	* sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
	extra _.
	
2005-08-28  Colin Walters  <walters@verbum.org>

	* configure.ac: Change iPod support to --with-ipod;
	  automatically enable it if we have HAL.  Try to
	  support both HAL 0.5 and HAL 0.2.  Break out
	  totem-plparser into its own check so later we
	  can do version tests there too.
	  Kill dashboard support.
	
	* sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
	to support HAL > 0.5, but preserve the old code for HAL < 0.5
	Closes #310017.
	
	* shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
	(INCLUDES): Add TOTEM_PLPARSER_CFLAGS.

	* sources/Makefile.am: Also handle
	TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.

	* shell/dashboard.c: Delete; someone should just write a little
	python shim which lists on the D-BUS interface and writes the
	stuff to Dashboard.  Even better Dashboard should be ported
	to D-BUS and do the listening itself, perhaps on an abstract
	"org.gnome.MusicPlayer" interface or something.

	* shell/rb-shell.c: Kill dashboard support.

2005-08-28  Colin Walters  <walters@verbum.org>

	* remote/dbus/rb-print-playing.py: New file.

2005-08-28  Colin Walters  <walters@verbum.org>

	* rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
	* rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.

	* shell/rb-shell-player.h:
	* shell/rb-shell-player.c: Add playing-uri-changed signal.
	* shell/rb-shell-player.xml: Export it.

	* shell/rb-shell.c (rb_shell_get_song_properties): New function.
	(rb_shell_error_quark): New.

	* shell/rb-shell.h: Prototype.  Also add RBShellError.
	* shell/rb-shell.xml: Export rb_shell_get_song_properties.
	
2005-08-28  Colin Walters  <walters@verbum.org>

	* remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
	(rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
	bonobo_unlock.
	(rb_remote_bonobo_preinit): Lock setting moved here.
	(rb_remote_bonobo_init): From here.

	* shell/main.c (main): Call rb_remote_bonobo_preinit very early.
	Also invoke handle_cmdline in the right place.
	(handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
	GFunc.

2005-08-28  James Livingston  <jrl@ids.org.au>

	* NEWS: keep the NEWS file up to date, so we don't have to do it all
	when 0.9.1 comes around.

2005-08-28  James Livingston  <jrl@ids.org.au>

	* iradio/rb-new-station-dialog.c:
	(rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
	bug 314477.

2005-08-28  James Livingston  <jrl@ids.org.au>

	Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>

	* widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
	* widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
	is a song is longer than 60 minutes. Closes bug 313311.

2005-08-27  James Livingston  <jrl@ids.org.au>

	* data/glade/create-playlist.glade:
	* widgets/rb-query-creator.c: (rb_query_creator_load_query),
	(rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
	"minutes" as an option in the playlist limit menu.

	* rhythmdb/rhythmdb-query-model.c:
	(rhythmdb_query_model_class_init),
	(rhythmdb_query_model_set_property),
	(rhythmdb_query_model_get_property),
	(rhythmdb_query_model_update_limited_entries): Allow query models to
	have a time limit
	
	* shell/rb-playlist-manager.c:
	(rb_playlist_manager_set_automatic_playlist),
	(rb_playlist_manager_cmd_edit_automatic_playlist):
	* sources/rb-playlist-source.c: (rb_playlist_source_set_query),
	(rb_playlist_source_get_query), (impl_receive_drag),
	(rb_playlist_source_new_from_xml),
	(rb_playlist_source_save_to_xml),
	(rb_playlist_source_songs_sort_order_changed_cb),
	(rb_playlist_source_do_query):
	* sources/rb-playlist-source.h:
	* widgets/rb-query-creator.h: Allow playlists to be limited by time

2005-08-27  James Livingston  <jrl@ids.org.au>

	Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.

	* configure.ac:
	* shell/Makefile.am: work correctly if dbus-binding-tool is in a
	non-standard location. Closes bug 314640.

2005-08-26  Colin Walters  <walters@verbum.org>
	
	Patch from Olivier Blin <oblin@mandriva.com>

	* widgets/eggnotificationbubble.c (draw_bubble): 
	Handle extreme-left case as well.
	
2005-08-26  Colin Walters  <walters@verbum.org>

	* shell/rb-shell.c (idle_save_state): Don't do this.
	(rb_shell_construct): Remove idle calls to idle_save_state.
	We should save the playlists automatically when they're
	modified.
	(rb_shell_load_uri): Don't try to re-stat entry if it already
	exists.

	* shell/rb-shell-player.c: Keep track of entry we are attempting
	to play.
	(rb_shell_player_set_playing_entry): Set playing_attempt_entry.
	Don't double-free error.
	(rb_shell_player_play_entry): Signal errors.
	(rb_shell_player_entry_activated_cb): Ditto.
	(rb_shell_player_property_row_activated_cb): Ditto.
	(rb_shell_player_set_playing_source_internal): Unset attempted
	playing entry.
	(rb_shell_player_error): Refactor to be usable both sync and
	async.  Handle case where displayed entry differs from entry.
	(error_cb): Move GDK locking here.

	* shell/main.c (main): Drop most commandline arguments for D-BUS;
	people can just use dbus-send or python.  We only support focusing
	and loading files.
	(load_uri_args): New function, extracted from handle_cmdline.
	(dbus_load_uri, bonobo_load_uri): New functions.

	* shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
	appropriate.

	* remote/Makefile.am: Don't compile dbus subdir, it's not used.
	* remote/dbus/rb-remote-dbus.c: Deleted.

	* player/rb-player-gst.c: Clear any pending idle handlers when we
	close the player.  Signal errors generated during open/play etc
	as synchronous errors.

	* configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
	
2005-08-26  Colin Walters  <walters@verbum.org>

	* shell/rb-shell.c (rb_shell_present): Try harder.

2005-08-26  Colin Walters  <walters@verbum.org>

	* shell/rb-shell.c (rb_shell_present): Try to handle
	GTK_MINOR_VERSION < 8.

2005-08-26  James Livingston  <jrl@ids.org.au>

	* shell/main.c: (main): compilation fixes. Patch from Peter Robinson
	<pbrobinson@gmail.com>

2005-08-26  Colin Walters  <walters@verbum.org>

	* remote/dbus/rb-remote-dbus.c: Various compilation fixes.

2005-08-25  Colin Walters  <walters@verbum.org>

	* shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
	Delete.
	(rb_shell_player_do_next_with_rating): Move back into
	rb_shell_player_do_next.
	(rb_shell_player_entry_activated_cb): Remove call to
	rb_shell_player_auto_adjust_rating.
	(do_next_idle): Just call rb_shell_player_do_next.

	* shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.

2005-08-25  Colin Walters  <walters@verbum.org>

	* shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
	before gtk_window_present_with_time.
	
2005-08-25  Colin Walters  <walters@verbum.org>

	* configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
	default.

	* shell/rb-shell.c (rb_shell_constructor): Adapted from
	rb_shell_construct.  This is so we only have to do g_object_new.
	(rb_shell_get_player): New function.
	(rb_shell_get_player_path): Ditto.
	(rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
	
	* shell/rb-shell.h: Prototype them.

	* shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
	export over D-BUS.
	(reemit_playing_signal): New function.
	(rb_shell_player_open_playlist_location): Use return values from
	rb_player_open, rb_player_close, etc. instead of checking "error".
	Return a gboolean on failure.
	(rb_shell_player_open_entry): Just open entry location, don't
	print to stderr.
	(rb_shell_player_play): Handle retval from rb_player_play.  Return
	a gboolean.
	(do_next_idle): Move logic for handling of end of playlist here.
	(rb_shell_player_set_playing_entry): Take a GError, return a
	gboolean.  Update to use gboolean return values.
	(rb_shell_player_do_previous): Delete lots of crazy duplicate
	logic.  Signal an error on end of playlist.  Also signal error if
	we're not playing.  Move heuristic for replaying the song into
	rb_shell_player_cmd_previous.
	(rb_shell_player_do_next_with_rating): Signal error on end of
	playlist.
	(rb_shell_player_do_next): Return errors.
	(rb_shell_player_cmd_previous): Heuristic for restarting song
	moved here; the idea is you generally only want that from the GUI.
	(rb_shell_player_cmd_play): Handle error.
	(rb_shell_player_playpause): Signal errors.
	(filter_mmkeys): Use rb_shell_player_cmd_previous and
	rb_shell_player_cmd_next in favor of the internal _do functions.
	
	* shell/rb-shell-player.h (enum RBShellPlayerError): Add some
	errors.  Update prototypes for above changes.

	* shell/main.c: More tightly integrate D-BUS; register various
	major singleton objects here.  Fix handle_cmdline so we only
	process extra arguments, not every argument.

	* shell/Makefile.am: Generate D-BUS glue headers.

	* remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
	into shell/main.c.  Now this file just acts as a client library.
	Not heavily tested.

	* remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
	Moved here.
	(rb_remote_bonobo_init): Move long CORBA rant here along with
	setting of lock functions.

	* player/rb-player-gst.c (rb_player_construct)
	(rb_player_play, rb_player_open, rb_player_close): Return gboolean
	on error.

	* player/rb-player.h: Update prototypes.

	* lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
	rb-remote-bonobo.c.
	(rb_threads_init): Don't set gdk lock functions here.

2005-08-25  James Livingston  <jrl@ids.org.au>

	Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>

	* lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
	* lib/rb-tree-dnd.h:
	* rhythmdb/rhythmdb-property-model.c:
	(rhythmdb_property_model_class_init),
	(rhythmdb_property_model_drag_source_init),
	(rhythmdb_property_model_iter_parent),
	(rhythmdb_property_model_row_draggable),
	(rhythmdb_property_model_drag_data_delete), (query_model_cb),
	(rhythmdb_property_model_drag_data_get),
	(rhythmdb_property_model_enable_drag):
	* rhythmdb/rhythmdb-property-model.h:
	* shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
	(rb_playlist_manager_set_property), (append_new_playlist_source),
	(rb_playlist_manager_save_playlists):
	* shell/rb-shell.c: (rb_shell_construct),
	(sourcelist_drag_received_cb):
	* sources/rb-iradio-source.c: (rb_iradio_source_class_init):
	* sources/rb-playlist-source.c: (impl_receive_drag):
	* sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
	(rb_sourcelist_model_drag_dest_init),
	(rb_sourcelist_model_set_dnd_targets),
	(rb_sourcelist_model_drag_data_received), (path_is_reorderable),
	(rb_sourcelist_model_row_drop_position),
	(rb_sourcelist_model_get_drag_target),
	(rb_sourcelist_model_drag_data_get):
	* sources/rb-sourcelist-model.h:
	* sources/rb-sourcelist.c: (rb_sourcelist_class_init),
	(rb_sourcelist_init), (rb_sourcelist_get_property),
	(rb_sourcelist_selection_changed_cb):
	* sources/rb-sourcelist.h:
	* widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
	improve drag-n-drop support. Allow dragging of item from property
	views to the source list, to create new automatic playlists. Allow
	playlist re-ordering. Fix dragging from Rhythmbox to other
	applications. (Closes bug 147337)

2005-08-24  Colin Walters  <walters@verbum.org>

	Patch from Olivier Blin <oblin@mandriva.com>

	* widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
	correctly in the case where the window is next to monitor edge.

2005-08-24  James Livingston  <jrl@ids.org.au>

	* sources/rb-playlist-source.c: (rb_playlist_source_class_init),
	(rb_playlist_source_get_property), (rb_playlist_source_do_query): add
	a gobject property to get the query model that backs the playlist.

2005-08-24  James Livingston  <jrl@ids.org.au>

	* shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
	(handle_playlist_entry_into_playlist_cb),
	(rb_playlist_manager_playlist_entries_changed): Disable the "create
	audio cd" menu item when a non-playlist source is selected, or the
	playlist is empty. (Closes Bug 313253)

2005-08-24  James Livingston  <jrl@ids.org.au>

	* sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
	Fix the playlist length checkso it doesn't report 0 for automatic
	playlists. This was stopping automati playlists being burnt to cd.

2005-08-24  James Livingston  <jrl@ids.org.au>

	* configure.ac:
	* sources/rb-playlist-source-recorder.c: (burn_cd):
	* sources/rb-playlist-source.c:
	(rb_playlist_source_songs_sort_order_changed_cb):
	* widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
	more warnings that occur when compiling RPMs on Fedora.

2005-08-24  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
	was stopping some distros gcc version compiling.

2005-08-24  James Livingston  <jrl@ids.org.au>

	* NEWS:
	* data/glade/create-playlist.glade:
	* rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
	* rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
	(rhythmdb_query_free), (rhythmdb_query_serialize),
	(rhythmdb_query_deserialize), (rhythmdb_query_get_type):
	* rhythmdb/rhythmdb.h:
	* shell/rb-playlist-manager.c:
	(rb_playlist_manager_set_automatic_playlist),
	(rb_playlist_manager_cmd_edit_automatic_playlist):
	* sources/rb-playlist-source.c: (rb_playlist_source_constructor),
	(rb_playlist_source_set_query), (rb_playlist_source_get_query),
	(impl_receive_drag), (rb_playlist_source_new_from_xml),
	(rb_playlist_source_save_to_xml),
	(rb_playlist_source_songs_sort_order_changed_cb),
	(rb_playlist_source_do_query):
	* sources/rb-playlist-source.h:
	* widgets/Makefile.am:
	* widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
	(rb_entry_view_set_sorting_order):
	* widgets/rb-query-creator-private.h:
	* widgets/rb-query-creator-properties.c:
	(stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
	(stringCriteriaGetWidgetData),
	(escapedStringCriteriaSetWidgetData),
	(escapedStringCriteriaGetWidgetData), (set_rating_score),
	(ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
	(ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
	(integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
	(durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
	(durationCriteriaGetWidgetData), (create_time_unit_option_menu),
	(relativeTimeCriteriaCreateWidget),
	(relativeTimeCriteriaSetWidgetData),
	(relativeTimeCriteriaGetWidgetData):
	* widgets/rb-query-creator.c: (rb_query_creator_get_type),
	(rb_query_creator_class_init), (rb_query_creator_constructor),
	(rb_query_creator_dispose), (rb_query_creator_set_property),
	(rb_query_creator_get_property), (rb_query_creator_load_query),
	(rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
	(get_entry_for_property), (rb_query_creator_get_query),
	(rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
	(limit_toggled_cb), (lookup_row_by_widget),
	(remove_button_click_cb), (append_row),
	(get_property_index_from_proptype), (select_criteria_from_value),
	(property_option_menu_changed), (create_property_option_menu),
	(create_criteria_option_menu), (sort_option_menu_changed),
	(setup_sort_option_menu):
	* widgets/rb-query-creator.h: A fairly huge patch to improve automatic
	playlists. The two most notable improvements are 1) adding more
	properties to the query creator, making it much easier to add more in
	the future, and 2) allow playlists to be sorted, from the query editor
	if they gave limits, and by clicking on column headers if they don't.

	Files added: widgets/rb-query-creator-private.h,
	sources/rb-query-creator-properties.c

2005-08-21  James Livingston  <jrl@ids.org.au>

	* player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
	error=NULL. This stops some crashes.

2005-08-19  Colin Walters  <walters@verbum.org>

	Patch from Olivier Blin <oblin@mandriva.com>

	* widgets/eggnotificationbubble.c (force_window): Support top
	orientation.
	* widgets/eggnotificationbubble.h: Remove
	egg_notification_bubble_force_window from header.
	
2005-08-18  James Livingston  <jrl@ids.org.au>

	* NEWS: Give a bit of detail on the major changes in 0.9.0, and update
	with the changes since then.

2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>

	* shell/rb-shell-player.c: (rb_shell_player_init),
	(rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
	(rb_shell_player_volume_widget_changed_cb):
	* sources/rb-iradio-source.c:
	* sources/rb-library-source.c:
	* sources/rb-playlist-source.c:
	* widgets/Makefile.am:
	* widgets/bacon-volume.c: (bacon_volume_button_get_type),
	(bacon_volume_button_class_init), (bacon_volume_button_init),
	(bacon_volume_button_dispose), (bacon_volume_button_new),
	(bacon_volume_button_get_value), (bacon_volume_button_set_value),
	(bacon_volume_button_scroll), (bacon_volume_button_press),
	(cb_button_timeout), (cb_button_press), (cb_button_release),
	(bacon_volume_release_grab), (cb_dock_press),
	(bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
	(bacon_volume_scale_new), (bacon_volume_scale_press),
	(bacon_volume_scale_release), (bacon_volume_scale_value_changed):
	* widgets/bacon-volume.h:
	* widgets/rb-volume.c:
	* widgets/rb-volume.h:
	  Use BaconVolumeButton (#300867).

2005-08-17  James Livingston  <jrl@ids.org.au>

	* rhythmdb/rhythmdb.c: (set_props_from_metadata),
	(rhythmdb_process_metadata_load): don't reset the First Seen time
	whenever we recheck the metadata.

2005-08-17  James Livingston  <jrl@ids.org.au>

	* sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
	temporary workaround to stop crashes when trying to burn an empty
	playlist. Doesn't disable the menu item which is the better solution
	(Bug 313253).

2005-08-15  James Livingston  <jrl@ids.org.au>

	* shell/rb-source-header.c: (rb_source_header_init),
	(rb_source_header_sync_control_state),
	(rb_source_header_search_activate_cb):
	* widgets/rb-entry-view.c: (rb_entry_view_class_init),
	(rb_entry_view_poll_model), (rb_entry_view_grab_focus):
	* widgets/rb-search-entry.c: (rb_search_entry_class_init),
	(rb_search_entry_init), (rb_search_entry_searching),
	(rb_search_entry_activate_cb):
	* widgets/rb-search-entry.h: Move focus to the entry view when user
	presses enter in the search box. Patch from Paolo Borelli
	<pborelli@katamail.com> (Closes bug 128110)

2005-08-15  James Livingston  <jrl@ids.org.au>

	* shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
	(rb_playlist_manager_new_playlist):
	* shell/rb-playlist-manager.h:
	* shell/rb-shell.c: (rb_shell_construct),
	(rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
	the source list to be shown when a new playlist is created. (Closes
	bug 161935)

2005-08-15  James Livingston  <jrl@ids.org.au>

	* widgets/rb-header.c: (rb_header_init),
	(rb_header_set_show_timeline): disable the seek slider, rather than
	hiding it, which more closely follows the HIG. (Closes bug 139102)

2005-08-13  Colin Walters  <walters@verbum.org>

	* shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
	rb_shell_hidden_notify.
	(rb_shell_hidden_notify): Notify if the shell is hidden.
	(rb_shell_set_visibility_impl): Debug goo.

	* shell/rb-shell.h: Export rb_shell_hidden_notify.

	* shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
	when the user clicks on notification.

	* sources/rb-playlist-source-recorder.c (burn_cd): Notify when
	CD burn is complete.
	(rb_playlist_source_recorder_finalize): Unref shell.
	(rb_playlist_source_recorder_new): Take shell.

	* sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
	Pass shell to RBPlaylistSourceRecorder.
	
2005-08-13  Colin Walters  <walters@verbum.org>

	* lib/rb-thread.c:
	* lib/rb-thread.h: Not used yet, but put in CVS in case we get
          time to convert.

2005-08-13  Colin Walters  <walters@verbum.org>

	* widgets/eggnotificationbubble.h:
	* widgets/eggnotificationbubble.c: New files, will likely go in libegg.
	* widgets/eggtrayicon.c:
	* widgets/eggtrayicon.h: Add notification API.
	* shell/rb-tray-icon.c:
	* shell/rb-tray-icon.h: Add notification API.
	* shell/rb-shell.c: Notify on song change.

2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>

	* sources/rb-ipod-source.c: (rb_ipod_unplugged):
	Correct an inversion of two lines causing NULL to be unreffed

============ Version 0.9.0

2005-08-10  Bastien Nocera  <hadess@hadess.net>

	* configure.ac: 0.9.0, whee!
	* NEWS: badly updated
	* remote/bonobo/Makefile.am:
	* remote/bonobo/rb-remote-bonobo.h:
	* shell/Makefile.am:
	* shell/main.c: make distcheck fixes
