* shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when
[rhythmbox.git] / ChangeLog
blobdbaae0305e933fe357543d57e9347751f210d260
1 2006-07-17  James Livingston  <doclivingston@gmail.com>
3         * shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when
4         running with -n, because we don't start it then. Fixes a crash on
5         exit.
7 2006-07-17  James Livingston  <doclivingston@gmail.com>
9         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
11         * data/glade/playlist-save.glade: Make the "playlist save" dialog use
12         Save not Open for the button. Fixes #345816
14 2006-07-17  James Livingston  <doclivingston@gmail.com>
16         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
18         * sources/rb-library-source.c: (impl_get_config_widget): Fix the build
19         when track transfer is disabled. Fixes #347705
21 2006-07-17  James Livingston  <doclivingston@gmail.com>
23         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
25         * sources/rb-library-source.c: (impl_get_config_widget): fix build
26         with track transfer disabled. Fixes #347705
28 2006-07-14  William Jon McCann  <mccann@jhu.edu>
30         * rhythmdb/rhythmdb-query-model.c:
31         (rhythmdb_query_model_set_property):
32         * shell/main.c: (main):
33         * shell/rb-shell-clipboard.c: (unset_source_internal),
34         (rb_shell_clipboard_finalize),
35         (rb_shell_clipboard_set_source_internal),
36         (rb_shell_clipboard_set_property), (rebuild_playlist_menu):
37         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
38         (rb_shell_player_set_db_internal),
39         (rb_shell_player_set_queue_source_internal),
40         (rb_shell_player_finalize), (rb_shell_player_set_property):
41         * shell/rb-shell.c: (rb_shell_finalize), (construct_sources):
42         * sources/rb-auto-playlist-source.c:
43         (rb_auto_playlist_source_constructor),
44         (rb_auto_playlist_source_new_from_xml):
45         * sources/rb-daap-source.c: (create_pixbufs):
46         * sources/rb-ipod-source.c:
47         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
48         * sources/rb-library-source.c:
49         (rb_library_source_add_child_source):
50         * sources/rb-play-queue-source.c:
51         (rb_play_queue_sync_playing_state),
52         (rb_play_queue_source_track_info_cell_data_func):
53         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
54         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
55         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
56         (impl_can_add_to_queue), (impl_add_to_queue):
57         * sources/rb-source.c: (rb_source_set_property):
58         * sources/rb-sourcelist.c: (rb_sourcelist_append):
59         * sources/rb-static-playlist-source.c:
60         (rb_static_playlist_source_constructor),
61         (rb_static_playlist_source_load_from_xml):
62         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
63         * widgets/rb-entry-view.c: (rb_entry_view_init),
64         (rb_entry_view_finalize), (rb_entry_view_append_column),
65         (rb_entry_view_constructor):
66         * widgets/rb-song-info.c: (rb_song_info_set_property):
67         Fix leaks.  From bug #347446.
69 2006-07-14  William Jon McCann  <mccann@jhu.edu>
71         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize),
72         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
73         (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry),
74         (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb),
75         (add_decoding_pipeline), (profile_bin_find_encoder),
76         (get_profile_from_mime_type), (extract_track), (transcode_track),
77         (rb_encoder_gst_encode):
78         * backends/gstreamer/rb-encoder-gst.h:
79         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init),
80         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
81         (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb),
82         (rb_player_gst_construct):
83         * backends/gstreamer/rb-player-gst.h:
84         * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel):
85         * backends/rb-encoder.h:
86         * backends/rb-player.c: (_rb_player_emit_tick):
87         * backends/rb-player.h:
88         * daapsharing/rb-daap-connection.c: (build_message),
89         (actual_http_response_handler), (http_response_handler),
90         (http_get), (entry_set_string_prop), (emit_progress_idle),
91         (handle_server_info), (handle_database_info),
92         (handle_song_listing), (handle_playlists),
93         (handle_playlist_entries), (rb_daap_connection_new),
94         (connected_cb), (rb_daap_connection_do_something),
95         (rb_daap_connection_get_headers), (rb_daap_connection_dispose),
96         (rb_daap_connection_get_property):
97         * daapsharing/rb-daap-connection.h:
98         * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run),
99         (rb_daap_collision_dialog_new_run):
100         * daapsharing/rb-daap-dialog.h:
101         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
102         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
103         (DigestToString), (rb_daap_hash_generate):
104         * daapsharing/rb-daap-hash.h:
105         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
106         (resolve_cb), (browse_cb):
107         * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb),
108         (resolve_cb), (rb_daap_mdns_browser_resolve),
109         (rb_daap_mdns_browser_start), (resolver_free):
110         * daapsharing/rb-daap-mdns-browser.h:
111         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb):
112         * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb),
113         (publish_cb):
114         * daapsharing/rb-daap-mdns-publisher.h:
115         * daapsharing/rb-daap-share.c: (name_collision_cb),
116         (rb_daap_share_process_playlist), (rb_daap_share_dispose),
117         (message_set_from_rb_daap_structure), (content_codes_cb),
118         (session_id_validate), (logout_cb), (update_cb),
119         (add_entry_to_mlcl), (add_playlist_to_mlcl),
120         (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb),
121         (rb_daap_share_server_start), (rb_daap_share_server_stop),
122         (rb_daap_share_publish_start):
123         * daapsharing/rb-daap-share.h:
124         * daapsharing/rb-daap-sharing.c: (share_name_changed_cb),
125         (share_password_changed_cb), (rb_daap_sharing_shutdown):
126         * daapsharing/rb-daap-sharing.h:
127         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init),
128         (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps),
129         (rb_daap_src_open):
130         * daapsharing/rb-daap-structure.c: (rb_daap_structure_add),
131         (rb_daap_structure_node_serialize), (rb_daap_structure_serialize),
132         (rb_daap_structure_parse_container_buffer),
133         (rb_daap_structure_parse), (gnode_find_node),
134         (rb_daap_structure_find_item), (rb_daap_structure_find_node),
135         (print_rb_daap_item):
136         * daapsharing/rb-daap-structure.h:
137         * iradio/rb-new-station-dialog.c:
138         (rb_new_station_dialog_class_init), (rb_new_station_dialog_init),
139         (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb),
140         (rb_new_station_dialog_text_changed):
141         * iradio/rb-station-properties-dialog.c:
142         (rb_station_properties_dialog_init),
143         (rb_station_properties_dialog_new),
144         (rb_station_properties_dialog_response_cb),
145         (rb_station_properties_dialog_get_current_entry),
146         (rb_station_properties_dialog_rated_cb),
147         (rb_station_properties_dialog_update_rating),
148         (rb_station_properties_dialog_update_playback_error),
149         (rb_station_properties_dialog_sync_entries):
150         * metadata/rb-metadata-common.c: (rb_metadata_error_quark):
151         * metadata/rb-metadata-dbus-client.c: (ping_metadata_service),
152         (start_metadata_service), (rb_metadata_load), (rb_metadata_set),
153         (rb_metadata_can_save), (rb_metadata_save):
154         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load),
155         (rb_metadata_dbus_can_save), (rb_metadata_dbus_save),
156         (_handle_message), (_new_connection), (main):
157         * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message),
158         (rb_metadata_dbus_read_from_message):
159         * metadata/rb-metadata-dbus.h:
160         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb),
161         (rb_add_id3_tagger), (rb_metadata_init),
162         (rb_metadata_gst_tag_to_field), (make_undecodable_error),
163         (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb),
164         (rb_metadata_gst_new_decoded_pad_cb),
165         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
166         * metadata/sj-error.c: (sj_error_quark):
167         * metadata/sj-error.h:
168         * metadata/sj-metadata-musicbrainz.c:
169         (sj_metadata_musicbrainz_instance_init),
170         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
171         (get_rdf), (lookup_cd):
172         * metadata/sj-metadata.c: (sj_metadata_get_type):
173         * metadata/sj-structures.c:
174         * metadata/sj-structures.h:
175         * metadata/test-metadata.c: (load_metadata_cb), (main):
176         * podcast/rb-feed-podcast-properties-dialog.c:
177         (rb_feed_podcast_properties_dialog_init),
178         (rb_feed_podcast_properties_dialog_update_title):
179         * podcast/rb-feed-podcast-properties-dialog.h:
180         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
181         (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb),
182         (rb_new_podcast_dialog_text_changed):
183         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
184         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
185         (rb_podcast_manager_set_property),
186         (rb_podcast_manager_get_property), (rb_podcast_manager_new),
187         (rb_podcast_manager_download_entry),
188         (rb_podcast_manager_update_feeds),
189         (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file),
190         (rb_podcast_manager_copy_post),
191         (rb_podcast_manager_thread_parse_feed),
192         (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata),
193         (rb_podcast_manager_db_entry_added_cb), (write_job_data),
194         (download_info_free), (download_info_new), (start_job),
195         (rb_podcast_manager_cancel_all), (end_job), (cancel_job),
196         (download_progress_cb), (download_progress_update_cb),
197         (rb_podcast_manager_remove_feed),
198         (rb_podcast_manager_db_entry_deleted_cb),
199         (rb_podcast_manager_cancel_download),
200         (rb_podcast_manager_update_synctime),
201         (rb_podcast_manager_set_remove_files),
202         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
203         (rb_podcast_manager_abort_subscribe),
204         (rb_podcast_manager_get_podcast_dir):
205         * podcast/rb-podcast-manager.h:
206         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
207         (rb_validate_channel_propert), (rb_validate_item_propert),
208         (rb_podcast_parser_start_element), (rb_podcast_parser_end_element),
209         (rb_podcast_parser_characters), (rb_podcast_parse_load_feed),
210         (rb_podcast_parse_date), (rb_podcast_parse_time),
211         (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free):
212         * podcast/rb-podcast-parse.h:
213         * podcast/rb-podcast-properties-dialog.c:
214         (rb_podcast_properties_dialog_init),
215         (rb_podcast_properties_dialog_get_current_entry),
216         (rb_podcast_properties_dialog_update_title),
217         (rb_podcast_properties_dialog_update_duration),
218         (rb_podcast_properties_dialog_update_date):
219         * podcast/rb-podcast-properties-dialog.h:
220         * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend),
221         (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate),
222         (g_sequence_remove_range), (g_sequence_get_ptr_at_pos),
223         (g_sequence_ptr_move), (g_sequence_ptr_sort_changed),
224         (g_sequence_search), (g_sequence_set_aggregate_data),
225         (g_sequence_node_update_fields), (g_sequence_node_rotate),
226         (find_min), (g_sequence_node_find_by_pos),
227         (g_sequence_node_find_closest), (g_sequence_node_free),
228         (g_sequence_node_split), (g_sequence_node_insert_before),
229         (g_sequence_node_get_length), (g_sequence_node_remove),
230         (g_sequence_node_calc_height), (g_sequence_node_insert_sorted),
231         (g_sequence_calc_tree_height):
232         * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown),
233         (rb_refstring_get):
234         * rhythmdb/rb-refstring.h:
235         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
236         (rhythmdb_gda_init), (dump_model), (execute_query),
237         (execute_nonquery), (ensure_table_exists), (collect_value_for_sql),
238         (collect_value_from_sql), (_initialize), (rhythmdb_gda_new),
239         (rhythmdb_gda_load), (rhythmdb_gda_entry_new),
240         (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get),
241         (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location),
242         (translate_query), (do_query), (rhythmdb_gda_do_full_query):
243         * rhythmdb/rhythmdb-gda.h:
244         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
245         (rhythmdb_finalize_monitoring), (monitor_entry_file),
246         (monitor_library_directory), (rhythmdb_check_changed_file),
247         (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb),
248         (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted),
249         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb):
250         * rhythmdb/rhythmdb-private.h:
251         * rhythmdb/rhythmdb-property-model.c:
252         (rhythmdb_property_model_set_property),
253         (rhythmdb_property_model_row_inserted_cb),
254         (rhythmdb_property_model_prop_changed_cb),
255         (rhythmdb_property_model_compare),
256         (rhythmdb_property_model_get_value),
257         (rhythmdb_property_model_iter_nth_child),
258         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
259         (rhythmdb_property_model_drag_data_get),
260         (rhythmdb_property_model_enable_drag),
261         (rhythmdb_property_model_column_get_type):
262         * rhythmdb/rhythmdb-property-model.h:
263         * rhythmdb/rhythmdb-query-model.c:
264         (rhythmdb_query_model_class_init),
265         (rhythmdb_query_model_set_property),
266         (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain),
267         (rhythmdb_query_model_has_pending_changes),
268         (rhythmdb_query_model_entry_changed_cb),
269         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
270         (rhythmdb_query_model_add_entry),
271         (rhythmdb_query_model_remove_from_main_list),
272         (rhythmdb_query_model_remove_entry),
273         (rhythmdb_query_model_drag_data_received),
274         (rhythmdb_query_model_row_drop_possible),
275         (rhythmdb_query_model_compute_status_normal),
276         (rhythmdb_query_model_set_sort_order),
277         (rhythmdb_query_model_get_entry_index),
278         (rhythmdb_query_model_base_row_inserted),
279         (rhythmdb_query_model_base_row_deleted),
280         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
281         (rhythmdb_query_model_date_sort_func),
282         (rhythmdb_query_model_within_limit):
283         * rhythmdb/rhythmdb-query-model.h:
284         * rhythmdb/rhythmdb-query-results.c:
285         (rhythmdb_query_results_query_complete):
286         * rhythmdb/rhythmdb-query-results.h:
287         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy),
288         (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist),
289         (rhythmdb_query_free), (rhythmdb_read_encoded_property),
290         (rhythmdb_query_serialize), (rhythmdb_query_deserialize),
291         (rhythmdb_query_preprocess), (rhythmdb_query_get_type):
292         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize),
293         (rhythmdb_tree_parser_start_element),
294         (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load),
295         (save_entry), (save_entry_type), (save_unknown_entry_type),
296         (rhythmdb_tree_save), (rhythmdb_tree_entry_new),
297         (rhythmdb_tree_property_new), (get_genres_hash_for_type),
298         (get_or_create_genre), (remove_entry_from_album),
299         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
300         (remove_one_song), (rhythmdb_tree_entry_delete_by_type),
301         (search_match_properties), (evaluate_conjunctive_subquery),
302         (clone_remove_ptr_array_index), (conjunctive_query_albums),
303         (conjunctive_query_artists), (conjunctive_query_genre),
304         (conjunctive_query), (split_query_by_disjunctions),
305         (do_query_recurse), (rhythmdb_tree_entry_foreach),
306         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
307         (hash_tree_artists_foreach), (hash_tree_genres_foreach),
308         (rhythmdb_hash_tree_foreach),
309         (rhythmdb_tree_entry_type_registered):
310         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
311         (metadata_field_from_prop), (extract_gtype_from_enum_entry),
312         (extract_nice_name_from_enum_entry), (rhythmdb_init),
313         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
314         (rhythmdb_shutdown), (rhythmdb_finalize),
315         (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb),
316         (rhythmdb_entry_insert), (rhythmdb_entry_new),
317         (rhythmdb_entry_example_new),
318         (set_metadata_string_default_unknown), (is_ghost_entry),
319         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
320         (rhythmdb_process_metadata_load),
321         (rhythmdb_process_queued_entry_set_event),
322         (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb),
323         (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata),
324         (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main),
325         (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save),
326         (rhythmdb_entry_set), (rhythmdb_entry_set_internal),
327         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
328         (rhythmdb_entry_delete_by_type),
329         (rhythmdb_propid_from_nice_elt_name),
330         (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query),
331         (rhythmdb_compute_status_normal),
332         (rhythmdb_entry_register_type_alias),
333         (rhythmdb_entry_type_foreach), (song_can_sync_metadata),
334         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
335         (rhythmdb_entry_import_error_get_type),
336         (rhythmdb_entry_podcast_post_get_type),
337         (rhythmdb_entry_podcast_feed_get_type),
338         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
339         (rhythmdb_sync_library_location), (rhythmdb_entry_get_string),
340         (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type):
341         * rhythmdb/rhythmdb.h:
342         * shell/main.c: (main), (load_uri_args), (handle_dbus_message):
343         * shell/rb-history.c: (rb_history_new), (rb_history_set_playing),
344         (rb_history_limit_size):
345         * shell/rb-history.h:
346         * shell/rb-play-order-linear-loop.c:
347         (rb_linear_play_order_loop_get_next):
348         * shell/rb-play-order-linear-loop.h:
349         * shell/rb-play-order-linear.c:
350         * shell/rb-play-order-linear.h:
351         * shell/rb-play-order-queue.c:
352         (rb_queue_play_order_playing_entry_removed):
353         * shell/rb-play-order-queue.h:
354         * shell/rb-play-order-random-by-age-and-rating.c:
355         * shell/rb-play-order-random-by-age-and-rating.h:
356         * shell/rb-play-order-random-by-age.c:
357         (rb_random_by_age_get_entry_weight):
358         * shell/rb-play-order-random-by-age.h:
359         * shell/rb-play-order-random-by-rating.c:
360         * shell/rb-play-order-random-by-rating.h:
361         * shell/rb-play-order-random-equal-weights.c:
362         * shell/rb-play-order-random-equal-weights.h:
363         * shell/rb-play-order-random.c: (rb_random_filter_history),
364         (rb_random_get_total_weight), (rb_random_play_order_get_next),
365         (rb_random_db_changed), (rb_random_playing_entry_changed),
366         (rb_random_db_entry_deleted):
367         * shell/rb-play-order-shuffle.c: (remove_from_history),
368         (add_randomly_to_history), (get_query_model_contents),
369         (rb_shuffle_playing_entry_changed):
370         * shell/rb-play-order-shuffle.h:
371         * shell/rb-play-order.c: (rb_play_order_class_init),
372         (rb_play_order_set_property),
373         (rb_play_order_playing_source_changed),
374         (rb_play_order_query_model_changed_cb),
375         (rb_play_order_query_model_changed),
376         (rb_play_order_entry_added_cb), (default_playing_entry_removed):
377         * shell/rb-play-order.h:
378         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
379         (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager),
380         (rb_playlist_manager_set_property),
381         (rb_playlist_manager_parse_file),
382         (rb_playlist_manager_load_playlists),
383         (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data),
384         (rb_playlist_manager_save_playlists),
385         (rb_playlist_manager_new_playlist),
386         (rb_playlist_manager_new_playlist_from_selection_data),
387         (rb_playlist_manager_cmd_new_automatic_playlist),
388         (rb_playlist_manager_cmd_edit_automatic_playlist),
389         (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist),
390         (save_playlist_response_cb), (export_set_extension_cb),
391         (filter_get_export_filter_label), (setup_format_menu),
392         (rb_playlist_manager_cmd_save_playlist),
393         (rb_playlist_manager_get_playlists),
394         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
395         (rb_playlist_manager_delete_playlist),
396         (rb_playlist_manager_export_playlist):
397         * shell/rb-playlist-manager.h:
398         * shell/rb-removable-media-manager.c:
399         (rb_removable_media_manager_class_init),
400         (rb_removable_media_manager_dispose),
401         (rb_removable_media_manager_finalize),
402         (rb_removable_media_manager_set_property),
403         (split_drive_from_cdda_uri),
404         (rb_removable_media_manager_playing_uri_changed_cb),
405         (rb_removable_media_manager_load_media),
406         (rb_removable_media_manager_volume_mounted_cb),
407         (remove_volume_by_source),
408         (rb_removable_media_manager_source_deleted_cb),
409         (rb_removable_media_manager_volume_unmounted_cb),
410         (rb_removable_media_manager_mount_volume),
411         (rb_removable_media_manager_set_uimanager),
412         (rb_removable_media_manager_scan), (do_transfer),
413         (rb_removable_media_manager_cmd_copy_tracks):
414         * shell/rb-removable-media-manager.h:
415         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
416         (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor),
417         (rb_shell_clipboard_sync),
418         (rb_shell_clipboard_idle_poll_deletions),
419         (rb_shell_clipboard_cmd_add_to_playlist_new),
420         (rb_shell_clipboard_playlist_add_cb),
421         (rb_shell_clipboard_playlist_deleted_cb),
422         (rb_shell_clipboard_playlist_renamed_cb),
423         (rb_shell_clipboard_playlist_visible_cb),
424         (rb_shell_clipboard_playlist_added_cb):
425         * shell/rb-shell-player.c: (rb_shell_player_class_init),
426         (rb_shell_player_constructor), (volume_pre_unmount_cb),
427         (rb_shell_player_init), (rb_shell_player_set_property),
428         (rb_shell_player_new), (rb_shell_player_open_playlist_url),
429         (rb_shell_player_open_location),
430         (rb_shell_player_set_playing_entry),
431         (rb_shell_player_play_order_update_cb),
432         (rb_shell_player_jump_to_current), (rb_shell_player_do_previous),
433         (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek),
434         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
435         (rb_shell_player_cmd_play), (rb_shell_player_playpause),
436         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
437         (gconf_song_position_slider_visibility_changed),
438         (rb_shell_player_entry_activated_cb),
439         (rb_shell_player_property_row_activated_cb),
440         (rb_shell_player_entry_changed_cb),
441         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
442         (actually_set_playing_source),
443         (rb_shell_player_set_playing_source_internal),
444         (rb_shell_player_get_playing_song_duration), (eos_cb),
445         (rb_shell_player_error), (error_cb), (info_available_cb),
446         (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb),
447         (rb_shell_player_error_get_type):
448         * shell/rb-shell-player.h:
449         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
450         (rb_shell_preferences_append_page),
451         (share_check_button_toggled_cb),
452         (password_check_button_toggled_cb), (add_daap_preferences),
453         (rb_shell_preferences_column_check_changed_cb),
454         (rb_shell_preferences_sync_column_button),
455         (rb_shell_preferences_sync),
456         (rb_shell_preferences_browser_views_activated_cb):
457         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init),
458         (rb_shell_set_property), (rb_shell_get_property),
459         (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize),
460         (construct_widgets), (construct_load_ui), (rb_shell_constructor),
461         (rb_shell_get_visibility), (rb_shell_set_visibility),
462         (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb),
463         (rb_shell_register_entry_type_for_source),
464         (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb),
465         (rb_shell_playing_entry_changed_cb), (rb_shell_select_source),
466         (rb_shell_player_stream_song_changed_cb),
467         (rb_shell_set_window_title),
468         (rb_shell_view_smalldisplay_changed_cb),
469         (rb_shell_view_queue_as_sidebar_changed_cb),
470         (rb_shell_cmd_plugins), (add_to_library_response_cb),
471         (rb_shell_cmd_add_folder_to_library),
472         (rb_shell_cmd_add_file_to_library),
473         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
474         (sidepane_visibility_changed_cb), (toolbar_state_changed_cb),
475         (rb_shell_jump_to_entry_with_source), (tray_embedded_cb),
476         (session_die_cb), (save_yourself_cb), (rb_shell_session_init),
477         (handle_playlist_entry_cb), (rb_shell_load_uri),
478         (rb_shell_add_to_queue), (rb_shell_present),
479         (rb_shell_get_song_properties), (rb_shell_set_song_property),
480         (rb_shell_volume_widget_changed_cb),
481         (rb_shell_player_volume_changed_cb),
482         (rb_shell_ui_location_get_type):
483         * shell/rb-shell.h:
484         * shell/rb-source-header.c: (ui_manager_add_widget_cb),
485         (rb_source_header_init), (rb_source_header_set_source_internal),
486         (rb_source_state_sync), (rb_source_header_clear_search),
487         (rb_source_header_view_browser_changed_cb):
488         * shell/rb-source-header.h:
489         * shell/rb-statusbar.c: (rb_statusbar_construct),
490         (rb_statusbar_init), (rb_statusbar_finalize),
491         (rb_statusbar_set_property), (rb_statusbar_set_progress),
492         (rb_statusbar_source_status_changed_cb):
493         * shell/rb-statusbar.h:
494         * shell/rb-tray-icon.c: (rb_tray_icon_init),
495         (rb_tray_icon_constructor), (rb_tray_icon_finalize),
496         (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb),
497         (rb_tray_icon_get_geom), (rb_tray_icon_notify):
498         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor),
499         (rb_audiocd_create_track_entry):
500         * sources/rb-auto-playlist-source.c:
501         (rb_auto_playlist_source_class_init),
502         (rb_auto_playlist_source_constructor),
503         (rb_auto_playlist_source_new_from_xml), (impl_reset_filters),
504         (impl_search), (impl_receive_drag), (impl_save_contents_to_xml),
505         (rb_auto_playlist_source_query_complete_cb),
506         (rb_auto_playlist_source_do_query),
507         (rb_auto_playlist_source_set_query),
508         (rb_auto_playlist_source_browser_changed_cb),
509         (search_action_to_prop):
510         * sources/rb-auto-playlist-source.h:
511         * sources/rb-browser-source.c: (rb_browser_source_init),
512         (rb_browser_source_dispose), (search_action_to_prop),
513         (rb_browser_source_constructor),
514         (rb_browser_source_cmd_choose_genre),
515         (rb_browser_source_cmd_choose_artist),
516         (rb_browser_source_cmd_choose_album), (impl_search),
517         (rb_browser_source_browser_changed_cb),
518         (rb_browser_source_do_query):
519         * sources/rb-browser-source.h:
520         * sources/rb-daap-source.c: (rb_daap_source_class_init),
521         (rb_daap_source_init), (rb_daap_source_dispose),
522         (rb_daap_source_set_property), (start_browsing),
523         (rb_daap_sources_init), (rb_daap_sources_shutdown),
524         (rb_daap_source_connection_cb), (rb_daap_source_activate),
525         (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri),
526         (rb_daap_source_get_headers), (rb_daap_source_get_status):
527         * sources/rb-daap-source.h:
528         * sources/rb-import-errors-source.h:
529         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
530         (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist),
531         (add_ipod_song_to_db), (load_ipod_db_idle_cb),
532         (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path),
533         (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions),
534         (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod),
535         (ipod_mkdir_with_parents), (build_ipod_dir_name),
536         (generate_ipod_filename), (ipod_path_from_unix_path),
537         (impl_delete_thyself):
538         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
539         (rb_iradio_source_init), (rb_iradio_source_constructor),
540         (rb_iradio_source_new), (guess_uri_scheme),
541         (rb_iradio_source_add_station),
542         (rb_iradio_source_async_update_play_statistics),
543         (genre_selection_reset_cb), (rb_iradio_source_do_query),
544         (stations_view_drag_data_received_cb),
545         (rb_iradio_source_cmd_new_station):
546         * sources/rb-iradio-source.h:
547         * sources/rb-library-source.c: (rb_library_source_dispose),
548         (rb_library_source_constructor),
549         (rb_library_source_location_button_clicked_cb),
550         (impl_get_config_widget), (rb_library_source_library_location_cb),
551         (sanitize_path), (filepath_parse_pattern),
552         (layout_example_label_update),
553         (rb_library_source_layout_filename_changed), (build_filename),
554         (impl_can_paste), (impl_paste),
555         (rb_library_source_add_child_source),
556         (rb_library_source_sync_child_sources):
557         * sources/rb-library-source.h:
558         * sources/rb-missing-files-source.h:
559         * sources/rb-play-queue-source.c:
560         (rb_play_queue_source_constructor), (impl_show_entry_view_popup):
561         * sources/rb-play-queue-source.h:
562         * sources/rb-playlist-source-recorder.c:
563         (rb_playlist_source_recorder_class_init), (update_speed_combobox),
564         (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc),
565         (rb_playlist_source_recorder_init),
566         (rb_playlist_source_recorder_new):
567         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
568         (rb_playlist_source_save_playlist),
569         (rb_playlist_source_entry_added_cb),
570         (rb_playlist_source_set_query_model),
571         (rb_playlist_source_add_to_map):
572         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
573         (rb_podcast_source_init), (rb_podcast_source_dispose),
574         (rb_podcast_source_finalize), (search_action_to_prop),
575         (rb_podcast_source_constructor), (rb_podcast_source_set_property),
576         (rb_podcast_source_get_property), (rb_podcast_source_new),
577         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
578         (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb),
579         (rb_podcast_source_show_browser), (construct_query_from_selection),
580         (rb_podcast_source_do_query), (impl_get_config_widget),
581         (rb_podcast_source_btn_file_change_cb),
582         (posts_view_drag_data_received_cb),
583         (rb_podcast_source_cmd_download_post),
584         (rb_podcast_source_cmd_cancel_download),
585         (rb_podcast_source_cmd_delete_feed),
586         (rb_podcast_source_cmd_properties_feed),
587         (rb_podcast_source_cmd_update_feed),
588         (rb_podcast_source_post_status_cell_data_func),
589         (rb_podcast_source_post_feed_cell_data_func),
590         (rb_podcast_source_post_date_cell_data_func),
591         (rb_podcast_source_load_finish_cb), (impl_receive_drag),
592         (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue),
593         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
594         (impl_get_status):
595         * sources/rb-podcast-source.h:
596         * sources/rb-removable-media-source.c:
597         (rb_removable_media_source_constructor):
598         * sources/rb-removable-media-source.h:
599         * sources/rb-source.h:
600         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
601         (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible),
602         (rb_sourcelist_model_row_is_separator),
603         (rb_sourcelist_model_drag_data_received),
604         (rb_sourcelist_model_row_drop_possible), (path_is_droppable),
605         (rb_sourcelist_model_row_drop_position),
606         (rb_sourcelist_model_get_drag_target),
607         (rb_sourcelist_model_row_draggable),
608         (rb_sourcelist_model_drag_data_get),
609         (rb_sourcelist_model_row_inserted_cb),
610         (rb_sourcelist_model_get_group_path):
611         * sources/rb-sourcelist.c: (rb_sourcelist_append),
612         (match_source_to_iter), (rb_sourcelist_source_to_iter),
613         (rb_sourcelist_visible_source_to_iter),
614         (rb_sourcelist_edit_source_name),
615         (rb_sourcelist_selection_changed_cb), (button_press_cb),
616         (key_release_cb), (name_notify_cb), (icon_notify_cb),
617         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
618         * sources/rb-static-playlist-source.c:
619         (rb_static_playlist_source_class_init),
620         (rb_static_playlist_source_constructor),
621         (rb_static_playlist_source_load_from_xml), (impl_reset_filters),
622         (impl_search), (rb_static_playlist_source_do_query),
623         (rb_static_playlist_source_browser_changed_cb),
624         (impl_receive_drag), (impl_save_contents_to_xml),
625         (rb_static_playlist_source_add_location_swapped),
626         (search_action_to_prop):
627         * sources/rb-static-playlist-source.h:
628         * widgets/bacon-volume.c: (bacon_volume_button_get_type):
629         * widgets/eggtrayicon.c: (egg_tray_icon_init),
630         (egg_tray_icon_get_orientation_property),
631         (egg_tray_icon_send_manager_message),
632         (egg_tray_icon_update_manager_window),
633         (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize),
634         (egg_tray_icon_send_message), (egg_tray_icon_notify):
635         * widgets/eggtrayicon.h:
636         * widgets/rb-cell-renderer-pixbuf.c:
637         (rb_cell_renderer_pixbuf_get_property),
638         (rb_cell_renderer_pixbuf_set_property),
639         (rb_cell_renderer_pixbuf_get_size),
640         (rb_cell_renderer_pixbuf_render),
641         (rb_cell_renderer_pixbuf_activate):
642         * widgets/rb-cell-renderer-rating.c:
643         (rb_cell_renderer_rating_class_init),
644         (rb_cell_renderer_rating_get_property),
645         (rb_cell_renderer_rating_set_property),
646         (rb_cell_renderer_rating_get_size),
647         (rb_cell_renderer_rating_render),
648         (rb_cell_renderer_rating_activate):
649         * widgets/rb-dialog.c:
650         * widgets/rb-dialog.h:
651         * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new),
652         (path_dialog_response_cb), (idle_set_sensitive), (do_response),
653         (rb_druid_page3_finish_cb):
654         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
655         (rb_entry_view_init), (rb_entry_view_set_property),
656         (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func),
657         (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting),
658         (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type),
659         (rb_entry_view_set_sorting_order),
660         (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column),
661         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
662         (rb_entry_view_playing_song_changed),
663         (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb),
664         (rb_entry_view_scroll_to_entry), (set_column_visibility),
665         (rb_entry_view_set_fixed_column_width),
666         (rb_entry_view_get_time_date_column_sample),
667         (rb_entry_view_state_get_type):
668         * widgets/rb-entry-view.h:
669         * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
670         (rb_header_sync), (slider_moved_timeout), (slider_moved_callback),
671         (changed_idle_callback), (rb_header_elapsed_changed_cb):
672         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
673         (update_browser_property_visibilty),
674         (rb_library_browser_construct_query), (restore_selection),
675         (rebuild_child_model), (rb_library_browser_set_selection),
676         (rb_library_browser_set_model):
677         * widgets/rb-library-browser.h:
678         * widgets/rb-property-view.c: (rb_property_view_class_init),
679         (rb_property_view_set_property), (rb_property_view_reset),
680         (rb_property_view_get_model), (rb_property_view_constructor),
681         (rb_property_view_set_selection),
682         (rb_property_view_selection_changed_cb),
683         (rb_property_view_button_press_cb),
684         (rb_property_view_set_search_func):
685         * widgets/rb-query-creator-private.h:
686         * widgets/rb-query-creator-properties.c:
687         (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData),
688         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
689         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
690         (relativeTimeCriteriaCreateWidget),
691         (relativeTimeCriteriaSetWidgetData):
692         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
693         (rb_query_creator_dispose), (rb_query_creator_load_query),
694         (rb_query_creator_new_from_query), (rb_query_creator_get_query),
695         (get_property_index_from_proptype), (select_criteria_from_value),
696         (create_property_option_menu), (create_criteria_option_menu),
697         (sort_option_menu_changed), (setup_sort_option_menu):
698         * widgets/rb-query-creator.h:
699         * widgets/rb-rating-helper.c: (rb_rating_install_rating_property),
700         (rb_rating_render_stars):
701         * widgets/rb-rating-helper.h:
702         * widgets/rb-rating.c: (rb_rating_expose):
703         * widgets/rb-rating.h:
704         * widgets/rb-search-entry.c: (rb_search_entry_clear),
705         (rb_search_entry_timeout_cb):
706         * widgets/rb-search-entry.h:
707         * widgets/rb-song-info.c: (rb_song_info_construct_single),
708         (rb_song_info_constructor), (rb_song_info_new),
709         (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog),
710         (rb_song_info_update_location), (rb_song_info_backward_clicked_cb),
711         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
712         (rb_song_info_query_model_changed_cb),
713         (rb_song_info_sync_entries_multiple),
714         (rb_song_info_sync_entry_single):
715         Strip all trailing whitespace.  Fixes #344293.
717 2006-07-13  Ryan P Skadberg  <skadz@stigmata.org>
719         * doc/reference/Makefile.am: Fix GTK Doc Build
721 2006-07-13  James Livingston  <doclivingston@gmail.com>
723         * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri
725         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above
726         instead of the LOCATION, and don't try to get the directory listing
727         for http URI schemes
729         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for
730         invalid utf8 in the error message, since apparently it can happen.
732 2006-07-12  William Jon McCann  <mccann@jhu.edu>
734         * sources/rb-import-errors-source.c:
735         (rb_import_errors_source_class_init),
736         (rb_import_errors_source_init),
737         (rb_import_errors_source_constructor),
738         (rb_import_errors_source_dispose), (rb_import_errors_source_new),
739         (impl_get_status), (rb_import_errors_source_songs_show_popup_cb):
740         * sources/rb-missing-files-source.c:
741         (rb_missing_files_source_class_init),
742         (rb_missing_files_source_init),
743         (rb_missing_files_source_constructor),
744         (rb_missing_files_source_dispose), (rb_missing_files_source_new),
745         (rb_missing_files_source_songs_sort_order_changed_cb),
746         (impl_get_status):
747         * sources/rb-source.c: (rb_source_class_init),
748         (rb_source_finalize), (update_visibility_idle),
749         (queue_update_visibility), (rb_source_set_hidden_when_empty),
750         (rb_source_set_property), (rb_source_get_property),
751         (default_get_status), (rb_source_update_play_statistics),
752         (default_add_to_queue), (_rb_source_show_popup),
753         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb),
754         (rb_source_gather_selected_properties),
755         (_rb_source_register_action_group):
756         * sources/rb-source.h:
757         * sources/rb-sourcelist.c: (visibility_notify_cb):
758         Don't use a fake model for import-errors and missing-files
759         sources.  Add a new source property "hidden-when-empty".
760         Update source visibility in an idle.  Clean up some whitespace.
761         From bug #346800
763 2006-07-12  James Livingston  <doclivingston@gmail.com>
765         * bindings/python/rb.defs:
766         * bindings/python/rb.override: bind rb_error_dialog
768         * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off
769         the current working directory for uninstalled plugins, and add the
770         class name to the method name.
772 2006-07-12  James Livingston  <doclivingston@gmail.com>
774         * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check
775         the sources EOF type if it's NULL. Fixes #346284.
777 2006-07-12  James Livingston  <doclivingston@gmail.com>
779         * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit
780         I accidently committed. Nothing to see here, move along...
782 2006-07-11  James Livingston  <doclivingston@gmail.com>
784         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
785         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of
786         Unknown.
788 2006-07-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
790         * doc/reference/rhythmbox.types: Fix doc build (bug #347223)
792 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
794         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
795         Don't try to set mtime if we've deleted the entry.
797 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
799         * bindings/python/rhythmdb.defs:
800         * rhythmdb/rhythmdb.c:
801         * rhythmdb/rhythmdb.h:
802         * rhythmdb/rhythmdb-private.h:
803         * rhythmdb/rhythmdb-query.c:
804         Move data structures holding registered entry types inside the
805         RhythmDB object, and add a vfunc called when new types are registered.
806         Add a flag to RhythmDBEntryType specifying whether entries of the type
807         should be saved to the on-disk database.
809         * sources/rb-audiocd-source.c:
810         * sources/rb-daap-source.c:
811         * sources/rb-ipod-source.c:
812         * plugins/generic-player/rb-generic-player-source.c:
813         * plugins/generic-player/rb-nokia770-source.c:
814         * plugins/generic-player/rb-psp-source.c:
815         Adjust to the above changes.
817         * rhythmdb/rhythmdb-tree.c:
818         If the type for an entry hasn't been registered yet, store the entry's
819         properties as-is, and convert them to a real entry when the type is
820         registered.  If the type doesn't get registered, save the entry back
821         to the database unmodified.  From #330226.
823 2006-07-10  James Livingston  <doclivingston@gmail.com>
825         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change
826         os.path.unlink to os.unlink, so removing stuff works.
828 2006-07-10  James Livingston  <doclivingston@gmail.com>
830         patch by: Ed Catmur  <ed@catmur.co.uk>
831               and Peter  <bugzilla-gnome-org@maubp.freeserve.co.uk>
833         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
834         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
835         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
836         * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the
837         internals of the cover database and Amazon lookup engine, and add
838         support for loading art from the local file system. Fixes #345688.
840         * plugins/rb/Coroutine.py:
841         * plugins/rb/Makefile.am:
842         * plugins/rb/__init__.py: Add the Coroutine class to the common python
843         plugin classes.
845 2006-07-10  James Livingston  <doclivingston@gmail.com>
847         * tests/Makefile.am: don't run the benchmark when doing "make check"
849         * po/POTFILES.in: more build fixes, from Matti Lindell
850         <feenixx@hotmail.com>. Fixes #347049.
853 2006-07-10  James Livingston  <doclivingston@gmail.com>
855         * plugins/cd-recorder/Makefile.am: build fixes
857         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't
858         attempt to change properties if we couldn't create an entry.
860         * shell/rb-source-header.c: (rb_source_header_init),
861         (rb_source_header_view_browser_changed_cb),
862         (rb_source_header_sync_control_state):
863         * shell/rb-tray-icon.c:
864         * widgets/Makefile.am:
865         * widgets/disclosure-widget.c:
866         * widgets/disclosure-widget.h: remove the remanents of the disclosure
867         widget, as it hasn't been used for a while.
869 2006-07-09  William Jon McCann  <mccann@jhu.edu>
871         * Makefile.am:
872         * configure.ac:
873         * data/ui/rhythmbox-ui.xml:
874         * plugins/Makefile.am:
875         * plugins/cd-recorder/.cvsignore:
876         * plugins/cd-recorder/Makefile.am:
877         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
878         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
879         (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init),
880         (rb_cd_recorder_plugin_finalize), (burn_source_iter_func),
881         (source_burn), (cmd_burn_source), (playlist_entries_changed),
882         (playlist_row_inserted_cb), (update_source),
883         (shell_selected_source_notify_cb), (impl_activate),
884         (impl_deactivate):
885         * shell/Makefile.am:
886         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source),
887         (rb_playlist_manager_cmd_save_playlist):
888         * shell/rb-shell.c: (rb_shell_select_source):
889         * sources/Makefile.am:
890         * sources/rb-playlist-source-recorder.c:
891         (rb_playlist_source_recorder_new):
892         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
893         (rb_playlist_source_add_to_map):
894         * sources/rb-playlist-source.h:
895         Move cd burning into a plugin.  Fixes #344300.
897 2006-07-10  James Livingston  <doclivingston@gmail.com>
899         * lib/eel-gconf-extensions.c:
900         * shell/rb-shell.c: remove some ununsed gnomeui includes
902         * widgets/Makefile.am:
903         * widgets/rb-song-display-box.c:
904         * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs,
905         since it isn't acutally used anywhere. Fixes #346926
907 2006-07-09  James Livingston  <doclivingston@gmail.com>
909         * bindings/python/rb.defs:
910         * bindings/python/rb.override:
911         * lib/rb-debug.c: (rb_debug_real):
912         * lib/rb-debug.h:
913         * plugins/rb/__init__.py: don't print out an extra newline when
914         diverting python print statements to RB's debug log.
916 2006-07-09  James Livingston  <doclivingston@gmail.com>
918         * rhythmdb/rhythmdb-property-model.c:
919         (rhythmdb_property_model_drag_data_get):
920         * sources/rb-sourcelist-model.c:
921         (rb_sourcelist_model_row_draggable),
922         (rb_sourcelist_model_drag_data_get): check that the path/iter we get
923         from the row reference is still valid. Fixes #346709.
925 2006-07-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
927         patch by: Peter  <bugzilla-gnome-org@maubp.freeserve.org.uk>
929         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple):
930         If all selected entries have the same rating, use that as the initial
931         rating for the multiple song info dialog.  Fixes #345970.
933 2006-07-09  James Livingston  <doclivingston@gmail.com>
935         * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try
936         to prevent #343345:
937                 - don't ever scale to 1x1, just hide the image in that case
938                 - don't fade when the window is minimised
939                 - use the last-good allocation width, not the current one - as
940                   it sometimes get weird values.
942 2006-07-08  William Jon McCann  <mccann@jhu.edu>
944         * data/ui/rhythmbox-ui.xml:
945         * shell/rb-shell.c:
946         Remove Import audio CD from menu.  Fixes #339732
948 2006-07-08  James Livingston  <doclivingston@gmail.com>
950         * metadata/test-metadata.c: (print_metadata_string),
951         (load_metadata_cb): print out all the metadata we have read, not just
952         a few.
954         * sources/rb-playlist-source-recorder.c: (insert_media_request_cb),
955         (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues.
957 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
959         * plugins/lyrics/lyrics.py:
960         Change the lyrics cache location to match Quod Libet's,
961         and fix the '&' -> 'and' substitution to require spaces.
963 2006-07-08  James Livingston  <doclivingston@gmail.com>
965         * bindings/python/rb.defs:
966         * bindings/python/rb.override: bind rb_debug_real to rb._debug
968         * configure.ac:
969         * plugins/Makefile.am:
970         * plugins/rb-python-module.c: (rb_python_module_init_python):
971         * plugins/rb/Makefile.am: add a place to put common python classes.
972         plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the
973         rb module/
975         * plugins/lyrics/Makefile.am:
976         * plugins/lyrics/Loader.py:
977         * plugins/artdisplay/artdisplay/Makefile.am:
978         * plugins/artdisplay/artdisplay/Loader.py:
979         * plugins/rb/Loader.py: move the loader class to rb.Loader
981         * plugins/rb/__init__.py: redirect stdout from python (e.g.
982         "print ...") to rb_debug. error output (e.g. exceptions) are still
983         printed on stderr.
985         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
986         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
987         * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader
988         instead of Loader.
990         Fixes #346895.
992 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
994         * shell/rb-shell-player.xml:
995         * shell/rb-shell-player.h:
996         Correct the details of the playing-song-property-changed signal.
998 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1000         * lib/rb-marshal.list:
1001         * shell/rb-shell-player.c: (rb_shell_player_class_init),
1002         (rb_shell_player_entry_changed_cb):
1003         * shell/rb-shell-player.h:
1004         * shell/rb-shell-player.xml:
1005         Emit a dbus signal when a property is changed on the playing entry.
1006         Fixes #332461.
1008 2006-07-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1010         * rhythmdb/rhythmdb-private.h:
1011         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
1012         Fix build break with gcc 4.1 by changing RBRefString pointers into
1013         gpointers.
1015 2006-07-07  James Livingston  <doclivingston@gmail.com>
1017         * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
1018         remove an extraneous !, which caused it not to monitor folders in the
1019         library with no tracks in them. Fixes #346759.
1021 2006-07-07  James Livingston  <doclivingston@gmail.com>
1023         * rhythmdb/rhythmdb-private.h:
1024         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
1025         (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
1026         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
1027         (rhythmdb_entry_get_string):
1028         * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
1029         flags for the affected properties. _sync_mirrored will get run
1030         automatically when a dirty property is accessed, which improves
1031         performance a bit (especially during startup) as we don't need to sync
1032         every time they change. From #325215.
1034         * tests/bench-rhythmdb-load.c
1035         * tests/Makefile.am: add a RhythmDB loading benchmark.
1037 2006-07-06  James Livingston  <doclivingston@gmail.com>
1039         * bindings/python/rb.defs:
1040         * bindings/python/rb.override: some more fixes, so that
1041         python classes derived from RBSource work correctly.
1043 2006-07-06  James Livingston  <doclivingston@gmail.com>
1045         * configure.ac: bump pygtk requirements to 2.8, since we're already
1046         using some features of it, and weird things will happen if people are
1047         actually trying to use pygtk 2.6.
1049         * bindings/python/rb.override:
1050         * bindings/python/rhythmdb.defs:
1051         * bindings/python/rhythmdb.override: allow python to set
1052         RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
1054         * sources/rb-browser-source.c: remove some left over member variables
1056 2006-07-06  James Livingston  <doclivingston@gmail.com>
1058         * rhythmdb/rhythmdb.c:
1059         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
1060         (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
1061         rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
1062         former is pointless (as rhythmdb already knows which it should use)
1063         and the latter doesn't seem useful at all, and possibly bad. From
1064         #330226.
1066         * bindings/python/rhythmdb.defs:
1067         * bindings/python/rhythmdb.override:
1068         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
1069         (handle_song_listing):
1070         * podcast/rb-podcast-manager.c:
1071         (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
1072         (rb_podcast_manager_insert_feed):
1073         * sources/rb-audiocd-source.c: (entry_set_string_prop),
1074         (rb_audiocd_create_track_entry):
1075         * sources/rb-ipod-source.c: (entry_set_string_prop),
1076         (add_ipod_song_to_db):
1077         * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
1078         * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
1080 2006-07-05  James Livingston  <doclivingston@gmail.com>
1082         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
1083         (playlist_load_end_cb), (rb_playlist_manager_parse_file),
1084         (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
1085         totem-plparser gives us, or the file name if it doesn't give us
1086         anything. Set the default file name when saving too. Fixes #345261
1088 2006-07-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1090         patch by: Ed Catmur  <ed@catmur.co.uk>
1092         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
1093         Skip all hidden directories, not just trash, and skip unreadable
1094         files.  Fixes #346322.
1096 2006-07-04  James Livingston  <doclivingston@gmail.com>
1098         * plugins/rb-module.h:
1099         * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
1100         (rb_module_new):
1101         * plugins/rb-plugin.h:
1102         * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
1103         (rb_plugin_finalise), (rb_plugin_set_property),
1104         (rb_plugin_get_property), (rb_plugin_activate),
1105         (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
1106         (rb_plugin_find_file):
1107         * plugins/rb-plugins-engine.c: (load_plugin_module):
1108         * plugins/rb-python-module.c: (rb_python_module_new_object),
1109         (rb_python_module_new):
1110         * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
1111         rb_plugin_find_file method for locating plugin-specific data. Fixes
1112         346473.
1114         * bindings/python/rb.defs:
1115         * plugins/Makefile.am:
1116         * plugins/generic-player/rb-generic-player-plugin.c:
1117         (create_source_cb):
1118         * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
1120 2006-07-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1122         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
1123         (rb_metadata_can_save), (rb_metadata_save):
1124         Protect the dbus connection with a mutex.
1126 2006-07-03  James Livingston  <doclivingston@gmail.com>
1128         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
1129         case of the parser/tagger not being able to be created.
1131 2006-07-03  James Livingston  <doclivingston@gmail.com>
1133         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
1135         * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
1136         window resizable, as it used to be. Fixes #345940.
1138 2006-07-01  James Livingston  <doclivingston@gmail.com>
1140         Patch from Ståle Lyngaas  <staale@lyngaas.com>
1142         * rhythmdb/rhythmdb.h:
1143         * rhythmdb/rhythmdb-private.h:
1144         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
1145         (rhythmdb_tree_parser_end_element), (save_entry):
1146         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
1147         (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
1148         (set_props_from_metadata), (rhythmdb_entry_set_internal),
1149         (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
1150         MusicBrainz track IDs in the database, and bump the on-disk version
1151         number to trigger a metadata reload.
1153         * backends/gstreamer/rb-player-gst.c: (process_tag):
1154         * metadata/rb-metadata-common.c:
1155         * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
1156         (rb_metadata_gst_field_to_gst_tag):
1157         * metadata/rb-metadata.h: grab MB track IDs and use them.
1159         * plugins/audioscrobbler/rb-audioscrobbler.c:
1160         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
1161         (rb_audioscrobbler_timeout_cb),
1162         (rb_audioscrobbler_song_changed_cb): send the MB track id along with
1163         the other metadata. Fixes #343491.
1165 2006-06-30  James Livingston  <doclivingston@gmail.com>
1167         * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
1168         method.
1170 2006-06-30  James Livingston  <doclivingston@gmail.com>
1172         * bindings/python/rb.defs:
1173         * sources/rb-browser-source.c: (rb_browser_source_class_init),
1174         (rb_browser_source_songs_show_popup_cb),
1175         (default_show_entry_popup):
1176         * sources/rb-browser-source.h:
1177         * sources/rb-library-source.c: (rb_library_source_class_init),
1178         (rb_library_source_constructor), (impl_show_popup): allow
1179         RBBrowserSource-derived sources to override the entry context menu
1180         properly - by making it a virtual function, rather than relying on
1181         signal handler order (which doesn't really work).
1183 2006-06-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1185         * rhythmdb/rhythmdb-query-model.c:
1186         (rhythmdb_query_model_reapply_query_cb):
1187         Use the original query, not the preprocessed query, when redoing
1188         the query to pick up entries that previously didn't match.
1189         Preprocessing the query twice is bad.  Fixes #346186.
1191 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1193         * plugins/audioscrobbler/rb-audioscrobbler.c:
1194         (rb_audioscrobbler_song_changed_cb):
1195         Just check if the elapsed time has been reset, rather
1196         than checking if it's a different track.  Fixes #344827.
1198 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1200         * backends/gstreamer/rb-player-gst.c:
1201         Set cdda source read-speed to 1.  Fixes gaps in playback while the
1202         drive spins up, #344576.
1204 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1206         * plugins/audioscrobbler/rb-audioscrobbler.c:
1207         (rb_audioscrobbler_perform):
1208         Use HTTP/1.1.  Fixes #345895.
1210 2006-06-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1212         * lib/rb-preferences.h:
1213         * lib/rb-proxy-config.c: (rb_proxy_config_init),
1214         (check_auto_proxy_config), (get_proxy_config):
1215         Don't try to use a HTTP proxy if no proxy host is specified.
1216         Alert the user to the fact that we don't support automatic proxy
1217         configuration as infrequently as possible.  From #345712.
1219 2006-06-25  James Livingston  <doclivingston@gmail.com>
1221         * rhythmdb/rhythmdb-property-model.c:
1222         (rhythmdb_property_model_set_property): connect to the
1223         "post-entry-delete" signal, rather than "entry-deleted". This ensures
1224         things get removed correctly, fixes #338183.
1226 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1228         * rhythmdb/rhythmdb-query-model.c:
1229         (rhythmdb_query_model_drag_data_received):
1230         Fix build break.
1232 2006-06-25  James Livingston  <doclivingston@gmail.com>
1234         patch by Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
1236         * widgets/rb-search-entry.c: (rb_search_entry_init),
1237         (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
1238         search box have a pale yellow background when it's in use, except for
1239         when the user has an "accessability" theme. Code based heavily on
1240         Epiphany's. Fixes #344416.
1242 2006-06-25  James Livingston  <doclivingston@gmail.com>
1244         * plugins/lyrics/lyrics.py:
1245         * plugins/pythonconsole/pythonconsole.py:
1246         * plugins/sample-python/sample-python.py: don't import gettext stuff
1247         as _, as the C code does this for us. Fixes i18n for python plugins,
1248         #343081
1250 2006-06-25  James Livingston  <doclivingston@gmail.com>
1252         * rhythmdb/rhythmdb-query-model.c:
1253         (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
1254         a model use a reorder rather then deleting and re-adding the entry.
1255         This means it does do weird things like stop playback of a track that
1256         is dragged, fixing #337657.
1258 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1260         * metadata/rb-metadata-dbus-service.c:
1261         Add missing #include <glib/gi18n.h> from previous commit.
1263 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1265         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
1267         * metadata/rb-metadata-dbus-service.c: (main):
1268         Initialize gettext in the metadata helper.
1269         * metadata/rb-metadata-gst.c:
1270         Make some strings translatable.  Fixes #345286.
1272 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1274         * configure.ac:
1275         * lib/Makefile.am:
1276         * lib/rb-stock-icons.c: (rb_stock_icons_init):
1277         Inline the custom icons so they can always be loaded, but are still
1278         themable.  Fixes #345796.
1280 2006-06-23  James Livingston  <doclivingston@gmail.com>
1282         * sources/rb-auto-playlist-source.c:
1283         (rb_auto_playlist_source_do_query): stop the search box being applied
1284         for limits in auto playlists. Fixes #345307.
1286 2006-06-23  James Livingston  <doclivingston@gmail.com>
1288         * shell/rb-shell-clipboard.c:
1289         (rb_shell_clipboard_set_source_internal),
1290         (rb_shell_clipboard_sync), (add_playlist_to_menu),
1291         (rebuild_playlist_menu): don't use the add-to-playlist menu for
1292         non-library tracks, as we don't supprot it yet. From #345248.
1294 2006-06-23  James Livingston  <doclivingston@gmail.com>
1296         patch by: Brian Cameron  <brian.cameron@sun.com>
1298         * plugins/generic-player/rb-generic-player-plugin.c:
1299         * plugins/generic-player/rb-generic-player-source.c:
1300         * plugins/generic-player/rb-nokia770-source.c:
1301         * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
1302         Fixes 345673.
1304 2006-06-22  James Livingston  <doclivingston@gmail.com>
1306         * backends/rb-player.c: (rb_player_interface_init):
1307         * lib/rb-marshal.list:
1308         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
1309         * rhythmdb/rhythmdb-query-model.c:
1310         (rhythmdb_query_model_class_init):
1311         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
1312         * shell/rb-shell-player.c: (rb_shell_player_class_init):
1313         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
1314         * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
1315         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
1316         * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
1317         marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
1318         possible not.
1320 2006-06-20  James Livingston  <doclivingston@gmail.com>
1322         patch by Alex Lancaster  <alexl@users.sourceforge.net>
1324         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
1325         metadata to clients. Fixes #345276.
1327 2006-06-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1329         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
1330         (rb_add_id3_tagger):
1331         Fix plugin/element version detection for id3v2mux.
1333 2006-06-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1335         * sources/rb-source.c: (rb_source_finalize),
1336         (rb_source_set_property), (rb_source_post_entry_deleted_cb),
1337         (_autohide_update_visibility),
1338         (_rb_autohide_source_post_entry_deleted_cb),
1339         (_rb_autohide_source_row_inserted_cb),
1340         (_rb_source_hide_when_empty):
1341         Use post-entry-delete signal to update status and autohide sources.
1343 2006-06-20  James Livingston  <doclivingston@gmail.com>
1345         * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
1346         "selection changed" idle callback, if present.
1348 2006-06-19  James Livingston  <doclivingston@gmail.com>
1350         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
1352         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
1353         don't try to translate the empty string. Fixes #345285.
1355 2006-06-19  James Livingston  <doclivingston@gmail.com>
1357         * bindings/python/rhythmdb.override: more python binding fixes
1359 2006-06-19  James Livingston  <doclivingston@gmail.com>
1361         * lib/rb-util.c: (rb_copy_function):
1362         * lib/rb-util.h: add a function that returns the same pointer it was
1363         passed.
1365         * rhythmdb/rhythmdb.h:
1366         * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
1367         (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
1368         "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
1369         and RhythmDBEntryType into boxed types. This allows them to be used
1370         from python. Note that entry-types aren't actually reference counted
1371         (yet).
1373         * bindings/python/rb.defs:
1374         * bindings/python/rhythmdb.defs:
1375         * bindings/python/rhythmdb.override: Adapt to the above, and fix the
1376         return types of some bindings.
1378         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
1379         (process_added_entries_cb), (rhythmdb_entry_finalize),
1380         (rhythmdb_entry_delete):
1381         * daapsharing/rb-daap-connection.c:
1382         (rb_daap_connection_class_init), (rb_daap_connection_set_property),
1383         (rb_daap_connection_get_property):
1384         * plugins/generic-player/rb-generic-player-source.c:
1385         (rb_generic_player_source_load_songs), (load_playlist_file):
1386         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
1387         * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
1388         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
1389         (idle_process_update), (rhythmdb_query_model_add_entry),
1390         (rhythmdb_query_model_insert_into_main_list),
1391         (rhythmdb_query_model_insert_into_limited_list),
1392         (rhythmdb_query_model_remove_from_main_list),
1393         (rhythmdb_query_model_remove_from_limited_list),
1394         (rhythmdb_query_model_drag_data_received),
1395         (rhythmdb_query_model_add_results),
1396         (rhythmdb_query_model_get_column_type),
1397         (rhythmdb_query_model_get_value):
1398         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
1399         (rhythmdb_tree_entry_delete), (remove_one_song):
1400         * shell/rb-play-order-linear-loop.c:
1401         (rb_linear_play_order_loop_get_next),
1402         (rb_linear_play_order_loop_get_previous):
1403         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
1404         (rb_linear_play_order_get_previous):
1405         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
1406         (rb_queue_play_order_get_previous):
1407         * shell/rb-play-order-random.c: (rb_random_play_order_init),
1408         (rb_random_filter_history), (rb_random_play_order_get_next),
1409         (rb_random_play_order_go_next), (rb_random_db_changed),
1410         (rb_random_playing_entry_changed):
1411         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
1412         (remove_from_history), (add_randomly_to_history),
1413         (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
1414         * shell/rb-play-order.c: (rb_play_order_class_init),
1415         (rb_play_order_set_property), (rb_play_order_get_property),
1416         (rb_play_order_update_have_next_previous):
1417         * shell/rb-play-order.h:
1418         * shell/rb-shell-clipboard.c:
1419         (rb_shell_clipboard_process_deletions),
1420         (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
1421         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
1422         * sources/rb-auto-playlist-source.c:
1423         (rb_auto_playlist_source_constructor):
1424         * sources/rb-browser-source.c: (rb_browser_source_class_init),
1425         (rb_browser_source_set_property), (rb_browser_source_get_property),
1426         (rb_browser_source_do_query):
1427         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
1428         * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
1429         * sources/rb-ipod-source.c: (add_rb_playlist),
1430         (add_ipod_song_to_db), (impl_paste):
1431         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
1432         (rb_iradio_source_set_property), (rb_iradio_source_get_property):
1433         * sources/rb-library-source.c: (layout_example_label_update):
1434         * sources/rb-missing-files-source.c:
1435         (rb_missing_files_source_class_init),
1436         (rb_missing_files_source_set_property),
1437         (rb_missing_files_source_get_property),
1438         (rb_missing_files_source_new):
1439         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
1440         (rb_playlist_source_set_property),
1441         (rb_playlist_source_get_property):
1442         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
1443         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
1444         (construct_query_from_selection):
1445         * sources/rb-removable-media-source.c: (impl_delete_thyself):
1446         * sources/rb-static-playlist-source.c:
1447         (rb_static_playlist_source_constructor),
1448         (rb_static_playlist_source_add_location_internal):
1449         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
1450         * widgets/rb-header.c: (rb_header_class_init),
1451         (rb_header_set_property), (rb_header_get_property):
1452         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
1453         (rb_library_browser_set_property),
1454         (rb_library_browser_get_property):
1455         * widgets/rb-song-info.c: (rb_song_info_class_init),
1456         (rb_song_info_get_property): Adjust for the _ref/_unref prototype
1457         change, do s/pointer/boxed/ in many places and free entry-types
1458         properly.
1460 2006-06-18  James Livingston  <doclivingston@gmail.com>
1462         * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
1463         unushed GThreadPool non-exclusive threads every now and then.
1465         * rhythmdb/rhythmdb-private.h:
1466         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
1467         (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
1468         threads. Fixes #341593
1470 2006-06-19  James Livingston  <doclivingston@gmail.com>
1472         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
1473         the "Track number" checkbox actually work for playlists. From #329986.
1475 2006-06-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1477         * plugins/generic-player/rb-generic-player-source.c:
1478         Get playlist and audio folder information from HAL.  Fixes #333845.
1480 2006-06-18  James Livingston  <doclivingston@gmail.com>
1482         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
1484         * widgets/rb-entry-view.h:
1485         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
1486         (rb_entry_view_append_column_custom),
1487         (rb_entry_view_insert_column_custom): add support for inserting custom
1488         columns at arbitrary locations, rather than just appending to the end.
1490         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
1491         the playlists "track number" column go at the start, and add a normal
1492         track number column. Fixes #329986.
1494 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
1496         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
1497         a mnemonic conflict.  Add ellipses to the edit button.
1498         * sources/rb-library-source.c:
1499         (rb_library_source_edit_profile_clicked_cb),
1500         (impl_get_config_widget):  Hide dialog separator.  Assign a 
1501         mnemonic widget to the labels. Fixes #344114.
1503 2006-06-18  James Livingston  <doclivingston@gmail.com>
1505         * configure.ac: bump version
1506         * NEWS: add NEWS for 0.9.5
1508 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1510         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
1511         (rb_uri_handle_recursively):
1512         Don't attempt to recurse into directories we can't open.  
1513         Fixes #341485.
1515 2006-06-18  James Livingston  <doclivingston@gmail.com>
1517         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
1519         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
1520         #344610.
1522 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1524         * bindings/python/rb.defs:
1525         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
1526         * shell/rb-shell-player.h:
1527         * shell/rb-shell.c: (rb_shell_play_entry):
1528         Add source parameter to rb_shell_player_play_entry, using the selected
1529         source if not specified.
1531         * shell/rb-play-order.c: (rb_play_order_class_init),
1532         (rb_play_order_finalize), (rb_play_order_query_model_changed),
1533         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
1534         (default_playing_entry_removed):
1535         * shell/rb-play-order.h:
1536         Move entry removal handling back to the row-deleted signal, as we need
1537         the entry to be present in the model.  When changing to the next entry
1538         after the playing entry is deleted, set the new entry as the playing
1539         entry and then sync it to the player in an idle handler, so we don't
1540         end up playing it if it was removed too.
1541         * shell/rb-play-order-queue.c:
1542         (rb_queue_play_order_playing_entry_changed),
1543         (rb_queue_play_order_playing_entry_removed):
1544         Use the playing-entry-removed handler from the play order class,
1545         setting a flag so we don't try to remove the already-removed entry
1546         from the model.
1548         This makes removal of the playing entry from playlists etc. work more
1549         or less correctly for all play orders.  Fixes #344627.
1551 2006-06-17  James Livingston  <doclivingston@gmail.com>
1553         patch by: Elijah Newren  <newren@gmail.com>
1555         * tests/test-rhythmdb.c: fix the build with older versions of check
1556         (again). Fixes #343718.
1558 2006-06-17  James Livingston  <doclivingston@gmail.com>
1560         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
1561         name for capsfilter's "caps" property. Fixes #344968.
1563 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1565         * shell/rb-shell-player.c: (rb_shell_player_playpause):
1566         Don't leak the selected entry list when finding an entry to play.
1568 2006-06-17  James Livingston  <doclivingston@gmail.com>
1570         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
1571         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
1572         as a O(1) one works fine, and it will get called often when the user
1573         deleted multiple tracks. Part of #344922.
1575 2006-06-17  James Livingston  <doclivingston@gmail.com>
1577         * shell/rb-shell-player.c: (rb_shell_player_stop): make
1578         rb_shell_player_stop and rb_shell_player_playpause not mutually
1579         recursive. Fixed #336912.
1581 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1583         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
1584         Treat nested elements inside properties as unknown.  Fixes parsing of
1585         podcast feeds with unescaped HTML in description tags, bug #344532.
1587 2006-06-15  William Jon McCann  <mccann@jhu.edu>
1589         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
1590         when quitting.  Fixes #344875.
1592 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1594         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
1595         Move the playing-entry-removed handling to after the normal entry
1596         delete handling, since we're called after the entry has been removed
1597         from the query model now.  Fixes crashes described in #344627.
1599 2006-06-13  William Jon McCann  <mccann@jhu.edu>
1601         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
1602         (rb_rating_get_rating_from_widget):
1603         * widgets/rb-rating.c: (rb_rating_class_init),
1604         (rb_rating_finalize), (rb_rating_get_property),
1605         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
1606         (rb_rating_button_press_cb):
1607         Don't crash when ratings icons can't be found.  Fixes #344533.
1609 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1611         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
1613 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1615         * Makefile.am:
1616         * configure.ac:
1617         * remote/Makefile.am:
1618         * remote/dbus/Makefile.am:
1619         * remote/dbus/rb-client.c:
1620         * shell/Makefile.am:
1621         New dbus client program providing --play/--next etc. arguments.
1622         Fixes #340863, #155763.
1624 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1626         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
1627         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
1629 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
1631         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
1633         * rhythmdb/rhythmdb-query-model.c:
1634         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
1635         to Library incorrectly
1637 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1639         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
1640         Return input string untouched if gnome_vfs_uri_new returns NULL.
1641         * sources/rb-static-playlist-source.c: (impl_receive_drag),
1642         (rb_static_playlist_source_add_list_uri):
1643         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
1644         URIs don't break it.  Fixes #339033.
1646 2006-06-08  James Livingston  <doclivingston@gmail.com>
1648         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
1649         for sources on the edge (i.e. the queue). Fixes #328409.
1651         * sources/rb-ipod-source.c: fix typo
1653 2006-06-08  James Livingston  <doclivingston@gmail.com>
1655         * configure.ac:
1656         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
1657         --enable-ipod-writing to enable the ipod syncing code.
1659 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1661         * sources/rb-library-source.c: (layout_example_label_update):
1662         add missing comma so we don't generate broken markup.
1664 2006-06-08  James Livingston  <doclivingston@gmail.com>
1666         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
1667         tag-merging with id3v2mux as well as id3mux. From #342330.
1669 2006-06-07  James Livingston  <doclivingston@gmail.com>
1671         * tests/test-rhythmdb.c: #define fail_if for old version of check
1672         which don't have it. Hopefully fixes #343718.
1674 2006-06-07  James Livingston  <doclivingston@gmail.com>
1676         * shell/rb-playlist-manager.c:
1677         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
1678         g_value_array_free with NULL. Fixes #341053.
1680 2006-06-07  James Livingston  <doclivingston@gmail.com>
1682         * shell/rb-playlist-manager.c:
1683         (rb_playlist_manager_playlist_entries_changed),
1684         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
1685         instead of "row-removed", which fixes updating "burn playlist"
1686         sensitivity. Fixes #331119.
1688 2006-06-07  James Livingston  <doclivingston@gmail.com>
1690         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
1691         rather than restarting if the source uses _RETRY and there is an
1692         actual error (like an undecodable stream) rather than it just dropping
1693         out and causing EOS.
1695 2006-06-07  James Livingston  <doclivingston@gmail.com>
1697         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
1698         free the pixbufs if they couldn't be loaded. Fixed #343852.
1700 2006-06-07  James Livingston  <doclivingston@gmail.com>
1702         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
1703         the close button on the dialog work. Fixes #335346.
1705 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1707         * sources/rb-sourcelist-model.c: (path_is_droppable),
1708         (path_is_reorderable):
1709         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
1710         (row_activated_cb), (emit_show_popup), (key_release_cb),
1711         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
1712         Ignore group marker rows in the source list.  Fixes #344089, a couple
1713         of other crashers, and some weird UI glitches too.
1715 2006-06-07  James Livingston  <doclivingston@gmail.com>
1717         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
1718         the seeking query fails. This is needed because many gst elements
1719         don't implement the seeking query yet. Should fix 329977.
1721 2006-06-06  James Livingston  <doclivingston@gmail.com>
1723         * configure.ac: bump version for a prerelease, turn on track transfer
1724         by default.
1726         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
1727         ipod transfer stuff, since it has big issues and we'll hopefully land
1728         real support (bug 310774) after 0.9.5
1730 2006-06-06  James Livingston  <doclivingston@gmail.com>
1732         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
1733         id3v2mux once we've detected it.
1735 2006-06-06  James Livingston  <doclivingston@gmail.com>
1737         * lib/Makefile.am:
1738         * tests/test-rhythmdb.c: undo accidental commit which caused
1739         rb-thread.c to be built (which it isn't normally)
1741 2006-06-06  James Livingston  <doclivingston@gmail.com>
1743         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
1744         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
1745         fail_{if/unless} calls, as some versions of check need them (they are
1746         optional in others). Should fix bug 343718.
1748 2006-06-06  James Livingston  <doclivingston@gmail.com>
1750         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
1751         343836.
1752         
1753         * lib/Makefile.am:
1754         * lib/rb-thread.c: (process_actions):
1755         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
1756         tests that don't pass.
1758 2006-06-05  James Livingston  <doclivingston@gmail.com>
1760         * data/glade/Makefile.am:
1761         * data/glade/load-failure.glade:
1762         * data/rhythmbox.schemas: remove the remainder of the old load-failure
1763         dialog.
1765 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1767         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
1768         checked in.
1770 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1772         * bindings/python/rb.defs:
1773         * sources/rb-source.h:
1774         * sources/rb-source.c: (rb_source_class_init),
1775         (rb_source_set_property), (rb_source_get_property),
1776         (rb_sourcelist_group_get_type):
1777         Add 'sourcelist-group' property on the RBSource class, describing how
1778         sources should be grouped in the source list.
1780         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
1781         (rb_sourcelist_model_new), (real_row_is_separator),
1782         (rb_sourcelist_model_is_row_visible),
1783         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
1784         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
1785         (rb_sourcelist_model_row_draggable),
1786         (rb_sourcelist_model_row_inserted_cb),
1787         (rb_sourcelist_model_row_deleted_cb),
1788         (rb_sourcelist_model_get_group_path):
1789         * sources/rb-sourcelist-model.h:
1790         * sources/rb-sourcelist.c: (rb_sourcelist_init),
1791         (rb_sourcelist_append):
1792         Add group marker rows for each sourcelist group, and use these to
1793         insert sources in the right place.  Sort transient sources (DAAP
1794         shares) by name.  Show the group marker rows as separators when the
1795         next visible row is a source.  Make persistant sources (playlists) and
1796         removable sources reorderable using drag and drop, restricting them
1797         within the source groups.
1798         
1799         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
1800         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
1801         * sources/rb-daap-source.c: (rb_daap_source_new):
1802         * sources/rb-ipod-source.c: (rb_ipod_source_new):
1803         * sources/rb-static-playlist-source.c:
1804         (rb_static_playlist_source_new):
1805         * plugins/generic-player/rb-generic-player-source.c:
1806         (rb_generic_player_source_new):
1807         * plugins/generic-player/rb-nokia770-source.c:
1808         (rb_nokia770_source_new):
1809         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
1810         Add source list group information to existing source classes.
1812         Fixes #318754 and #336492.
1814 2006-06-04  James Livingston  <doclivingston@gmail.com>
1816         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
1817         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
1818         win32 build fixes.
1820 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1822         * rhythmdb/rhythmdb-query-model.c:
1823         (rhythmdb_query_model_class_init),
1824         (rhythmdb_query_model_remove_from_main_list):
1825         * rhythmdb/rhythmdb-query-model.h:
1826         Add a new 'post-entry-delete' signal, emitted when the entry has been
1827         removed from the model's data structures.
1829         * shell/rb-play-order.c: (rb_play_order_finalize),
1830         (rb_play_order_query_model_changed),
1831         (rb_play_order_post_entry_delete_cb):
1832         Use the new signal to update the play order, so the queue play order
1833         doesn't try to scroll to entries that don't exist in a way that causes
1834         the tree view to crash.  Fixes #340216.
1836 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1838         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
1839         Fix rb_debug call I missed previously.
1841 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1843         * metadata/rb-metadata-gst.c:
1844         Don't use NULL as the error message for ignored files, as it crashes
1845         with some C libraries.  Fixes #343713.
1847 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1849         * widgets/rb-dialog.c: (rb_error_dialog):
1850         * widgets/rb-dialog.h:
1851         Mark rb_error_dialog as taking printf-like arguments, and use a format
1852         string for the primary message rather than passing in the message
1853         directly.
1855         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
1856         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
1857         (info_available_cb):
1858         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
1859         * shell/rb-removable-media-manager.c:
1860         (rb_removable_media_manager_eject_medium_cb):
1861         Make sure all calls to rb_error_dialog use string constants for the
1862         format string rather than passing the error message directly.  Remove
1863         an extra %s from the message used when playback fails.  Fixes #343562.
1865         * lib/rb-debug.h:
1866         * sources/rb-audiocd-source.c:
1867         * plugins/audioscrobbler/rb-audioscrobbler.c:
1868         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
1869         Mark rb_debug as taking printf-like arguments and fix a few resulting
1870         warnings.
1872 2006-06-02  James Livingston  <doclivingston@gmail.com>
1874         * configure.ac:
1875         + macros/check.m4: add support for using check for unit tests, the .m4
1876         files is so autogen can run without check being installed
1878         * tests/Makefile.am:
1879         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
1880         some of the old tests, and add some new ones. Currently
1881         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
1882         yet (the query doesn't return any entries).
1884         - tests/deserialization-test1.xml:
1885         - tests/deserialization-test2.xml:
1886         - tests/deserialization-test3.xml:
1887         - tests/test-rhythmdb-indexing.c:
1888         - tests/test-rhythmdb-simple.c:
1889         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
1890         have been ported
1892         - tests/test-cd.c:
1893         - tests/test-cmdline.c: remove obsolete tests
1895 2006-06-02  James Livingston  <doclivingston@gmail.com>
1897         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
1898         (rb_add_id3_tagger), (rb_metadata_init): add support for using
1899         id3v2mux, and check whether we are using a version of id3mux that has
1900         the correct merge-mode behaviour.
1902         * plugins/sample-python/Makefile.am: fix distcheck.
1904         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
1905         the changed-files source was added before trying to remove it.
1907         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
1908         *old* bug which would crash if a query with top-level disjunctions
1909         tried to check later disjunctive parts. Hooray for unit-testing.
1911 2006-06-02  William Jon McCann  <mccann@jhu.edu>
1913         * player/rb-recorder-gst.c (rb_recorder_set_device):
1914         Check for a null drive.
1916 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1918         * lib/Makefile.am:
1919         * lib/rb-stock-icons.c: (rb_stock_icons_init):
1920         Register the app icon as a builtin if the icon theme can't find it.
1922 2006-05-31  James Livingston  <doclivingston@gmail.com>
1924         * player/rb-recorder-gst.c: add missing include.
1926 2006-05-30  William Jon McCann  <mccann@jhu.edu>
1928         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
1929         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
1930         (tick_timeout_cb), (rb_recorder_sync_pipeline),
1931         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
1932         (rb_recorder_set_device), (rb_recorder_get_default_device):
1933         * shell/main.c: (main):
1934         * shell/rb-removable-media-manager.c:
1935         (rb_removable_media_manager_finalize),
1936         (get_nautilus_burn_drive_for_path),
1937         (rb_removable_media_manager_playing_uri_changed_cb),
1938         (rb_removable_media_manager_load_media),
1939         (nautilus_burn_drive_get_device),
1940         (rb_removable_media_manager_scan):
1941         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
1943         Update for libnautilus-burn 2.15.3 API changes.
1944         Fixes #342604
1946 2006-05-30  James Livingston  <doclivingston@gmail.com>
1948         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
1949         "return" to that it asks for the password again if it was wrong.
1951 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1953         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
1954         typefind element.
1956 2006-05-30  James Livingston  <doclivingston@gmail.com>
1958         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
1959         (download_progress_cb): don't do wonky things if the transfer
1960         "suceeds" without transferring any data.
1962 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1964         * sources/rb-library-source.c: (layout_example_label_update),
1965         (build_filename):  Fix crash when no audio profile is selected.
1966         Fixes #341447.
1968 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1970         * shell/rb-shell.c: (rb_shell_clear_queue):
1971         * shell/rb-shell.h:
1972         * shell/rb-shell.xml:
1973         * sources/rb-play-queue-source.c:
1974         (rb_play_queue_source_clear_queue),
1975         (rb_play_queue_source_cmd_clear):
1976         * sources/rb-play-queue-source.h:
1977         Add clearQueue dbus method.
1979 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1981         * shell/main.c: (main):  Implement --quit option.
1983 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1985         * rhythmdb/rhythmdb-private.h:
1986         * rhythmdb/rhythmdb-tree.h:
1987         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
1988         (rhythmdb_entry_insert), (rhythmdb_entry_set),
1989         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
1990         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
1991         (rhythmdb_entry_get_boolean):
1992         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
1993         bitmask, giving the db backend anything past the first 16 bits for 
1994         its own private use.
1996         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
1997         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
1998         Add a 'loading' flag to indicate that an entry is being loaded from
1999         disk, and use that to ignore entry_set operations on such entries
2000         rather than the 'inserted' flag, which doesn't quite mean the same
2001         thing.  Fixes #342694.
2003 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2005         * shell/rb-shell.xml: Remove visibility property, since it causes
2006         crashes (dbus bug 7057) and doesn't do much else.
2008 2006-05-28  James Livingston  <doclivingston@gmail.com>
2010         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
2012         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
2013         * po/POTFILES.in: fix some more i18n issues.
2015 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2017         * bindings/python/rb.defs:
2018         * shell/rb-shell-player.c: (rb_shell_player_playpause),
2019         (filter_mmkeys):
2020         * shell/rb-shell-player.h:
2021         Deprecate the useless 'ignore_stop' parameter to
2022         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
2023         API.  From bug #334829.
2025 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2027         * plugins/generic-player/rb-generic-player-source.c:
2028         (visit_playlist_dirs), (default_transform_playlist_uri):
2029         When playlist parsing fails, unref the playlist, not the parent
2030         source.  Fix memory leak in playlist uri transform.
2031         * plugins/generic-player/rb-nokia770-source.c:
2032         (impl_transform_playlist_uri):
2033         Fix memory leak in playlist uri transform.
2035 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
2037         * doc/reference/Makefile.am: fix grk-doc build
2039 2006-05-27  James Livingston  <doclivingston@gmail.com>
2041         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
2043         * plugins/lyrics/lyrics.py:
2044         * po/POTFILES.in: Make strings in plugins translatable. From bug
2045         343081.
2047 2006-05-27  James Livingston  <doclivingston@gmail.com>
2049         * backends/Makefile.am:
2050         * backends/gstreamer/Makefile.am:
2051         * lib/Makefile.am:
2052         * plugins/audioscrobbler/Makefile.am:
2053         * plugins/generic-player/Makefile.am:
2054         * po/POTFILES.in:
2055         * rhythmdb/rhythmdb-monitor.c:
2056         * rhythmdb/rhythmdb.c:
2057         * sources/Makefile.am:
2058         * widgets/Makefile.am: fix compilation after some CVS surgery was
2059         done.
2061 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2063         * bindings/python/rhythmdb.defs:
2064         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
2065         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
2066         (rhythmdb_query_deserialize):
2067         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
2068         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
2069         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
2070         (rhythmdb_entry_register_type_alias),
2071         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
2072         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
2073         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
2074         (rhythmdb_entry_podcast_feed_get_type),
2075         (rhythmdb_entry_import_error_get_type),
2076         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
2077         * rhythmdb/rhythmdb.h:
2078         Allocate a specified amount of extra memory for each db entry, to be
2079         used to store fields specific to the entry type.  Optionally associate
2080         a name with each entry type, to be used when saving entries and
2081         auto playlists to disk.  Allow entry types to have multiple names
2082         to handle older playlist files that used '0' to represent 'song'.
2083         Use private data to store podcast fields.
2085         * rhythmdb/rhythmdb-private.h:
2086         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
2087         (rhythmdb_tree_parser_end_element), (save_entry),
2088         (rhythmdb_tree_entry_set):
2089         Simplify property handling by using existing code to convert
2090         properties from strings to GValues and to set properties on entries.
2091         Other assorted changes due to the above.
2093         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
2094         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
2095         * sources/rb-generic-player-source.c:
2096         (rb_generic_player_source_new):
2097         * sources/rb-ipod-source.c: (rb_ipod_source_new):
2098         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
2099         * sources/rb-psp-source.c: (rb_psp_source_new):
2100         Update for changes to rhythmdb_entry_register_type.  None of these
2101         entry types need names or use private data.
2103         Fixes #337429.
2105 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2107         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
2108         Fix creation of ignored-file db entries - need to check for
2109         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
2111 2006-05-25  James Livingston  <doclivingston@gmail.com>
2113         * AUTHORS:
2114         * MAINTAINERS: update my email address
2116 2006-05-25  James Livingston  <doclivingston@gmail.com>
2118         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
2119         "(... mix)" when searching for lyrics. Cache the lyrics under
2120         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
2122 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2124         * sources/rb-import-errors-source.c:
2125         (rb_import_errors_source_class_init):
2126         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
2127         * sources/rb-browser-source.c: (rb_browser_source_class_init):
2128         * sources/rb-source.c: (rb_source_class_init),
2129         (default_move_to_trash):
2130         Implement the basic move-to-trash operation once in rb-source.c, 
2131         rather than in each source type that supports it.
2133         * plugins/ipod/rb-ipod-plugin.c:
2134         * shell/rb-removable-media-manager.c:
2135         * shell/rb-shell.c: (rb_shell_constructor):
2136         Only scan removable media once after loading plugins.  Add a flag
2137         plugins can use to check if the initial scan has been done.
2139         * data/rhythmbox.schemas:
2140         Enable ipod and generic-player plugins by default.
2141         
2142         * configure.ac:
2143         * data/ui/Makefile.am:
2144         * data/ui/generic-player-ui.xml:
2145         * data/ui/rhythmbox-ui.xml:
2146         * plugins/Makefile.am:
2147         * plugins/generic-player/Makefile.am:
2148         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
2149         * plugins/generic-player/rb-generic-player-plugin.c:
2150         * sources/Makefile.am:
2151         * sources/rb-generic-player-source.c:
2152         * sources/rb-generic-player-source.h:
2153         * sources/rb-nokia770-source.c:
2154         * sources/rb-nokia770-source.h:
2155         * sources/rb-psp-source.c: (visit_playlist_dirs):
2156         * sources/rb-psp-source.h:
2157         Pluginise generic player (and nokia770 and PSP) support and add
2158         move-to-trash for players not mounted read-only.
2159         Fixes #342868.
2161 2006-05-24  William Jon McCann  <mccann@jhu.edu>
2163         * daapsharing/rb-daap-connection.c (handle_song_listing):
2164         Lower bound check for batch commit.  Fixes #342848
2166         * sources/rb-daap-source.c (rb_daap_source_get_status):
2167         Always set output variables if provided.
2169 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2171         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
2172         (rhythmdb_tree_entry_delete), (remove_one_song):
2173         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
2174         Fix two db entry reference counting problems.
2175         The initial reference on the entry is held by the db backend, but it
2176         was never being dropped.  The reference count was incremented when
2177         adding an entry to the deleted_entries map and to the
2178         deleted_entries_to_emit list, but only decremented for one of those.
2180 2006-05-24  William Jon McCann  <mccann@jhu.edu>
2182         * daapsharing/rb-daap-connection.c (http_response_handler) 
2183         (rb_daap_connection_dispose):
2184         Call soup_session_abort to make sure there are no outstanding
2185         requests when we dispose of the connection.  Ignore cancelled
2186         messages in the callback.
2188 2006-05-24  William Jon McCann  <mccann@jhu.edu>
2190         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
2191         (rb_daap_source_disconnect): Set a flag when disconnecting
2192         the source.  Check this flag in connection callback
2193         to see if we should release the connection.
2195 2006-05-24  William Jon McCann  <mccann@jhu.edu>
2197         * daapsharing/Makefile.am:
2198         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
2199         (rb_daap_connection_class_init), (connection_connected),
2200         (connection_disconnected), (connection_operation_done),
2201         (build_message), (connection_set_error_message),
2202         (actual_http_response_handler), (http_get),
2203         (entry_set_string_prop), (emit_progress_idle),
2204         (handle_server_info), (handle_login), (handle_update),
2205         (handle_database_info), (handle_song_listing), (handle_playlists),
2206         (handle_playlist_entries), (handle_logout),
2207         (rb_daap_connection_new), (rb_daap_connection_is_connected),
2208         (connection_response_data_free), (connected_cb),
2209         (rb_daap_connection_connect), (disconnected_cb),
2210         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
2211         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
2212         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
2213         (rb_daap_connection_get_property):
2214         * daapsharing/rb-daap-connection.h:
2215         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
2216         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
2217         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
2218         (rb_daap_hash_generate):
2219         * daapsharing/rb-daap-hash.h:
2220         * sources/rb-daap-source.c: (rb_daap_source_class_init),
2221         (rb_daap_get_icon), (remove_source), (stop_browsing),
2222         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
2223         (connection_connecting_cb), (connection_disconnected_cb),
2224         (release_connection), (rb_daap_source_connection_cb),
2225         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
2226         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
2228         Adds a better async API for connect and disconnect.  Doesn't share
2229         callback data for every async call.  Adds a connect signal.  Uses
2230         an operation-done signal to trigger the callbacks.  Displays an
2231         error when connections fail.  A few refcounting fixes to fix
2232         crashes.  Uses a weak pointer to set the connection to NULL so we
2233         don't clobber references.  Wait for each disconnect when shutting
2234         down sources.  Split out DAAP hash stuff into its own file.  Fix
2235         typo in header.
2237         Fixes #342643
2238         
2239 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2241         * sources/rb-auto-playlist-source.c:
2242         (rb_auto_playlist_source_new_from_xml):
2243         Initialize the gvalue used to hold the size limit correctly.
2244         Fixes #342744.
2246 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2248         * shell/rb-shell.c: (rb_shell_window_delete_cb),
2249         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
2250         * shell/rb-shell.h:
2251         * shell/rb-shell.xml:
2252         Convert rb_shell_quit into a dbus method, and add visibility dbus
2253         property.
2255 2006-05-22  James Livingston  <doclivingston@gmail.com>
2257         * rhythmdb/rhythmdb.h:
2258         * rhythmdb/rhythmdb.c: (sync_entry_changed),
2259         (rhythmdb_entry_is_editable), (action_thread_main),
2260         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
2261         vfuncs for can_sync_metadata, and sync_metadata. The default is always
2262         false, and syncing into the file.
2264         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
2265         (rhythmdb_entry_iradio_get_type),
2266         (rhythmdb_entry_import_error_get_type):
2267         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
2268         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
2269         change the DB.
2271 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2273         * rhythmdb/Makefile.am:
2274         * rhythmdb/rhythmdb-monitor.c:
2275         * rhythmdb/rhythmdb-private.h:
2276         * rhythmdb/rhythmdb-query.c:
2277         * rhythmdb/rhythmdb.c:
2278         Split up rhythmdb.c a bit.
2280 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2282         * data/glade/audioscrobbler-prefs.glade:
2283         Add a link to the last.fm server status page.
2285 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
2287         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
2288         Capitalization fix.
2289         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
2290         (impl_create_configure_dialog):  UI layout fixes, remove
2291         dialog separator, and capitalization fix for window title.
2292         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
2293         and remove dialog separator.
2294         * data/glade/plugins.glade:  UI layout fixes.
2295         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
2296         and capitalization fix.  Fixes #342438.
2298 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
2300         * data/glade/podcast-properties.glade:  Fix layout of the download 
2301         location.  Fixes #342431.
2303 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2305         * data/ui/rhythmbox-ui.xml:
2306         We only need one copy of the 'add to queue' action in the edit menu.
2308 2006-05-20  James Livingston  <doclivingston@gmail.com>
2310         * data/ui/rhythmbox-ui.xml:
2311         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
2312         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
2313         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
2314         (rb_shell_clipboard_sync),
2315         (rb_shell_clipboard_cmd_add_to_playlist_new),
2316         (rb_shell_clipboard_cmd_queue_song_info),
2317         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
2318         (rb_shell_clipboard_playlist_deleted_cb),
2319         (rb_shell_clipboard_playlist_renamed_cb),
2320         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
2321         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
2322         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
2323         dynamically generated with all the static playlists. Fixes bug 323364.
2325         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
2326         right child, so it doesn't go weird when art appears and disappears.
2328 2006-05-20  James Livingston  <doclivingston@gmail.com>
2330         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
2332         * rhythmdb/rhythmdb-query-model.c:
2333         (rhythmdb_query_model_set_property),
2334         (rhythmdb_query_model_finalize),
2335         (rhythmdb_query_model_reapply_query_cb):
2336         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
2337         (rhythmdb_query_append_prop_multiple),
2338         (rhythmdb_query_is_time_relative):
2339         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
2340         time-based criteria, fixes bug 341131.
2342 2006-05-20  James Livingston  <doclivingston@gmail.com>
2344         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
2345         we have already changed playing entries. Interpolate the art size so
2346         it doesn't jump when the old and new images have different aspect
2347         ratios.
2349 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2351         * rhythmdb/rhythmdb-private.h:
2352         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
2353         (save_entry):
2354         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
2355         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
2356         (rhythmdb_entry_get_ulong):
2357         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
2358         and elsewhere, use them on the stack rather than allocating on 
2359         the heap.  From bug #342333.
2361 2006-05-19  William Jon McCann  <mccann@jhu.edu>
2363         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
2364         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
2365         (add_track), (eos_cb), (error_signal_idle),
2366         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
2367         (rb_recorder_construct), (recorder_track_free),
2368         (rb_recorder_finalize):
2369         * sources/rb-playlist-source-recorder.c:
2370         Support libnautilus-burn size -> capacity API change.  Add
2371         some braces to blocks.
2373 2006-05-19  William Jon McCann  <mccann@jhu.edu>
2375         * metadata/sj-metadata-musicbrainz.c:
2376         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
2377         Sync with sound-juicer in CVS.  Fixes #342177
2378         * sources/rb-audiocd-source.c: Don't declare variables
2379         in the middle of a block (c99ism).  Fix order of #includes.
2380         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
2381         one variable per line.  Update copyright date.
2383 2006-05-19  James Livingston  <doclivingston@gmail.com>
2385         patch by: Hendrik Richter  <hendi@gnome-de.org>
2387         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
2388         "translator_credits" to a hyphen, so it doesn't cause problems for
2389         tools that check access keys. Fixes bug 341832.
2391 2006-05-19  James Livingston  <doclivingston@gmail.com>
2393         * po/POTFILES.in: remove references to files that don't exist any more
2394         (fixes make distcheck).
2396 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
2398         * plugins/lyrics/lyrics.py:  Fix layout close button in 
2399         Song Lyrics dialog. Fixes bug 342322.
2401 2006-05-19  James Livingston  <doclivingston@gmail.com>
2403         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
2405         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
2406         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
2407         version checks not break when libnotify goes to 1.0.0. Fixes bug
2408         342244.
2410 2006-05-18  James Livingston  <doclivingston@gmail.com>
2412         * shell/rb-shell-clipboard.c:
2413         * shell/rb-shell.c:
2414         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
2416 2006-05-17  William Jon McCann  <mccann@jhu.edu>
2418         * sources/rb-playlist-source-recorder.c (get_song_description):
2419         Reverse artist and title in song description.  This
2420         is useful because at least the title will be visible
2421         when there is limited space.
2423 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2425         * daapsharing/rb-daap-connection.c: (connection_get_password):
2426         Take gdk lock before emitting authenticate signal.
2427         * sources/rb-daap-source.c: (connection_connecting_cb):
2428         Get rid of the unnecessary idle handler (it's already called from one)
2429         Fixes #342047 once more.
2431 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2433         * shell/rb-shell.c: (rb_shell_class_init):
2434         * shell/rb-shell.h:
2435         * widgets/rb-song-info.c: (rb_song_info_class_init),
2436         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
2437         (rb_song_info_constructor), (rb_song_info_get_property),
2438         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
2439         (rb_song_info_forward_clicked_cb):
2440         * widgets/rb-song-info.h:
2441         * data/glade/song-info-multiple.glade:
2442         * lib/rb-marshal.list:
2443         * bindings/python/Makefile.am:
2444         * bindings/python/rb.defs:
2445         * bindings/python/rb.override:
2446         Allow plugins to add pages to the notebooks used in song info windows,
2447         and to track the current song displayed in single-entry windows.
2448         
2449         * configure.ac:
2450         * plugins/Makefile.am:
2451         * plugins/lyrics/Loader.py:
2452         * plugins/lyrics/Makefile.am:
2453         * plugins/lyrics/lyrics.py:
2454         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
2455         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
2456         as a separate window (for the playing song) or as a page in the song
2457         info window.  A few TODO items left, but this fixes #319320.
2459 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2461         Patch by:  Roozbeh Pournader
2463         * configure.ac:
2464         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
2465         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
2467 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2468         
2469         * sources/rb-daap-source.c: (update_connection_status):
2470         Correct return value.  Fixes #342047 again.
2472 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2474         * sources/rb-daap-source.c: (update_connection_status),
2475         (connection_connecting_cb):
2476         Update status in an idle handler so we don't rely on the gdk lock
2477         being recursive (because it isn't any more).  Fixes #342047.
2479 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2481         * lib/rb-util.c: (rb_make_duration_string),
2482         (rb_make_elapsed_time_string):
2483         * lib/rb-util.h:
2484         Add a function for formatting an elapsed time string.
2486         * shell/rb-shell-player.c: (rb_shell_player_init),
2487         (rb_shell_player_sync_with_source),
2488         (rb_shell_player_get_playing_time_string), (tick_cb):
2489         Store elapsed time in the private data structure, and use the above
2490         function.
2491         
2492         * widgets/rb-header.c:
2493         * widgets/rb-header.h:
2494         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
2495         object, so everything has the same idea of the elapsed time.
2496         Fixes #339693.
2498 2006-05-16  James Livingston  <doclivingston@gmail.com>
2500         * bindings/python/rhythmdb.defs:
2501         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
2502         some parametre defaults, so you don't have to pass None, False for the
2503         sorting order.
2505 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2507         * bindings/python/rhythmdb.defs:
2508         * rhythmdb/rhythmdb-query-model.c:
2509         (rhythmdb_query_model_compute_status_normal):
2510         * rhythmdb/rhythmdb-query-model.h:
2511         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
2512         * rhythmdb/rhythmdb.h:
2513         Change the various compute_status methods to accept a singular/plural
2514         pair to use in the status string.
2515         
2516         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
2517         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
2518         * sources/rb-source.c: (default_get_status):
2519         Call entries 'songs' by default, and 'episodes' in the podcast source.
2520         Fixes #340227.
2522 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2524         patch by:  Paul Drain
2526         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
2527         Fixes #341817.
2529 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2531         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
2532         Generate reorder maps correctly.
2533         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
2534         Scroll to the first entry from the old selection.
2535         Fixes #322992.
2537 2006-05-15  William Jon McCann  <mccann@jhu.edu>
2539         * data/ui/rhythmbox-ui.xml:
2540         * lib/rb-preferences.h:
2541         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
2542         (rb_shell_playlist_created_cb),
2543         (rb_shell_view_sidepane_changed_cb),
2544         (rb_shell_sync_sidepane_visibility),
2545         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
2546         (sidepane_visibility_changed_cb):
2547         * sources/rb-podcast-source.c:
2548         Convert sourcelist visibility to side-pane visbility.
2549         Fixes #339733
2551 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2553         * widgets/rb-header.c:
2554         * widgets/rb-header.h: Stop RBHeader from referring to itself as
2555         'player', and make it use the private data structure allocated for it.
2557 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2559         * configure.ac: enable metadata helper with dbus < 0.35.
2561 2006-05-15  James Livingston  <doclivingston@gmail.com>
2563         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
2565         * data/glade/song-info.glade:
2566         * widgets/rb-song-info.c: (rb_song_info_construct_single),
2567         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
2568         (rb_song_info_update_filesize): Add the file size into the song info
2569         window. Fixes bug 340861.
2571 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2573         * bindings/python/rhythmdb.defs:
2574         * rhythmdb/rhythmdb-query-model.c:
2575         (rhythmdb_query_model_set_property),
2576         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
2577         * rhythmdb/rhythmdb-query-model.h:
2578         Add a new method to chain query models without importing entries from
2579         the parent into the child.  This is useful when the subset of entries
2580         in the child can be more easily determined by running a query than by
2581         filtering entries from the parent.
2583         * bindings/python/rb.defs:
2584         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
2585         (rb_library_browser_set_property),
2586         (rb_library_browser_get_property), (rb_library_browser_new),
2587         (rebuild_child_model):
2588         * widgets/rb-library-browser.h:
2589         * sources/rb-auto-playlist-source.c:
2590         (rb_auto_playlist_source_constructor):
2591         * sources/rb-static-playlist-source.c:
2592         (rb_static_playlist_source_constructor):
2593         * sources/rb-browser-source.c: (rb_browser_source_constructor):
2594         Use more efficient queries for constructing the browser query model
2595         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
2596         backend to optimise the query) and run new queries rather than
2597         filtering entries from the parent.  Fixes #341402.
2599         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
2601 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2603         * configure.ac:
2604         * shell/Makefile.am:
2605         * shell/main.c: (main), (load_uri_args), (send_present_message),
2606         (unregister_dbus_handler), (handle_dbus_message),
2607         (register_dbus_handler):
2608         Add minimal support for dbus 0.31 - 0.35.
2610         * doc/reference/Makefile.am:
2611         * doc/reference/rhythmbox.types:
2612         * data/Makefile.am:
2613         * data/GNOME_Rhythmbox.server.in:
2614         * data/rhythmbox.pc.in:
2615         * remote/*:
2616         * remote/bonobo/*:
2617         Remove remaining bonobo and generic remote interface files.
2619 2006-05-14  James Livingston  <doclivingston@gmail.com>
2621         * shell/rb-shell.c: (construct_widgets):
2622         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
2623         resize the browser and queue-sidebar section of their panes, unless
2624         the other section is below the minimum size. Fixes bug 331927.
2626 2006-05-13  James Livingston  <doclivingston@gmail.com>
2628         * rhythmdb/rhythmdb-query-model.c:
2629         (rhythmdb_query_model_class_init),
2630         (rhythmdb_query_model_set_property),
2631         (rhythmdb_query_model_get_property),
2632         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
2633         (rhythmdb_query_model_insert_into_main_list),
2634         (rhythmdb_query_model_insert_into_limited_list),
2635         (rhythmdb_query_model_do_reorder),
2636         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
2637         (rhythmdb_query_model_location_sort_func),
2638         (rhythmdb_query_model_title_sort_func),
2639         (rhythmdb_query_model_album_sort_func),
2640         (rhythmdb_query_model_artist_sort_func),
2641         (rhythmdb_query_model_genre_sort_func),
2642         (rhythmdb_query_model_track_sort_func),
2643         (rhythmdb_query_model_double_ceiling_sort_func),
2644         (rhythmdb_query_model_ulong_sort_func),
2645         (rhythmdb_query_model_date_sort_func),
2646         (rhythmdb_query_model_string_sort_func):
2647         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
2648         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
2649         "data destroy" property. Fixed bug 341543.
2651         * bindings/python/rhythmdb.defs:
2652         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
2653         rhythmdb_query_model_set_sorting_order
2655         * rhythmdb/rhythmdb-property-model.c:
2656         (rhythmdb_property_model_drag_data_get):
2657         * sources/rb-import-errors-source.c:
2658         (rb_import_errors_source_constructor):
2659         * sources/rb-missing-files-source.c:
2660         (rb_missing_files_source_constructor):
2661         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
2662         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
2663         * widgets/rb-entry-view.h: adapt to the above change.
2665 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2667         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
2668         (rhythmdb_tree_load):
2669         Commit loaded entries in batches, rather than individually.  
2670         More startup time reduction.
2672 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
2674         * doc/reference/Makefile.am: fix gtk-doc compilation
2676 2006-05-12  William Jon McCann  <mccann@jhu.edu>
2678         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
2679         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
2680         * plugins/artdisplay/artdisplay/Loader.py:
2681         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
2682         Only call the first artist the best match when album==Unknown.
2683         Don't perform each query twice if album doesn't include "Vol N".
2684         Fix searching for compilations.  Fix blacklisting.
2685         Part of bug #307848
2687 2006-05-12  William Jon McCann  <mccann@jhu.edu>
2689         * Makefile.am:
2690         * bindings/python/Makefile.am:
2691         * bindings/python/rb.defs:
2692         * bindings/python/rb.override:
2693         * configure.ac:
2694         * doc/reference/Makefile.am:
2695         * plugins/Makefile.am:
2696         * plugins/audioscrobbler/Makefile.am:
2697         * plugins/ipod/Makefile.am:
2698         * plugins/lirc/Makefile.am:
2699         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
2700         (impl_activate), (impl_deactivate):
2701         * plugins/sample/Makefile.am:
2702         * remote/Makefile.am:
2703         * shell/Makefile.am:
2704         * shell/main.c: (main), (main_shell_weak_ref_cb):
2705         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
2706         (rb_shell_get_property), (rb_shell_window_state_cb),
2707         (idle_hide_mainwindow), (rb_shell_set_visibility),
2708         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
2709         (rb_shell_set_song_property):
2710         * shell/rb-shell.h:
2711         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
2712         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
2713         (rb_tray_icon_get_property), (rb_tray_icon_new),
2714         (rb_tray_icon_button_press_event_cb),
2715         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
2716         (rb_tray_icon_show_window_changed_cb):
2717         * shell/rb-tray-icon.h:
2719         Remove bonobo, require DBUS.
2720         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
2721         Fixes #339720
2723 2006-05-13  James Livingston  <doclivingston@gmail.com>
2725         * bindings/python/rb.override: fix some pointer-type warnings
2727 2006-05-12  James Livingston  <doclivingston@gmail.com>
2729         * lib/rb-util.c: (rb_value_free):
2730         * lib/rb-util.h: Add function to unset and free a GValue* that was
2731         allocated in the heap.
2733         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
2734         the metadata hastable values
2735         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
2736         leak the metadata hashtable structure
2737         * metadata/rb-metadata-dbus.c:
2738         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
2739         using g_strdup and then _take_string
2741         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
2742         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
2743         stat something.
2745         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
2746         leak the encoded string
2748         * widgets/rb-property-view.c:
2749         (rb_property_view_selection_changed_cb): set some variables to have
2750         inital values, because some code paths may not set them before we use
2751         them.
2753         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
2754         don't have python warning into a debug message".
2756 2006-05-10  William Jon McCann  <mccann@jhu.edu>
2758         * data/rhythmbox.schemas: Use zero instead of null for
2759         default burn speed.  Fixes #341283.
2761 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2763         * bindings/python/rb.defs:
2764         * widgets/rb-library-browser.c:
2765         (rb_library_browser_get_property_view):
2766         * widgets/rb-library-browser.h:
2767         Add a method to get the property view for a given property.
2769         * sources/rb-browser-source.c:
2770         (rb_browser_source_cmd_choose_genre),
2771         (rb_browser_source_cmd_choose_artist),
2772         (rb_browser_source_cmd_choose_album):
2773         Change the browser selection by changing the property view selection. 
2774         Makes the selection change visible, fixing #331740.
2776 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2778         * bindings/python/rb.defs:
2779         * bindings/python/rb.override:
2780         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
2781         * shell/rb-statusbar.c: (*),
2782         * sources/rb-import-errors-source.c: (impl_get_status):
2783         * sources/rb-iradio-source.c: (impl_get_status):
2784         * sources/rb-missing-files-source.c: (impl_get_status):
2785         * sources/rb-source.c: (default_get_status),
2786         (rb_source_get_status):
2787         * sources/rb-source.h:
2788         Allow sources to provide a progress value for the status bar.
2789         Simplify status bar processing (much less polling).
2790         Consider rhythmdb busy while it's still loading the database.
2792         * daapsharing/rb-daap-connection.c: (*)
2793         * daapsharing/rb-daap-connection.h:
2794         * lib/rb-marshal.list:
2795         * sources/rb-daap-source.c: (rb_daap_source_class_init),
2796         (rb_daap_source_init), (connection_connecting_cb),
2797         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
2798         (rb_daap_source_get_status):
2799         Provide status information for DAAP connections, and move processing
2800         of large responses into a separate thread.
2801         Fixes bugs #322020 and #338978.
2803 2006-05-09  James Livingston  <doclivingston@gmail.com>
2805         Split the artdisplay plugin into several files.
2806         Fix loader and amazon-search re-use issues.
2807         Add some better search heuristics.
2809         * configure.ac:
2810         * plugins/artdisplay/Makefile.am:
2811         * plugins/artdisplay/artdisplay.py:
2812         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
2813         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
2814         * plugins/artdisplay/artdisplay/Loader.py:
2815         * plugins/artdisplay/artdisplay/Makefile.am:
2816         * plugins/artdisplay/artdisplay/__init__.py:
2818 2006-05-09  James Livingston  <doclivingston@gmail.com>
2820         * sources/rb-browser-source.h: remove the _has_first_added_column
2821         stuff since it isn't actually used anywhere. Sources that want it
2822         should just add it themselves, as the library already does
2824         * bindings/python/rb.defs:
2825         * sources/rb-daap-source.c: (rb_daap_source_class_init):
2826         * sources/rb-library-source.c: (rb_library_source_class_init):
2827         * sources/rb-removable-media-source.c:
2828         (rb_removable_media_source_class_init): Remove the remanants of the
2829         above.
2831 2006-05-09  James Livingston  <doclivingston@gmail.com>
2833         * bindings/python/rb.defs:
2834         * sources/rb-browser-source.h: remove a function that was declared in
2835         the header, but not defined anywhere.
2837 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2839         * plugins/artdisplay/.cvsignore:
2840         * plugins/ipod/.cvsignore: Added.
2842 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2844         * sources/rb-auto-playlist-source.c:
2845         (rb_auto_playlist_source_new_from_xml):
2846         Fix reading of older playlist files where all three limits were
2847         specified so we take the first nonzero limit.  From #341053.
2849 2006-05-09  James Livingston  <doclivingston@gmail.com>
2851         * bindings/python/Makefile.am:
2852         * bindings/python/rb.defs:
2853         * bindings/python/rb.override: bind RBBrowserSource,
2854         RBRemovableMediaSource and RBRemovableMediamanager.
2856 2006-05-09  James Livingston  <doclivingston@gmail.com>
2858         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
2860         * data/glade/plugins.glade: make the plugin dialog look a bit better.
2861         Fixes bug 339221.
2863 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2865         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
2866         Don't explode when trying to edit a query with no limit set.
2868 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2870         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
2871         Clear the should_queue flag when switching to a non-submittable entry,
2872         so we don't submit songs that played for three seconds before
2873         switching to a podcast episode.
2875         * rhythmdb/rhythmdb-query-model.c
2876         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
2877         in the drag data list.
2879 2006-05-08  James Livingston  <doclivingston@gmail.com>
2881         * lib/rb-util.c: (rb_value_array_append_data):
2882         * lib/rb-util.h: add function which is basically a combination of
2883         G_VALUE_COLLECT and g_value_array_append.
2885         * rhythmdb/rhythmdb-query-model.h:
2886         * rhythmdb/rhythmdb-query-model.c:
2887         (rhythmdb_query_model_class_init),
2888         (rhythmdb_query_model_set_property),
2889         (rhythmdb_query_model_get_property),
2890         (rhythmdb_query_model_finalize),
2891         (rhythmdb_query_model_update_limited_entries),
2892         (rhythmdb_query_model_set_sort_order),
2893         (rhythmdb_query_model_within_limit),
2894         (rhythmdb_query_model_limit_type_get_type): Make query model limits
2895         saner. Rather than having <count=N, time=N, size=N> we now have a
2896         <type, value> pair. This will also make it much easier to add new
2897         limit types in the future.
2899         * shell/rb-playlist-manager.c:
2900         (rb_playlist_manager_set_automatic_playlist),
2901         (rb_playlist_manager_cmd_edit_automatic_playlist):
2902         * sources/rb-auto-playlist-source.c:
2903         (rb_auto_playlist_source_finalize),
2904         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
2905         (_save_write_ulong), (_save_write_uint64),
2906         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
2907         (rb_auto_playlist_source_set_query),
2908         (rb_auto_playlist_source_get_query):
2909         * sources/rb-auto-playlist-source.h:
2910         * sources/rb-library-source.c:
2911         (rb_library_source_add_child_source):
2912         * sources/rb-psp-source.c: (visit_playlist_dirs):
2913         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
2914         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
2915         * widgets/rb-query-creator.h: Adapt to the above change.
2917 2006-05-08  James Livingston  <doclivingston@gmail.com>
2919         * shell/rb-playlist-manager.c:
2920         (rb_playlist_manager_cmd_edit_automatic_playlist):
2921         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
2922         (rb_auto_playlist_source_set_query),
2923         (rb_auto_playlist_source_get_query): copy the query in the _get method
2924         and free it in things calling that. Fixes a crasher.
2926 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2928         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
2929         Make entries on newly mounted volumes visible immediately, hiding them
2930         later if they turn out to be missing.  Fixes #340068.
2932 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2934         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
2935         Ignore zip files and ignore errors for files we've decided to ignore.
2937 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2939         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
2940         Add missing }, should fix #340844.
2942 2006-05-06  James Livingston  <doclivingston@gmail.com>
2944         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
2945         typo.
2947 2006-05-06  James Livingston  <doclivingston@gmail.com>
2949         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
2950         that we work with libnotify >= 0.4
2952 2006-05-06  James Livingston  <doclivingston@gmail.com>
2954         patch by: Joe Barnett  <thejoe@gmail.com>
2956         * configure.ac: check if we're using a version of libgpod that
2957         supports the Motorola ROKR
2959         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
2960         for the db path, if we using the newer version.
2962         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
2964 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2966         * rhythmdb/rhythmdb-query-model.c:
2967         (rhythmdb_query_model_drag_data_get):
2968         Use playback URI, not location, for drag data.  Fixes #322597.
2970 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
2972         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
2974 2006-05-03  James Livingston  <doclivingston@gmail.com>
2976         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
2977         (rb_add_id3_tagger), (rb_metadata_save):
2978         Set the tags on the tagging element when it is
2979         created, not during pipeline creation - which is required for
2980         dynamically created elements.
2982         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
2983         support for using the "vorbistag" element to re-tag ogg vorbis files.
2984         Fixes bug 339878.
2986 2006-05-03  James Livingston  <doclivingston@gmail.com>
2988         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
2990         * plugins/artdisplay/artdisplay.py:
2991         - Fix small bug callback of data loader getting overwritten on fast
2992         connections.
2993         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
2994         Jonathan Matthew)
2995         - Fix Rhythmbox UI blocking while loading/searching cover art
2996         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
2997         - Initial approach to allow additional "art search engines"
2998         - Further modularization in a couple of places
2999         - Minor fixes for empty entries (iradio, album, artist etc.)
3001 2006-05-03  James Livingston  <doclivingston@gmail.com>
3003         * shell/rb-playlist-manager.c:
3004         (rb_playlist_manager_playlist_entries_changed),
3005         (rb_playlist_manager_set_source): don't show the edit/delete/rename
3006         options for non-local sources, rather than showing disabled ones.
3008         * sources/rb-library-source.c: (add_child_sources_idle),
3009         (rb_library_source_constructor), (rb_library_source_new),
3010         (rb_library_source_library_location_changed),
3011         (rb_library_source_add_child_source),
3012         (rb_library_source_sync_child_sources): Create "child library" sources
3013         when the user has multiple library locations set. Fixes bug 100552.
3015 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3017         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
3018         * plugins/sample/sample.rb-plugin.desktop.in:
3019         Finish changing 'Author' to 'Authors'
3020         
3021         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
3022         (rhythmdb_entry_import_error_get_type):
3023         Implement get_playback_uri for import errors (returns NULL)
3025         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
3026         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
3027         entry, rather than doing entry type checks.
3029 2006-05-02  James Livingston  <doclivingston@gmail.com>
3031         patch from Alessandro Decina  <alessandro@nnva.org>
3033         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
3034         the signal emission in the case of fatal-on-init errors. From bug
3035         322268.
3037 2006-05-02  James Livingston  <doclivingston@gmail.com>
3039         * rhythmdb/rhythmdb.h:
3040         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
3041         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
3042         (rhythmdb_entry_podcast_post_get_type),
3043         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
3044         virtual function to entry-types for getting the playback URI. From bug
3045         330226.
3047         * backends/gstreamer/rb-encoder-gst.c:
3048         (create_pipeline_and_source), (extract_track):
3049         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
3050         to get the URI.
3052 2006-05-02  James Livingston  <doclivingston@gmail.com>
3054         patch by: Brian Cameron  <brian.cameron@sun.com>
3056         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
3057         340337.
3059 2006-05-01  William Jon McCann  <mccann@jhu.edu>
3061         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
3062         instead of clear.  Use regex matching to strip "disc N"
3063         from album.  Match titles in ProductName.  Perform
3064         fallback queries including various artist compilations.
3065         Include "us" locale.  Improve queries when artist or album
3066         is unknown.  Use medium size image if large is unavailable.
3068         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
3069         William Jon McCann  <mccann@jhu.edu>
3070         
3071 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3073         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
3074         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
3075         (conjunctive_query): Sanity check.
3076         (evaluate_conjunctive_subquery): 
3077         Don't return TRUE immediately when a relative-time query criterion
3078         matches.  Fixes #339972.
3080 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3082         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
3083         Don't crash if primary or secondary are NULL.
3085 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3087         * doc/reference/Makefile.am: fix gtk-doc build yet again
3089 2006-04-28  James Livingston  <doclivingston@gmail.com>
3091         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
3092         python console. Fixes bug 339934.
3094 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3096         * rhythmdb/rhythmdb-property-model.c:
3097         (rhythmdb_property_model_drag_data_get):
3098         When creating uri list drag data, create a new query model based on
3099         the query model the property model is attached to.  Makes the
3100         resulting query use the right entry type and include the upstream
3101         query criteria.  Fixes half of #327540.
3103 2006-04-27  James Livingston  <doclivingston@gmail.com>
3105         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
3106         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
3107         build fixes.
3109 2006-04-27  James Livingston  <doclivingston@gmail.com>
3111         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
3113 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3115         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
3116         (rb_playlist_manager_save_data),
3117         (rb_playlist_manager_save_playlists):
3118         * shell/rb-playlist-manager.h:
3119         * shell/rb-shell.c: (rb_shell_sync_state),
3120         (idle_save_playlist_manager):
3121         Remove a bit more threading insanity from the playlist manager.
3123 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3125         * shell/rb-playlist-manager.c: 
3126         * shell/rb-playlist-manager.h:
3127         Remove dead code, add gtk-doc, remove threading insanity (mostly).
3128         
3129         * shell/rb-shell.c: (rb_shell_sync_state),
3130         (idle_save_playlist_manager), (construct_sources),
3131         (rb_shell_select_source), (rb_shell_sync_party_mode):
3132         Adjustments for above changes.
3134 2006-04-26  William Jon McCann  <mccann@jhu.edu>
3136         * sources/rb-browser-source.c (impl_browser_toggled):
3137         Reset browser when hidden.  Fixes #339617.
3139 2006-04-26  James Livingston  <doclivingston@gmail.com>
3141         * backends/Makefile.am:
3142         * backends/gstreamer/Makefile.am: work again with separated
3143         built-roots
3145 2006-04-26  James Livingston  <doclivingston@gmail.com>
3147         * shell/rb-removable-media-manager.c:
3148         (rb_removable_media_manager_set_uimanager): fix compilation with
3149         -Werror and --enable-track-transfer.
3151 2006-04-26  James Livingston  <doclivingston@gmail.com>
3153         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
3154         implementing class. In theory allows alternate player implementations
3155         to be selected at run-time rather than compile-time. Fixes bug 338667.
3157         * Makefile.am:
3158         * backends/Makefile.am:
3159         * backends/gstreamer/Makefile.am:
3160         * backends/gstreamer/rb-player-gst.h:
3161         * backends/rb-player.c: (rb_player_interface_init),
3162         (rb_player_get_type), (rb_player_open), (rb_player_opened),
3163         (rb_player_close), (rb_player_play), (rb_player_pause),
3164         (rb_player_playing), (rb_player_set_volume),
3165         (rb_player_get_volume), (rb_player_set_replaygain),
3166         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
3167         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
3168         (_rb_player_emit_buffering), (_rb_player_emit_error),
3169         (_rb_player_emit_tick), (rb_player_error_quark):
3170         * player/Makefile.am:
3171         * player/rb-player-gst.c: (rb_player_gst_class_init),
3172         (rb_player_init), (tick_timeout), (rb_player_gst_init),
3173         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
3174         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
3175         (process_tag), (found_tag_cb), (buffering_cb),
3176         (rb_player_gst_bus_cb), (rb_player_gst_construct),
3177         (rb_player_gst_new):
3178         * player/rb-player.h:
3179         * shell/Makefile.am:
3180         * sources/rb-audiocd-source.c:
3181         * widgets/Makefile.am:
3182         * widgets/rb-header.c: (rb_header_class_init):
3184 2006-04-26  James Livingston  <doclivingston@gmail.com>
3186         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
3187         don't try to download an episode if it couldn't be parsed. Fixes bug
3188         339712.
3190         * shell/rb-removable-media-manager.c:
3191         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
3192         Library" option when track transfer is disabled. Fixes bug 339728.
3194 2006-04-26  James Livingston  <doclivingston@gmail.com>
3196         * data/ui/Makefile.am:
3197         * data/ui/daap-ui.xml:
3198         * data/ui/rhythmbox-ui.xml:
3199         * sources/rb-daap-source.c: (rb_daap_sources_init),
3200         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
3201         way that the ipod ui is. Fixes bug 339743.
3203 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3205         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
3206         (process_added_entries_cb), (process_deleted_entries_cb),
3207         (rhythmdb_commit_internal): 
3208         Combine the idle functions to emit entry-added and entry-deleted,
3209         and combine as many invocations of same as possible.  Another
3210         significant reduction in startup time.
3211         
3212         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
3213         Delay the next call to rhythmdb_process_events if the queue is
3214         empty or if we can't process any of the events in the queue because
3215         the database is read only.
3217         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
3219 2006-04-25  William Jon McCann  <mccann@jhu.edu>
3221         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
3223         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
3224         Don't special case errors quite so much.
3226 2006-04-25  William Jon McCann  <mccann@jhu.edu>
3228         * data/rhythmbox.schemas: Remove default speed.
3230         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
3231         Add n-c-b 2.15 support.  Make the default speed to slowest since
3232         that is all that works reliably.
3234 2006-04-25  William Jon McCann  <mccann@jhu.edu>
3236         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
3237         Fix compiler error from last commit.
3239 2006-04-25  James Livingston  <doclivingston@gmail.com>
3241         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
3242         transcoding-related issues. From bug 322268.
3244         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
3245         don't emit the signal, since the object is being finalised, which os a
3246         Bad Thing To Do.
3248         (profile_bin_find_encoder), (get_profile_from_mime_type),
3249         (transcode_track): find the encoding element by iterating looking for
3250         element in the class Codec/Encoder/Audio rather than the one named
3251         "enc".
3253 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3255         * shell/rb-shell-player.xml:
3256         * shell/rb-shell.xml:
3257         Add signal argument information.  
3258         Patch by Tim Moloney  <t.moloney@verizon.net>
3260         * shell/rb-shell.c: (rb_shell_window_state_cb):
3261         Use the right value for the visibility_changed signal.  Most of the
3262         time, anyway.
3264 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3266         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
3267         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
3268         (impl_create_configure_dialog):
3269         * data/glade/audioscrobbler-prefs.glade:
3270         * shell/rb-audioscrobbler.c (*):
3271         * lib/rb-preferences.h:
3272         * data/rhythmbox.schemas:
3273         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
3274         Add status information (# tracks submitted, # queued, last submit
3275         time, result of last submission) to the plugin config window.
3276         Remove 'enabled' setting, since it's easier to just disable the
3277         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
3278         nonexistant (so far) 'last.fm streaming' plugin.
3279         
3280         * help/C/rhythmbox.xml: Update documentation for last.fm profile
3281         plugin
3283         Fixes some of #325848.  We still don't provide a way to view the
3284         submission queue.
3286 2006-04-25  James Livingston  <doclivingston@gmail.com>
3288         patch by: Anders Petersson  <demitar@worldforge.org>
3290         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
3291         the YY-MM-DD format.
3293 2006-04-23  James Livingston  <doclivingston@gmail.com>
3295         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
3296         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
3297         * bindings/python/override_common.h:
3298         * bindings/python/rb.override: python binding fixes
3300 2006-04-23  James Livingston  <doclivingston@gmail.com>
3302         * shell/rb-statusbar.c: (rb_statusbar_finalize),
3303         (rb_statusbar_sync_with_source),
3304         (rb_statusbar_source_status_changed_cb): do the sync in an idle
3305         callback, rather than immediately every time. Takes ~5% off my warm-cache
3306         startup time.
3308         * bindings/python/rhythmdb.defs: fix the types using for
3309         RhythmDBEntryTypes.
3311 2006-04-22  James Livingston  <doclivingston@gmail.com>
3313         * data/ui/rhythmbox-ui.xml:
3314         * shell/rb-shell.c:
3315         * sources/rb-daap-source.c: (rb_daap_source_class_init),
3316         (remove_source), (rb_daap_sources_init),
3317         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
3318         (rb_daap_source_disconnect):
3319         * sources/rb-source.c: (rb_source_class_init),
3320         (rb_source_deactivate):
3321         * sources/rb-source.h: move the "disconnect" functionality from into
3322         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
3324 2006-04-22  James Livingston  <doclivingston@gmail.com>
3326         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
3327         actually get the translated strings for browser headers (they were
3328         already marked as translatable). Fixes bug 339380.
3330 2006-04-22  James Livingston  <doclivingston@gmail.com>
3332         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
3333         submission timeout when the object is finalised.
3335         * bindings/python/Makefile.am:
3336         * bindings/python/rb.defs:
3337         * bindings/python/rb.override:
3338         * bindings/python/rhythmdb.defs: fix some python binding stuff.
3340         * widgets/rb-library-browser.c:
3341         (rb_library_browser_construct_query), (rebuild_output_model),
3342         (rebuild_child_model):
3343         * widgets/rb-library-browser.h: change from GPtrArray to
3344         RhythmDBQuery (which in C is the same thing).
3346 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3348         * shell/rb-shell.c: (rb_shell_get_song_properties):
3349         Don't try to include entry-type (or anything else not easily
3350         marshallable) in the song properties hash table.
3352         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
3354         * sources/rb-playlist-source.c: (rb_playlist_source_init),
3355         (rb_playlist_source_constructor): Fix entry-type initialization as
3356         with previous commit.
3358 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3360         * sources/rb-iradio-source.c: (rb_iradio_source_init),
3361         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
3362         * sources/rb-podcast-source.c: (rb_podcast_source_init),
3363         (rb_podcast_source_constructor):
3364         Set default values for entry-type after base class construction,
3365         rather than in _init, because gobject will set the entry-type property
3366         to NULL after _init if no value is provided.  Fixes #339206.
3368 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
3370         patch by: Gunnar Steinn Magnusson
3372         * COPYING:
3373         * backends/gstreamer/rb-encoder-gst.c:
3374         * backends/gstreamer/rb-encoder-gst.h:
3375         * backends/rb-encoder.c:
3376         * backends/rb-encoder.h:
3377         * bindings/python/override_common.c:
3378         * bindings/python/override_common.h:
3379         * daapsharing/rb-daap-connection.c:
3380         * daapsharing/rb-daap-connection.h:
3381         * daapsharing/rb-daap-dialog.c:
3382         * daapsharing/rb-daap-dialog.h:
3383         * daapsharing/rb-daap-mdns-browser-avahi.c:
3384         * daapsharing/rb-daap-mdns-browser-howl.c:
3385         * daapsharing/rb-daap-mdns-browser.h:
3386         * daapsharing/rb-daap-mdns-publisher-avahi.c:
3387         * daapsharing/rb-daap-mdns-publisher-howl.c:
3388         * daapsharing/rb-daap-mdns-publisher.h:
3389         * daapsharing/rb-daap-share.c:
3390         * daapsharing/rb-daap-share.h:
3391         * daapsharing/rb-daap-sharing.c:
3392         * daapsharing/rb-daap-sharing.h:
3393         * daapsharing/rb-daap-src.c:
3394         * daapsharing/rb-daap-src.h:
3395         * daapsharing/rb-daap-structure.c:
3396         * daapsharing/rb-daap-structure.h:
3397         * help/C/fdl-appendix.xml:
3398         * help/es/es.po:
3399         * help/ja/fdl-appendix.xml:
3400         * iradio/rb-new-station-dialog.c:
3401         * iradio/rb-new-station-dialog.h:
3402         * iradio/rb-station-properties-dialog.c:
3403         * iradio/rb-station-properties-dialog.h:
3404         * lib/mkdtemp.c:
3405         * lib/mkdtemp.h:
3406         * lib/rb-cut-and-paste-code.c:
3407         * lib/rb-cut-and-paste-code.h:
3408         * lib/rb-debug.c:
3409         * lib/rb-debug.h:
3410         * lib/rb-file-helpers.c:
3411         * lib/rb-file-helpers.h:
3412         * lib/rb-glade-helpers.c:
3413         * lib/rb-glade-helpers.h:
3414         * lib/rb-preferences.h:
3415         * lib/rb-proxy-config.c:
3416         * lib/rb-stock-icons.c:
3417         * lib/rb-stock-icons.h:
3418         * lib/rb-thread.c:
3419         * lib/rb-thread.h:
3420         * lib/rb-tree-dnd.c:
3421         * lib/rb-tree-dnd.h:
3422         * lib/rb-util.c:
3423         * lib/rb-util.h:
3424         * metadata/rb-metadata-common.c:
3425         * metadata/rb-metadata-dbus-client.c:
3426         * metadata/rb-metadata-dbus-service.c:
3427         * metadata/rb-metadata-dbus.c:
3428         * metadata/rb-metadata-dbus.h:
3429         * metadata/rb-metadata-gst.c:
3430         * metadata/rb-metadata.h:
3431         * metadata/sj-error.c:
3432         * metadata/sj-error.h:
3433         * metadata/sj-metadata-musicbrainz.c:
3434         * metadata/sj-metadata-musicbrainz.h:
3435         * metadata/sj-metadata.c:
3436         * metadata/sj-metadata.h:
3437         * metadata/sj-structures.c:
3438         * metadata/sj-structures.h:
3439         * metadata/test-metadata.c:
3440         * player/rb-player-gst.c:
3441         * player/rb-player.h:
3442         * player/rb-recorder-gst.c:
3443         * player/rb-recorder.h:
3444         * plugins/artdisplay/artdisplay.py:
3445         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
3446         * plugins/ipod/rb-ipod-plugin.c:
3447         * plugins/lirc/rb-lirc-plugin.c:
3448         * plugins/pythonconsole/pythonconsole.py:
3449         * plugins/rb-module.c:
3450         * plugins/rb-module.h:
3451         * plugins/rb-plugin-manager.c:
3452         * plugins/rb-plugin-manager.h:
3453         * plugins/rb-plugin.c:
3454         * plugins/rb-plugin.h:
3455         * plugins/rb-plugins-engine.c:
3456         * plugins/rb-plugins-engine.h:
3457         * plugins/rb-python-module.c:
3458         * plugins/rb-python-module.h:
3459         * plugins/rb-python-plugin.c:
3460         * plugins/rb-python-plugin.h:
3461         * plugins/sample/rb-sample-plugin.c:
3462         * po/de.po:
3463         * po/el.po:
3464         * po/en_CA.po:
3465         * po/eu.po:
3466         * po/fi.po:
3467         * po/fr.po:
3468         * po/it.po:
3469         * po/ja.po:
3470         * po/mk.po:
3471         * po/pt_BR.po:
3472         * po/ru.po:
3473         * podcast/rb-feed-podcast-properties-dialog.c:
3474         * podcast/rb-feed-podcast-properties-dialog.h:
3475         * podcast/rb-new-podcast-dialog.c:
3476         * podcast/rb-new-podcast-dialog.h:
3477         * podcast/rb-podcast-manager.c:
3478         * podcast/rb-podcast-manager.h:
3479         * podcast/rb-podcast-parse.c:
3480         * podcast/rb-podcast-parse.h:
3481         * podcast/rb-podcast-properties-dialog.c:
3482         * podcast/rb-podcast-properties-dialog.h:
3483         * remote/bonobo/libmain.c:
3484         * remote/bonobo/rb-nautilus-context-menu.c:
3485         * remote/bonobo/rb-nautilus-context-menu.h:
3486         * remote/bonobo/rb-remote-bonobo.c:
3487         * remote/bonobo/rb-remote-bonobo.h:
3488         * remote/rb-remote-client-proxy.c:
3489         * remote/rb-remote-client-proxy.h:
3490         * remote/rb-remote-common.c:
3491         * remote/rb-remote-common.h:
3492         * remote/rb-remote-proxy.c:
3493         * remote/rb-remote-proxy.h:
3494         * rhythmdb/gsequence.c:
3495         * rhythmdb/gsequence.h:
3496         * rhythmdb/rb-refstring.c:
3497         * rhythmdb/rb-refstring.h:
3498         * rhythmdb/rhythmdb-gda.c:
3499         * rhythmdb/rhythmdb-gda.h:
3500         * rhythmdb/rhythmdb-private.h:
3501         * rhythmdb/rhythmdb-property-model.c:
3502         * rhythmdb/rhythmdb-property-model.h:
3503         * rhythmdb/rhythmdb-query-model.c:
3504         * rhythmdb/rhythmdb-query-model.h:
3505         * rhythmdb/rhythmdb-query-results.c:
3506         * rhythmdb/rhythmdb-query-results.h:
3507         * rhythmdb/rhythmdb-tree.c:
3508         * rhythmdb/rhythmdb-tree.h:
3509         * rhythmdb/rhythmdb.c:
3510         * rhythmdb/rhythmdb.h:
3511         * shell/main.c:
3512         * shell/rb-audioscrobbler.c:
3513         * shell/rb-audioscrobbler.h:
3514         * shell/rb-history.c:
3515         * shell/rb-history.h:
3516         * shell/rb-play-order-linear-loop.c:
3517         * shell/rb-play-order-linear-loop.h:
3518         * shell/rb-play-order-linear.c:
3519         * shell/rb-play-order-linear.h:
3520         * shell/rb-play-order-queue.c:
3521         * shell/rb-play-order-queue.h:
3522         * shell/rb-play-order-random-by-age-and-rating.c:
3523         * shell/rb-play-order-random-by-age-and-rating.h:
3524         * shell/rb-play-order-random-by-age.c:
3525         * shell/rb-play-order-random-by-age.h:
3526         * shell/rb-play-order-random-by-rating.c:
3527         * shell/rb-play-order-random-by-rating.h:
3528         * shell/rb-play-order-random-equal-weights.c:
3529         * shell/rb-play-order-random-equal-weights.h:
3530         * shell/rb-play-order-random.c:
3531         * shell/rb-play-order-random.h:
3532         * shell/rb-play-order-shuffle.c:
3533         * shell/rb-play-order-shuffle.h:
3534         * shell/rb-play-order.c:
3535         * shell/rb-play-order.h:
3536         * shell/rb-playlist-manager.c:
3537         * shell/rb-playlist-manager.h:
3538         * shell/rb-removable-media-manager.c:
3539         * shell/rb-removable-media-manager.h:
3540         * shell/rb-shell-clipboard.c:
3541         * shell/rb-shell-clipboard.h:
3542         * shell/rb-shell-player.c:
3543         * shell/rb-shell-player.h:
3544         * shell/rb-shell-preferences.c:
3545         * shell/rb-shell-preferences.h:
3546         * shell/rb-shell.c:
3547         * shell/rb-shell.h:
3548         * shell/rb-source-header.c:
3549         * shell/rb-source-header.h:
3550         * shell/rb-statusbar.c:
3551         * shell/rb-statusbar.h:
3552         * shell/rb-tray-icon.c:
3553         * shell/rb-tray-icon.h:
3554         * sources/rb-audiocd-source.c:
3555         * sources/rb-audiocd-source.h:
3556         * sources/rb-auto-playlist-source.c:
3557         * sources/rb-auto-playlist-source.h:
3558         * sources/rb-browser-source.c:
3559         * sources/rb-browser-source.h:
3560         * sources/rb-daap-source.c:
3561         * sources/rb-daap-source.h:
3562         * sources/rb-generic-player-source.c:
3563         * sources/rb-generic-player-source.h:
3564         * sources/rb-import-errors-source.c:
3565         * sources/rb-import-errors-source.h:
3566         * sources/rb-ipod-source.c:
3567         * sources/rb-ipod-source.h:
3568         * sources/rb-iradio-source.c:
3569         * sources/rb-iradio-source.h:
3570         * sources/rb-library-source.c:
3571         * sources/rb-library-source.h:
3572         * sources/rb-missing-files-source.c:
3573         * sources/rb-missing-files-source.h:
3574         * sources/rb-nokia770-source.c:
3575         * sources/rb-nokia770-source.h:
3576         * sources/rb-play-queue-source.c:
3577         * sources/rb-play-queue-source.h:
3578         * sources/rb-playlist-source-recorder.c:
3579         * sources/rb-playlist-source-recorder.h:
3580         * sources/rb-playlist-source.c:
3581         * sources/rb-playlist-source.h:
3582         * sources/rb-playlist-xml.h:
3583         * sources/rb-podcast-source.c:
3584         * sources/rb-podcast-source.h:
3585         * sources/rb-psp-source.c:
3586         * sources/rb-psp-source.h:
3587         * sources/rb-removable-media-source.c:
3588         * sources/rb-removable-media-source.h:
3589         * sources/rb-source.c:
3590         * sources/rb-source.h:
3591         * sources/rb-sourcelist-model.c:
3592         * sources/rb-sourcelist-model.h:
3593         * sources/rb-sourcelist.c:
3594         * sources/rb-sourcelist.h:
3595         * sources/rb-static-playlist-source.c:
3596         * sources/rb-static-playlist-source.h:
3597         * tests/test-cd.c:
3598         * tests/test-cmdline.c:
3599         * tests/test-rhythmdb-indexing.c:
3600         * tests/test-rhythmdb-query.c:
3601         * tests/test-rhythmdb-simple.c:
3602         * tests/test-rhythmdb-tree-deserialization.c:
3603         * tests/test-rhythmdb-tree-serialization.c:
3604         * tests/test-rhythmdb-view.c:
3605         * widgets/bacon-volume.c:
3606         * widgets/bacon-volume.h:
3607         * widgets/disclosure-widget.c:
3608         * widgets/disclosure-widget.h:
3609         * widgets/eel-gconf-extensions.c:
3610         * widgets/eel-gconf-extensions.h:
3611         * widgets/eggtrayicon.c:
3612         * widgets/eggtrayicon.h:
3613         * widgets/libsexy/sexy-icon-entry.c:
3614         * widgets/libsexy/sexy-icon-entry.h:
3615         * widgets/rb-cell-renderer-pixbuf.c:
3616         * widgets/rb-cell-renderer-pixbuf.h:
3617         * widgets/rb-cell-renderer-rating.c:
3618         * widgets/rb-cell-renderer-rating.h:
3619         * widgets/rb-dialog.c:
3620         * widgets/rb-dialog.h:
3621         * widgets/rb-druid.c:
3622         * widgets/rb-druid.h:
3623         * widgets/rb-entry-view.c:
3624         * widgets/rb-entry-view.h:
3625         * widgets/rb-header.c:
3626         * widgets/rb-header.h:
3627         * widgets/rb-library-browser.c:
3628         * widgets/rb-library-browser.h:
3629         * widgets/rb-property-view.c:
3630         * widgets/rb-property-view.h:
3631         * widgets/rb-query-creator-private.h:
3632         * widgets/rb-query-creator-properties.c:
3633         * widgets/rb-query-creator.c:
3634         * widgets/rb-query-creator.h:
3635         * widgets/rb-rating-helper.c:
3636         * widgets/rb-rating-helper.h:
3637         * widgets/rb-rating.c:
3638         * widgets/rb-rating.h:
3639         * widgets/rb-search-entry.c:
3640         * widgets/rb-search-entry.h:
3641         * widgets/rb-song-display-box.c:
3642         * widgets/rb-song-display-box.h:
3643         * widgets/rb-song-info.c:
3644         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
3646 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
3648         patch by: Gareth Murphy, James Livingston
3650         * bindings/python/rb.defs:
3651         * configure.ac:
3652         * plugins/Makefile.am:
3653         * plugins/artdisplay/Makefile.am:
3654         * plugins/artdisplay/artdisplay.py:
3655         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
3656         * plugins/rb-python-module.c: (rb_python_module_init_python):
3657         * shell/rb-shell.c: (construct_widgets),
3658         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
3659         (rb_shell_add_widget), (rb_shell_remove_widget),
3660         (rb_shell_ui_location_get_type):
3661         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
3663 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3665         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
3666         Fix build failure caused by the combination of the previous two
3667         commits.
3669 2006-04-20  James Livingston  <doclivingston@gmail.com>
3671         patch by: Christophe Fergeau  <teuf@gnome.org> to make
3672         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
3673         table to the entry types, which will allow us to get rid of some of
3674         the "if entry type == WHATEVER" code everywhere. From bug 
3676         * bindings/python/rb.defs:
3677         * bindings/python/rb.override:
3678         * bindings/python/rhythmdb.defs:
3679         * bindings/python/rhythmdb.override:
3680         * daapsharing/rb-daap-connection.c:
3681         (rb_daap_connection_class_init), (rb_daap_connection_init),
3682         (rb_daap_connection_set_property),
3683         (rb_daap_connection_get_property):
3684         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
3685         * podcast/rb-podcast-manager.c:
3686         (rb_podcast_manager_entry_downloaded),
3687         (rb_podcast_manager_subscribe_feed),
3688         (rb_podcast_manager_db_entry_added_cb),
3689         (rb_podcast_manager_db_entry_deleted_cb),
3690         (rb_podcast_manager_insert_feed):
3691         * rhythmdb/rhythmdb-private.h:
3692         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3693         (conjunctive_query):
3694         * rhythmdb/rhythmdb.c: (sync_entry_changed),
3695         (process_added_entries_cb), (rhythmdb_entry_allocate),
3696         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
3697         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
3698         (rhythmdb_process_metadata_load),
3699         (rhythmdb_process_file_created_or_modified), (action_thread_main),
3700         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
3701         (write_encoded_gvalue), (read_encoded_property),
3702         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
3703         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
3704         (rhythmdb_entry_iradio_get_type),
3705         (rhythmdb_entry_podcast_post_get_type),
3706         (rhythmdb_entry_podcast_feed_get_type),
3707         (rhythmdb_entry_import_error_get_type),
3708         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
3709         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
3710         (rhythmdb_entry_type_get_type):
3711         * rhythmdb/rhythmdb.h:
3712         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
3713         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
3714         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
3715         (rb_shell_player_entry_activated_cb), (info_available_cb):
3716         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
3717         (rb_shell_register_entry_type_for_source),
3718         (rb_shell_playing_from_queue_cb),
3719         (rb_shell_playing_entry_changed_cb),
3720         (rb_shell_player_stream_song_changed_cb),
3721         (rb_shell_jump_to_entry_with_source),
3722         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
3723         (handle_playlist_entry_cb), (rb_shell_load_uri):
3724         * shell/rb-shell.h:
3725         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
3726         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3727         (rb_browser_source_init), (rb_browser_source_set_property),
3728         (rb_browser_source_get_property):
3729         * sources/rb-ipod-source.c: (impl_paste):
3730         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
3731         (rb_iradio_source_init), (rb_iradio_source_set_property),
3732         (rb_iradio_source_get_property):
3733         * sources/rb-library-source.c: (impl_paste):
3734         * sources/rb-missing-files-source.c:
3735         (rb_missing_files_source_class_init),
3736         (rb_missing_files_source_init),
3737         (rb_missing_files_source_set_property),
3738         (rb_missing_files_source_get_property):
3739         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3740         (rb_playlist_source_init), (rb_playlist_source_set_property),
3741         (rb_playlist_source_get_property):
3742         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3743         (rb_podcast_source_init), (rb_podcast_source_set_property),
3744         (rb_podcast_source_get_property):
3745         * sources/rb-static-playlist-source.c:
3746         (rb_static_playlist_source_add_location_internal):
3748 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3750         * rhythmdb/rhythmdb.c: (rhythmdb_init),
3751         (rhythmdb_add_import_error_entry),
3752         (entry_volume_mounted_or_unmounted),
3753         (rhythmdb_volume_unmounted_cb):
3754         When a volume is unmounted, delete import errors for files stored on
3755         it.  When a volume is mounted, stat all tracks stored on it, rather
3756         than assuming they're present.  Fixes #339023.
3758 2006-04-20  James Livingston  <doclivingston@gmail.com>
3760         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
3761         browser visibility for non-gconf-using sources (like playlists). Part
3762         of bug 118862.
3764         * shell/rb-source-header.c: (sourcestate_free),
3765         (rb_source_header_init), (rb_source_header_finalize),
3766         (rb_source_header_source_weak_destroy_cb): switch from storing the
3767         search string to storing a "source state" structure
3769         (rb_source_header_set_source_internal),  (rb_source_state_sync),
3770         (rb_source_header_search_cb), (rb_source_header_clear_search),
3771         (rb_source_header_disclosure_toggled_cb): as well as storing the
3772         string, stop the visibility of the source's browser.
3774 2006-04-20  James Livingston  <doclivingston@gmail.com>
3776         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
3777         library entries back into the library. Fixes bug 339065.
3779 2006-04-20  James Livingston  <doclivingston@gmail.com>
3781         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
3782         only exists in glib 2.10.
3784 2006-04-20  James Livingston  <doclivingston@gmail.com>
3786         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
3787         Solaris. From bug 335318.
3789         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
3790         * shell/rb-audioscrobbler.c:
3791         * sources/rb-psp-source.c:
3793 2006-04-20  James Livingston  <doclivingston@gmail.com>
3795         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
3796         issues for some people.
3798         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
3799         accidental s/suffix/prefix/
3801         * sources/rb-auto-playlist-source.c:
3802         (rb_auto_playlist_source_set_query): fix the invered logic preventing
3803         you from sorting playlists which aren't limited by time.
3805 2006-04-19  James Livingston  <doclivingston@gmail.com>
3807         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
3808         duration or bitrate back to the file, since they are properties of the
3809         audio data, not tags we can set.
3811 2006-04-19  James Livingston  <doclivingston@gmail.com>
3813         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
3814         of libtool, to fix builds which are using a different version. Fixes
3815         bug 338996.
3817         * shell/Makefile.am:
3819 2006-04-19  James Livingston  <doclivingston@gmail.com>
3821         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
3822         to sync data to a file which is uneditable.
3824 2006-04-19  James Livingston  <doclivingston@gmail.com>
3826         patch by: Gavin Stewart  <gavin@brokentrain.net>
3828         * data/glade/playlist-save.glade:
3829         * data/glade/Makefile.am:
3830         * po/POTFILES.in: add the playlist saving dialog.
3832         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
3833         (export_set_extension_cb), (filter_get_export_filter_label),
3834         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
3835         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
3836         formats (PLS and M3U at the moment). Fixes bug 316295.
3838 2006-04-19  James Livingston  <doclivingston@gmail.com>
3840         * shell/rb-playlist-manager.c:
3841         (rb_playlist_manager_set_source_internal): don't let you edit remove
3842         auto playlists.
3844         * sources/rb-auto-playlist-source.c:
3845         (rb_auto_playlist_source_set_query): correctly handle time-limited
3846         playlists.
3848 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3850         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
3852         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
3853         Don't crash if the queue file contains no newlines.
3854         Fixes #338924.
3856 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
3858         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
3859         condition
3861 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
3863         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
3864         case. Moreover, they may not exist yet, so take that into account when
3865         generating the iPod filename.
3867 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
3869         * sources/rb-ipod-source.c: added support for drag and drop from the
3870         library to the iPod (only enabled if --enable-track-transfer was
3871         passed to configure)
3873 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
3875         * configure.ac:
3876         * lib/rb-marshal.list:
3877         * lib/rb-util.c: 
3878         * lib/rb-util.h:
3879         * plugins/Makefile.am:
3880         * plugins/ipod/Makefile.am:
3881         * plugins/ipod/ipod.rb-plugin.desktop.in:
3882         * plugins/ipod/rb-ipod-plugin.c: 
3883         * plugins/rb-plugin.h:
3884         * shell/Makefile.am:
3885         * shell/rb-removable-media-manager.c:
3886         * shell/rb-removable-media-manager.h:
3887         * shell/rb-shell.c: 
3888         * sources/Makefile.am:
3889         * sources/rb-ipod-source.c: 
3890         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
3891         various iPod related files should be moved to plugins/ipod/ now...
3893 2006-04-17  James Livingston  <doclivingston@gmail.com>
3895         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
3896         and "vic".
3898         * help/C/figures/rb-iradio-main.png:
3899         * help/C/figures/rb-notification-area-menu.png:
3900         * help/C/figures/rb-notification-window.png:
3901         * help/C/figures/rb-notification-zone.png:
3902         * help/C/figures/rb-podcast-main.png:
3903         * help/C/figures/rb-statusbar.png:
3904         * help/C/figures/rb-volume-changer.png:
3905         * help/C/figures/rb-window-small.png:
3906         * help/C/figures/rb-window.png:
3907         * help/C/rhythmbox.xml:
3909 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3911         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
3912         more obviously.
3914         * metadata/rb-metadata-gst.c: (rb_metadata_init),
3915         (make_undecodable_error), (rb_metadata_gst_error_cb),
3916         (rb_metadata_gst_new_decoded_pad_cb),
3917         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
3918         Ignore really small files (<4kB) for which typefinding fails.
3919         Always link decoded pads from decodebin to fakesink.
3920         Shut the pipeline down by posting an error on the bus when decodebin
3921         emits unknown-type signals.  Fixes bug #338062.
3923 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3925         * shell/rb-shell.c: (rb_shell_load_uri):
3926         Fix glaring mistakes in previous commit: actually pass arguments to
3927         rb_debug, and specify the right entry type when adding a new iradio
3928         station so we don't try to add local playlist files to the library.
3930 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3932         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
3933         before trying to add them, as iradio streams often fail rb_uri_exists().
3935         * shell/rb-shell-player.c: (notify_playing_idle),
3936         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
3937         (open_location_thread), (rb_shell_player_open_location),
3938         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
3939         (eos_cb):  When playing an iradio stream using a playlist, keep a list
3940         of all the stream URLs, and try them in turn.  If we get through the
3941         whole playlist too quickly, error out.  Various other fixes that make
3942         iradio work a lot better.
3944         * shell/rb-shell.c: (add_to_library_response_cb),
3945         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
3946         (handle_playlist_entry_cb), (rb_shell_load_uri):
3947         Add playlists containing streams as iradio stations.  If the playlist
3948         is local, add each stream URL, but if the playlist is remote, just add
3949         the playlist URL.
3950         
3951         * sources/rb-iradio-source.c: (new_station_location_added):
3952         Add new station URLs as-is, rather than parsing the playlist and
3953         adding the streams.
3954         
3955         * rhythmdb/rhythmdb-query-model.c:
3956         (rhythmdb_query_model_entry_changed_cb),
3957         (rhythmdb_query_model_emit_reorder),
3958         (rhythmdb_query_model_do_reorder):
3959         Emit row-changed notifications when an entry changes but is not
3960         reordered.
3962         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
3963         Display the playback error icon when the entry has an error and
3964         there's nothing else to display.
3965         
3966         Fixes bug #320336 and some of #324402.
3967         
3968 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
3970         * sources/rb-ipod-source.c: use a GHashTable for the
3971         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
3972         time, this fixes compilation breakage for people not having libgpod
3973         CVS HEAD
3975 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
3977         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3979         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
3980         (rb_podcast_manager_insert_feed):
3981         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
3982         fixes bug 321945
3984 2006-04-16  James Livingston  <doclivingston@gmail.com>
3986         * sources/rb-library-source.c:
3987         (rb_library_source_library_location_cb): return FALSE like we are
3988         supposed to, not void.
3990         patch by: FreeBSD GNOME Project
3991         * configure.ac: fix some bash-isms.
3993         patch by: Pawel Worach  <pawel.worach@gmail.com>
3994         * metadata/rb-metadata-dbus-client.c:
3995         * rhythmdb/rhythmdb-query-model.c:
3996         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
3999 2006-04-16  James Livingston  <doclivingston@gmail.com>
4001         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
4002         for transcoding to RBEncoderGst.
4004         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
4005         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
4006         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
4007         (add_decoding_pipeline), (encoder_match_mime),
4008         (get_profile_from_mime_type), (extract_track), (transcode_track),
4009         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
4011 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
4013         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
4014         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
4015         load_ipod_db_idle_cb to a new separate function
4017 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
4019         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
4020         source
4022 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
4024         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
4025         variables
4027 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
4029         * data/ui/Makefile.am:
4030         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
4031         menu
4032         * lib/rb-util.c: check if the widget we got from the UI manager isn't
4033         NULL before using it as a popup menu
4034         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
4035         'eject' an iPod
4037 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
4039         * sources/rb-ipod-source.c: when hal tells us a partition is on an
4040         iPod, check if it contains an iPod database before using it (in case
4041         the iPod was repartitionned somehow). Should fix bug #325034
4043 2006-04-16  Steve Frécinaux  <steve@istique.net>
4045         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
4047         * data/Makefile.am: install application icon into the default theme.
4049         * data/rhythmbox.desktop.in: don't specify icon file extension.
4050         
4051         * shell/main.c: (main): set default window icon from theme.
4052         
4053         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
4054         code concerning window icon, and fix leak by unreferencing the about
4055         logo pixbuf once it's not used anymore.
4057 2006-04-16  James Livingston  <doclivingston@gmail.com>
4059         * configure.ac: bump version to 0.9.4
4060         * NEWS: update NEWS and 0.9.4 insert translations
4062 2006-04-16  James Livingston  <doclivingston@gmail.com>
4064         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
4065         namespace automatically.
4067 2006-04-16  James Livingston  <doclivingston@gmail.com>
4069         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
4071         * doc/reference/Makefile.am:
4072         * doc/reference/rhythmbox.types: make distcheck work again
4074         * doc/reference/tmpl/eggnotificationbubble.sgml:
4075         * doc/reference/tmpl/eggtrayicon.sgml:
4076         * doc/reference/tmpl/rb-debug.sgml:
4077         * doc/reference/tmpl/rb-entry-view.sgml:
4078         * doc/reference/tmpl/rb-enums.sgml:
4079         * doc/reference/tmpl/rb-metadata.sgml:
4080         * doc/reference/tmpl/rb-new-station-dialog.sgml:
4081         * doc/reference/tmpl/rb-playlist-manager.sgml:
4082         * doc/reference/tmpl/rb-refstring.sgml:
4083         * doc/reference/tmpl/rb-shell-player.sgml:
4084         * doc/reference/tmpl/rb-shell-preferences.sgml:
4085         * doc/reference/tmpl/rb-shell.sgml:
4086         * doc/reference/tmpl/rb-song-info.sgml:
4087         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
4088         * doc/reference/tmpl/rb-statusbar.sgml:
4089         * doc/reference/tmpl/rhythmbox-unused.sgml:
4090         * doc/reference/tmpl/rhythmdb-query-model.sgml:
4091         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
4093 2006-04-16  James Livingston  <doclivingston@gmail.com>
4095         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
4097         * po/LINGUAS: don't split the variable across two lines, as it breaks
4098         the build. Fixes bug 338625.
4100 2006-04-15  James Livingston  <doclivingston@gmail.com>
4102         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
4103         add a "sourcelist-model" gobject property.
4105 2006-04-14  William Jon McCann  <mccann@jhu.edu>
4107         * .cvsignore:
4108         * backends/.cvsignore:
4109         * backends/gstreamer/.cvsignore:
4110         * bindings/.cvsignore:
4111         * bindings/python/.cvsignore:
4112         * help/es/.cvsignore:
4113         * metadata/.cvsignore:
4114         * plugins/.cvsignore:
4115         * plugins/audioscrobbler/.cvsignore:
4116         * plugins/lirc/.cvsignore:
4117         * plugins/pythonconsole/.cvsignore:
4118         * plugins/sample-python/.cvsignore:
4119         * plugins/sample/.cvsignore:
4120         * shell/.cvsignore:
4121         * widgets/libsexy/.cvsignore:
4122         Make CVS ignore files.
4124 2006-04-14  James Livingston  <doclivingston@gmail.com>
4126         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
4127         the track-loading thread hold a reference on the source, so it doesn't
4128         explode if the cd is removed before it is done. Fixes bug 337237.
4130 2006-04-14  James Livingston  <doclivingston@gmail.com>
4132         * bindings/python/override_common.c:
4133         (_helper_unwrap_pointer_pylist):
4134         * bindings/python/override_common.h:
4135         * bindings/python/rb.override:
4136         * bindings/python/rhythmdb.override: Bind some more functions and
4137         virtual functions.
4139         * shell/rb-shell.c: (rb_shell_select_source):
4140         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
4141         * sources/rb-audiocd-source.c:
4142         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
4143         * sources/rb-browser-source.c: (impl_get_search_actions):
4144         * sources/rb-iradio-source.c: (impl_get_ui_actions):
4145         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
4146         * sources/rb-playlist-source.c: (impl_get_ui_actions):
4147         * sources/rb-podcast-source.c: (impl_get_ui_actions),
4148         (impl_get_search_actions):
4149         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
4150         the impl_get_ui_actions and impl_get_search_actions functions return
4151         lists that contain copies of the strings, instead of constant ones.
4152         Needed to bindings
4154 2006-04-14  James Livingston  <doclivingston@gmail.com>
4156         * bindings/python/rhythmdb.defs:
4157         * bindings/python/rhythmdb.override: fix the method argument format
4158         specifiers.
4160 2006-04-14  James Livingston  <doclivingston@gmail.com>
4162         * bindings/python/rhythmdb.defs:
4163         * bindings/python/rhythmdb.override:
4164         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
4165         (entry_to_rb_metadata), (record_entry_change),
4166         (rhythmdb_entry_set_visibility):
4167         * rhythmdb/rhythmdb.h:
4168         * shell/rb-shell.c: (rb_shell_get_song_properties): change
4169         rhythmdb_entry_get to take the db as the first parameter. Fixes the
4170         python bindings of it. The rhythmdb_entry_get_* ones are left the same
4171         since they are used in too many places, and not in the Python
4172         bindings.
4174 2006-04-13  William Jon McCann  <mccann@jhu.edu>
4176         * lib/rb-debug.c: (_rb_profile_log):
4177         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
4178         * rhythmdb/rhythmdb.c: (rhythmdb_load):
4179         * shell/main.c: (main):
4180         * shell/rb-shell.c: (rb_shell_constructor),
4181         (rb_shell_set_visibility), (rb_shell_sync_window_state),
4182         (rb_shell_present):
4183         Fix profile output indentation.  Add more profiling points.
4184         Fixes part of #338114
4186 2006-04-13  James Livingston  <doclivingston@gmail.com>
4188         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
4189         library source being deleted, by setting the active source to NULL.
4190         From bug 338116.
4192 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4194         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
4195         Update the last-seen string when hiddenness changes.
4197 2006-04-12  James Livingston  <doclivingston@gmail.com>
4199         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
4200         which caused the first-seen time to be reset when a metadata load was
4201         done. Fixes bug 336874.
4203         * shell/rb-shell.h: remove old function declaration.
4205         * bindings/python/rhythmdb.defs:
4206         * bindings/python/rhythmdb.override: Fix some python binding stuff.
4208 2006-04-11  James Livingston  <doclivingston@gmail.com>
4210         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
4211         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
4212         interaction. Fixes bug 337999.
4214 2006-04-11  James Livingston  <doclivingston@gmail.com>
4216         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
4217         track transfer. Fixes bug 338056.
4219         * shell/Makefile.am:
4221 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4223         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
4225 2006-04-10  William Jon McCann  <mccann@jhu.edu>
4227         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
4228         (_rb_profile_log):
4229         * lib/rb-debug.h:
4230         * shell/rb-shell.c: (construct_db), (construct_widgets),
4231         (construct_sources), (construct_load_ui), (rb_shell_constructor):
4232         Add profiling.  Fixes #337387
4234 2006-04-10  William Jon McCann  <mccann@jhu.edu>
4236         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
4237         * widgets/rb-header.c:
4238         Use italics for artist and album. Fixes #336748
4240 2006-04-10  James Livingston  <doclivingston@gmail.com>
4242         * Makefile.am:
4243         * backends/gstreamer/Makefile.am:
4244         * configure.ac:
4245         * data/glade/library-prefs.glade:
4246         * shell/Makefile.am:
4247         * shell/rb-removable-media-manager.c:
4248         * shell/rb-removable-media-manager.h:
4249         * sources/Makefile.am:
4250         * sources/rb-audiocd-source.c:
4251         * sources/rb-library-source.c: (rb_library_source_class_init),
4252         (rb_library_source_finalize), (impl_get_config_widget),
4253         (rb_library_source_preferences_sync), (impl_can_paste): add a
4254         --enable-track-transfer configure option, abd make cd ripping disabled
4255         by default.
4257         * shell/rb-source-header.c:
4258         * sources/rb-source.c: (rb_source_class_init),
4259         (rb_source_delete_thyself), (default_get_entry_view):
4260         * lib/rb-glade-helpers.c:
4261         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
4262         some compiler warnings, and also bug 337427.
4264 2006-04-10  James Livingston  <doclivingston@gmail.com>
4266         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
4267         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
4268         if the gconf key is missing. Fixes bug 337742.
4270 2006-04-10  James Livingston  <doclivingston@gmail.com>
4272         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4273         to fix build problems I caused with a commit yesterday. Fixed bug
4274         337806.
4276         * daapsharing/rb-daap-mdns-browser-howl.c:
4277         (rb_daap_mdns_browser_class_init):
4278         * podcast/Makefile.am:
4279         * rhythmdb/Makefile.am:
4280         * widgets/eggtrayicon.h:
4282 2006-04-09  Steve Frécinaux  <steve@istique.net>
4284         * configure.ac:
4285         * po/LINGUAS:
4286         
4287         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
4288         translators' life easier.
4290 2006-04-09  James Livingston  <doclivingston@gmail.com>
4292         * bindings/python/rb.defs:
4293         * bindings/python/rb.override: add bindings for most RBSource virtual
4294         functions.
4296         * sources/rb-source.h:
4297         * sources/rb-source.c: (rb_source_class_init): make
4298         impl_get_browser_key return a non-consht string, since Python can't
4299         really give us constant strings.
4301         * shell/rb-source-header.c: (rb_source_header_finalize),
4302         (rb_source_header_set_source_internal):
4303         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
4304         * sources/rb-iradio-source.c: (impl_get_browser_key):
4305         * sources/rb-library-source.c: (impl_get_browser_key):
4306         * sources/rb-playlist-source.c:
4307         * sources/rb-browser-source.c: (rb_browser_source_constructor),
4308         (rb_browser_source_state_prefs_sync):
4309         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
4310         above change.
4312         * plugins/sample-python/sample-python.py: show how to add a new
4313         source.
4315 2006-04-09  James Livingston  <doclivingston@gmail.com>
4317         * daapsharing/Makefile.am:
4318         * daapsharing/rb-daap-connection.c:
4319         (rb_daap_connection_class_init):
4320         * daapsharing/rb-daap-marshal.list:
4321         * daapsharing/rb-daap-mdns-browser-avahi.c:
4322         (rb_daap_mdns_browser_class_init):
4323         * lib/rb-marshal.list:
4324         * player/Makefile.am:
4325         * player/rb-recorder-gst.c: (rb_recorder_class_init):
4326         * player/rb-recorder-marshal.list:
4327         * podcast/Makefile.am:
4328         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
4329         * podcast/rb-podcast-marshal.list:
4330         * rhythmdb/Makefile.am:
4331         * rhythmdb/rhythmdb-marshal.list:
4332         * rhythmdb/rhythmdb-query-model.c:
4333         (rhythmdb_query_model_class_init):
4334         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
4335         into one file, as there is no point having several of them.
4337 2006-04-09  James Livingston  <doclivingston@gmail.com>
4339         * lib/Makefile.am:
4340         * lib/rb-enums.h:
4341         * widgets/Makefile.am:
4342         * widgets/eggnotificationbubble.c:
4343         * widgets/eggnotificationbubble.h:
4344         * widgets/rb-song-info.c: remove lib/rb-enums.h and
4345         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
4347         * rhythmdb/rhythmdb-property-model.h:
4348         * rhythmdb/rhythmdb-query-model.h:
4349         * rhythmdb/rhythmdb.h:
4350         * shell/rb-playlist-manager.h:
4351         * widgets/rb-cell-renderer-pixbuf.h:
4352         * widgets/rb-cell-renderer-rating.h:
4353         * widgets/rb-rating.h: fix the prototypes of various class-closures.
4355 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4357         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
4358         so we can build without a system-wide installed copy.
4360 2006-04-09  James Livingston  <doclivingston@gmail.com>
4362         * data/glade/general-prefs.glade:
4363         * data/rhythmbox.schemas:
4364         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
4365         (rb_combo_box_hyphen_separator_func):
4366         * lib/rb-glade-helpers.h:
4367         * lib/rb-preferences.h:
4368         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
4369         (rb_shell_preferences_sync),
4370         (rb_shell_preferences_toolbar_style_cb),
4371         (rb_shell_preferences_browser_views_activated_cb):
4372         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
4373         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
4374         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
4376 2006-04-09  James Livingston  <doclivingston@gmail.com>
4378         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
4379         data that MusicBrainz returns to us. Last part of bug 334167.
4381 2006-04-09  James Livingston  <doclivingston@gmail.com>
4383         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
4384         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
4386 2006-04-09  James Livingston  <doclivingston@gmail.com>
4388         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
4389         the entry view properly when the rows are reordered. Fixes bug 337019.
4391 2006-04-09  James Livingston  <doclivingston@gmail.com>
4393         * configure.ac:
4394         * widgets/Makefile.am:
4395         * widgets/libsexy/Makefile.am:
4396         * widgets/libsexy/sexy-icon-entry.c:
4397         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
4398         libsexy, and allow building against it or a system-wide installed
4399         copy.
4402         * widgets/rb-search-entry.c: (rb_search_entry_init),
4403         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
4404         search box. Fixes bug 128109.
4406 2006-04-09  James Livingston  <doclivingston@gmail.com>
4408         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4410         * widgets/rb-entry-view.c: (rb_entry_view_init),
4411         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
4412         and Pause icons rather than the volume ones in the Now Playing column.
4413         Closes bug 336482.
4415 2006-04-08  James Livingston  <doclivingston@gmail.com>
4417         * bindings/python/override_common.h:
4418         * bindings/python/rb.override:
4419         * bindings/python/rhythmdb.override: bind some more functions 
4421 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4423         * metadata/rb-metadata-dbus-service.c: (_send_error):
4424         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
4425         are sent properly and we don't get 'method doesn't exist' messages
4426         from dbus instead.
4428 2006-04-08  James Livingston  <doclivingston@gmail.com>
4430         * bindings/python/override_common.h:
4431         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
4432         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
4433         more utility functions for C<->Python conversions
4435         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
4436         (rb_entry_view_state_get_type):
4437         * widgets/rb-entry-view.h: make the colume type and entry view state
4438         GTypes
4440         * bindings/python/Makefile.am:
4441         * bindings/python/rb.defs:
4442         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
4443         RBSource.
4445 2006-04-08  James Livingston  <doclivingston@gmail.com>
4447         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
4448         initialiser for a GError
4450         * sources/rb-source.c: (rb_source_eof_type_get_type):
4451         * sources/rb-source.h: add a GType for RBSourceEOFType
4453         * bindings/python/Makefile.am:
4454         * bindings/python/rb.defs:
4455         * bindings/python/rb.override: bind RBSource and RBSourceList
4457 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4459         * shell/rb-shell-player.c: (rb_shell_player_class_init),
4460         (rb_shell_player_get_property),
4461         (rb_shell_player_get_active_source),
4462         (rb_shell_player_set_playing_source_internal):
4463         * shell/rb-shell-player.h:
4464         Change 'playing-from-queue' from being a signal to being a property.
4466         * shell/rb-shell.c: (rb_shell_constructor),
4467         (rb_shell_playing_from_queue_cb),
4468         (rb_shell_view_queue_as_sidebar_changed_cb),
4469         (rb_shell_jump_to_entry_with_source):
4470         When the queue side pane is used, make 'jump to current' jump to the
4471         entry in the registered source for its type, rather than in the queue,
4472         and show it as playing in that source.
4473         
4474         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
4475         * sources/rb-sourcelist.h:
4476         Remove the 'preempted source' stuff, since it wasn't doing anything
4477         anyway.
4479 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4481         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
4482         (download_progress_cb): Canonicalise downloaded file location before
4483         setting the mountpoint property of the corresponding entry.
4484         Fixes #337287 and a couple of memory leaks.
4486 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4488         * metadata/rb-metadata-dbus-service.c: (test_can_save),
4489         (test_load), (main): Call g_set_prgname, report errors more
4490         usefully in test mode.
4491         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
4492         (rb_metadata_load): Don't ignore the have-type signal for non-audio
4493         files.  Run the event loop when the state change fails so we get the
4494         error messages from the bus.  Fixes #336921.
4496 2006-04-05  William Jon McCann  <mccann@jhu.edu>
4498         * data/art/Makefile.am: Install media-eject.
4500         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
4501         return value of rb_file.
4503         Fixes #337209
4505 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4507         Patch by: William Jon McCann  <mccann@jhu.edu>
4509         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
4510         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
4511         Fix GError leak.
4513 2006-04-04  William Jon McCann  <mccann@jhu.edu>
4515         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
4516         Don't try to add a date when we don't have one.  Fixes #336741.
4518         Also fix variable declaration in middle of block.
4520 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4522         * shell/rb-shell-player.c: (rb_shell_player_playpause):
4523         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
4525 2006-04-02  James Livingston  <doclivingston@gmail.com>
4527         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
4528         inverted logic causing imports to fail.
4530 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4532         * shell/main.c: (main): Fix dbusless build.
4534 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
4536         * player/rb-recorder-gst.c: fix packing of the C struct holding a
4537         wav header for non-gcc compilers (not tested much, was only written
4538         according to docs)
4540 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4542         * shell/main.c: (main): Check if we got a dbus connection before
4543         trying to create a proxy for the shell object.  Fixes #336634.
4545 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4547         * doc/reference/Makefile.am:
4548         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
4549         * shell/rb-source-header.c:
4550         * sources/rb-generic-player-source.c:
4551         (default_transform_playlist_uri):
4552         Fix various build issues.  Patch approximately 50% by Alex Lancaster
4553         <alexl@users.sourceforge.net>
4555 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4557         * configure.ac: Detect LIRC.
4558         
4559         * plugins/Makefile.am:
4560         * plugins/lirc/Makefile.am:
4561         * plugins/lirc/lirc.rb-plugin.desktop.in:
4562         * plugins/lirc/rb-lirc-plugin.c:
4563         LIRC plugin.
4565         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
4566         Remove obsolete files.
4568 2006-04-02  James Livingston  <doclivingston@gmail.com>
4570         * sources/rb-generic-player-source.c:
4571         (default_transform_playlist_uri): consider playlist paths as relative
4572         to the volume root by default, since that is what most players use.
4574 2006-04-02  James Livingston  <doclivingston@gmail.com>
4576         * lib/rb-util.c: (rb_mime_get_friendly_name):
4577         * lib/rb-util.h: add helper function to get the "friendly" name for a
4578         mime-type
4580         * metadata/rb-metadata-gst.c: (rb_metadata_init),
4581         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
4582         the user better error messages about undecodable streams, using the
4583         "friendly" name if possible. Fixes bug 128109.
4585 2006-04-02  James Livingston  <doclivingston@gmail.com>
4587         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
4588         (start_pipeline): fix building with gstreamer 0.8
4590 2006-04-02  James Livingston  <doclivingston@gmail.com>
4592         * sources/rb-podcast-source.c: (impl_delete),
4593         (rb_podcast_source_cmd_delete_feed),
4594         (rb_podcast_source_cmd_update_feed): copy the list before traversing
4595         it, since it may change during traversal. Fixes bug 336204.
4597 2006-04-01  James Livingston  <doclivingston@gmail.com>
4599         * data/art/media-eject.png: add the media-eject icon from Banshee
4600         (BSD-licensed), for use when the user's icon theme doesn't have one.
4602         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
4603         bug 334897.
4605 2006-04-01  James Livingston  <doclivingston@gmail.com>
4607         * shell/rb-shell-player.h:
4608         * shell/rb-shell-player.c: (rb_shell_player_play),
4609         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
4610         new rb_shell_player_{play,pause} functions, so everyone doesn't have
4611         to do rb_shell_player_playing followed by rb_shell_player_playpause.
4613         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
4614         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
4615         * shell/rb-shell.h: add rb_shell_get_ui_manager.
4617         * bindings/python/rb.defs: bind the above to Python, and remove some
4618         useless stuff from the bindings.
4620 2006-04-01  James Livingston  <doclivingston@gmail.com>
4622         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
4623         number tag.
4625         * shell/rb-shell.c:
4626         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
4628         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
4629         to true.
4631         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
4632         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
4633         method assigning, so it's understandable
4635         * sources/rb-library-source.c: (rb_library_source_class_init),
4636         (impl_paste): rather than hard-coding the types to ignore, use
4637         rb_source_can_copy.
4639 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4641         * sources/rb-library-source.c:
4642         (rb_library_source_preferences_sync):
4643         Don't crash if no audio profile is selected and the gconf schemas are 
4644         not installed.
4646 2006-03-31  James Livingston  <doclivingston@gmail.com>
4648         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
4649         "*" which caused compilation to fail
4651 2006-03-31  James Livingston  <doclivingston@gmail.com>
4653         * configure.ac:
4654         * Makefile.am:
4655         * backends/Makefile.am:
4656         * backends/gstreamer/Makefile.am:
4657         * backends/gstreamer/rb-encoder-gst.c:
4658         * backends/gstreamer/rb-encoder-gst.h:
4659         * backends/rb-encoder.c:
4660         * backends/rb-encoder.h: add a interface for transcoding, and a
4661         GStreamer implementation of it (based on Sound-Juicer's code).
4663         * shell/Makefile.am:
4664         * shell/rb-removable-media-manager.c:
4665         (rb_removable_media_manager_class_init),
4666         (rb_removable_media_manager_init),
4667         (rb_removable_media_manager_dispose),
4668         (rb_removable_media_manager_finalize),
4669         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
4670         (progress_cb), (completed_cb), (do_transfer),
4671         (rb_removable_media_manager_queue_transfer), (copy_entry),
4672         (rb_removable_media_manager_cmd_copy_tracks):
4673         * shell/rb-removable-media-manager.h: use the encoder interface to
4674         perform transfers of entries to other locations
4676         * shell/rb-shell-player.c: (open_location_thread):
4677         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
4678         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
4679         (rb_shell_quit):
4680         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
4681         progress in the status bar.
4683         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
4684         (rb_shell_preferences_sync),
4685         (rb_shell_preferences_browser_views_activated_cb):
4686         * data/glade/general-prefs.glade: move the browser views setting from
4687         the library tab to the general one.
4689         * data/glade/library-prefs.glade: add settings for the layout of the
4690         user's library, and their preferred encoding format (e.g. for CD
4691         ripping).
4693         * lib/rb-preferences.h:
4694         * data/rhythmbox.schemas: add keys for the above options (and a few
4695         other minor ones)
4697         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
4698         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
4699         entry, that isn't inserted into the database.
4701         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
4702         (rb_audiocd_create_track_entry):
4703         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
4704         cds, and set the mime-type of audio cd tracks correctly.
4706         * sources/rb-library-source.c: (rb_library_source_class_init),
4707         (rb_library_source_finalize),
4708         (rb_library_source_edit_profile_clicked_cb),
4709         (impl_get_config_widget), (rb_library_source_preferences_sync),
4710         (impl_receive_drag), (rb_library_source_path_changed_cb),
4711         (rb_library_source_filename_changed_cb),
4712         (rb_library_source_format_changed_cb), (sanitize_path),
4713         (filepath_parse_pattern), (layout_example_label_update),
4714         (rb_library_source_layout_path_changed),
4715         (rb_library_source_layout_filename_changed), (build_filename),
4716         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
4717         entries to the library. Large chunks of code for determining the
4718         destination file name stolen from Sound-Juicer.
4720         * sources/rb-sourcelist-model.c: (path_is_droppable):
4721         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
4722         * sources/rb-static-playlist-source.c:
4723         (rb_static_playlist_source_class_init):
4724         * sources/rb-removable-media-source.c:
4725         (rb_removable_media_source_class_init):
4726         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
4727         (rb_source_can_paste):
4728         * sources/rb-source.h: add a new _can_paste method, and use it (rather
4729         than _can_copy) to determine whether we can paste into the source.
4732 2006-03-31  Steve Frécinaux  <steve@istique.net>
4734         * plugins/rb-python-module.c: allow import of python modules with a '.'
4735         (gedit's bug 336403). Patch by Johan Dahlin.
4737 2006-03-31  James Livingston  <doclivingston@gmail.com>
4739         * sources/rb-library-source.c: 
4740         * sources/rb-library-source.h:
4741         * sources/rb-browser-source.c:
4742         * sources/rb-browser-source.h: Split RBLibrarySource into two.
4743         RBBrowserSource now contains all the stuff for having a source which
4744         views a particular entry type (including browsers and searching).
4745         RBLibrarySource derives from this, and includes the library-specific
4746         stuff, like importing and library watching. Fixes some issues where
4747         library-derived sources were doing things that should be
4748         library-specific. Fixes bug 335185.
4750         * data/ui/rhythmbox-ui.xml:
4751         * sources/Makefile.am: modifications for the above
4753         * sources/rb-daap-source.c: (rb_daap_source_class_init),
4754         (rb_daap_source_get_paned_key):
4755         * sources/rb-daap-source.h:
4756         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
4757         * sources/rb-removable-media-source.c:
4758         (rb_removable_media_source_class_init):
4759         * sources/rb-removable-media-source.h: derive from RBBrowserSource
4760         instead of RBLibrarySource.
4762 2006-03-31  James Livingston  <doclivingston@gmail.com>
4764         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
4765         I buggered up when changing from GnomeVFSFileSize.
4767 2006-03-30  James Livingston  <doclivingston@gmail.com>
4769         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
4770         for "-Wno-error".
4772         * bindings/python/rb.override:
4773         * bindings/python/Makefile.am: make the RB python bindings depend on
4774         the RhythmDB ones, and use "-Wno-error" since the machine-generated
4775         code sometimes emits warnings.
4777         * shell/rb-shell-player.c: (rb_shell_player_class_init),
4778         (rb_shell_player_error_get_type):
4779         * shell/rb-shell-player.h:
4780         * bindings/python/rb.defs: add bindings for RBShellPlayer
4782         * rhythmdb/rhythmdb.c: (rhythmdb_init),
4783         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
4784         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
4785         * rhythmdb/rhythmdb.h:
4786         * shell/rb-shell.c: (rb_shell_get_song_properties):
4787         * widgets/rb-entry-view.c: (propid_from_name):
4788         * widgets/rb-property-view.c: (rb_property_view_class_init):
4789         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
4790         than just plain GPtrArray, and add bindings for it.
4792         * bindings/python/rhythmdb.override: wrap some functions that use
4793         GValues
4795 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4797         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
4798         Only watch directories from which entries of type SONG have been
4799         added.
4801 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4803         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
4804         No need to restore the selection after rebuilding the child model,
4805         since that can't have changed the selection.
4807 2006-03-29  James Livingston  <doclivingston@gmail.com>
4809         * bindings/python/override_common.c:
4810         * bindings/python/override_common.h: add some for missing files to
4811         cvs.
4813 2006-03-29  James Livingston  <doclivingston@gmail.com>
4815         * configure.ac:
4816         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
4817         copied from gedit's autofoo and we don't need it
4819         * bindings/python/rhythmdb.defs:
4820         * bindings/python/rhythmdb.override: add missing files to cvs
4822 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4824         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
4825         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
4826         before running any of the debug/test modes.
4827         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
4828         Make plugin loading work when running uninstalled from the shell/
4829         directory.
4831 2006-03-29  James Livingston  <doclivingston@gmail.com>
4833         * rhythmdb/rhythmdb-property-model.c:
4834         (rhythmdb_property_model_sync),
4835         (rhythmdb_property_model_column_get_type):
4836         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
4838         * rhythmdb/rhythmdb-private.h:
4839         * rhythmdb/rhythmdb-query-model.c:
4840         (rhythmdb_query_model_class_init):
4841         * rhythmdb/rhythmdb-query-model.h:
4842         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
4843         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
4844         (rhythmdb_entry_get_type):
4845         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
4847         * widgets/rb-query-creator-properties.c:
4848         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
4849         was missing.
4851         * bindings/python/Makefile.am:
4852         * bindings/python/rb.defs:
4853         * bindings/python/rb.override:
4854         * plugins/rb-python-module.c: (rb_python_module_init_python): add
4855         Python bindings for RhythmDB.
4857 2006-03-29  James Livingston  <doclivingston@gmail.com>
4859         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
4860         sharing when using --no-registration
4862 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4864         * rhythmdb/rhythmdb-query-model.c:
4865         (rhythmdb_query_model_reapply_query):
4866         Don't remove entries while iterating, as it breaks the sequence
4867         nodes.  Instead, collect a list of removed entries and process it
4868         after iterating the sequence.  Fixes #334642.
4870 2006-03-29  James Livingston  <doclivingston@gmail.com>
4872         * plugins/rb-plugin-manager.c: (active_toggled_cb),
4873         (row_activated_cb), (plugin_manager_toggle_all):
4874         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
4875         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
4876         (button_press_cb), (source_name_edited_cb):
4877         * widgets/rb-property-view.c: (rb_property_view_set_property),
4878         (rb_property_view_post_row_deleted_cb),
4879         (rb_property_view_row_activated_cb),
4880         (rb_property_view_selection_changed_cb),
4881         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
4882         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
4884 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4886         * rhythmdb/rhythmdb-query-model.c:
4887         (rhythmdb_query_model_drag_data_received):
4888         Increment the reference count for entries added by drag and drop.
4889         Fixes #336045.
4891 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4893         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
4894         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
4895         Ignore invalid UTF-8 strings.  Fixes most of #334167.
4897 2006-03-27  James Livingston  <doclivingston@gmail.com>
4899         * shell/rb-shell.c: (rb_shell_constructor),
4900         (rb_shell_sync_window_state): fix a maximise-realise race that would
4901         cause some widgets to be resized after we had explicity set theri
4902         size. Hopefully fixes bug 331927.
4904 2006-03-27  James Livingston  <doclivingston@gmail.com>
4906         * plugins/rb-plugin-manager.c: (active_toggled_cb),
4907         (row_activated_cb), (plugin_manager_set_active),
4908         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
4909         configure button sensitivity when a plugin is enabled/disabled.
4911 2006-03-27  James Livingston  <doclivingston@gmail.com>
4913         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
4914         stop warnings, only the vbos is used anyway
4916         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
4917         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
4918         collection every now an then.
4920         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
4921         if we are finalising because the python object couldn't be created.
4923         * plugins/rb-python-module.c: (rb_python_module_new_object): return
4924         NULL if the python-side object couldn't be created. Stops crashes when
4925         the object is later used when it doesn't exist in Python.
4927         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
4928         (rb_python_shutdown): do better garbage collection when shutting down.
4929         Fixes the problem where Python was holding a reference to the shell,
4930         causing RB not to exit.
4932 2006-03-27  James Livingston  <doclivingston@gmail.com>
4934         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
4935         336131.
4937 2006-03-27  James Livingston  <doclivingston@gmail.com>
4939         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
4940         From bug 334829.
4942 2006-03-26  James Livingston  <doclivingston@gmail.com>
4944         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
4945         library location list to NULL after we free it. Fixes bug 336047.
4947 2006-03-26  James Livingston  <doclivingston@gmail.com>
4949         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
4951         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
4952         supplies. Fixes bug 335947.
4954 2006-03-25  James Livingston  <doclivingston@gmail.com>
4956         * data/glade/audioscrobbler-prefs.glade:
4957         * shell/rb-audioscrobbler.c:
4958         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
4959         "submit songs" checkbox, and make it not disable username/password
4960         entry. This will be needed when we support other last.fm stuff
4961         (profile access, radio, etc).
4963 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
4965         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
4966         Volume should not display stock_volume-0 for volume > 0. Fixes bug
4967         335777.
4969 2006-03-24  James Livingston  <doclivingston@gmail.com>
4971         * shell/rb-shell-player.c: (rb_shell_player_set_property),
4972         (rb_shell_player_sync_play_order),
4973         (rb_shell_player_play_order_update_cb),
4974         (actually_set_playing_source): update the next/previous availablility
4975         in places where it was missing. Fixes bug 335490.
4977 2006-03-24  James Livingston  <doclivingston@gmail.com>
4979         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
4980         can't find the widget
4982         * lib/rb-util.c: (rb_uri_list_parse):
4983         * lib/rb-util.h: add function for parsing a URI list into strings.
4985         * metadata/Makefile.am: make the metdata helper build when linking
4986         with --as-needed
4988         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
4989         g_mkdir_with_parents instead of coding our own.
4991         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
4992         <itunes:author> over <generator>, instead of using whichever comes
4993         last.
4995         * rhythmdb/rhythmdb-private.h:
4996         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
4997         field, as we don't ever check it (to detect corruption). Saves a bit
4998         of memory.
5000 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5002         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
5003         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
5004         Escape '&' and '=' in the paths we get back from
5005         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
5007 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5009         * shell/rb-shell.c: (rb_shell_constructor):
5010         Issue startup notification after creating the main window, so
5011         notification is issued whether the window is visible or not.
5012         Fixes #335086.
5014 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5016         * sources/rb-auto-playlist-source.c: (impl_search),
5017         (rb_auto_playlist_source_query_complete_cb),
5018         (rb_auto_playlist_source_do_query):
5019         * sources/rb-library-source.c: (impl_search),
5020         (rb_library_source_query_complete_cb),
5021         (rb_library_source_do_query):
5022         Defer subset searches (where text is appended to an existing search)
5023         until the original query is complete.
5025 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
5027         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
5029         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
5030         (rb_refstring_get_sort_key): fixes for strict-aliasing
5032 2006-03-21  James Livingston  <jrl@ids.org.au>
5034         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
5035         importing a single file. Fixes bug 335307.
5037 2006-03-21  James Livingston  <jrl@ids.org.au>
5039         * shell/Makefile.am: remove the reference to backends/ that I
5040         accidently included.
5042 2006-03-21  James Livingston  <jrl@ids.org.au>
5044         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
5045         with Forte (on Solaris). Closes bug 335318.
5047         * configure.ac:
5048         * lib/Makefile.am:
5049         * player/rb-recorder-gst.c:
5050         * podcast/rb-podcast-parse.c:
5051         * remote/bonobo/Makefile.am:
5052         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
5053         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
5054         (rhythmdb_query_model_add_entry),
5055         (rhythmdb_query_model_add_results):
5056         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
5057         * rhythmdb/rhythmdb.h:
5058         * shell/Makefile.am:
5059         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
5060         (update_speed_combobox):
5061         * sources/rb-sourcelist-model.c:
5063 2006-03-21  James Livingston  <jrl@ids.org.au>
5065         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
5067         * player/Makefile.am:
5068         * shell/Makefile.am: work correctly with a separate build root.
5070 2006-03-21  James Livingston  <jrl@ids.org.au>
5072         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
5073         get handed NULL.
5075 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5077         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
5078         Only create ignore entries when importing into the library.  
5079         Ignore entries for files in removable media sources don't help.
5081 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5083         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
5084         * shell/rb-source-header.h:
5085         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
5086         * widgets/rb-search-entry.h:
5087         Add functions to make the search box grab focus.
5089         * shell/rb-shell.c: (rb_shell_cmd_view_all):
5090         Focus the search box after handling the 'view all' action.
5092 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5094         * rhythmdb/rhythmdb.h:
5095         * rhythmdb/rhythmdb.c: (rhythmdb_init),
5096         (rhythmdb_execute_multi_stat_info_cb),
5097         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
5098         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
5099         (action_thread_main):
5100         Collect all the get_file_info requests on startup into one gnome-vfs
5101         job to reduce overhead and avoid contention for the rhythmdb lock.
5102         Add a new method to call when all initial query models are set up.
5103         
5104         * shell/rb-shell.c: (idle_handle_load_complete):
5105         Call rhythmdb startup complete function when we've loaded all the
5106         playlists.  Fixes #334106.
5108 2006-03-20  James Livingston  <jrl@ids.org.au>
5110         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
5111         (rb_entry_view_selection_changed_cb),
5112         (rb_entry_view_have_complete_selection): make has_complete_selection
5113         not slow. Fixes a performance issue I added a week or so ago.
5115 2006-03-20  James Livingston  <jrl@ids.org.au>
5117         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
5118         before passing to strcmp. From bug 334559.
5120 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5122         * configure.ac:
5123         * lib/Makefile.am:
5124         * lib/rb-proxy-config.c:
5125         * lib/rb-proxy-config.h:
5126         Add a new object to watch the HTTP proxy configuration and emit
5127         signals when it changes.
5129         * shell/rb-audioscrobbler.c:
5130         * shell/rb-audioscrobbler.h:
5131         Use rb-proxy-config to watch HTTP proxy configuration.
5133         * shell/rb-shell.c:
5134         Construct rb-proxy-config object on startup, and remove all
5135         audioscrobbler references.
5137         * shell/Makefile.am:
5138         * plugins/audioscrobbler/Makefile.am:
5139         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5140         Move all audioscrobbler code into the plugin.  We should move
5141         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
5142         point.  Don't use a private data structure in the plugin, since the
5143         class definition isn't in a header file.  Fixes #335091.
5145 2006-03-20  James Livingston  <jrl@ids.org.au>
5147         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
5148         don't enable Next if the source has an EOS type other than
5149         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
5151 2006-03-20  James Livingston  <jrl@ids.org.au>
5153         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
5154         (rb_song_info_forward_clicked_cb): deal with there being no
5155         next/previous entry.
5157         (rb_song_info_query_model_inserted_cb),
5158         (rb_song_info_query_model_deleted_cb),
5159         (rb_song_info_query_model_reordered_cb),
5160         (rb_song_info_query_model_changed_cb): monitor the query for changes,
5161         to update the button status. Fixes bug 333293.
5163 2006-03-20  James Livingston  <jrl@ids.org.au>
5165         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
5166         caused by my last commit
5168 2006-03-20  James Livingston  <jrl@ids.org.au>
5170         * bindings/python/Makefile.am:
5171         * bindings/python/rb.defs:
5172         * bindings/python/rb.override: add python bindings of RBRemoteProxy
5174         * shell/rb-shell.c: (rb_shell_constructor),
5175         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
5176         tray-icon detection slightly
5178 2006-03-19  Steve Frécinaux  <steve@istique.net>
5180         * data/ui/rhythmbox-ui.xml:
5181         * shell/rb-shell.c:
5183         Add an empty Tool Menu (hidden by default) containing placeholders for
5184         plugins.
5186         * configure.ac:
5187         * plugins/Makefile.am:
5188         * plugins/pythonconsole/Makefile.am:
5189         * plugins/pythonconsole/pythonconsole.py:
5190         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
5191         
5192         Python Console plugin
5194 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5196         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
5197         Extra step to encode '&' and '=' to match what gnome-vfs does
5198         internally.
5199         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5200         (rhythmdb_tree_save):
5201         Increment rhythmdb xml version to 1.2, and force another uri
5202         re-canonicalisation when loading v1.1 databases.
5203         Fixes bug #333998.
5205 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5207         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
5208         (avahi_client_init), (browse_cb):
5209         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
5210         (avahi_client_init):
5211         Fix compilation with Avahi 0.5.x (bug #334551).
5213 2006-03-19  James Livingston  <jrl@ids.org.au>
5215         Add Increase/Decrease Volume menu items and keybindings. From bug
5216         123383.
5218         * data/ui/rhythmbox-ui.xml:
5219         * shell/rb-shell-player.c: (rb_shell_player_constructor),
5220         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
5221         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
5223 2006-03-19  James Livingston  <jrl@ids.org.au>
5225         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
5227         * shell/Makefile.am: fix the link order, so that we compile with
5228         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
5230 2006-03-19  James Livingston  <jrl@ids.org.au>
5232         patch by: Adam Petaccia  <adam@tpetaccia.com>
5234         * data/ui/rhythmbox-ui.xml: move preferences below "configure
5235         plugins". Fixes bug 335037.
5237 2006-03-18  James Livingston  <jrl@ids.org.au>
5239         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
5240         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
5241         332992.
5243         * widgets/rb-header.c: don't make artist/album info in the header the
5244         small size, since it's hard to read.
5246 2006-03-16  William Jon McCann  <mccann@jhu.edu>
5248         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
5249         (rhythmdb_finalize): Don't leak the hash tables.
5250         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
5251         (rhythmdb_commit_internal): Make sure to process the deletions.
5252         (rhythmdb_entry_delete): Use a hash.
5254         * podcast/rb-podcast-manager.c: Random analness about char*
5255         (rb_podcast_manager_remove_feed): Add debugging.
5256         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
5257         the result of gnome_vfs_unlink.  Don't leak a uri.
5259         Fixes #334786
5261 2006-03-18  James Livingston  <jrl@ids.org.au>
5263         * NEWS: update NEWS file
5265 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5267         * rhythmdb/rhythmdb-property-model.c:
5268         (rhythmdb_property_model_prop_changed_cb):
5269         Remove entries from the hash table after processing visible->hidden
5270         changes.
5272 2006-03-16  William Jon McCann  <mccann@jhu.edu>
5274         * sources/rb-daap-source.c (connection_connected_cb) 
5275         (connection_disconnected_cb): Add debug.
5276         (rb_daap_source_get_headers): Check for NULL connection.
5278         * daapsharing/rb-daap-src.c (rb_daap_src_open):
5279         Check return value of rb_daap_source_get_headers.
5281         Fixes #332089
5283 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5285         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
5286         Restore the selection after rebuilding the child model, so the
5287         selection is shown correctly after using the 'browse this
5288         album/artist/genre' menu items.
5290 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5292         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
5293         Clear the selection before changing the active model.
5294         Fixes crash reported in bug 334549.
5296 2006-03-15  James Livingston  <jrl@ids.org.au>
5298         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
5299         (rb_tray_icon_sync_action):
5300         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
5301         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
5302         for non-libnotify notification bubbles. Fixes bug 331721.
5304 2006-03-15  James Livingston  <jrl@ids.org.au>
5306         Add search-bar options to playlists. Fixes bug 334407.
5308         * sources/rb-auto-playlist-source.c:
5309         (rb_auto_playlist_source_class_init),
5310         (rb_auto_playlist_source_constructor),
5311         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
5312         (search_action_to_prop), (search_action_changed):
5313         * sources/rb-static-playlist-source.c:
5314         (rb_static_playlist_source_class_init),
5315         (rb_static_playlist_source_constructor),
5316         (construct_query_from_selection), (impl_get_search_actions),
5317         (search_action_to_prop), (search_action_changed):
5319 2006-03-14  William Jon McCann  <mccann@jhu.edu>
5321         * shell/rb-source-header.c (rb_source_header_set_source_internal):
5322         Remove broken attempt at making the search bar buttons not
5323         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
5325 2006-03-14  William Jon McCann  <mccann@jhu.edu>
5327         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
5328         Chain up to parent's dispose instead of finalize.  Fixes #334479.
5330 2006-03-14  William Jon McCann  <mccann@jhu.edu>
5332         * widgets/rb-header.c (rb_header_sync): Escape album and
5333         artist before adding to markup.
5335 2006-03-14  William Jon McCann  <mccann@jhu.edu>
5337         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
5338         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
5339         (rb_header_set_property), (rb_header_get_property),
5340         (rb_header_sync):
5341         Remove the GnomeUrl song links until we can do it properly.
5342         Fixes #334453.
5344 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5346         * shell/rb-source-header.c: (rb_source_header_clear_search):
5347         Remove the stored search text from the hash table, so it doesn't
5348         reappear after switching to another source and back.
5350         * sources/rb-auto-playlist-source.c: (impl_search):
5351         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
5352         * sources/rb-static-playlist-source.c: (impl_search):
5353         Make sure all sources treat impl_search(NULL) and impl_search("") the
5354         same.  Fixes #334525.
5356 2006-03-14  James Livingston  <jrl@ids.org.au>
5358         Store which thread created new entries, and make rhythmdb_commit only
5359         insert the entries for the thread that calls it. This stops one thread
5360         calling rhythmdb_commit inserting entries that are half-way through
5361         construction by another thread (as happens with audio cds). From bug
5362         330226.
5364         * rhythmdb/rhythmdb.c: (rhythmdb_init),
5365         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
5366         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
5367         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
5368         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
5369         (rhythmdb_process_metadata_load),
5370         (rhythmdb_process_queued_entry_set_event),
5371         (rhythmdb_prop_get_type):
5373 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5375         * rhythmdb/rhythmdb-query-model.c:
5376         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
5377         (rhythmdb_query_model_finalize):
5378         Move object unrefs from _finalize into _dispose.
5379         
5380         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
5381         Remove extra g_object_ref that was causing query model leaks.
5382         
5383         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
5384         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
5385         (genre_selection_reset_cb), (rb_iradio_source_do_query):
5386         Remove the cached 'all' query, since it doesn't really help and it
5387         makes the code more complicated.  Attach the genre property view to
5388         the query model build from the search text, so only genres for
5389         stations matching the search terms are displayed.  Preserve the genre
5390         selection across searches.
5392         * widgets/rb-library-browser.c: 
5393         (rb_library_browser_class_init), (rb_library_browser_get_property):
5394         Add properties for the input and output models for the browser, and
5395         remove the 'changed' signal as we can just use notify::output-model.
5396         (ignore_selection_changes),
5397         (selection_restore_data_destroy), (query_complete_cb),
5398         (restore_selection): Helper functions for preserving selections across
5399         query model rebuilds.
5400         (rebuild_output_model):  New function for creating a query model to
5401         use as the display model for a source using the browser.
5402         (rebuild_child_model): Add a call to rebuild_output_model, add missing
5403         g_object_unrefs, reuse the parent's query model when there's no
5404         selection, and use ignore_selection_changes and restore_selection.
5405         (rb_library_browser_set_selection): rebuild_child_model emits the
5406         changed signal, so no need to do it here.
5407         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
5408         ignore_selection_changes and restore_selection. 
5409         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
5410         flag to rb_library_browser_set_model indicating whether the query is
5411         asynchronous.
5413         * sources/rb-static-playlist-source.c:
5414         (rb_static_playlist_source_class_init),
5415         (rb_static_playlist_source_dispose):
5416         (rb_static_playlist_source_constructor):  Add an extra reference on
5417         the base model, so it doesn't vanish when we set a new display model
5418         based on a search or browser selection.
5419         (impl_search): Ensure the search_text field in the source is NULL if
5420         the search box is empty.
5421         (construct_query_from_selection),
5422         (rb_static_playlist_source_do_query): Use the query model constructed
5423         from the search as the input model for the browser.
5424         (rb_static_playlist_source_browser_changed_cb): Use the browser's
5425         output model as the query model for the source.
5427         * sources/rb-auto-playlist-source.c:
5428         (rb_auto_playlist_source_finalize): Free more stuff.
5429         (rb_auto_playlist_source_constructor),
5430         (rb_auto_playlist_source_browser_changed_cb):
5431         Update for rb-library-browser changes, use the browser's output query
5432         model as the query model for the source.
5433         (impl_reset_filters), (impl_search), 
5434         (rb_auto_playlist_source_do_query),
5435         (rb_auto_playlist_source_set_query):
5436         Use the query model constructed from the search text as the input to
5437         the library browser, and when adding text to an existing search, apply
5438         the new query to the existing query model.
5439         
5440         * sources/rb-library-source.c: (rb_library_source_dispose):
5441         (rb_library_source_finalize): Chain dispose up to the parent class.
5442         (rb_library_source_constructor): Update for rb-library-browser
5443         changes. 
5444         (impl_search): Ensure search_text is NULL if the search box is empty,
5445         and use the subset flag to _do_query if text has been appended to an
5446         existing search.
5447         (search_action_changed), (impl_reset_filters):
5448         (rb_library_source_browser_changed_cb),
5449         (rb_library_source_do_query): Use the browser's output model as the
5450         query model for the source.
5452         Rework library and playlist sources to use a single query chain,
5453         and to limit the entries shown in property views based on the search
5454         terms.  Fixes bug #322787.
5456 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5458         * configure.ac:  Enable metadata helper by default, and fix a typo.
5460 2006-03-13  James Livingston  <jrl@ids.org.au>
5462         Make RBRefStrings lazily create the folded and sort-key strings when
5463         they are first used. This will same some memory by not creating ones
5464         that are never used, and delaying some of the others to when the user
5465         resorts or performs a similar action. Fixes bug 332992.
5467         * rhythmdb/rb-refstring.c: (rb_refstring_free),
5468         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
5469         (rb_refstring_get), (rb_refstring_get_folded),
5470         (rb_refstring_get_sort_key), (rb_refstring_hash),
5471         (rb_refstring_equal):
5472         * rhythmdb/rb-refstring.h:
5473         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
5475 2006-03-12  William Jon McCann  <mccann@jhu.edu>
5477         * data/ui/rhythmbox-ui.xml:
5478         * lib/rb-stock-icons.c: (rb_stock_icons_init):
5479         * lib/rb-stock-icons.h:
5480         * shell/rb-shell-player.c:
5481         * shell/rb-shell.c: (rb_shell_constructor):
5482         * shell/rb-source-header.c: (force_no_shadow),
5483         (ui_manager_add_widget_cb), (rb_source_header_constructor),
5484         (rb_source_header_class_init), (rb_source_header_init),
5485         (merge_source_ui_cb), (toolbar_set_homogeneous),
5486         (rb_source_header_set_source_internal),
5487         (rb_source_header_set_property), (rb_source_header_get_property),
5488         (rb_source_header_set_source), (rb_source_header_new),
5489         (rb_source_header_filter_changed_cb):
5490         * shell/rb-source-header.h:
5491         * sources/rb-library-source.c: (rb_library_source_class_init),
5492         (rb_library_source_init), (search_action_to_prop),
5493         (search_action_changed), (rb_library_source_constructor),
5494         (impl_search), (impl_reset_filters), (impl_get_search_actions),
5495         (construct_query_from_selection):
5496         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5497         (rb_podcast_source_init), (search_action_to_prop),
5498         (search_action_changed), (rb_podcast_source_constructor),
5499         (construct_query_from_selection), (impl_get_ui_actions),
5500         (impl_get_search_actions):
5501         * sources/rb-source.c: (rb_source_class_init),
5502         (rb_source_get_ui_actions), (default_get_search_actions),
5503         (rb_source_get_search_actions):
5504         * sources/rb-source.h:
5506         Add a search bar.  Fixes #328618
5508 2006-03-12  James Livingston  <jrl@ids.org.au>
5510         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
5511         * shell/main.c: (main): make --no-update not stat files checking for
5512         changes, instead of doing nothing. Fixes bug 125177.
5514 2006-03-12  James Livingston  <jrl@ids.org.au>
5516         * podcast/rb-podcast-manager.c:
5517         (rb_podcast_manager_thread_parse_feed):
5518         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
5519         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
5520         having an invalid mime-type. Fixed bug 329813.
5522 2006-03-12  James Livingston  <jrl@ids.org.au>
5524         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
5525         Finally lets us close bug 309609.
5527         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
5528         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
5529         0.10
5531         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
5532         inverted logic of the editable check.
5534 2006-03-12  James Livingston  <jrl@ids.org.au>
5536         Make API doc generation work again. Fixes bug 334276.
5538         * doc/reference/Makefile.am:
5539         * doc/reference/tmpl/rb-debug.sgml:
5540         * doc/reference/tmpl/rb-druid.sgml:
5541         * doc/reference/tmpl/rb-entry-view.sgml:
5542         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
5543         * doc/reference/tmpl/rb-metadata.sgml:
5544         * doc/reference/tmpl/rb-shell.sgml:
5545         * doc/reference/tmpl/rhythmbox-unused.sgml:
5546         * doc/reference/tmpl/rhythmdb.sgml:
5548 2006-03-12  James Livingston  <jrl@ids.org.au>
5550         * shell/rb-shell-clipboard.c:
5551         (rb_shell_clipboard_set_source_internal),
5552         (rb_shell_clipboard_sync): don't try to use the source's entry view if
5553         it doesn't have one. Fixes bug 331673.
5555         * sources/rb-source.c: (rb_source_class_init): provide a default
5556         have_url implementation that returns FALSE.
5558 2006-03-12  James Livingston  <jrl@ids.org.au>
5560         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
5561         doing a distclean. Fixes bug 334221.
5564         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
5566         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
5568 2006-03-11  James Livingston  <jrl@ids.org.au>
5570         * shell/rb-shell.c: (rb_shell_window_state_cb),
5571         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
5572         update the window width/height when iconified. Stops the window
5573         changing size when it is restored from the tray, fixing bug 333824. 
5575 2006-03-11  James Livingston  <jrl@ids.org.au>
5577         Try to get cvs to actually add the necessary files for plugin support
5579 2006-03-11  James Livingston  <jrl@ids.org.au>
5581         Add a plugin framework, with basic support for Python plugins (based
5582         on gedit's). Closes bug 330523.
5584         * Makefile.am:
5585         * shell/Makefile.am:
5586         * configure.ac: necessary autofoo.
5588         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
5590         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
5591         * lib/rb-file-helpers.h:
5593         * data/glade/plugins/glade:
5594         * lib/rb-preferences.h:
5595         * plugins/*:
5596         * bindings/*: plugin framework
5598         * plugins/sample/*:
5599         * plugins/sample-python/*: sample plugins
5601         * plugins/audioscrobbler/*:
5602         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
5603         (rb_audioscrobbler_set_property),
5604         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
5605         submission into a plugin. shell/audioscrobbler.* should really be
5606         moved, but that sucks with cvs.
5608         * shell/rb-shell.h:
5609         * shell/rb-shell.c: (rb_shell_constructor),
5610         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
5611         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
5612         (rb_shell_quit): start and stop plugin framework.
5614 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5616         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
5617         (rhythmdb_entry_delete):
5618         Emit entry-deleted signals when rhythmdb_commit is called, rather than
5619         immediately, so we can't get change notifications afterwards.  
5620         Fixes #331732.
5621         (rhythmdb_process_metadata_load): Add a commit after removing an
5622         entry so we can recreate it with a different type without getting
5623         confused.
5625 2006-03-11  James Livingston  <jrl@ids.org.au>
5627         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
5628         use the drive name for audio CDs, use "Unknown CD".
5630 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5632         patch by:  James Henstridge  <james@jamesh.id.au>
5634         * sources/rb-removable-media-source.c:
5635         (rb_removable_media_source_constructor):
5636         Get the device name from the GnomeVFSDrive if possible,
5637         since this is usually a more descriptive name.  Fixes #333080.
5639 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5641         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
5643         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
5644         Don't automatically download episodes when configured for manual
5645         updating.  Fixes #331564.
5647 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5649         * rhythmdb/rhythmdb-property-model.c:
5650         (rhythmdb_property_model_iter_from_string):
5651         Return an iterator for the 'all' property when name == NULL,
5652         and don't write to *iter if iter == NULL.
5654 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5656         * shell/rb-shell-player.c: (rb_shell_player_do_next):
5657         When switching to the play queue, still call _go_next on the normal
5658         play order, so self-emptying auto playlists ("play count = 0" etc.)
5659         don't restart once the queue is empty.
5661         * shell/rb-tray-icon.c:
5662         Change shortcut for 'show notifications' to 'o' so it doesn't clash
5663         with 'next'.
5665 2006-03-05  James Livingston  <jrl@ids.org.au>
5667         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5668         don't submit tracks which could not be played. Fixed bug 333013.
5670         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
5671         tracks which could not be played.
5673 2006-03-05  James Livingston  <jrl@ids.org.au>
5675         Sync musicbrainz lookup code from Sound-Juicer cvs.
5677         * metadata/sj-metadata-musicbrainz.c:
5678         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
5679         (get_offline_track_listing), (artist_and_title_from_title),
5680         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
5681         (mb_list_albums), (mb_get_submit_url):
5682         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
5683         * metadata/sj-metadata.h:
5684         * metadata/sj-structures.c: (track_details_free),
5685         (album_details_free):
5686         * metadata/sj-structures.h:
5688 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5690         * lib/rb-debug.h:
5691         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
5692         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
5693         (rb_profiler_reset), (rb_profiler_free):
5694         Filter debug output by matching the file and function names against a
5695         match string.
5697         * shell/main.c: (main):
5698         Add -D command line option to specify the debug match string.
5700         * shell/rb-removable-media-manager.c:
5701         (rb_removable_media_manager_mount_volume):
5702         Fix some typos in debug output.
5704 2006-03-03  James Livingston  <jrl@ids.org.au>
5706         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
5707         * shell/rb-shell.c: (rb_shell_load_uri):
5708         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
5709         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
5710         use the new "recurse" property from totem-plparser, if present. Stop
5711         RB hanging for new users who don't have a 'net connection. From bug
5712         331508.
5714 2006-03-02  Bastien Nocera  <hadess@hadess.net>
5716         * shell/rb-removable-media-manager.c:
5717         (rb_removable_media_manager_mount_volume):
5718         * sources/Makefile.am:
5719         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
5720         Fix missing files on make dist (conditional files), only build the
5721         N770 support if there's HAL support, as we have no other ways of
5722         detecting it
5724 2006-03-03  James Livingston  <jrl@ids.org.au>
5726         * shell/rb-shell-clipboard.c:
5727         (rb_shell_clipboard_set_source_internal): really fix it this time.
5728         hopefully.
5730 2006-03-03  James Livingston  <jrl@ids.org.au>
5732         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
5733         with the idle function not being removed.
5735 2006-03-02  James Livingston  <jrl@ids.org.au>
5737         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
5738         * widgets/rb-entry-view.h: add function for determining whether all
5739         entries are selected.
5741         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
5742         (rb_shell_clipboard_set_source_internal),
5743         (rb_shell_clipboard_finalize),
5744         (rb_shell_clipboard_idle_poll_deletions),
5745         (rb_shell_clipboard_entryview_changed_cb),
5746         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
5747         removals, to update things.
5749         (rb_shell_clipboard_sync): update the Select All and Select None
5750         sensitivity, based on what is selected. Fixed bug 172220.
5752 2006-03-02  James Livingston  <jrl@ids.org.au>
5754         * widgets/rb-library-browser.c: (rebuild_child_model): save and
5755         restore the selections of later models. This means that selecting the
5756         artist for the selected album does not reset the album selection.
5758 2006-03-02  James Livingston  <jrl@ids.org.au>
5760         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
5761         Stops it emitting critical warnings.
5763 2006-03-02  James Livingston  <jrl@ids.org.au>
5765         * lib/rb-file-helpers.c: (rb_uri_append_uri):
5766         * lib/rb-file-helpers.h: Add uri concatenation function for when the
5767         second fragment is already escaped.
5769         * sources/rb-generic-player-source.c:
5770         (rb_generic_player_source_class_init),
5771         (rb_generic_player_source_constructor), (impl_show_popup),
5772         (rb_generic_player_source_load_playlists),
5773         (rb_generic_player_source_transform_playlist_uri),
5774         (handle_playlist_entry_cb), (visit_playlist_dirs),
5775         (default_load_playlists), (default_transform_playlist_uri):
5776         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
5777         the device. Allow subclasses to override the playlist loading, and
5778         (playlist uri)->(actual uri) mapping. A lot of devices which have
5779         playlists won't work right now, but people will see them and hopefully
5780         file bugs.
5782         * sources/rb-psp-source.c: (rb_psp_source_class_init),
5783         (rb_psp_source_create_playlists): Adapt the PSP for the above change
5784         
5785         * sources/Makefile.am:
5786         + sources/rb-nokia770-source.{c,h}:
5787         * shell/rb-removable-media-manager.c:
5788         (rb_removable_media_manager_mount_volume): Add support for reading
5789         playlists of Nokia 770s.
5791 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5793         * data/glade/podcast-properties.glade:
5794         * podcast/rb-podcast-properties-dialog.c:
5795         (rb_podcast_properties_dialog_init),
5796         (rb_podcast_properties_dialog_update),
5797         (rb_podcast_properties_dialog_update_location),
5798         (rb_podcast_properties_dialog_update_download_location):
5799         Add 'download location' field showing the path to the downloaded copy.
5800         Fixes #330696.
5802 2006-03-01  Bastien Nocera  <hadess@hadess.net>
5804         * configure.ac: simplify HAVE_HAL define
5806 2006-03-01  Bastien Nocera  <hadess@hadess.net>
5808         * configure.ac:
5809         * lib/rb-file-helpers.c: (rb_uri_append_path):
5810         * lib/rb-file-helpers.h:
5811         * shell/rb-removable-media-manager.c:
5812         (rb_removable_media_manager_mount_volume):
5813         * sources/Makefile.am:
5814         * sources/rb-ipod-source.c:
5815         * sources/rb-psp-source.*:
5816         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
5817         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
5819 2006-03-02  James Livingston  <jrl@ids.org.au>
5821         * shell/rb-shell-player.c: (rb_shell_player_set_property),
5822         (rb_shell_player_play), (rb_shell_player_jump_to_current),
5823         (swap_playing_source), (rb_shell_player_playpause),
5824         (rb_shell_player_sync_buttons), (actually_set_playing_source),
5825         (rb_shell_player_set_playing_source_internal): check for the entry
5826         view being NULL before trying to use it. Lets us support sources which
5827         don't have an entry view. From bug 331673.
5829 2006-03-01  Bastien Nocera  <hadess@hadess.net>
5831         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
5832         use gnome_vfs_read_entire_file with a URI, not a local filename
5834 2006-03-01  James Livingston  <jrl@ids.org.au>
5836         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
5837         first-seen and last-seen when merging duplicate entries.
5839 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5841         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
5842         * widgets/rb-property-view.h:  New function, allowing custom 
5843         interactive search functions for property views.
5844         
5845         * sources/rb-podcast-source.c: 
5846         (feed_select_change_cb): Only do a new query when the selection
5847         actually changes.
5848         (rb_podcast_source_constructor),
5849         (rb_podcast_source_feed_title_search_func):
5850         Interactive search function for podcast feed titles.  Fixes #327451.
5852 2006-03-01  James Livingston  <jrl@ids.org.au>
5854         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
5855         the uri in the callback, since it causes symbols to not be escaped.
5856         Fixes bug 332976.
5858         * data/ui/rhythmbox-ui.xml:
5859         * sources/rb-import-errors-source.c:
5860         (rb_import_errors_source_class_init),
5861         (rb_import_errors_source_constructor), (impl_get_status),
5862         (impl_move_to_trash),
5863         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
5864         import errors source
5865         
5866         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
5867         (rb_entry_view_append_column): unescape the URI for display.
5869 2006-03-01  James Livingston  <jrl@ids.org.au>
5871         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
5872         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
5873         function fails.
5875 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
5877         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
5878         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
5879         * sources/rb-play-queue-source.c:
5880         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
5881         (rb_play_queue_source_update_count):  Use "Play Queue" instead
5882         of "Queued Songs".
5884         Fixes #331637.
5886 2006-03-01  James Livingston  <jrl@ids.org.au>
5888         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
5889         Fixes bug 332913.
5891 2006-03-01  James Livingston  <jrl@ids.org.au>
5893         * daapsharing/rb-daap-mdns-browser-howl.c:
5894         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
5895         * daapsharing/rb-daap-mdns-publisher-avahi.c:
5896         (rb_daap_mdns_publisher_class_init),
5897         (rb_daap_mdns_publisher_finalize):
5898         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
5899         * player/rb-recorder-gst.c: (rb_recorder_class_init),
5900         (rb_recorder_finalize):
5901         * rhythmdb/rhythmdb-query-model.c:
5902         (rhythmdb_query_model_constructor):
5903         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
5904         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
5905         * sources/rb-playlist-source-recorder.c:
5906         (rb_playlist_source_recorder_style_set),
5907         (rb_playlist_source_recorder_class_init),
5908         (rb_playlist_source_recorder_finalize):
5909         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
5910         other classes in the same way, so they don't break when derived from.
5912 2006-03-01  James Livingston  <jrl@ids.org.au>
5914         * sources/rb-generic-player-source.c:
5915         (rb_generic_player_source_constructor): don't get the parent class in
5916         a dumb way, and it breaks when the class is derived from.
5918 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
5920         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
5922 2006-03-01  James Livingston  <jrl@ids.org.au>
5924         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
5925         not work in glib 2.8 systems.
5927 2006-03-01  James Livingston  <jrl@ids.org.au>
5929         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
5930         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
5931         say it is crap.
5933         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
5934         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
5935         podcasts on ion-local places
5937         * rhythmdb/gsequence.c: (g_sequence_node_new),
5938         (g_sequence_node_free): use gslice if we are building against glib
5939         2.10.
5941         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
5942         local files too, so it doesn't block.
5944 2006-02-28  James Livingston  <jrl@ids.org.au>
5946         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
5947         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
5948         stats the file. Stops the UI blocking while stats are done.
5950 2006-02-28  James Livingston  <jrl@ids.org.au>
5952         * sources/rb-static-playlist-source.c:
5953         (rb_static_playlist_source_class_init),
5954         (rb_static_playlist_source_constructor), (impl_reset_filters),
5955         (impl_get_property_views), (impl_browser_toggled),
5956         (rb_static_playlist_source_do_query),
5957         (rb_static_playlist_source_browser_changed_cb): add browsers to static
5958         playlists. From bug 118862.
5960         * sources/rb-play-queue-source.c:
5961         (rb_play_queue_source_class_init): disable them for the play queue.
5963 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
5965         * data/glade/library-prefs.glade:  Add a mnemonic.
5966         * sources/rb-library-source.c:
5967         (rb_library_source_location_button_clicked_cb):  Use title
5968         capitalization for window title.
5970 2006-02-28  James Livingston  <jrl@ids.org.au>
5972         * sources/rb-auto-playlist-source.c:
5973         (construct_query_from_selection): don't create a subquery for only one
5974         criteria, as it's a silly effifiency degredation.
5976 2006-02-28  James Livingston  <jrl@ids.org.au>
5978         * rhythmdb/rhythmdb.h:
5979         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5980         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
5981         saved to disk
5983         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
5984         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
5985         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
5986         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
5987         IGNORE (e.g. known video stream) create an entry of the Ignore type.
5988         This will make importing files quicker as we don't need to try files
5989         that we know are not going to be interesting - especially useful when
5990         using the library watching facility.
5992         Fixes bug 323179.
5994 2006-02-28  James Livingston  <jrl@ids.org.au>
5996         * shell/rb-shell.c: (rb_shell_constructor),
5997         (rb_shell_set_visibility): fix browser and source-list pane
5998         positioning, that I broke with the "remember visibility" patch.
6000 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6002         * metadata/rb-metadata-dbus-service.c: (main):
6003         Change argument handling so you can use --debug with the --load and
6004         --can-save test modes.
6005         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
6006         Use a separate GMainContext, not the default one.  Probably fixes
6007         #332344.
6009 2006-02-27  James Livingston  <jrl@ids.org.au>
6011         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
6012         first starting up. Fixes bug 330342.
6014 2006-02-27  James Livingston  <jrl@ids.org.au>
6016         * sources/rb-sourcelist-model.c:
6017         (rb_sourcelist_model_set_dnd_targets):
6018         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
6019         COPY action for draging sources and tracks, not MOVE as well. Stops
6020         Nautilus moving file away, and fixes bug 332488.
6022 2006-02-27  James Livingston  <jrl@ids.org.au>
6024         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
6026         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
6027         and Last Played metadata off iPods. Closes bug 324648.
6029 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6031         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
6032         Disable audioscrobbler when run with the --no-registration flag, since
6033         last.fm doesn't allow multiple concurrent clients per user.
6035 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6037         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
6038         Rename renamable sources when F2 is pressed when the sourcelist has
6039         focus.  Fixes #330700.
6041 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6043         * shell/rb-playlist-manager.c: (cleanup_edit_data),
6044         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
6045         (rb_playlist_manager_cmd_edit_automatic_playlist):
6046         Fix various crashes when deleting auto playlists previously edited
6047         by disconnecting signal handlers when the query editor is closed or
6048         the playlist is deleted.
6050 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6052         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
6053         removed load failure dialog, and actually use the friendly file type
6054         name in error messages.
6056 2006-02-24  James Livingston  <jrl@ids.org.au>
6058         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
6060         * sources/rb-library-source.c:
6061         (rb_library_source_location_button_clicked_cb),
6062         (rb_library_source_preferences_sync),
6063         (rb_library_source_library_location_cb): convert the library URI to
6064         for display, and back again. Fixes bug 332356.
6066 2006-02-23  James Livingston  <jrl@ids.org.au>
6068         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
6069         (rhythmdb_process_metadata_load), (monitor_subdirectory),
6070         (rhythmdb_sync_library_location): don't monitor files at all if
6071         watching is turned off. From bug 323096.
6073 2006-02-23  James Livingston  <jrl@ids.org.au>
6075         * data/rhythmbox.schemas:
6076         * lib/rb-preferences.h:
6077         * shell/rb-shell.c: (rb_shell_constructor),
6078         (rb_shell_set_visibility): remember main window visibility between
6079         sessions. Fixes bug 127320.
6081 2006-02-23  James Livingston  <jrl@ids.org.au>
6083         * data/glade/library-prefs.glade:
6084         * sources/rb-library-source.c: (impl_get_config_widget),
6085         (rb_library_source_location_button_clicked_cb),
6086         (rb_library_source_preferences_sync),
6087         (rb_library_source_library_location_cb),
6088         (rb_library_source_watch_toggled_cb): change the library-location
6089         widgets from the file-chooser drop menu to a text entry and Browse
6090         button. This is needed to prevent the location from chaning if the
6091         directory cannot be found. Fixes bug 328414.
6093 2006-02-23  James Livingston  <jrl@ids.org.au>
6095         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
6096         item. Fixes bug 329042.
6098 2006-02-23  James Livingston  <jrl@ids.org.au>
6100         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
6102         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
6103         comma in some podcast feeds. Fixes bug 332194.
6105 2006-02-23  James Livingston  <jrl@ids.org.au>
6107         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
6108         lower priority.
6110         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
6111         the internal audio cd URIs from "cdda://device:track" to
6112         "cdda://track#device" as it makes processing much easier.
6114         * shell/rb-shell-player.c: (rb_shell_player_open_location):
6115         * player/rb-player-gst.c: don't have the shell close the player
6116         between songs, as doing that should be backend-specific. Make the
6117         gstreamer backend close before starting a new track, unless the old
6118         and new ones are both tracks on the same audio cd. Just seek in that
6119         case.
6121 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6123         * doc/reference/rhythmbox.types: Fix doc build a bit more.
6125 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6127         * configure.ac: Enable more warnings in my stupid setup too.
6128         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
6129         #332210.
6131 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6133         * sources/rb-missing-files-source.h,
6134         * sources/rb-missing-files-source.c,
6135         * sources/rb-import-errors-source.h,
6136         * sources/rb-import-errors-source.c:
6137         Add library meta-sources, showing missing files and import errors.
6138         Fixes #167763, #142322.
6140         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
6141         * sources/rb-sourcelist-model.h:
6142         * sources/rb-sourcelist.c: (rb_sourcelist_append),
6143         (match_source_to_iter), (rb_sourcelist_source_to_iter),
6144         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
6145         (visibility_notify_cb):
6146         Store source visibility in the sourcelist model, so we can determine
6147         child source counts correctly and get the sourcelist expander column
6148         right.
6149         
6150         * widgets/rb-entry-view.h:
6151         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
6152         (rb_entry_view_append_column), (set_column_visibility):
6153         Allow the creator of the entry view to specify which columns are
6154         always visible.
6156         * sources/rb-source.h:
6157         * sources/rb-source.c: (_autohide_update_visibility),
6158         (_rb_autohide_source_row_deleted_cb),
6159         (_rb_autohide_source_row_inserted_cb),
6160         (_rb_source_hide_when_empty):
6161         Allow sources to automatically hide themselves when empty.
6162         
6163         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
6164         * sources/rb-library-source.c: (rb_library_source_constructor):
6165         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
6166         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
6167         Explicitly specify which columns are always visible.
6168         
6169         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
6170         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
6171         Remove load error signal handling and load failure dialog.
6172         Create missing files and import errors sources for the library.
6174         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
6175         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
6176         Create DB entries for import errors rather than emitting the 'load
6177         error' signal; mark loaded entries visible.
6178         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
6179         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
6180         (rhythmdb_prop_get_type): Store string form of last seen time for
6181         hidden entries, since it's used in the missing files source.
6182         (rhythmdb_entry_import_error_get_type): 
6183         Add entry type for import errors.
6184         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
6185         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
6186         (rhythmdb_entry_move_to_trash_set_error),
6187         (rhythmdb_entry_move_to_trash):  
6188         Correct spelling, add missing rhythmdb_commit.
6189         * rhythmdb/rhythmdb.h:  
6190         Add import error entry type and last seen string property.
6191         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
6192         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
6193         (save_entry):  Ignore string form of 'last seen' property.
6195         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
6196         Don't try to play hidden entries or import error entries.
6198         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
6199         * sources/Makefile.am: Add meta-source files
6200         * widgets/Makefile.am: Remove load failure dialog files
6202 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6204         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
6205         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
6206         few bits and pieces.
6208 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6210         * metadata/test-metadata.c: (load_metadata_cb):
6211         Fix compile warning for ignoring return value from getcwd, #332064.
6213 2006-02-21  James Livingston  <jrl@ids.org.au>
6215         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
6216         (edit_auto_playlist_deleted_cb),
6217         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
6218         playlist editor non-modal. Fixes bug 320030.
6220 2006-02-21  James Livingston  <jrl@ids.org.au>
6222         * shell/rb-shell.c: (rb_shell_constructor):
6223         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
6224         (rb_header_set_show_artist_album):
6225         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
6226         (rb_song_display_box_sync): make the queue sidebar and song display
6227         not get affected by gtk_widget_show_all. Fixes bug 332001.
6229 2006-02-21  James Livingston  <jrl@ids.org.au>
6231         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6233         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
6234         feeds which use timezone names instead of offsets. Doesn't actually
6235         parse the timezone name since they are not standardised. Fixes bug
6236         331691.
6238 2006-02-21  James Livingston  <jrl@ids.org.au>
6240         * help/C/figures/rb-notification-area.png:
6241         * help/C/figures/rb-sidebar.png:
6242         * help/C/quick-reference.xml: remove obsolete files from CVS.
6244         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
6245         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
6246         (rhythmdb_query_free), (rhythmdb_query_serialize),
6247         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
6248         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
6250         * widgets/rb-query-creator-properties.c: add prefix and suffix
6251         (escapedStringCriteriaGetWidgetData): use better escaping, so it
6252         doesn't escape the ':' separator in uris.
6254 2006-02-21  James Livingston  <jrl@ids.org.au>
6256         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
6257         on startup.
6259 2006-02-21  James Livingston  <jrl@ids.org.au>
6261         * NEWS: update with recent changes
6263 2006-02-21  James Livingston  <jrl@ids.org.au>
6265         * shell/rb-shell.c: (rb_shell_constructor),
6266         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
6267         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
6268         (rb_druid_browse_clicked_cb), (do_response):
6269         * widgets/rb-druid.h: Make running the druid not block RBShell
6270         starting up. This is required so that bonobo registration doesn't time
6271         out. Fixed bug 318766.
6273 2006-02-21  James Livingston  <jrl@ids.org.au>
6275         * rhythmdb/rhythmdb-property-model.c:
6276         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
6277         hash table after using it, not before. Fixed bug 331922.
6279 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6281         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
6282         (rb_shell_view_queue_as_sidebar_changed_cb):
6283         When playing from the queue, only attempt to highlight the queue
6284         source in the source list if it's actually visible there.  Otherwise,
6285         leave the preempted source highlighted.  Mostly fixes #330819.
6287 2006-02-20  James Livingston  <jrl@ids.org.au>
6289         * rhythmdb/rhythmdb-property-model.c:
6290         (rhythmdb_property_model_row_inserted_cb),
6291         (rhythmdb_property_model_prop_changed_cb),
6292         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
6293         store the roperty value in the entry-mapping table, so that receiving
6294         the remove signal from a query model before we get notified of a
6295         change doesn't cause a crash. Fixes bug 331770.
6297 2006-02-20  James Livingston  <jrl@ids.org.au>
6299         * data/ui/rhythmbox-ui.xml:
6300         * sources/rb-play-queue-source.c:
6301         (rb_play_queue_source_class_init),
6302         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
6303         playlist things in the queue popup source. From 330490.
6305         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
6306         previous commit
6308 2006-02-20  James Livingston  <jrl@ids.org.au>
6310         * widgets/rb-song-info.c: (rb_song_info_response_cb),
6311         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
6312         attempt to sync data for non-editable entries when using
6313         next/previous. Don't write our Year if it wasn't changed. Fixes bug
6314         331762.
6316 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
6318         * .cvsignore:
6319         * Makefile.am:
6320         * autogen.sh:
6321         * configure.ac:
6322         * help/.cvsignore:
6323         * help/Makefile.am: ported to gnome-doc-utils
6324         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
6325         * help/ChangeLog: added, for translators
6326         * help/C/rhytmbox-C.omf: removed, no longer used
6327         Know issue: figures are installed, but some are not showed; manual
6328         description added, but not showed in Yelp while browsing. I'll
6329         investigate, maybe are needed some little changes to
6330         help/C/rhythmbox.xml.
6332 2006-02-20  James Livingston  <jrl@ids.org.au>
6334         * data/ui/rhythmbox-ui.xml:
6335         * help/C/figures/rb-adv.png:
6336         * help/C/figures/rb-asst-finish.png:
6337         * help/C/figures/rb-asst-library.png:
6338         * help/C/figures/rb-asst-start.png:
6339         * help/C/figures/rb-basic.png:
6340         * help/C/figures/rb-browser.png:
6341         * help/C/figures/rb-context-menu.png:
6342         * help/C/figures/rb-empty.png:
6343         * help/C/figures/rb-full-play.png:
6344         * help/C/figures/rb-group-auto.png:
6345         * help/C/figures/rb-group-create.png:
6346         * help/C/figures/rb-group.png:
6347         * help/C/figures/rb-imported.png:
6348         * help/C/figures/rb-iradio-add.png:
6349         * help/C/figures/rb-iradio.png:
6350         * help/C/figures/rb-nextprev.png:
6351         * help/C/figures/rb-nobrowse-play.png:
6352         * help/C/figures/rb-notification-area-menu.png:
6353         * help/C/figures/rb-player.png:
6354         * help/C/figures/rb-prefs-general.png:
6355         * help/C/figures/rb-prefs-ipod.png:
6356         * help/C/figures/rb-prefs-library.png:
6357         * help/C/figures/rb-prefs.png:
6358         * help/C/figures/rb-repeat.png:
6359         * help/C/figures/rb-search.png:
6360         * help/C/figures/rb-shuffle.png:
6361         * help/C/figures/rb-stats.png:
6362         * help/C/figures/rb-toolbar-editor.png:
6363         * help/C/figures/rb-volume-mute.png:
6364         * help/C/figures/rhythmbox-group.png:
6365         * help/C/figures/rhythmbox-tray-icon.png:
6366         * help/C/user-guide.xml: remove old stuff from cvs
6368 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6370         * metadata/rb-metadata-dbus-client.c: 
6371         * metadata/rb-metadata-dbus-service.c:
6372         * metadata/rb-metadata-dbus.c:
6373         * metadata/rb-metadata-dbus.h:
6374         New files, adding an external service for reading and writing
6375         metadata, and an implementation of the RBMetaData interface that uses
6376         dbus to communicate with it.
6377         
6378         * metadata/rb-metadata.h,
6379         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
6380         (rb_metadata_get_field_name): Put metadata details in a static array
6381         instead of using a hash table, and add a field for language code (not
6382         used for anything)
6383         * metadata/rb-metadata-gst.c: Updates for changes in
6384         rb-metadata-common.c, fix signal handler closure leak for the typefind
6385         element's have-type signal, and add XML to the list of types we ignore.
6386         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
6387         Update for changes to rb_metadata_get_field_type
6388         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
6389         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
6390         here and there.
6391         
6392         * configure.ac: Add --enable-metadata-helper option (not enabled by
6393         default) to use the external metadata service
6394         * metadata/Makefile.am: Add new files
6395         * metadata/test-metadata.c:  Test program for the metadata service
6397         Fixes #329597. 
6399 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6401         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
6402         * sources/rb-podcast-source.c: (impl_get_ui_actions),
6403         (rb_podcast_source_cmd_new_podcast):
6404         Move 'new podcast' action to the podcast source, and add it to the
6405         toolbar.  Fixes #331562.
6407 2006-02-19  James Livingston  <jrl@ids.org.au>
6409         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
6410         menus, and away from move-to-trash. Fixes bug 331013.
6412 2006-02-19  James Livingston  <jrl@ids.org.au>
6414         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
6415         when deleting last entry. Fixes bug 331712.
6417 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6419         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
6420         (rb_entry_view_button_press_cb):
6421         * widgets/rb-entry-view.h: Emit show-popup when right clicked
6422         anywhere, and include a flag indicating whether the click was over an
6423         entry or not.
6424         
6425         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
6426         (rb_playlist_source_songs_show_popup_cb):
6427         * sources/rb-playlist-source.h:
6428         Add the 'over entry' flag to the class show popup method, and in the
6429         default handler, ignore right clicks when not over an entry.
6430         
6431         * sources/rb-iradio-source.c:
6432         (rb_iradio_source_songs_show_popup_cb):
6433         * sources/rb-library-source.c:
6434         (rb_library_source_songs_show_popup_cb):
6435         * sources/rb-podcast-source.c:
6436         (rb_podcast_source_songs_show_popup_cb):
6437         Show the source list popup menu when right clicked while not over an
6438         entry.
6440         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
6441         For the queue sidebar, always display the popup so the 'clear queue'
6442         action is available regardless of where you click.  For the queue
6443         source, only display the popup when right clicked over an entry.
6444         Fixes #331392.
6446 2006-02-19  James Livingston  <jrl@ids.org.au>
6448         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
6449         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
6450         entry view, when we're not even using it
6452         * rhythmdb/rhythmdb-property-model.c:
6453         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
6454         function, rather than a copy of the code.
6456         * shell/rb-playlist-manager.c:
6457         (rb_playlist_manager_playlist_row_inserted_cb),
6458         (rb_playlist_manager_set_source_internal),
6459         (rb_playlist_manager_playlist_entries_changed): use the query-model
6460         directly, rather than the source's entry view.
6462         * shell/rb-source-header.c: don't use the entry view, just select the
6463         source widget.
6465 2006-02-18  James Livingston  <jrl@ids.org.au>
6467         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
6469         * help/C/figures/rb-iradio-main.png:
6470         * help/C/figures/rb-notification-area-menu.png:
6471         * help/C/figures/rb-notification-window.png:
6472         * help/C/figures/rb-notification-zone.png:
6473         * help/C/figures/rb-podcast-main.png:
6474         * help/C/figures/rb-statusbar.png:
6475         * help/C/figures/rb-toolbar-prevplaynext.png:
6476         * help/C/figures/rb-toolbar-repeat.png:
6477         * help/C/figures/rb-toolbar-shuffle.png:
6478         * help/C/figures/rb-toolbar.png:
6479         * help/C/figures/rb-volume-changer.png:
6480         * help/C/figures/rb-window-small.png:
6481         * help/C/figures/rb-window.png:
6482         * help/C/rhythmbox.xml: Update user guide with some of the changes
6483         that have occurred after 0.8.8. From bug 314001.
6485 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6487         * rhythmdb/rhythmdb-query-results.h,
6488           rhythmdb/rhythmdb-query-results.c:
6489         New interface for objects that accept query results from RhythmDB.
6491         * rhythmdb/rhythmdb-query-model.c:
6492         (rhythmdb_query_model_query_results_init),
6493         (rhythmdb_query_model_set_query),
6494         (rhythmdb_query_model_add_results),
6495         (rhythmdb_query_model_query_complete):
6496         * rhythmdb/rhythmdb-query-model.h:
6497         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
6499         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
6500         (rhythmdb_tree_do_full_query):
6501         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
6502         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
6503         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
6504         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
6505         * rhythmdb/rhythmdb.h:
6506         Pass query results through the RhythmDBQueryResults interface, rather
6507         than directly to a RhythmDBQueryModel.
6509         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
6510         (rb_podcast_manager_db_entry_deleted_cb):
6511         * sources/rb-auto-playlist-source.c:
6512         (rb_auto_playlist_source_do_query),
6513         (rb_auto_playlist_source_set_query):
6514         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
6515         * sources/rb-library-source.c: (rb_library_source_constructor),
6516         (rb_library_source_do_query):
6517         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
6518         (rb_podcast_source_do_query):
6519         * rhythmdb/rhythmdb-property-model.c:
6520         (rhythmdb_property_model_drag_data_get):
6521         Cast the query model to RhythmDBQueryResults when passing to one of
6522         the RhythmDB query methods.
6524         * rhythmdb/Makefile.am: Add new files.
6526 2006-02-18  James Livingston  <jrl@ids.org.au>
6528         * data/ui/rhythmbox-ui.xml:
6529         * shell/rb-playlist-manager.c:
6530         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
6531         "queue playlist" item to source context menu. Fixes bug 330490.
6533 2006-02-18  James Livingston  <jrl@ids.org.au>
6535         * data/glade/general-prefs.glade:
6536         * shell/rb-shell-preferences.c:
6537         (rb_shell_preferences_column_check_changed_cb),
6538         (rb_shell_preferences_sync):
6539         * sources/rb-library-source.c: (rb_library_source_constructor):
6540         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
6541         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
6542         (rb_entry_view_append_column): Add a "quality" colume which indicates
6543         the bitrate of media. Part of bug 167659.
6545 2006-02-18  James Livingston  <jrl@ids.org.au>
6547         * shell/rb-play-order.c: (do_next_idle_cb),
6548         (default_playing_entry_removed): move to next track when playing entry
6549         is deleted. Fixes bug 131150.
6551         * shell/rb-shell-player.h: remove ancient stuff
6553 2006-02-17  William Jon McCann  <mccann@jhu.edu>
6555         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
6556         (rb_shell_clipboard_set_property): 
6557         * shell/rb-shell.c (rb_shell_sync_party_mode):
6558         Trigger a resync of the clipboard properties when changing party mode.
6560 2006-02-17  William Jon McCann  <mccann@jhu.edu>
6562         * sources/rb-static-playlist-source.c: Fix includes.
6564         * sources/rb-source.c (rb_source_can_rename) 
6565         (rb_source_can_delete, rb_source_can_move_to_trash):
6566         Return FALSE if in party mode.
6568         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
6569         Replace fullscreen with party mode.
6570         (rb_shell_window_delete_cb): Don't quit if in party mode.
6571         (rb_shell_view_party_mode_changed_cb): Setup party mode.
6572         (window_state_event_cb): Try to deiconify shell when iconified
6573         in party mode.
6574         (rb_shell_sync_party_mode): Sync party mode properties.
6575         Currently, that means [de]sensitizing close, quit, and small-display,
6576         going into fullscreen mode with window stuck and kept above, and
6577         toggling queue-only for the shell player.
6578         (rb_shell_sync_smalldisplay): Sensitive party mode.
6579         (rb_shell_get_party_mode): Get party mode setting.
6581         * shell/rb-shell-player.c (rb_shell_player_class_init) 
6582         (rb_shell_player_set_property, rb_shell_player_get_property):
6583         Add queue-only property.
6584         (rb_shell_player_entry_activated_cb): If in party mode
6585         only queue the entry on activation.
6587         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
6588         Break out from set_properties.  Desensitize some actions when
6589         in party mode.
6590         (rb_playlist_manager_set_property): Break out set_source_internal.
6592         * data/rhythmbox.schemas: Remove fullscreen mode.
6594         * data/ui/rhythmbox-ui.xml: Replace fullscreen
6595         action with party mode.
6597         Partial fix for #323933
6599 2006-02-17  James Livingston  <jrl@ids.org.au>
6601         * configure.ac:
6602         * shell/rb-removable-media-manager.c:
6603         (get_nautilus_burn_drive_for_path),
6604         (rb_removable_media_manager_playing_uri_changed_cb): only use
6605         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
6606         over the list when it doesn't.
6608 2006-02-17  James Livingston  <jrl@ids.org.au>
6610         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
6611         (rb_iradio_source_first_time_changed): Only do the import on the
6612         first change from FALSE to TRUE.
6614         * sources/rb-library-source.c:
6615         (rb_library_source_preferences_sync),
6616         (rb_library_source_library_location_cb): set the first-run done flag
6617         if the user presses close and then sets their watches library
6618         location. Fixes bug 325997.
6620 2006-02-17  James Livingston  <jrl@ids.org.au>
6622         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
6623         removable media manager gobject properties
6625         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
6626         (split_drive_from_cdda_uri),
6627         (rb_removable_media_manager_playing_uri_changed_cb),
6628         (rb_removable_media_manager_load_media): stop polling a cd drive
6629         when we are playing from it. Part of bug 330716.
6631 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6633         * rhythmdb/rhythmdb-query-model.c:
6634         (rhythmdb_query_model_set_property),
6635         (rhythmdb_query_model_finalize),
6636         (rhythmdb_query_model_base_entry_removed):
6637         Propagate entry removal from base models out to attached property
6638         models.  Fixes the rest of #331165.
6640 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6642         * rhythmdb/rhythmdb-property-model.c:
6643         (rhythmdb_property_model_row_inserted_cb),
6644         (rhythmdb_property_model_prop_changed_cb),
6645         (rhythmdb_property_model_insert):
6646         Don't store NULL as a hash table value if we want to use
6647         g_hash_table_lookup to check if a key exists, and get the checks for
6648         how and whether to handle entry changes the right way around.
6649         Fixes #331211 and half of #331165.
6651 2006-02-16  James Livingston  <jrl@ids.org.au>
6653         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
6654         the audio cd's TOC in a separate thread, so it doesn't block the UI.
6655         Fixes bug 329942.
6657 2006-02-16  James Livingston  <jrl@ids.org.au>
6659         * widgets/rb-library-browser.c: (reset_view_cb): make View All
6660         actually reset the browsers.
6662 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6664         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
6665         Escape the strings we pass into libnotify so we don't get blank
6666         notifications when the song name contains '&' etc.  Fixes #330784.
6668 2006-02-16  James Livingston  <jrl@ids.org.au>
6670         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
6671         enable "View All" when there is only a search box and no browser.
6672         Fixes bug 331395.
6674 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6676         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
6677         popup menu, which I forgot to commit with the patch for bug #330014.
6679 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6681         * shell/rb-shell-player.c: (open_location_thread):
6682         Sync button and entry view state once we've started the player, so the
6683         entry view gets into the playing state for iradio.
6685 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6687         * shell/rb-shell-player.c: (open_location_thread):
6688         Take GDK lock before doing anything UI-related.
6690 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6692         * shell/rb-shell.c: Move 'new iradio station' action to
6693         iradio source.
6695         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
6696         (rb_iradio_source_init), (rb_iradio_source_finalize),
6697         (rb_iradio_source_constructor):
6698         Remove some unused stuff.
6700         (guess_uri_scheme), (rb_iradio_source_add_station),
6701         (rb_iradio_source_add_from_playlist),
6702         (impl_get_ui_actions), (new_station_location_added),
6703         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
6704         action, include it in the toolbar, and make sure the URI we add has a
6705         scheme.  Fixes #327059, more or less.
6707 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6709         * sources/rb-play-queue-source.c:
6710         (rb_play_queue_source_class_init),
6711         (rb_play_queue_source_constructor),
6712         (rb_play_queue_source_update_count),
6713         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
6714         Add a toolbar button to clear the play queue, and make it sensitive
6715         only when there are entries in the queue.  Fixes #330014.
6717         * sources/rb-source.c: (_rb_source_register_action_group):
6718         * sources/rb-source.h:  Add helper function to register an
6719         action group for a source.
6721         * sources/rb-library-source.c: (rb_library_source_constructor):
6722         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
6723         (register_action_group):  Use _rb_source_register_action_group.
6725 2006-02-15  James Livingston  <jrl@ids.org.au>
6727         * widgets/rb-song-info.c: (rb_song_info_add_completion),
6728         (rb_song_info_constructor), (rb_song_info_set_property): make
6729         tag-editing completion work for albums too.
6731 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6733         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
6734         Check the 'limit' checkbox for time-limited playlists.
6736 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
6738         * widgets/rb-song-info.c: Prove text-completion when editing title,
6739         artist or album
6741 2006-02-14  James Livingston  <jrl@ids.org.au>
6743         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
6744         tray icon popup menu. Fixes bug 331026.
6746 2006-02-14  James Livingston  <jrl@ids.org.au>
6748         * data/iradio-initial.pls: update the Virgin Radio stations to use the
6749         Ogg Vorbis streams, instead of the MP3 ones.
6751 2006-02-14  James Livingston  <jrl@ids.org.au>
6753         * rhythmdb/rhythmdb-property-model.c:
6754         (rhythmdb_property_model_class_init),
6755         (rhythmdb_property_model_drag_data_get):
6756         * rhythmdb/rhythmdb-query-model.c:
6757         (rhythmdb_query_model_title_sort_func):
6758         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
6759         LOCATION as the key. Fixes bug 330601.
6761 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6763         * sources/rb-playlist-source.c: (playlist_iter_func):
6764         Make it compile with older versions of totem-plparser too.      
6766 2006-02-13  James Livingston  <jrl@ids.org.au>
6768         * rhythmdb/rhythmdb.h:
6769         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
6770         structure private, since things should use the accessor functions
6771         rather than manipulating it directly - Only RhythmDB and the
6772         implementation classes should access it directly. Part of the RhythmDB
6773         cleanup of bug 330226.
6775         * iradio/rb-station-properties-dialog.c:
6776         (rb_station_properties_dialog_update_title),
6777         (rb_station_properties_dialog_update_title_entry),
6778         (rb_station_properties_dialog_update_genre),
6779         (rb_station_properties_dialog_update_location),
6780         (rb_station_properties_dialog_update_play_count),
6781         (rb_station_properties_dialog_update_bitrate),
6782         (rb_station_properties_dialog_update_last_played),
6783         (rb_station_properties_dialog_update_rating),
6784         (rb_station_properties_dialog_update_playback_error),
6785         (rb_station_properties_dialog_sync_entries):
6786         * podcast/rb-feed-podcast-properties-dialog.c:
6787         (rb_feed_podcast_properties_dialog_update_title),
6788         (rb_feed_podcast_properties_dialog_update_title_label),
6789         (rb_feed_podcast_properties_dialog_update_author),
6790         (rb_feed_podcast_properties_dialog_update_location),
6791         (rb_feed_podcast_properties_dialog_update_copyright),
6792         (rb_feed_podcast_properties_dialog_update_language),
6793         (rb_feed_podcast_properties_dialog_update_summary):
6794         * podcast/rb-podcast-manager.c:
6795         (rb_podcast_manager_entry_downloaded),
6796         (rb_podcast_manager_db_entry_added_cb),
6797         (download_progress_update_cb),
6798         (rb_podcast_manager_db_entry_deleted_cb):
6799         * podcast/rb-podcast-properties-dialog.c:
6800         (rb_podcast_properties_dialog_update_title),
6801         (rb_podcast_properties_dialog_update_title_label),
6802         (rb_podcast_properties_dialog_update_feed),
6803         (rb_podcast_properties_dialog_update_location),
6804         (rb_podcast_properties_dialog_update_play_count),
6805         (rb_podcast_properties_dialog_update_bitrate),
6806         (rb_podcast_properties_dialog_update_last_played),
6807         (rb_podcast_properties_dialog_update_rating),
6808         (rb_podcast_properties_dialog_update_date),
6809         (rb_podcast_properties_dialog_update_description):
6810         * rhythmdb/rhythmdb-query-model.c:
6811         (rhythmdb_query_model_entry_changed_cb),
6812         (rhythmdb_query_model_remove_from_main_list),
6813         (rhythmdb_query_model_update_limited_entries),
6814         (rhythmdb_query_model_drag_data_get),
6815         (rhythmdb_query_model_album_sort_func):
6816         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
6817         (save_entry):
6818         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
6819         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
6820         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
6821         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
6822         (rhythmdb_entry_get_double):
6823         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
6824         * shell/rb-play-order-random-by-age-and-rating.c:
6825         (rb_random_by_age_and_rating_get_entry_weight):
6826         * shell/rb-play-order-random-by-age.c:
6827         (rb_random_by_age_get_entry_weight):
6828         * shell/rb-play-order-random-by-rating.c:
6829         (rb_random_by_rating_get_entry_weight):
6830         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
6831         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
6832         (rb_shell_player_set_playing_entry),
6833         (rb_shell_player_sync_replaygain),
6834         (rb_shell_player_sync_with_source),
6835         (rb_shell_player_get_playing_song_duration), (info_available_cb):
6836         * sources/rb-playlist-source.c: (playlist_iter_func),
6837         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
6838         (rb_playlist_source_entry_added_cb):
6839         * sources/rb-podcast-source.c:
6840         (rb_podcast_source_post_status_cell_data_func):
6841         * sources/rb-source.c: (rb_source_update_play_statistics):
6842         * sources/rb-sourcelist-model.c:
6843         (rb_sourcelist_model_drag_data_get):
6844         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
6845         (rb_static_playlist_source_add_entry),
6846         (rb_static_playlist_source_remove_entry):
6847         * widgets/rb-entry-view.c: (type_ahead_search_func),
6848         (rb_entry_view_playing_cell_data_func),
6849         (rb_entry_view_rating_cell_data_func),
6850         (rb_entry_view_pixbuf_clicked_cb):
6851         * widgets/rb-header.c: (rb_header_get_duration):
6852         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
6853         (rb_song_info_populate_dialog),
6854         (rb_song_info_update_playback_error),
6855         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
6856         (rb_song_info_update_location), (rb_song_info_update_play_count),
6857         (rb_song_info_update_last_played), (rb_song_info_update_rating),
6858         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
6859         (rb_song_info_sync_entry_single): fix the huge number of times that
6860         the internals got accessed directly.
6862 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6864         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
6865         trash' are grouped together.
6866         * shell/main.c: (main): Pass no-registration flag in to RBShell
6867         constructor, rather than mysteriously always passing TRUE.
6868         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
6869         Set dirty flag when entries are removed from the model, so the play
6870         queue is marked dirty appropriately.
6871         * AUTHORS: update my email address
6873 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6875         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
6877         * widgets/rb-druid.c: (path_dialog_response_cb):
6878         If the URI is local, don't display the 'file://' prefix.  
6879         Fixes #330919.
6881 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6883         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
6884         Attach the notification to the tray icon widget, so libnotify
6885         positions it less badly.  Fixes #330876.
6887 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6889         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
6890         Reverse the selection list before returning it, so we get it in the
6891         right order.  Fixes #330283 and some other weirdness.
6893 2006-02-11  James Livingston  <jrl@ids.org.au>
6895         * shell/rb-shell.c: (rb_shell_constructor),
6896         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
6897         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
6898         make small-mode and fullscreen mutually exclusive, since they don't
6899         work together
6901         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
6902         Mode.
6904 2006-02-10  James Livingston  <jrl@ids.org.au>
6906         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
6907         since it can cause it to be slower than real-time. Should fix bug
6908         322270.
6910 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6912         * rhythmdb/rhythmdb-query-model.c:
6913         (rhythmdb_query_model_set_property):
6914         Think just a little bit harder about that last commit.
6916 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6918         * rhythmdb/rhythmdb-query-model.c:
6919         (rhythmdb_query_model_set_property):
6920         Get the check for hidden entries the right way around.
6921         Fixes #330527, #330514.
6923         (rhythmdb_query_model_set_sort_order):
6924         Ignore no-op sort order changes, so we don't get critical
6925         messages when selecting 'all' in auto playlist browsers.
6927 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6929         Patch by: Christophe Fergeau  <teuf@gnome.org>
6931         * sources/rb-removable-media-source.c:
6932         (rb_removable_media_source_init),
6933         (rb_removable_media_source_constructor):
6934         Move icon setup code to the constructor, as the volume property
6935         haven't been set yet when _init is called.
6937 2006-02-09  William Jon McCann  <mccann@jhu.edu>
6939         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
6940         Make the source pixbuf a dynamic property.
6942         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
6943         (rb_source_set_pixbuf, rb_source_set_property) 
6944         (rb_source_get_property): Add icon property.
6946         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
6947         (rb_auto_playlist_source_init):
6948         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
6949         (rb_static_playlist_source_init):
6950         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
6951         (rb_removable_media_source_init): 
6952         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
6953         (rb_podcast_source_init): 
6954         * sources/rb-library-source.c (rb_library_source_class_init) 
6955         (rb_library_source_set_property, rb_library_source_get_property): 
6956         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
6957         (rb_iradio_source_init): Remove impl_get_pixbuf and
6958         set icon property on source base class.
6960         * sources/rb-daap-source.c (rb_daap_get_icon): Get
6961         a different icon for when the share is password protected
6962         and locked.
6963         (rb_daap_source_new): Set icon property.
6964         (composite_icons): Composite an emblem on a pixbuf.
6965         (create_pixbufs): Load global pixbufs.
6966         (destroy_pixbufs): unref global pixbufs.
6967         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
6968         (connection_auth_cb, connection_connected_cb) 
6969         (connection_disconnected_cb): Update icon when connection
6970         status changes.
6971         (rb_daap_source_activate): Connect signals.
6973         * daapsharing/rb-daap-share.c (name_collision_cb): Run
6974         dialog with parent.
6976         * daapsharing/rb-daap-marshal.list: Add new signal.
6978         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
6979         (rb_daap_collision_dialog_new_run): Set parent of dialog.
6981         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
6982         Add authenticate, connected, and disconnected signals.
6983         (connection_get_password): emit authenticate signal instead
6984         of running dialog directly.
6985         (connection_connected, connection_disconnected): Emit signals.
6986         (handle_login): Emit connected signal.
6987         (handle_logout): Emit disconnected signal.
6988         (rb_daap_connection_do_something): Fix leak.
6990         Fixes #330291
6992 2006-02-09  James Livingston  <jrl@ids.org.au>
6994         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
6995         entries from the base model if we don't have show-hidden set. Fixes
6996         bug 330514.
6998 2006-02-08  William Jon McCann  <mccann@jhu.edu>
7000         * daapsharing/rb-daap-share.c (message_get_session_id):
7001         Ugh. Use strtoul instead of atoi.
7002         (session_id_validate): Add debug statements.
7004 2006-02-08  William Jon McCann  <mccann@jhu.edu>
7006         * daapsharing/rb-daap-connection.c (http_response_handler):
7007         Report the actual uri from the message in debug statements.
7009 2006-02-08  William Jon McCann  <mccann@jhu.edu>
7011         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
7012         Add context argument.
7013         (message_get_session_id): New function to parse session id from
7014         the message.
7015         (message_get_revision_number): Break out function to parse
7016         revision number from the message.
7017         (session_id_validate): New function to validate given session id
7018         is valid for given context (ie. client address).
7019         (session_id_generate): Generate a random session id.
7020         (session_id_create): Create a unique session id and store it.
7021         (session_id_remove): Remove a session id from the store.
7022         (login_cb): Create a session id instead of using a constant one.
7023         (logout_cb): Validate session id.
7024         (update_cb): Use new message_get_revision_number function.
7025         (databases_cb): Validate session id.
7026         (server_cb): Add server context to argument list for callbacks.  It
7027         is needed to look up the remote host.
7028         (db_entry_changed_cb): Use braces.
7029         (soup_auth_callback): Remove FIXME.
7030         (rb_daap_share_server_start): Create session id store.
7031         (rb_daap_share_server_stop): Destroy session id store.
7033         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
7034         Don't base64-encode password here since it needs to be
7035         combined with the username first.
7037         * daapsharing/rb-daap-connection.c (build_message):
7038         Add username to Authorization token.
7039         (handle_login, handle_song_listing) 
7040         (rb_daap_connection_do_something): Session id
7041         must be an unsigned int.
7043         Fixes #329814
7045 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7047         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
7048         Don't check if we've got a playing entry, ask the player object (duh).
7049         Might actually fix #329993.     
7051 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7053         * sources/rb-static-playlist-source.c:
7054         (rb_static_playlist_source_add_list_uri):
7055         Canonicalise URIs before trying to add them to the playlist, and 
7056         don't try to add files to the database for which there is 
7057         already an entry.
7059 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7061         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
7062         Don't ask the entry view if we're playing, just check if we've got a
7063         playing entry.  Fixes #329993.
7065 2006-02-08  James Livingston  <jrl@ids.org.au>
7067         * rhythmdb/rhythmdb-query-model.c:
7068         (rhythmdb_query_model_set_property),
7069         (rhythmdb_query_model_finalize),
7070         (rhythmdb_query_model_base_complete): remove
7071         rhythmdb_query_model_base_entry_prop_changed, so that two signals
7072         don't get emitted for entry changes. Fixes bug 330301.
7074         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
7075         (rb_library_browser_init), (rb_library_browser_constructor),
7076         (rb_library_browser_new): do stuff in the constructor, not the init
7077         function, so that the db property gets set on RBPropertyViews
7078         correctly. Fixes a crash when dragging properties to a playlist.
7080 2006-02-07  William Jon McCann  <mccann@jhu.edu>
7082         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
7083         Actually stop soup server.  Fixes #329816.
7085 2006-02-07  James Livingston  <jrl@ids.org.au>
7087         * lib/rb-util.h:
7088         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
7089         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
7090         (collate_values_cb), (rb_collate_hash_table_keys),
7091         (rb_collate_hash_table_values): add functions to compare, copy and
7092         free string-lists. add functions to collate the keys or values of a
7093         hash table into a list.
7095         * rhythmdb/rhythmdb-property-model.c:
7096         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
7097         (_remove_entry_cb), (_add_entry_cb),
7098         (rhythmdb_property_model_set_property),
7099         (rhythmdb_property_model_get_property),
7100         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
7101         (rhythmdb_property_model_row_inserted_cb),
7102         (rhythmdb_property_model_prop_changed_cb),
7103         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
7104         that are hidden, storing those that we have counted in a hash-table.
7106         * shell/Makefile.am: fix build order issue
7108         * shell/rb-shell-player.c: (rb_shell_player_set_property):
7109         * sources/rb-source.h:
7110         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
7111         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
7112         * sources/rb-podcast-source.c: (feed_select_change_cb): add
7113         browser-toggled method, rename _get_exta_views to _get_property_views,
7114         since several things depend on returning only that.
7116         * sources/rb-source.c: (rb_source_class_init),
7117         (rb_source_browser_toggled), (default_get_property_views),
7118         (rb_source_get_property_views), (rb_source_row_deleted_cb),
7119         (rb_source_gather_hash_keys),
7120         (rb_source_gather_selected_properties): above changes, and move some
7121         utility functions up from RBLibraryView
7123         * widgets/rb-property-view.c:
7124         (rb_property_view_selection_changed_cb): fix leak.
7126         * rhythmdb/rhythmdb-query-model.c:
7127         (rhythmdb_query_model_set_property),
7128         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
7129         (rhythmdb_query_model_set_sort_order),
7130         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
7131         query model being resorted.
7133         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
7134         NULL query.
7136         * rhythmdb/rhythmdb.h:
7137         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
7138         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
7139         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
7140         two queries. Add a function to append "property={X,Y,Z,...}" to a
7141         query.
7143         * sources/rb-library-source.c: (rb_library_source_class_init),
7144         (rb_library_source_finalize), (rb_library_source_constructor),
7145         (rb_library_source_cmd_choose_genre),
7146         (rb_library_source_cmd_choose_artist),
7147         (rb_library_source_cmd_choose_album), (impl_search),
7148         (impl_get_property_views), (impl_reset_filters),
7149         (rb_library_source_preferences_sync),
7150         (rb_library_source_browser_views_activated_cb),
7151         (rb_library_source_state_prefs_sync),
7152         (construct_query_from_selection), (rb_library_source_do_query),
7153         (rb_library_source_browser_changed_cb):
7154         * widgets/Makefile.am:
7155         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
7156         browser" widgets, which contains several property views, based on the
7157         code from RBLibrarySource. Make RBLibrarySource use it.
7159         * sources/rb-auto-playlist-source.c:
7160         (rb_auto_playlist_source_class_init),
7161         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
7162         (rb_auto_playlist_source_constructor), (impl_reset_filters),
7163         (impl_get_property_views), (impl_browser_toggled),
7164         (construct_query_from_selection),
7165         (rb_auto_playlist_source_do_query),
7166         (rb_auto_playlist_source_set_query),
7167         (rb_auto_playlist_source_browser_changed_cb): Use the new
7168         library-browser widget to add browsers to automatic playlists.
7170 2006-02-07  James Livingston  <jrl@ids.org.au>
7172         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
7173         properly.
7174         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
7175         type of the source is taken into account. Fixes bug 329621.
7177 2006-02-07  James Livingston  <jrl@ids.org.au>
7179         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
7180         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
7181         1.1, and perform URI canonicalistion when first upgrading. This should
7182         fix our remaining canonicalisation issues, such as bug 329988.
7184 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
7186         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
7187         Track the playing entry when the entry view isn't in the playing
7188         state, so we don't have to get the state changes exactly right.
7189         Fixes #330135.
7191 2006-02-06  James Livingston  <jrl@ids.org.au>
7193         * shell/rb-shell-player.c: (open_location_thread),
7194         (rb_shell_player_open_location): fix several iradio issues: having to
7195         press play after double-clicking on a station, not working correctly
7196         without a http:// prefix, and ignoring totem-plparser results other
7197         than success or error (e.g. IGNORE).
7199 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
7201         Addition of dbus methods for dealing with static playlists and the
7202         play queue.  Fixes #329958.
7204         * shell/Makefile.am:
7205         * shell/rb-playlist-manager.h:
7206         * shell/rb-playlist-manager.xml:
7207         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
7208         (rb_playlist_manager_get_playlists),
7209         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
7210         (rb_playlist_manager_create_static_playlist),
7211         (rb_playlist_manager_delete_playlist),
7212         (rb_playlist_manager_add_to_playlist),
7213         (rb_playlist_manager_remove_from_playlist),
7214         (rb_playlist_manager_export_playlist):
7215         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
7216         to create, delete, list, modify, export, and import  static playlists.
7217         
7218         * shell/main.c: (main): Register playlist manager object with dbus.
7220         * shell/rb-shell.h:
7221         * shell/rb-shell.xml:
7222         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
7223         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
7224         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
7225         object, and implement the addToQueue and removeFromQueue methods.
7226         
7227         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
7228         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
7229         formats.
7231 2006-02-05  James Livingston  <jrl@ids.org.au>
7233         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
7234         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
7235         (save_entry): allow storage of booleans in the on-disk db, and
7236         save/load the HIDDEN property.
7238         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
7239         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
7240         to the state it was when RB shutdown. This makes RB appear to start
7241         faster, as tracks can appear before the stat is done. Remote files
7242         still start hidden. From bug 325215.
7244 2006-02-05  James Livingston  <jrl@ids.org.au>
7246         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
7247         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
7248         really cares about the difference from "entry-added", and it isn't
7249         emitted by the tree backend anyway.
7251         * rhythmdb/rhythmdb-query-model.c:
7252         (rhythmdb_query_model_constructor):
7253         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
7254         remove the references to the entry-restored signal.
7256 2006-02-05  James Livingston  <jrl@ids.org.au>
7258         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
7259         issue.
7261 2006-02-05  James Livingston  <jrl@ids.org.au>
7263         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
7264         things are NULL before using g_object_unref. Fixes bug 327452.
7266         * player/rb-recorder-gst.c: (rb_recorder_construct):
7267         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
7268         rather than assertion.
7270         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
7271         emit a warning, rather than asserting if an unknown playlist type is
7272         encountered.
7274 2006-02-05  James Livingston  <jrl@ids.org.au>
7276         * widgets/Makefile.am:
7277         * widgets/rb-simple-view.c:
7278         * widgets/rb-simple-view.h: Move the two features that this class
7279         provides into RBPropertyView, and remove this class. Closes bug
7280         327500.
7282         * podcast/rb-feed-podcast-properties-dialog.c:
7283         * podcast/rb-feed-podcast-properties-dialog.h:
7284         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
7285         (rb_podcast_source_feeds_show_popup_cb):
7286         * sources/rb-podcast-source.h:
7287         * widgets/rb-property-view.c: (rb_property_view_class_init),
7288         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
7289         (rb_property_view_append_column_custom),
7290         (rb_property_view_button_press_cb):
7291         * widgets/rb-property-view.h: Updated for the above change.
7293 2006-02-04  James Livingston  <jrl@ids.org.au>
7295         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
7296         too close to Move to Trash and people aren't likely to use it often.
7298 2006-02-04  James Livingston  <jrl@ids.org.au>
7300         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
7302 2006-02-04  James Livingston  <jrl@ids.org.au>
7304         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
7305         passed a path instead of a URI.
7307         * sources/rb-generic-player-source.c: (default_get_mount_path):
7308         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
7309         the path. This fixes bug 329723.
7311 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
7313         * daapsharing/rb-daap-structure.c:
7314         (rb_daap_content_code_string_as_int32):
7315         Use network byte order.
7317 2006-02-03  William Jon McCann  <mccann@jhu.edu>
7319         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
7320         Use a hash for source lookup.
7321         (mdns_service_added, mdns_service_removed): Handle
7322         service-added and service-removed signals from RBDaapMdnsBrowser.
7323         (remove_source): GDestroyNotify function for when sources
7324         are removed from the hash.
7325         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
7326         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
7327         (rb_daap_sources_shutdown): Update.
7328         (source_host_find): GHRFunc for finding a source by ip.
7329         (rb_daap_source_find_for_uri): Use the hash source lookup.
7331         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
7332         Namespace keys.
7333         (password_check_button_toggled_cb): Handle password enabled.
7334         (share_name_entry_focus_out_event_cb): Namespace keys.
7335         Handle changes more robustly.
7336         (share_password_entry_focus_out_event_cb): Handle password entry.
7337         (add_daap_preferences): Connect to password signals.
7339         * lib/rb-preferences.h: Add DAAP keys.
7341         * data/glade/daap-prefs.glade: Add password UI.
7343         * data/rhythmbox.schemas: Add password keys.
7345         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
7346         assert with warning.
7348         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
7349         gconf keys to lib/rb-preferences.h.  Namespace
7350         the gconf keys.
7351         (create_share): Add password support.
7352         (enable_sharing_changed_cb): Namespaced keys.
7353         (require_password_changed_cb): Handle key change.
7354         (share_name_changed_cb): Namespaced keys.
7355         (share_password_changed_cb): Handle key change.
7356         (rb_daap_sharing_init): Namespaced keys.
7357         (rb_daap_sharing_shutdown): Ditto.
7359         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
7360         Add password property.
7361         (rb_daap_share_set_name): Break out prop set function.
7362         (published_cb): New RBDaapMdnsPublisher signal handler.
7363         (name_collision_cb): Ditto.
7364         (rb_daap_share_init): Create publisher object and
7365         connect to signals.
7366         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
7367         (rb_daap_share_set_property): Break out prop set functions.
7368         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
7369         Unref publisher.
7370         (rb_daap_share_new): Add password argument.  Start
7371         publishing and DAAP server.
7372         (message_set_from_rb_daap_structure): Change print to debug.
7373         (server_info_cb): Set auth method to publish.
7374         (logout_cb): Handle DAAP client logout.
7375         (update_cb): Remove C++ comments.
7376         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
7377         (server_cb): Add debug.
7378         (soup_auth_callback): Handle auth requests.
7379         (rb_daap_share_server_start): Split up functions for starting
7380         server and publishing.  Add auth handling to server.
7381         (rb_daap_share_server_stop): Split stop server and publish.
7382         No C++ comments.
7383         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
7384         Start and stop publishing.
7385         (rb_daap_share_restart): Restart server and publishing.
7386         (rb_daap_share_maybe_restart): Conditionally restart.
7388         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
7389         (rb_daap_collision_dialog_new_run): Don't use
7390         separators in dialogs.
7392         * daapsharing/rb-daap-connection.h: Add private
7393         data to class structure.
7395         * daapsharing/rb-daap-connection.c: Move
7396         some includes to top of file.  Make private
7397         data struct name consistent with others.
7398         (rb_daap_connection_class_init): Rename
7399         private.
7400         (rb_daap_connection_init): Get and store the pointer
7401         to the private data once instead of in every
7402         function.  Create a username value "Rhythmbox_VERSION".
7403         (connection_get_password): Don't get private.
7404         (build_message): Ditto.
7405         (http_response_handler): Don't init variables in
7406         declaration.  Add debug.  Spacing.
7407         (http_get, entry_set_string_prop, handle_server_info) 
7408         (handle_login, handle_update, handle_database_info) 
7409         (handle_song_listing, handle_playlists, handle_playlist_entries) 
7410         (rb_daap_connection_constructor, rb_daap_connection_logout) 
7411         (rb_daap_connection_state_done): Don't get private.
7412         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
7413         spacing.  Correctly base64 encode the Authentication token.
7414         Add username to auth token.
7415         (rb_daap_connection_get_playlists): Don't get private.
7416         (rb_daap_connection_dispose): Ditto.  Free username.
7417         (rb_daap_connection_set_property) 
7418         (rb_daap_connection_get_property): Don't get private.
7420         * daapsharing/Makefile.am: Conditionally
7421         compile MDNS backends.  Add marshall stuff.
7423         * daapsharing/.cvsignore: Update.
7425         * configure.ac: Add conditional to see which
7426         MDNS backend we should use.
7428         * daapsharing/rb-daap-mdns.[ch]: Removed files.
7430         * daapsharing/rb-daap-marshal.list:
7431         * daapsharing/rb-daap-mdns-browser-avahi.c:
7432         * daapsharing/rb-daap-mdns-browser-howl.c:
7433         * daapsharing/rb-daap-mdns-browser.h:
7434         * daapsharing/rb-daap-mdns-publisher-avahi.c:
7435         * daapsharing/rb-daap-mdns-publisher-howl.c:
7436         * daapsharing/rb-daap-mdns-publisher.h:
7437         Split rb-daap-mdns.c into two classes.  One for
7438         publishing and one for browsing.  Split out
7439         the avahi and howl backends into different files.
7441         Fixes #322966
7442         
7443 2006-02-04  James Livingston  <jrl@ids.org.au>
7445         patch by: Jan Schmidt <thaytan@mad.scientist.com>
7447         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
7448         crash if metadata reader gives us NULL for strings.
7450 2006-02-03  James Livingston  <jrl@ids.org.au>
7452         * shell/rb-shell-player.c: (open_location_thread),
7453         (rb_shell_player_open_location):
7454         retrieve iradio playlists files in a thread, so that with GStreamer
7455         0.10 the UI doesn't block while connecting to stations. The streamer
7456         connection is synchronous with 0.8, so that will still block (a bit).
7457         Fixed bug 128106.
7459         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
7460         because _open_entry does that automatically when it is ready to.
7462 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
7464         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
7465         (rb_podcast_source_post_status_cell_data_func):
7466         Leave the podcast status column blank for episodes that have not been
7467         downloaded.
7469 2006-02-03  James Livingston  <jrl@ids.org.au>
7471         Add support for source-specific toolbar items, and make the Burn
7472         Playlist item only available for playlists. Also add Update All
7473         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
7475         * data/ui/rhythmbox-ui.xml:
7476         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
7477         (impl_get_ui_actions): make the Burn CD toolbar item only for
7478         playlists
7480         * lib/rb-stock-icons.c: (rb_stock_icons_init):
7481         * lib/rb-stock-icons.h: load the Eject icon as stock.
7483         * shell/rb-removable-media-manager.c: use the eject icon for the eject
7484         action
7486         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
7487         (rb_shell_select_source):
7488         * sources/rb-source.c: (rb_source_class_init),
7489         (rb_source_disconnect), (default_get_ui_actions),
7490         (rb_source_get_ui_actions):
7491         * sources/rb-source.h: add support for source-specific toolbar items
7493         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
7494         Eject and Rip toolbar items
7496         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
7497         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
7498         item.
7500 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
7502         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
7503         * shell/main.c: (main):
7504         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
7505         Replace all g_critical calls with g_warning, since none of them are
7506         the sort of thing the process should die over.  Fixes #329398.
7508 2006-02-03  James Livingston  <jrl@ids.org.au>
7510         * configure.ac: mention gst-plugins-base in the error message for not
7511         finding GStreamer 0.10, since not having that will cause it to fail.
7513 2006-02-03  James Livingston  <jrl@ids.org.au>
7515         * configure.ac: fix typo that means you get the wrong error message if
7516         you explicity request a particular playback engine, and it can't be
7517         found.
7519 2006-02-03  James Livingston  <jrl@ids.org.au>
7521         * data/glade/library-prefs.glade: allow the watched library location
7522         to be a non-local place.
7524 ============ Version 0.9.3
7527 2006-02-02  James Livingston  <jrl@ids.org.au>
7529         * NEWS: update NEWS
7530         * configure.ac: bump version to 0.9.3
7532         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
7533         <caillon@redhat.com>, fixed bug 329517. 
7535 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
7537         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
7539         * widgets/rb-song-info.c: (rb_song_info_constructor):
7540         Make year and disc number fields non-editable if tag editing
7541         is disabled.  Fixes #329463.
7543 2006-02-01  James Livingston  <jrl@ids.org.au>
7545         * rhythmdb/rhythmdb-property-model.c:
7546         (rhythmdb_property_model_row_inserted_cb),
7547         (rhythmdb_property_model_prop_changed_cb),
7548         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
7549         correctly. Fixes bug 327061.
7551         * rhythmdb/rhythmdb-query-model.c:
7552         (rhythmdb_query_model_entry_changed_cb): emit change notification of
7553         the HIDDEN property when an entry is removed for being hidden.
7555         * rhythmdb/rhythmdb-query-model.h:
7556         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
7557         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
7558         models's "connected" property. Whatever it was needed for seems to
7559         have gone.
7561 2006-02-01  James Livingston  <jrl@ids.org.au>
7563         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
7565         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
7566         (rb_shell_player_playing_changed_cb): block the signal to prevent
7567         re-entrancy. Fixes bug 329329 and fixes the first click of the play
7568         button pausing.
7570 2006-02-01  James Livingston  <jrl@ids.org.au>
7572         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
7573         /should/ now work, if the neccessary plugins get ported.
7575 2006-01-30  James Livingston  <jrl@ids.org.au>
7577         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
7578         string properties to "Unknown" is the string is empty. Kind of fixes
7579         bug 327495.
7581         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
7582         gettext calls once, rather than once per time the function is used.
7583         This stops us making tens of thousands of gettext calls on startup,
7584         which reduces the cpu-time of startup by 10-20%
7586 2006-01-29  James Livingston  <jrl@ids.org.au>
7588         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
7589         (rhythmdb_add_uri):
7590         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
7591         for files containing known video streams.
7594 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
7596         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
7597         required.
7599 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
7601         * INSTALL.quick: More random updates
7603         * rhythmdb/rhythmdb-query-model.c:
7604         (rhythmdb_query_model_class_init),
7605         (rhythmdb_query_model_set_property),
7606         (rhythmdb_query_model_get_property),
7607         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
7608         Remove user sort data handling, take a property ID and a reverse
7609         flag instead.
7610         (rhythmdb_query_model_insert_into_main_list),
7611         (rhythmdb_query_model_insert_into_limited_list),
7612         (rhythmdb_query_model_do_reorder),
7613         (_reverse_sorting_func):
7614         Handle reverse sorting by calling _reverse_sorting_func, which
7615         calls the real sort function and reverses the result.
7616         (rhythmdb_query_model_set_sort_order):
7617         Allow this to be called to set the initial sort order for limited
7618         queries, and handle reverse sorting when reordering.
7619         (rhythmdb_query_model_location_sort_func),
7620         (rhythmdb_query_model_album_sort_func),
7621         (rhythmdb_query_model_artist_sort_func),
7622         (rhythmdb_query_model_genre_sort_func),
7623         (rhythmdb_query_model_track_sort_func),
7624         (rhythmdb_query_model_double_ceiling_sort_func),
7625         (rhythmdb_query_model_ulong_sort_func),
7626         (rhythmdb_query_model_date_sort_func),
7627         (rhythmdb_query_model_string_sort_func):
7628         Sort functions moved from rb-entry-view.c.
7629         * rhythmdb/rhythmdb-query-model.h:
7630         Add the sort functions, and update the changed functions.
7631         
7632         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
7633         Just call _resort_model when the query model is set, since it
7634         does all the same things.
7635         (rb_entry_view_append_column):
7636         Rework bits so the rating column doesn't have to be so much of a
7637         special case.
7638         (rb_entry_view_append_column_custom):
7639         Take a property ID to sort on, rather than arbitrary custom data.
7640         (rb_entry_view_resort_model):
7641         Query model does all the reverse sort handling now.
7642         * widgets/rb-entry-view.h: Update _append_column_custom.
7644         * sources/rb-play-queue-source.c:
7645         (rb_play_queue_source_constructor):
7646         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
7647         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
7648         (rb_podcast_source_post_date_cell_sort_func),
7649         (rb_podcast_source_post_status_cell_sort_func),
7650         (rb_podcast_source_post_feed_cell_sort_func):
7651         Updates required by all the other changes.
7653         * rhythmdb/rhythmdb-property-model.c:
7654         (rhythmdb_property_model_drag_data_get):
7655         Sort the query results on the selected property,
7656         so they arrive in the expected order.  All the other changes were made
7657         to make this possible.  Fixes bug #327494.
7659 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
7660         
7661         * shell/rb-shell-clipboard.c:
7662         Use GTK_STOCK_REMOVE icon for the remove action in
7663         the play queue too.
7665 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
7667         * sources/rb-play-queue-source.c:
7668         (rb_play_queue_source_constructor),
7669         (rb_play_queue_source_update_count):
7670         Don't make the 'queued songs' column clickable,
7671         and add the queued song count to the column title.
7673 2006-01-29  James Livingston  <jrl@ids.org.au>
7675         * configure.ac: remove "experimental" marking from DAAP, and enable by
7676         default if the dependencies are found.
7678 2006-01-29  James Livingston  <jrl@ids.org.au>
7680         * NEWS: update NEWS
7682 2006-01-29  James Livingston  <jrl@ids.org.au>
7684         patch by: William Jon McCann  <mccann@jhu.edu>
7686         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
7687         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
7688         property used for the feed list. Fixes problem with feeds with no
7689         episodes not showing up.
7691 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
7692         
7693         * shell/rb-play-order-random-by-age-and-rating.c:
7694         (rb_random_by_age_and_rating_get_entry_weight):
7695         Fix compile errors, bug #328978.
7697 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
7699         * INSTALL.quick, README: Random updates
7700         * README.lirc: Add notes on controlling Rhythmbox with LIRC
7702 2006-01-28  James Livingston  <jrl@ids.org.au>
7704         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
7705         default rating back to 0 (from 2.5, which was needed for autorating).
7707         * shell/rb-play-order-random-by-age-and-rating.c:
7708         (rb_random_by_age_and_rating_get_entry_weight):
7709         * shell/rb-play-order-random-by-rating.c:
7710         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
7711         2.5 for the purposes of weighting entries.
7713 2006-01-28  James Livingston  <jrl@ids.org.au>
7715         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
7716         translator comments, to make it clearer what the "friendly time"
7717         formatting strings mean.
7719 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
7721         * daapsharing/rb-daap-connection.c: (http_response_handler):
7722         Fix the sense of the overflow check so it'll accept valid input.
7724 2006-01-27  James Livingston  <jrl@ids.org.au>
7726         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
7728         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
7729         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
7731 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
7733         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
7734         
7735         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
7736         Don't include the artist field in the window title if it's blank.
7737         Fixes #325973.
7739 2006-01-26  William Jon McCann  <mccann@jhu.edu>
7741         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
7742         Use stock delete icon for move to trash and stock remove
7743         for remove menu item.
7745 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
7747         * shell/rb-shell.c: (rb_shell_constructor),
7748         (idle_handle_load_complete):  Don't start the playlist save
7749         timeout until we've loaded the playlists, otherwise we'll
7750         write an empty playlist file if startup takes too long.
7752 2006-01-25  William Jon McCann  <mccann@jhu.edu>
7754         * shell/rb-shell.c: Make view toolbar toggle use
7755         shift+ctrl+t.  Fixes #327585.
7757 2006-01-25  James Livingston  <jrl@ids.org.au>
7759         patch by: Christope Fergeau  <teuf@gnome.org>
7761         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
7762         (http_response_handler): fix a potential buffer overflow issue.
7764 2006-01-25  James Livingston  <jrl@ids.org.au>
7766         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
7767         Year column wide enough to display "Unknown"
7769 2006-01-25  James Livingston  <jrl@ids.org.au>
7771         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
7772         (rb_podcast_source_post_status_cell_data_func): make the episode
7773         status wording better. Part of bug 321607.
7775 2006-01-25  James Livingston  <jrl@ids.org.au>
7777         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
7778         others with a separator.
7780         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
7781         stock Delete icon.
7783 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
7785         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
7787 2006-01-23  James Livingston  <jrl@ids.org.au>
7789         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
7790         0.3.2. Fixed bug 328158.
7792 2006-01-23  James Livingston  <jrl@ids.org.au>
7794         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
7795         (gulong_gst_date_transform), (rb_metadata_class_init):
7796         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
7798 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
7800         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
7801         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
7802         (record_entry_change): Protect added_entries and changed_entries with
7803         a mutex, so it doesn't crash on startup on SMT/SMP machines.
7805 2006-01-23  James Livingston  <jrl@ids.org.au>
7807         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
7808         the browser for audio CDs.
7810 2006-01-22  James Livingston  <jrl@ids.org.au>
7812         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
7813         NEVER_FAIL as it causes the daemon-not-running error to never be
7814         reported, resulting in bug 319438 re-occurring.
7816 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
7818         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
7819         Just call the podcast manager's update method.  Unbreaks the 'update
7820         all feeds' command.
7822 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
7824         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
7826 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
7828         * configure.ac: Don't disable DAAP with gstreamer 0.10
7830         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
7831         (rb_daap_src_class_init), (rb_daap_src_init),
7832         (rb_daap_src_finalize), (rb_daap_src_set_property),
7833         (rb_daap_src_get_property), (rb_daap_src_write),
7834         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
7835         (_split_uri), (rb_daap_src_open):
7836         * daapsharing/rb-daap-src.h:
7837         Mostly fix seeking, handle chunked transfer encoding, and port to
7838         gstreamer 0.10.
7839         
7840         * player/rb-player-gst.c:
7841         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
7842         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
7844         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
7845         being fixed.
7847 2006-01-21  James Livingston  <jrl@ids.org.au>
7849         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
7850         for Year metadata in DAAP sources. Fixes bug 327700.
7852         * daapsharing/rb-daap-connection.c: (handle_song_listing):
7854 2006-01-20  William Jon McCann  <mccann@jhu.edu>
7856         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
7857         enum values instead of magic numbers.
7859         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
7860         Add number of songs that match each property title into
7861         the cell.  Also show the number of properties that match
7862         in the All entry.
7863         (rb_property_view_constructor): Use enum values instead of
7864         magic numbers.
7866         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
7867         Query podcast posts instead of feeds for browser.  Use
7868         post SUBTITLE which is the location for the property view.
7869         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
7870         (construct_query_from_selection) 
7871         (rb_podcast_source_cmd_delete_feed) 
7872         (rb_podcast_source_cmd_properties_feed) 
7873         (rb_podcast_source_cmd_update_feed): Use variable to make
7874         it clear what the selection data represents.
7875         (rb_podcast_source_feed_title_cell_data_func): Add number
7876         of posts that belong to each feed in the browser.
7878         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
7879         (rhythmdb_property_model_delete_prop): Decrement the refcount
7880         for the All entry.
7881         (rhythmdb_property_model_get_column_type): Use column enum
7882         values instead of magic numbers.  Add NUMBER column.
7883         (rhythmdb_property_model_get_value): Use enum.
7884         Add NUMBER column that represents the refcount for
7885         the title of that property.
7886         (rhythmdb_property_model_perform_sync): Don't fake up
7887         a title for All here.
7889         Fixes #327372.
7890         
7891 2006-01-21  James Livingston  <jrl@ids.org.au>
7893         Make Rhythmbox start faster by not blocking the UI while database
7894         initialisation and loading occurs. Closes bug 323348.
7896         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
7897         start 10 seconds later instead of immediately.
7898         
7899         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
7900         safe to call from any thread.
7902         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
7903         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
7904         so the UI doesn't block.
7906 2006-01-18  James Livingston  <jrl@ids.org.au>
7908         * sources/rb-static-playlist-source.c:
7909         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
7910         cause crashes. Oops. fixes bug 327477.
7912 2006-01-17  William Jon McCann  <mccann@jhu.edu>
7914         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
7915         Set GST element state to NULL before unreffing.
7916         Fixes #327422.
7918 2006-01-18  James Livingston  <jrl@ids.org.au>
7920         * sources/rb-static-playlist-source.c:
7921         (rb_static_playlist_source_do_query): don't filter on the SONG entry
7922         type, since the playlists can contain non-song entries. Fixes bug
7923         327448.
7925         * sources/rb-play-queue-source.c:
7926         (rb_play_queue_source_class_init): disable the search box for the
7927         queue.
7929 2006-01-18  James Livingston  <jrl@ids.org.au>
7931         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
7932         dragging of podcast episodes. Fixed bug 327450.
7934 2006-01-18  James Livingston  <jrl@ids.org.au>
7936         * rhythmdb/rhythmdb-query-model.c:
7937         (rhythmdb_query_model_drag_data_received): fix possible assertion when
7938         dragging to an emoty playlist.
7940 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
7942         * sources/rb-playlist-source-recorder.c:
7943         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
7945 2006-01-17  James Livingston  <jrl@ids.org.au>
7947         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
7949         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
7950         different number of tracks than exist on the cd, since that happens
7951         with audio+data hybrid CDs. Part of bug 325046.
7953 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
7955         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
7956         Remove useless call to gtk_tree_view_column_set_clickable().
7958         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
7959         Don't store sort data for columns if the sort function is NULL,
7960         so only sortable columns will be in the column sort data map.
7961         (rb_entry_view_set_columns_clickable): Only make columns we can sort
7962         on clickable.
7963         (rb_entry_view_constructor):  The 'playing icon' column is never
7964         clickable, so don't connect a signal handler for it.
7966         Fixes bug 326811.
7968 2006-01-17  James Livingston  <jrl@ids.org.au>
7970         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
7971         are 0.8 only. Fix element detection.
7973         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
7974         saving the new metadata failed
7976 2006-01-17  James Livingston  <jrl@ids.org.au>
7978         * shell/rb-shell-player.c: (do_next_idle),
7979         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
7980         (eos_cb): release audio device when a playlist finishes. Fixes bug
7981         323679.
7983 2006-01-17  James Livingston  <jrl@ids.org.au>
7985         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
7986         canonicalise the URIs when things are added via library watching.
7988 2006-01-16  William Jon McCann  <mccann@jhu.edu>
7990         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
7991         Off by one error in default speed index.
7993 2006-01-16  William Jon McCann  <mccann@jhu.edu>
7995         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
7996         (update_speed_combobox, update_speed_combobox):
7997         Get a list of the actually supported write speeds from
7998         n-c-b >= 2.13.90.  Otherwise use fallback list.
8000 2006-01-17  James Livingston  <jrl@ids.org.au>
8002         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
8003         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
8004         don't get stuck on recursive symlinks. Fixed bug 125452.
8006 2006-01-17  James Livingston  <jrl@ids.org.au>
8008         Add support for mass-storage audio players. Players are detected via
8009         either the HAL "audio_player" capability, or a ".is_audio_player" file
8010         in the root of the volume. Closes bug 325602.
8012         * configure.ac: separate using HAL from ipod support.
8014         * lib/rb-file-helpers.c: (rb_uri_is_local):
8015         * lib/rb-file-helpers.h: add function to determine whether a URI is
8016         local.
8018         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
8019         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
8020         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
8021         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
8022         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
8023         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
8024         directories can be scanned for files to add as  non-SONG entries.
8026         * shell/rb-removable-media-manager.c:
8027         (rb_removable_media_manager_mount_volume): add checking for
8028         mass-storage players.
8030         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
8031         * sources/rb-ipod-source.c: (rb_ipod_source_new),
8032         (hal_udi_is_ipod):
8033         * sources/rb-removable-media-source.c:
8034         (rb_removable_media_source_class_init),
8035         (rb_removable_media_source_constructor): move some things up to the
8036         RBRemovableMediaSource, rather than making subclasses do it.
8038         * sources/Makefile.am:
8039         * sources/rb-generic-player-source.c:
8040         * sources/rb-generic-player-source.h: add mass-storage player source.
8042 2006-01-16  James Livingston  <jrl@ids.org.au>
8044         patch by: William Jon McCann  <mccann@jhu.edu>
8046         * rhythmdb/rhythmdb-query-model.c:
8047         (rhythmdb_query_model_base_row_deleted): fix build issue from last
8048         commit.
8050 2006-01-16  James Livingston  <jrl@ids.org.au>
8052         Patch to add support for "chained queries" and putting hidden tracks
8053         in query models. Use chained queries to add search box support to
8054         normal playlists, and to make hidden entries not get lost. Fixes bug
8055         319278.
8057         * rhythmdb/rhythmdb-query-model.h:
8058         * rhythmdb/rhythmdb-query-model.c:
8059         (rhythmdb_query_model_class_init),
8060         (rhythmdb_query_model_set_property),
8061         (rhythmdb_query_model_get_property):
8062         (rhythmdb_query_model_finalize): add "show-hidden" and
8063         "base-model" properties.
8065         (rhythmdb_query_model_set_connected),
8066         (rhythmdb_query_model_has_pending_changes),     
8067         (rhythmdb_query_model_entry_added_cb),
8068         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
8069         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
8070         (rhythmdb_query_model_remove_entry),
8071         (rhythmdb_query_model_drag_data_received),
8072         (rhythmdb_query_model_base_row_inserted),
8073         (rhythmdb_query_model_base_row_deleted),
8074         (rhythmdb_query_model_base_non_entry_dropped),
8075         (rhythmdb_query_model_base_complete),
8076         (rhythmdb_query_model_base_entry_prop_changed),
8077         (rhythmdb_query_model_base_rows_reordered),
8078         (rhythmdb_query_model_row_drop_possible): handle base-model by
8079         chaining events and operations where necessary. Make hidden entries
8080         not get added only if "show-hidden" is false.
8082         (rhythmdb_query_model_child_index_to_base_index),
8083         (rhythmdb_query_model_base_index_to_child_index),
8084         (rhythmdb_query_model_get_entry_index): utility functions for handling
8085         base-model entries.
8087         (rhythmdb_query_model_reapply_query): apply the current query, and
8088         remove entries that don't match it.
8090         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
8091         empty queries.
8093         * sources/rb-source.c: (rb_source_set_property): move the unref later
8094         to fix problem if it is the last reference.
8096         * sources/rb-static-playlist-source.c:
8097         (rb_static_playlist_source_class_init),
8098         (rb_static_playlist_source_init),
8099         (rb_static_playlist_source_finalize),
8100         (rb_static_playlist_source_constructor), (impl_reset_filters),
8101         (impl_search), (rb_static_playlist_source_do_query),
8102         (impl_save_contents_to_xml),
8103         (rb_static_playlist_source_add_location_internal): use a chained query
8104         model to filter out hidden entries and implement the search box.
8106 2006-01-15  James Livingston  <jrl@ids.org.au>
8108         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
8109         the default playlist loading, which I broke earlier.
8111 2006-01-15  James Livingston  <jrl@ids.org.au>
8113         patch by: William Jon McCann  <mccann@jhu.edu>
8115         * sources/rb-playlist-source.c: (playlist_iter_func): use
8116         totem-plparser's new API version macros to check for API changes.
8117         Handle the recent API change.
8119 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
8121         * sources/rb-library-source.c: (impl_get_config_widget):
8122         Ref the preferences object to match the unref in the
8123         finalizer.  Fixes some portion of #323505.
8125 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
8127         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
8128         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
8129         Fix valgrind warnings about accessing uninitialised values.
8131 2006-01-14  William Jon McCann  <mccann@jhu.edu>
8133         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
8135 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
8137         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
8138         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
8139         Stops the 'now playing' icon from being displayed after the play
8140         order finishes.
8142 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
8144         * podcast/rb-podcast-manager.c:
8145         (rb_podcast_manager_db_entry_deleted_cb):
8146         Don't try to delete files we never downloaded, and cancel downloads
8147         for deleted episodes.  Fixes bug #326862.
8148         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
8149         Don't complain about NULL data items in the selection list.
8151 2006-01-14  James Livingston  <jrl@ids.org.au>
8153         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
8154         Make the name ofthe queue non editable. Fixes bug 326918.
8156 2006-01-13  William Jon McCann  <mccann@jhu.edu>
8158         * sources/rb-playlist-source-recorder.c (burn_cd) 
8159         (ask_rewrite_disc): Don't use our locally copied functions
8160         if we have at least 2.13.
8162 2006-01-13  William Jon McCann  <mccann@jhu.edu>
8164         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
8165         Correct the argument type for the process_error signal.
8166         May fix bug #323154.
8168 2006-01-13  James Livingston  <jrl@ids.org.au>
8170         save the queue to disk when exiting, and reload on startup. Fixed bug
8171         326677 .
8173         * shell/rb-playlist-manager.c:
8174         (rb_playlist_manager_load_playlists),
8175         (rb_playlist_manager_save_playlists_async): don't disable saving of
8176         the queue
8178         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
8179         add the queue source as a gobject property.
8181         * sources/rb-play-queue-source.c:
8182         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
8183         code to save the queue to xml
8185         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
8186         load the queue from xml.
8187         * sources/rb-playlist-xml.h:
8189         * sources/rb-static-playlist-source.c:
8190         (rb_static_playlist_source_load_from_xml),
8191         (rb_static_playlist_source_new_from_xml):
8192         * sources/rb-static-playlist-source.h: split the playlist xml loading
8193         from the static playlist creation function, so the queue can use it.
8195 2006-01-13  James Livingston  <jrl@ids.org.au>
8197         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
8198         assertion that should be there. Fixes bug 325923.
8199         
8200         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
8201         return NULL if the entry already exists (e.g. as another type).
8202         * daapsharing/rb-daap-connection.c: (handle_song_listing):
8203         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
8204         (rb_podcast_manager_insert_feed):
8205         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
8206         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
8207         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
8208         for the above function returning NULL.
8210 2006-01-12  James Livingston  <jrl@ids.org.au>
8212         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
8213         is enabled. Fixes bug 326673.
8214         
8215         * doc/reference/tmpl/eggtrayicon.sgml:
8216         * doc/reference/tmpl/rb-daap-src.sgml:
8217         * doc/reference/tmpl/rb-source.sgml:
8218         * doc/reference/tmpl/rb-statusbar.sgml:
8219         * doc/reference/tmpl/rb-tree-model-sort.sgml:
8220         * doc/reference/tmpl/rhythmbox-unused.sgml:
8221         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
8223 2006-01-11  James Livingston  <jrl@ids.org.au>
8225         * widgets/rb-song-info.c: (rb_song_info_constructor),
8226         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
8227         (rb_song_info_populate_dialog): fill in the fields if all tracks have
8228         the same value for properties. From bug 326054.
8230 2006-01-11  James Livingston  <jrl@ids.org.au>
8232         * sources/rb-source.h:
8233         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
8234         (rb_shell_player_set_playing_source_internal), (eos_cb):
8235         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
8236         every entry.
8238         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
8239         source use this. Closes bug 322077.
8241 2006-01-10  William Jon McCann  <mccann@jhu.edu>
8243         * widgets/eggtrayicon.c (egg_tray_icon_notify):
8244         In order for set_icon_data_from_pixbuf() to be
8245         effective, one must not set an icon in _new().
8247 2006-01-10  William Jon McCann  <mccann@jhu.edu>
8249         * widgets/eggtrayicon.c (egg_tray_icon_init) 
8250         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
8251         (egg_tray_icon_notify): Add support for libnotify 0.3.
8252         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
8253         * configure.ac: Determine the version of libnotify.
8254         Fixes #326333.
8256 2006-01-08  James Livingston  <jrl@ids.org.au>
8258         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
8259         trying to share a track with unknown length.
8261 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
8263         * shell/rb-shell-player.c: (rb_shell_player_init):
8264         Sync volume on startup so it doesn't default to 0.
8266 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
8268         * shell/rb-shell-player.c: (rb_shell_player_class_init),
8269         (rb_shell_player_get_property), (rb_shell_player_open_location),
8270         (info_available_cb):  Add the iradio streamed song title as a
8271         property, and emit a signal when it changes.
8273         * shell/rb-shell.c: (rb_shell_constructor),
8274         (rb_shell_player_elapsed_changed_cb),
8275         (rb_shell_player_stream_song_changed_cb):
8276         Issue a notification when the iradio song title changes.
8277         Fixes #326166.
8279 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
8281         * shell/rb-shell-player.c: (rb_shell_player_init),
8282         (rb_shell_player_finalize), (rb_shell_player_set_property),
8283         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
8284         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
8285         (rb_shell_player_set_volume_relative),
8286         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
8287         (rb_shell_player_get_mute):
8288         * shell/rb-shell-player.h:
8289         * shell/rb-shell-player.xml:
8290         Store volume as a property on RBShellPlayer, rather than in gconf.
8291         Add some methods to control volume via dbus.
8293         * shell/rb-shell.c: (rb_shell_constructor),
8294         (rb_shell_volume_widget_changed_cb),
8295         (rb_shell_player_volume_changed_cb):
8296         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
8297         Update volume using player properties rather than gconf, and sync the
8298         volume with the volume control button when something else changes it.
8299         Fixes #323840.
8301 2006-01-07  William Jon McCann  <mccann@jhu.edu>
8303         * shell/rb-tray-icon.c (tray_popup_position_menu):
8304         Make tray menu align with edge of panel.
8306         patch from Jaap A. Haitsma <jaap@haitsma.org>
8307         Fixes #319913
8309 2006-01-07  William Jon McCann  <mccann@jhu.edu>
8310         * shell/rb-shell.c (sourcelist_drag_received_cb): 
8311         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
8312         (rb_playlist_manager_new_playlist_from_selection_data):
8313         Make a reasonable default name for playlists created from
8314         dropped data.  Fixes #326116.
8316 2006-01-07  William Jon McCann  <mccann@jhu.edu>
8318         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
8319         Use new gconf key.
8320         (burn_cd): Always eject CD after burning.  Too many drives
8321         get confused if we don't.  Save the speed used if the burn
8322         was completed successfully.
8324         * data/rhythmbox.schemas: Use our own speed instead of from
8325         n-c-b. The situation is that the default_speed for n-c-b is most
8326         likely the maximum write speed.  This is fine for n-c-b because it
8327         has burn-proof turned on.  We can't turn it on for audio CDs
8328         because the results are poor in quality.  So we'll just pick a
8329         default that should work for everyone (4).
8331 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
8332         
8333         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
8334         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
8336 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
8338         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
8339         in my previous commit.  Fixes #326037.
8341 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
8343         patch by: Jonathan Matthew
8345         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
8346         error on Fedora Rawhide.
8348 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
8350         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
8351         Assume HTTP URLs ending with .xml or .rss are podcasts.
8352         (rb_shell_add_uri): Handle adding podcast feeds.
8354         * sources/rb-podcast-source.c: (rb_podcast_source_new):
8355         Register as the source for podcast feeds.
8357 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
8359         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
8360         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
8361         (rb_shell_preferences_append_view_page):
8362         * shell/rb-shell-preferences.h:
8363         Fix typo in function name.  Fixes #325992.
8365 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
8367         * shell/rb-audioscrobbler.c:
8368         Add '+' to the list of characters to URI-encode, so it doesn't get
8369         interpreted as a space.
8371 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
8373         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
8374         (rb_daap_connection_do_something):  Don't crash if the DAAP server
8375         goes away while we're still trying to log in.
8377 2006-01-06  James Livingston  <jrl@ids.org.au>
8379         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
8381 2006-01-06  James Livingston  <jrl@ids.org.au>
8383         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
8384         support for Year to automatic playlists. Closes bug 321341.
8386         * rhythmdb/rhythmdb-query-model.c:
8387         (rhythmdb_query_model_set_property):
8388         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
8389         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
8390         (rhythmdb_query_free), (rhythmdb_query_serialize),
8391         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
8392         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
8393         * rhythmdb/rhythmdb.h: Support special
8394         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
8395         year in date.
8397         * widgets/rb-query-creator-properties.c:
8398         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
8399         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
8401 2006-01-06  James Livingston  <jrl@ids.org.au>
8403         * configure.ac: make the playback backend selection work correctly
8405         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
8406         (rb_daap_src_class_init), (rb_daap_src_dispose),
8407         (rb_daap_src_change_state), (rb_daap_src_initialize):
8408         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
8409         doesn't work for this class. Fixes bug 325934
8411 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
8413         * configure.ac: Fix check for libnotify.
8415 2006-01-05  William Jon McCann  <mccann@jhu.edu>
8417         * sources/rb-playlist-source.c (xml_get_and_trim_names):
8418         Get name element for current lang and remove all name nodes
8419         from the XML tree.
8420         (get_playlist_name_from_xml): Try to get name element or
8421         fall back to name attribute.
8422         (rb_playlist_source_new_from_xml): Get name before turning over
8423         to sub-types for parsing so that we can remove name elements
8424         from the tree if necessary.
8426         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
8427         Load default playlists file if per user playlists are not found.
8429         * data/playlists.xml.in: 
8430         * data/Makefile.am: 
8431         * data/.cvsignore: Add default set of playlists.
8432         Fixes #323004
8434 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
8436         * shell/main.c: (main): Don't use the dbus interface to show the
8437         window if we're also going to use the bonobo interface.
8439 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
8441         * shell/rb-history.c: (rb_history_set_playing):
8442         Allow setting the playing song to NULL.
8443         (rb_history_append), (rb_history_delete_link):
8444         Don't randomly change position when entries are added and removed,
8445         it confuses play orders.
8446         
8447         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
8448         Random orders always have a next entry if the model is not empty.
8449         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
8450         Go back to the start of the history if we're past its end.
8452         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
8453         (rb_shuffle_play_order_go_next): Go back to the start of the history
8454         if we're past its end.
8455         (rb_shuffle_sync_history_with_query_model): Go back to the start of
8456         the history if the current entry is removed.
8458         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
8459         (rb_play_order_entry_deleted_cb): Only update have next/previous for
8460         the play order when the query has finished. This wasted about 10% CPU
8461         while the query was running.
8463         Fixes #324641: assertion failures when the query model was changed
8464         such that the playing song was no longer present.
8466 2006-01-05  James Livingston  <jrl@ids.org.au>
8468         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
8469         (rb_daap_src_dispose), (rb_daap_src_change_state):
8470         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
8471         (rhythmdb_gda_finalize):
8472         * widgets/rb-cell-renderer-pixbuf.c:
8473         * widgets/rb-cell-renderer-rating.c:
8474         (rb_cell_renderer_rating_class_init),
8475         (rb_cell_renderer_rating_finalize):
8476         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
8477         * widgets/rb-load-failure-dialog.c:
8478         (rb_load_failure_dialog_class_init),
8479         (rb_load_failure_dialog_finalize):
8480         * widgets/rb-rating.c: (rb_rating_class_init),
8481         (rb_rating_finalize):
8482         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
8483         (rb_search_entry_finalize): use G_DEFINE_TYPE
8485         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
8487 2006-01-05  James Livingston  <jrl@ids.org.au>
8489         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
8491         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
8492         the tarball.
8494         * shell/rb-history.c: (rb_history_class_init),
8495         (rb_history_finalize):
8496         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
8497         (rb_playlist_manager_finalize):
8498         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
8499         (rb_remote_init): use G_DEFINE_TYPE.
8501 2006-01-05  James Livingston  <jrl@ids.org.au>
8503         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
8504         changes
8506 2006-01-04  William Jon McCann  <mccann@jhu.edu>
8508         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
8509         Disable burn action when source is not a playlist.
8510         Fixes #323578.
8512 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
8514         Optionally use libnotify to display song change and other
8515         notifications, and provide an option to disable notifications.
8516         Fixes #320355 and innumerable informal complaints.
8518         * widgets/eggtrayicon.c: (egg_tray_icon_init),
8519         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
8520         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
8521         (egg_tray_icon_notify):
8522         * widgets/eggtrayicon.h:
8523         * configure.ac:
8524         * shell/Makefile.am:
8525         Optionally use libnotify instead of eggnotificationbubble.
8527         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
8528         (rb_tray_icon_constructor), 
8529         (rb_tray_icon_show_notifications_changed_cb),
8530         (rb_tray_icon_hide_notify_cb)
8531         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
8532         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
8533         EggNotificationBubble pointer to eggtrayicon.
8535         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
8536         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
8537         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
8539 2006-01-04  William Jon McCann  <mccann@jhu.edu>
8541         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
8542         Request a minimum size for the progress bar so that
8543         the window doesn't shrink too small.
8545 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
8547         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
8548         (add_db_entry), (db_entry_deleted_cb):
8549         Don't track the number of songs currently present, track the next ID
8550         to assign.  Fixes potential ID conflict problems.
8551         
8552         (db_entry_changed_cb), (rb_daap_share_start_publish),
8553         (rb_daap_share_stop_publish):
8554         Watch for db entry changes, and when songs become non-hidden after
8555         a successful stat, add them to the mapping tables.   Fixes #325178,
8556         making the DAAP server usable again.
8558 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
8559         
8560         * shell/rb-statusbar.c: (rb_statusbar_class_init),
8561         (rb_statusbar_construct), (rb_statusbar_init),
8562         (rb_statusbar_finalize), (rb_statusbar_set_property),
8563         (rb_statusbar_get_property), (rb_statusbar_new),
8564         (rb_statusbar_sync_with_source):
8565         * shell/rb-statusbar.h:
8566         Remove visibility management code, stop watching for play order
8567         changes (status bar doesn't show play order any more), remove unused
8568         'player' property, and some other minor cleanup.
8569         
8570         * shell/rb-shell.c: (rb_shell_constructor),
8571         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
8572         (rb_shell_sync_statusbar_visibility):
8573         Manage status bar visibility here rather than in the status bar
8574         itself, so we can take small mode into account.  Fixes #323589.
8576 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
8578         * widgets/eggnotificationbubble.c: (draw_bubble):
8579         Move the bubble off the visible screen while setting up bevels.  
8580         Fixes #316810.
8582 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
8584         * shell/rb-shell-player.c: (rb_shell_player_init),
8585         (rb_shell_player_finalize): 
8586         Remove unused structure members.
8587         
8588         (do_next_idle), (rb_shell_player_error):
8589         Only queue one call to do_next_idle, so we don't skip tracks if we get
8590         two errors for the same song.  Fixes #325216.
8592 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
8594         * data/glade/podcast-feed-properties.glade,
8595          podcast/rb-feed-podcast-properties-dialog.c:
8596         (rb_feed_podcast_properties_dialog_init),
8597         (rb_feed_podcast_properties_dialog_update):
8598         Add 'last episode' field to the podcast feed properties dialog.
8600         * podcast/rb-feed-podcast-properties-dialog.c:
8601         (rb_feed_podcast_properties_dialog_update_last_update),
8602         (rb_feed_podcast_properties_dialog_update_last_episode),
8603          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
8604         Use last-seen property for the time at which we last updated the feed,
8605         and post-time for the time the last episode was published.
8607         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
8608         Handle upgrades from 0.9.2; if no post-time was found for a podcast
8609         feed, use last-seen (which in 0.9.2 was the last post time).
8611         Fixes #323894.
8613 2006-01-01  James Livingston  <jrl@ids.org.au>
8615         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
8617         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
8618         year from the ipod database.
8620 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
8622         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
8623         Only set the pipeline back to NULL state for really uninteresting
8624         files.  This was causing deadlocks with various video files.
8625         Fixes #324912.
8627 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
8629         * data/glade/song-info-multiple.glade:
8630         Add disc number label and field.
8631         * widgets/rb-song-info.c: (rb_song_info_construct_single),
8632         (rb_song_info_constructor): 
8633         Handle widgets for disc number.
8634         (rb_song_info_sync_entries_multiple):
8635         Set disc number property on selected entries.
8636         Fixes #324777.
8638 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
8640         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
8641         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
8642         Activate the default widget when enter is pressed in these dialogs.
8643         Fixes #322887.
8645 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
8647         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
8648         Use rb_shell_player_get_playing_entry, so we get the right entry
8649         when playing from the queue.  Fixes #325379.
8651 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
8653         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
8654         Include podcast posts with no publication date.  Typically
8655         seen in static collections rather than feeds.
8657 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
8659         * shell/main.c: (main): Don't attempt to handle
8660         bonobo-only arguments if we couldn't get a bonobo
8661         client proxy.
8663 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
8665         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
8666         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
8667         abort if daap sharing is disabled and then re-enabled.
8669 2005-12-29  William Jon McCann  <mccann@jhu.edu>
8671         * podcast/rb-podcast-parse.c (rb_insert_item):
8672         Add debugging.
8673         (rb_podcast_parser_start_element): Support itunes:image.
8674         Add debugging.  Don't abuse the break statement.  Warn
8675         if state is unknown.
8676         (rb_podcast_parser_end_element): Add debugging.  Warn
8677         if state is unknown.
8678         (rb_podcast_parser_characters): Warn if state is unknown.
8680         Fixes parsing of feeds that use the itunes:image element.
8681         Fixes #324632
8683 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
8685         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
8686         (stations_view_drag_data_received_cb):
8687         Remove calls to rhythmdb_entry_lookup_by_location, as
8688         rb_iradio_source_add_station does that anyway.
8689         
8690         (rb_iradio_source_add_from_playlist):
8691         If the URL doesn't point to a playlist, add it as the stream
8692         URL instead.
8694 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
8696         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
8697         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
8698         so we don't get an assertion failure.
8699         Fixes #325025.
8701 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
8703         * shell/main.c: (load_uri_args): don't compile this in if
8704         neither bonobo nor dbus are enabled.  Fixes #324890.
8706 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
8708         * sources/rb-audiocd-source.c:
8709         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
8710         so it closes the device.
8712 2005-12-20  James Livingston  <jrl@ids.org.au>
8714         * metadata/rb-metadata-gst.c: make the state changes time-out again,
8715         so that it doesn't spend forever getting stuck on the one file. Don't
8716         report errors for failing to change state on known non-audio files.
8718         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
8719         audio sink creation if we can't create the gconfaudiosink. This lets
8720         it work with only gst-plugins-base on 0.10.
8722 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
8724         * rhythmdb/rhythmdb-query-model.c:
8725         (rhythmdb_query_model_set_sort_order):
8726         Fix a tiny memory leak in the previous commit.
8728 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
8730         * rhythmdb/rhythmdb-query-model.c:
8731         (rhythmdb_query_model_set_sort_order):
8732         Don't try to emit reorders for empty query models, since it doesn't
8733         achieve anything and it results in a few warnings.
8735 2005-12-19  William Jon McCann  <mccann@jhu.edu>
8737         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
8738         Make burn dialog non-resizable so that the expander can shrink.
8739         Fixes #308951.
8741 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
8743         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
8744         add entries without a location, rather than those with one.
8746 2005-12-19  James Livingston  <jrl@ids.org.au>
8748         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
8749         the error isn't set.
8751 2005-12-19  James Livingston  <jrl@ids.org.au>
8752         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
8753         add entries without a location. Fixes bug 324290.
8755         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
8756         without a location.
8758         * shell/main.c: (main): don't crash if dbus initialisation fails
8759         without setting an error
8761 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
8763         * sources/rb-library-source.c: Remove unused structure members
8764         (rb_library_source_do_query): Actually use the cached 'all' query.
8765         Fixes #324025.
8766         
8767 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
8769         * sources/rb-audiocd-source.c 
8770         (rb_audiocd_get_cd_info): tab
8771         (rb_audiocd_scan_songs): Return boolean success/failure,
8772         fix error messages a bit.
8773         (metadata_cb): Don't crash if we have no tracks
8774         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
8775         the CD.
8776         Fixes #324222.
8778 2005-12-15  William Jon McCann  <mccann@jhu.edu>
8780         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
8781         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
8782         key.
8784         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
8785         Fixes #324157
8787 2005-12-14  William Jon McCann  <mccann@jhu.edu>
8789         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
8790         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
8791         (fullscreen_changed_cb): 
8792         * lib/rb-preferences.h: 
8793         * data/ui/rhythmbox-ui.xml: 
8794         * data/rhythmbox.schemas:
8795         Add fullscreen mode.
8797         Fixes #324075.
8799 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
8801         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
8802         configure.  It was not working with RPM.
8803         * data/Makefile.am: Switched dbus directory location to use
8804         datadir instead of variable that was not working.
8806 2005-12-13  James Livingston  <jrl@ids.org.au>
8808         patch by: Alex Lancaster <alexl@users.sourceforge.net>
8810         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
8811         the podcast browser work again. Closes bug 323856.
8813 2005-12-12  William Jon McCann  <mccann@jhu.edu>
8815         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
8816         Remove C99ism.
8818         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
8819         (rb_utf_friendly_time):
8820         * lib/rb-cut-and-paste-code.h:
8822         * podcast/rb-feed-podcast-properties-dialog.c:
8823         (rb_feed_podcast_properties_dialog_parse_time):
8824         * podcast/rb-podcast-properties-dialog.c:
8825         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
8826         to display the date in a more user friendly way.
8827         For example, if the feed was updated yesterday it will say:
8828         Last updated: Yesterday 10:00 AM
8829         instead of printing the date.
8831 2005-12-12  William Jon McCann  <mccann@jhu.edu>
8833         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
8834         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
8835         (rb_validate_item_propert, rb_podcast_parser_start_element) 
8836         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
8837         Use RB style.  Check for NULL before strcmp.  No C++ comments.
8838         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
8839         Don't set invalid mime type when mime type is NULL.  Fix leaks.
8840         (rb_podcast_parse_date): Add support for some real world
8841         date formats.
8842         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
8843         (rb_podcast_parse_item_free): Style and no need to check
8844         for NULL before g_free.
8846         May fix #323742
8848 2005-12-12  James Livingston  <jrl@ids.org.au>
8850         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
8851         with gstreamer 0.10, which replaced audioscale.
8853         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
8854         function to free the SoupSession
8856         * shell/rb-source-header.c: (rb_source_header_set_property),
8857         (rb_source_header_disclosure_toggled_cb),
8858         (rb_source_header_view_browser_changed_cb),
8859         (rb_source_header_sync_control_state):
8860         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
8861         * sources/rb-library-source.c: (rb_library_source_class_init):
8862         * sources/rb-source.c: (rb_source_class_init),
8863         (rb_source_get_status), (default_get_browser_key),
8864         (rb_source_get_browser_key), (rb_source_can_browse),
8865         (rb_source_notify_status_changed),
8866         (rb_source_notify_filter_changed):
8867         * sources/rb-source.h: seperate the enabling of browsers from the use
8868         of a gconf key.
8870 2005-12-11  William Jon McCann  <mccann@jhu.edu>
8872         * data/glade/podcast-feed-properties.glade: 
8873         * data/glade/podcast-properties.glade: Use scrolled viewports
8874         for description text.  Fix regression of #320509.
8876 2005-12-11  James Livingston  <jrl@ids.org.au>
8878         * sources/rb-auto-playlist-source.c:
8879         (rb_auto_playlist_source_class_init), (impl_reset_filters),
8880         (impl_search), (rb_auto_playlist_source_do_query),
8881         (rb_auto_playlist_source_set_query),
8882         (rb_auto_playlist_source_get_query): add support for the search box
8883         to automatic playlists.
8885         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
8886         memory leak.
8888 2005-12-11  James Livingston  <jrl@ids.org.au>
8890         * NEWS: update NEWS
8892 2005-12-11  James Livingston  <jrl@ids.org.au>
8894         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
8895         (rhythmdb_load), (monitor_subdirectory),
8896         (rhythmdb_sync_library_location):  start the library sync and
8897         monitoring in an idle callback.
8899 2005-12-10  William Jon McCann  <mccann@jhu.edu>
8901         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
8902         (rb_podcast_source_constructor): Remove unused pixbuf column.
8903         (rb_podcast_source_set_property, rb_podcast_source_get_property):
8904         Use consistent style.
8906         Fixes #322961.
8908 2005-12-11  James Livingston  <jrl@ids.org.au>
8910         * rhythmdb/rhythmdb-property-model.c:
8911         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
8912         (rhythmdb_property_model_insert),
8913         (rhythmdb_property_model_delete_prop):
8914         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
8915         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
8916         (destroy_tree_property):
8917         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
8918         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
8919         GMemChunks, they are crap and deprecated. Improves startup-time and
8920         memory usage slightly.
8922 2005-12-10  William Jon McCann  <mccann@jhu.edu>
8924         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
8925         Added license and website info.
8927         * MAINTAINERS.old: Add Colin.
8928         * MAINTAINERS: Add James.
8929         * AUTHORS: Put back in order.  Add extra space between name and email
8930         to make it easier to read.  Add James and jonathan.
8932         * widgets/rb-song-info.c (rb_song_info_init) 
8933         (rb_song_info_constructor): Make sure close button is primary/rightmost.
8935 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
8937         Play queue implementation. Closes bug 107787.
8939         * data/rhythmbox.schemas: add items for whether the queue should be
8940         displayed as a sidebar, and the height of the sourcelist if it is.
8942         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
8943         playlist, and podcast popups; add 'view queue as sidebar' menu item,
8944         add popups for queue as source and as sidebar.  We need a separate
8945         popup for the sidebar view because otherwise it's hard to tell which
8946         of the visible entry views the action came from.
8948         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
8950         * po/POTFILES.in: Add new file
8952         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
8953         Add helper function for deciding if a podcast episode is available for
8954         playback.
8956         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
8957         reorder entries in the query model.
8958         (idle_process_update): Handle new update type used to insert entries
8959         at a particular position in the query model.
8960         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
8961         parameter to specify the position (-1 meaning 'at the end').
8962         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
8963         parameter.
8964         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
8965         bad entry removal updates for entries that aren't in the model.
8966         (rhythmdb_query_model_emit_reorder): Add helper function for
8967         reordering rows.
8968         (rhythmdb_query_model_move_entry): New method for moving entries
8969         around in the model
8970         (rhythmdb_query_model_entry_added_cb),
8971         (rhythmdb_query_model_update_limited_entries),
8972         (rhythmdb_query_model_do_reorder),
8973         (rhythmdb_query_model_do_insert): Pass through the index parameter,
8974         use rhythmdb_query_model_emit_reorder where appropriate.
8976         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
8977         Don't allow the queue to be deleted.
8978         (handle_playlist_entry_cb): Update for method signature change
8979         (rb_playlist_manager_save_playlists_async),
8980         (rb_playlist_manager_get_playlists): Don't save the play queue,
8981         don't report it as a playlist.
8983         * shell/rb-play-order.c: Include queue play order in the list of
8984         available orders.
8986         * shell/rb-shell.c
8987         (rb_shell_class_init), (rb_shell_get_property): Add new property 
8988         for access to the clipboard object.
8989         (rb_shell_constructor): Handle playing-from-queue signal to update the
8990         sourcelist display; add queue sidebar in to UI, listen for queue
8991         sidebar pane changes, and read initial settings from gconf.
8992         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
8993         Only tell the sourcelist the source has changed if the new source is 
8994         not the queue, as we update the sourcelist differently in that case.
8995         (rb_shell_set_window_title): Only use the cached window title if the
8996         playing state was the same when it was created.
8997         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
8998         (rb_shell_sync_pane_visibility): Only hide the side pane if the
8999         sourcelist is hidden and the queue is shown as a source.
9000         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
9001         mode, since it doesn't make any sense.
9002         (sourcelist_visibility_changed_cb): Update the visibility of the pane
9003         too.
9004         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
9005         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
9006         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
9007         playing from queue shown as sidebar.
9009         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
9010         MusicProperties action here from rb-shell-player.c, since it acts like
9011         cut/copy/paste etc.
9012         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
9013         (rb_shell_clipboard_get_property): new property for queue source.
9014         Watch for selection changes in the sidebar entry view as well as the
9015         normal one.
9016         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
9017         actions and MusicProperties.
9018         (rb_shell_clipboard_cmd_queue_delete),
9019         (rb_shell_clipboard_cmd_add_song_to_queue),
9020         (rb_shell_clipboard_cmd_song_info),
9021         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
9023         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
9024         actually came from (could be the playing source, or the queue), add a 
9025         new play order object for the queue, add a property for the queue
9026         source, add a signal for when we switch between playing from the
9027         source and from the queue.
9028         (rb_shell_player_set_property): Handle playing directly from the
9029         queue so we stop once the queue is empty.  Create queue play order
9030         when we get the queue source.
9031         (rb_shell_player_get_playing_source): Return the source we're actually
9032         playing from.
9033         (rb_shell_player_get_playing_entry): Get playing entry from queue if
9034         that's where it is.
9035         (rb_shell_player_set_playing_entry): Update the queue play order if 
9036         that's where we're playing from.
9037         (rb_shell_player_play_order_update_cb): Take has next/previous for the
9038         queue into consideration too.
9039         (swap_playing_source): Helper function for switching the playing
9040         source.
9041         (rb_shell_player_do_previous): Check the queue, even though there's
9042         never a previous entry in it (yet), swap playing source if it changed.
9043         (rb_shell_player_do_next): Check the queue for entries to play before
9044         the normal play order, and swap playing source if it changed.
9045         (rb_shell_player_do_previous_or_seek): Check the queue for previous
9046         entries to go to as well.
9047         (rb_shell_player_playpause): Check the queue before the selection and
9048         the play order, and swap playing source if it changed.
9049         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
9050         (rb_shell_player_entry_activated_cb): Use
9051         rb_podcast_manager_entry_downloaded, do some tapdancing to make
9052         activating queue entries work properly (move the activated entry to
9053         the start of the queue and then play it); if we were playing from the
9054         queue, clear its playing entry so it'll start again from the start
9055         after the activated entry.
9056         (rb_shell_player_sync_buttons): MusicProperties action handler moved
9057         to rb-shell-clipboard.c
9058         (actually_set_playing_source): Add helper for updating the playing
9059         source.
9060         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
9061         signal if we stop or start doing so; use actually_set_playing_source; 
9062         emit playing-source-changed if we actually did change source.
9064         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
9065         rb_static_playlist_source_add_location.
9067         * sources/rb-library-source.c (rb_library_source_class_init): Allow
9068         enqueueing of songs from the library.
9070         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
9071         enqueueing of sonsg from playlists.
9072         (rb_playlist_source_entry_added_cb): Add extra parameter for
9073         rhythmdb_query_model_add_entry.
9074         
9075         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
9076         Implement (can_)add_to_queue for this class.
9077         (rb_podcast_source_entry_activated): Use
9078         rb_podcast_manager_entry_downloaded.
9079         (impl_can_add_to_queue): Return TRUE if at least one entry that has
9080         been downloaded is selected.
9081         (impl_add_to_queue): Only add downloaded entries to the queue.
9083         * sources/rb-source.{c,h}:
9084         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
9085         methods.
9086         (rb_source_class_init): Don't allow enqueueing by default; implement 
9087         add_to_queue though.
9088         (default_add_to_queue): Add all selected entries to the queue.
9089         
9090         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
9091         would be playing if there wasn't anything in the queue).
9092         (set_source_playing): Helper function for manipulating tree store.
9093         (rb_sourcelist_set_playing_source): Use set_source_playing
9094         (rb_sourcelist_preempt_playing_source): Update preempted source
9095         pointer, manipulate source states.
9097         * sources/rb-static-playlist-source.{c,h}:
9098         (rb_static_playlist_source_add_location_internal),
9099         (rb_static_playlist_source_add_location),
9100         (rb_static_playlist_source_add_entry): Add index parameter for
9101         specifying where in the playlist the new entry goes.
9102         (rb_static_playlist_source_new_from_xml), (impl_paste),
9103         (rb_static_playlist_source_add_list_uri),
9104         (rb_static_playlist_source_add_location_swapped),
9105         (rb_static_playlist_source_add_locations),
9106         (rb_static_playlist_source_non_entry_dropped),
9107         (rb_static_playlist_source_row_inserted):
9108         Handle new index parameter everywhere it appears
9109         (rb_static_playlist_source_move_entry): New method for moving entries
9110         around in the playlist.
9112         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
9113         warnings when trying to scroll entry views that have never been
9114         displayed.
9116         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
9117         play order that removes the old entry when switching to a new one.
9119         * sources/rb-play-queue-source.{c,h}: New files, implementing a
9120         static playlist subclass that has a second entry view for the sidebar
9121         view using alternate formatting, and that displays the number of
9122         entries it contains in its source list entry.
9124 2005-12-10  James Livingston  <jrl@ids.org.au>
9126         * rhythmdb/rhythmdb-query-model.c:
9127         (rhythmdb_query_model_add_entry),
9128         (rhythmdb_query_model_drag_data_received):
9129         * sources/rb-static-playlist-source.c:
9130         (rb_static_playlist_source_non_entry_dropped): when things are
9131         dropped, ignore any blank lines in the list of uris. Make the source
9132         responsible for adding new items to the db.
9134         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
9135         empty string.
9137 2005-12-10  James Livingston  <jrl@ids.org.au>
9139         * shell/rb-shell-player.c: (rb_shell_player_set_property),
9140         (rb_shell_player_sync_buttons),
9141         (rb_shell_player_selection_changed_cb): watch for the
9142         "selection-changed" signal, so that the Song Properties get enabled.
9143         Closes bug 323694.
9145 2005-12-10  James Livingston  <jrl@ids.org.au>
9147         * data/rhythmbox.schemas: fix the gconf schema
9149 2005-12-10  James Livingston  <jrl@ids.org.au>
9151         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
9152         the decoded-pad callback with gstreamer 0.8, it causes problems.
9154 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
9156         Remove more junk from RBEntryView. Closes bug 323640.
9158         * widgets/rb-entry-view.{c,h}:
9159         Remove unused private structure members, replace 'playing' boolean
9160         with an enum (so we know if we're paused too), and store a pointer to
9161         the RBShellPlayer too.  
9162         (rb_entry_view_class_init), (rb_entry_view_set_property),
9163         (rb_entry_view_get_property):
9164         Remove 'entry-selected' and 'changed' signals and
9165         'playing-entry' property, add 'selection-changed' signal and
9166         'shell-player' and 'playing-state' properties.
9167         (rb_entry_view_new): Take the shell player object reference
9168         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
9169         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
9170         No longer needed, shell player is the place to get this information.
9171         (rb_entry_view_busy), (rb_entry_view_get_duration),
9172         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
9173         (rb_entry_view_get_next_from_entry),
9174         (rb_entry_view_get_previous_from_entry),
9175         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
9176         (rb_entry_view_get_num_entries):
9177         Removed, callers should go to the query model directly.
9178         (rb_entry_view_playing_song_changed): Update active query model, emit
9179         row changed signals to update pixbufs, and scroll to the playing song
9180         when the playing song changes, based on a signal from the shell
9181         player.
9182         (queue_changed_sig), (rb_entry_view_row_changed_cb),
9183         (emit_entry_changed): Evil, removed.
9184         (rb_entry_view_selection_changed_cb): Remove old signals, add new
9185         selection-changed signal.
9186         (rb_entry_view_select_none), (rb_entry_view_select_entry):
9187         Remove selection lock.  It didn't work anyway.
9188         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
9189         (rb_entry_view_emit_row_changed): Simple helper function to emit
9190         row-changed signals.
9192         * widgets/Makefile.am: Entry view needs headers from the shell/
9193         directory.
9194         * widgets/rb-song-info.{c,h}: Use the query model for everything except
9196         scrolling the entry view to show the entry being displayed.
9197         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
9198         'source' property so we can watch for query model changes.
9199         (rb_song_info_finalize): Unref objects, disconnect signal handlers
9200         (rb_song_info_set_property): Watch for query model changes, don't
9201         watch for entry view changes.
9202         (rb_song_info_new): Take source as a parameter, use the source's entry
9203         view unless one was specifically supplied.
9204         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
9205         Use query model rather than entry view to move between songs.
9206         (rb_song_info_update_buttons): Use query model.
9207         (rb_song_info_query_model_changed_cb): Handle query model changes.
9209         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
9210         Only one copy of the code to enable/disable the CD burning action
9211         (rb_playlist_manager_playlist_entries_changed):
9212         Use the query model to get the number of entries, not the entry view.
9214         * shell/rb-play-order-random-by-age-and-rating.c,
9215         shell/rb-play-order-random-by-age.c,
9216         shell/rb-play-order-random-by-rating.c,
9217         shell/rb-play-order-random-equal-weights.c:
9218         Use G_DEFINE_TYPE
9220         * shell/rb-shell-player.{c,h}:
9221         Remove a few unused entries from the structure.
9222         (rb_shell_player_set_property):
9223         Don't use the 'changed' signal on the entry view (it's evil)
9224         (rb_shell_player_have_first): No longer needed
9225         (rb_shell_player_play): Just tell the entry view it's playing
9226         (rb_shell_player_playpause): Tell the entry view it's paused
9227         when pausing.
9228         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
9229         (rb_shell_player_property_row_activated_cb):
9230         Get the entry to play using the query model, not the entry view.
9231         (rb_shell_player_sync_buttons): Update entry view state while we're
9232         here.
9233         (rb_shell_player_set_playing_source_internal): Update entry view state
9234         (rb_shell_player_get_playing): Ask the entry view, not the player.
9235         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
9236         and rb_shell_set_window_title work properly, so you get "(Paused)" in
9237         the window title and tray icon tooltip.
9238         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
9240         * sources/rb-iradio-source.c, sources/rb-library-source.c,
9241         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
9242         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
9243         view constructor, pass the source in to the song info widget
9244         constructor.
9246         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
9247         Use 'selection-changed' instead of 'changed', since that's what the
9248         clipboard cares about.
9249         (rb_shell_clipboard_set_source): Don't die if source == NULL
9251 2005-12-10  James Livingston  <jrl@ids.org.au>
9253         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
9254         * sources/rb-playlist-source-recorder.c:
9255         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
9256         stuff not use the deprecated API when compiled against 2.13
9258 2005-12-10  James Livingston  <jrl@ids.org.au>
9260         patch by: Alex Lancaster <alexl@users.sourceforge.net>
9262         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
9263         problem where the genre tag was getting set to the artist. Closes bug
9264         323642.
9266 2005-12-09  William Jon McCann  <mccann@jhu.edu>
9268         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
9269         Return NULL if can't get first iter.
9271         Fixes #323663
9273 2005-12-09  William Jon McCann  <mccann@jhu.edu>
9275         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
9276         updated rb_station_properties_dialog_new API.
9277         (rb_iradio_source_add_from_playlist): New public function.
9278         (rb_iradio_source_first_time_changed): Use add_from_playlist.
9280         * shell/rb-shell.c (new_station_location_added): Handle
9281         iradio location added signal.
9282         (rb_shell_cmd_new_station): Use new iradio station dialog.
9284         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
9285         (rb_station_properties_dialog_new): Don't squeeze new
9286         station functionality into this class.
9287         (rb_station_properties_dialog_response_cb): ditto.
9288         (rb_station_properties_dialog_update_title): Make
9289         consistent with other properties dialogs.
9290         (rb_station_properties_dialog_location_changed_cb): Do nothing.
9292         * iradio/rb-new-station-dialog.[ch]: 
9293         * iradio/Makefile.am: Add new station dialog.
9295         * data/glade/station-new.glade: New file based on
9296         new podcast feed dialog.
9297         * data/glade/station-properties.glade: Updated to
9298         be consistent with song properties dialog.
9300         Fixes #323306.
9302 2005-12-10  James Livingston  <jrl@ids.org.au>
9304         patch by: Ståle Lyngaas <staale@lyngaas.com>
9306         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
9307         submit songs longer than 30 minutes. Fixes bug 323639.
9309 2005-12-09  William Jon McCann  <mccann@jhu.edu>
9311         * shell/rb-shell.c (idle_save_playlist_manager): Use new
9312         async save function.
9313         (rb_shell_finalize): Remove save timeout sources.  Reorder
9314         steps a bit to make saving db and playlists a bit more
9315         failsafe in case something goes wrong later.
9316         (rb_shell_constructor): Keep track of save timeout source.
9317         (add_to_library_response_cb): Keep track of db save timeout source.
9319         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
9320         g_atomic.
9321         (rb_playlist_manager_shutdown): New function to shutdown
9322         threads etc. before exit.
9323         (rb_playlist_manager_finalize): Moved handling outstanding
9324         threads stuff to shutdown since if there are outstanding threads
9325         they hold a ref and finalize is never called.
9326         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
9327         of signal which may be required for sync save.
9328         (rb_playlist_manager_save_playlists_async): Renamed old
9329         save_playlists to save_playlists_async.  Use g_atomic.
9330         (rb_playlist_manager_save_playlists): New function to
9331         perform sync saves (symmetric with RhythmDB API).
9332         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
9334         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
9335         Style consistency anality.
9336         (rhythmdb_finalize): Remove save timeout source.
9337         (rhythmdb_set_property, rhythmdb_get_property) 
9338         (rhythmdb_process_events): More anality and keep track of
9339         save timeout source.
9340         (action_thread_main): No need to call g_thread_exit.
9341         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
9342         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
9343         (write_encoded_gvalue, read_encoded_property): La la la.
9345         Fixes #322940.
9347 2005-12-10  James Livingston  <jrl@ids.org.au>
9349         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
9350         non-audio files.
9352 2005-12-10  James Livingston  <jrl@ids.org.au>
9354         * Makefile.am:
9355         * configure.ac: remove the rpm spec files, so that automake works.
9356         oops
9358         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
9359         locking issue
9361 2005-12-09  James Livingston  <jrl@ids.org.au>
9363         * debian/: try to get cvs to actually remove the files
9365 2005-12-09  James Livingston  <jrl@ids.org.au>
9367         * rhythmbox.spec.in:
9368         * debian/: remove the distro package stuff, they are *really* old, and
9369         downstream manage it anyway.
9371 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
9373         Rework play orders to work off query models rather than 
9374         entry views, and track the playing entry themselves rather
9375         than relying on the entry view to do it.  This makes the entry
9376         view mostly just a widget. Closes bug 323612.
9378         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
9379         Use query model rather than entry view to get the number
9380         of entries in playlists.
9382         * rhythmdb/rhythmdb-query-model.{c.h}
9383         (rhythmdb_query_model_tree_path_to_entry),
9384         (rhythmdb_query_model_iter_to_entry),
9385         (rhythmdb_query_model_get_next_from_entry),
9386         (rhythmdb_query_model_get_previous_from_entry):
9387         New utility functions for iterating through query models.
9388         (rhythmdb_query_model_compute_status_normal):
9389         Have one copy of this code, not four.
9391         * shell/rb-play-order.{c,h}:
9392         Add signals for when next/previous availability changes, and
9393         when the playing entry is removed, and add a property for
9394         the current playing entry.  Add gtkdoc comments too.
9395         (rb_play_order_class_init): Add new property and signals.
9396         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
9397         (rb_play_orer_query_model_changed_cb),
9398         (rb_play_order_query_model_changed): 
9399         Use query model rather than entry view.
9400         (rb_play_order_set_property), (rb_play_order_get_property):
9401         Handle new playing-entry property.  Call playing_entry_changed virtual
9402         method so subclasses can do any processing required.
9403         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
9404         (rb_play_order_set_playing_entry):
9405         Just use the playing-entry property.
9406         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
9407         Utility methods for subclasses.
9408         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
9409         Update next/previous availability, check if the playing entry
9410         was removed.
9411         (default_playing_entry_removed):
9412         Keep the current behaviour of just stopping playback when the 
9413         playing entry is deleted.
9414         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
9415         these for subclasses that don't have go_next/go_previous, but do
9416         have get_next/get_previous.
9417         (rb_play_order_update_have_next_previous): Emit signal if the
9418         availability of next/previous entries has changed.
9420         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
9421         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
9422         Use G_DEFINE_TYPE, replace entry view iterator with query model 
9423         methods.
9424         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
9425         on the last song in the shuffled order, go back to the start. This
9426         means if you press 'play' again you'll get the whole order again, not
9427         just one song.
9429         * shell/rb-shell-player.c:
9430         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
9431         play order rather than the entry view.
9432         (rb_shell_player_set_property): Update the play order when the
9433         selected source changes and we aren't playing anything.
9434         (rb_shell_player_sync_play_order): Copy the playing entry across to
9435         the new play order so playback continues from the same song, and watch
9436         for updates to have_next/have_previous.
9437         (rb_shell_player_play_order_update_cb): Enable/disable the
9438         next/previous actions when next/previous entry availability changes.
9439         (rb_shell_player_jump_to_current): Just use the play order's idea of
9440         what's playing, not the entry view's; if not playing anything, clear
9441         the selection, so when a playlist ends and you hit play again, it'll
9442         start at the start rather than the end.
9443         (rb_shell_player_do_previous): restructure a bit.
9444         (rb_shell_player_do_next): restructure, jump to new playing entry in
9445         an idle handler instead of directly.
9446         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
9447         song if there is one.
9448         (rb_shell_player_playpause): Jump to playing song, don't update the
9449         play order if we got the song from the selection.
9450         (rb_shell_player_playing_entry_deleted_cb): Not needed.
9451         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
9452         looks after next/previous actions now.  Don't break if called while
9453         there is no selected source.
9454         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
9455         (rb_shell_player_set_playing_source_internal),
9456         (rb_shell_player_error): No need to track the attempted playing entry
9457         any more, since the play order does that.
9459         * shell/rb-shell.c:
9460         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
9461         rb_shell_player_get_playing_entry rather than going through the entry
9462         view.
9464         * shell/rb-statusbar.c (rb_statusbar_set_property),
9465         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
9466         than the entry view for status bar text changes.
9467         (rb_statusbar_sync_status): Ask the query model directly
9469         * sources/rb-source.{c}: Add query model property.
9470         (default_get_status): Get status text from query model, should be
9471         suitable for most sources.
9472         (rb_source_set_property): Listen for changes to the query model 
9473         to update the status text.
9474         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
9475         (idle_emit_status_changed): Emit status-changed signals when query
9476         model changes. 
9478         * sources/rb-library-source.c, sources/rb-podcast-source.c:
9479         (impl_get_status): Not needed, RBSource does this now
9480         (rb_library_source_do_query) (rb_podcast_source_do_query): 
9481         Update RBSource's query model reference.
9483         * sources/rb-playlist-source.c:
9484         Remove query-model property, since RBSource has one now
9485         (impl_get_status): Not needed, RBSource does this now
9486         (rb_playlist_source_row_deleted): Use query model iterator helper
9487         function.
9488         (rb_playlist_source_set_query_model): Update RBSource's query model
9489         reference too.
9491         * sources/rb-iradio-source.c:
9492         (impl_get_status): Ask the query model directly.
9493         (rb_iradio_source_do_query): Update RBSource's query model reference
9494         when we create a new query.
9496         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
9497         Use query model rather than entry view.
9499         * widgets/rb-entry-view.{c,h}: 
9500         Remove playing_entry_deleted signal (now in play order).
9501         (entry_from_tree_path), (entry_from_tree_iter): Not needed
9502          as RhythmDBQueryModel has equivalent helper functions.
9503         (rb_entry_view_*): Use query model helpers instead of the above two
9504         functions.
9506 2005-12-09  James Livingston  <jrl@ids.org.au>
9508         * configure.ac:
9509         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
9510         (rb_recorder_enabled):
9511         * shell/rb-removable-media-manager.c: (poll_tray_opened):
9512         * sources/rb-playlist-source-recorder.c:
9513         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
9514         whether libnautilusburn has the _drive_unref function, and if so use
9515         it. Stops it complaining about deprecated API.
9517 2005-12-09  James Livingston  <jrl@ids.org.au>
9519         * configure.ac: drop the minimum gstreamer version back down, it
9520         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
9522 2005-12-09  James Livingston  <jrl@ids.org.au>
9524         * widgets/rb-song-info.c: (rb_song_info_class_init),
9525         (rb_song_info_show), (rb_song_info_constructor),
9526         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
9527         (rb_song_info_forward_clicked_cb): save metadata changes when the
9528         Next/Previous buttons are pressed (closes bug 320952). use
9529         G_DEFINE_TYPE.
9531 2005-12-09  James Livingston  <jrl@ids.org.au>
9533         Patch by: <jonathan@kaolin.hn.org>
9535         * sources/rb-iradio-source.c:
9536         (stations_view_drag_data_received_cb):
9537         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
9538         of urls. Fixes bug 323610.
9540 2005-12-09  James Livingston  <jrl@ids.org.au>
9542          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
9543          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
9545         * configure.ac:
9546         * metadata/rb-metadata-gst.c:
9547         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
9548         (rb_player_construct), (rb_player_new):
9549         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
9550         (rb_recorder_gst_signal_error), (pipe_message),
9551         (rb_recorder_new_pad_cb), (rb_recorder_construct),
9552         (rb_recorder_new):
9553         * shell/main.c: (main):
9554         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
9555         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
9557 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
9559         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
9561         * shell/rb-playlist-manager.c:
9562           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
9563           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
9564           (rb_playlist_manager_set_automatic_playlist),
9565           (rb_playlist_manager_cmd_new_automatic_playlist),
9566           (rb_playlist_manager_cmd_edit_automatic_playlist):
9567            Use new playlist subclasses.
9568           (rb_playlist_manager_save_playlists): Only read the dirty flag
9569            for local playlists, minor pointless reformatting
9571         * sources/Makefile.am: add new files
9573         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
9574           split lots of stuff out into two
9575           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
9576           make RBPlaylistSource abstract, add virtual methods for showing a
9577           popup for the entry view and saving the playlist to XML.
9578           Other stuff is subclass-specific, or already virtual in RBSource.
9580         * sources/rb-playlist-xml: Define playlist XML tags and attributes
9581           in one place, since they're used across three source files now
9583         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
9584           Use new static playlist class
9586         * sources/rb-ipod-source.c: (add_rb_playlist):
9587           Use new static playlist class
9589         * sources/rb-static-playlist-source.{c,h},
9590         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
9591         files.
9593         * po/POTFILES.in: add new files
9595 2005-12-07  James Livingston  <jrl@ids.org.au>
9597         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
9598         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
9599         metadata loads not attempt to write changes to disk.
9601 2005-12-07  James Livingston  <jrl@ids.org.au>
9603         patch by: Alex Lancaster <alexl@users.sourceforge.net>
9605         * data/glade/song-info-multiple.glade:
9606         * widgets/rb-song-info.c: (rb_song_info_constructor),
9607         (rb_song_info_sync_entries_multiple): allow the year to be changed on
9608         multiple songs at once.
9610 2005-12-06  James Livingston  <jrl@ids.org.au>
9612         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
9613         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
9615 2005-12-06  James Livingston  <jrl@ids.org.au>
9617         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
9618         names rather than adding a horizontal scroll bar.
9620 2005-12-06  James Livingston  <jrl@ids.org.au>
9622         * rhythmdb/rhythmdb-query-model.c:
9623         (rhythmdb_query_model_update_limited_entries),
9624         (rhythmdb_query_model_drag_data_received): remove some pointless debug
9625         messages
9627         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
9628         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
9629         always hide rather than remove DB entries, which will make RB not lose
9630         information when tag editing happens or people move files to trash and
9631         then change their mind. Also fix some races where the monitoring code
9632         would notice the temporary files generated by saving metadata.
9634 2005-12-05  William Jon McCann  <mccann@jhu.edu>
9636         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
9637         Hide internals and add tooltips.
9638         (rb_song_display_box_size_allocate): Hide internals.
9639         (sanitize_string, info_url): Copied from rb-header.
9640         (rb_song_display_box_sync): New public function.
9642         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
9643         (rb_header_init): Use a separate row for the seek bar.
9644         (rb_header_finalize): Don't unref widgets.
9645         (rb_header_sync): Use rb_song_display_box_sync.
9646         (rb_header_set_urldata)
9647         (rb_header_set_show_artist_album): Hide instead of remove widgets.
9648         (rb_header_set_show_position_slider): Set visibility of seek bar.
9649         (rb_header_set_show_timeline): Set sensitivity of seek bar.
9650         (rb_header_get_elapsed_string): Don't shift when you first start playback.
9652         * shell/rb-statusbar.c (rb_statusbar_init)
9653         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
9655         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
9656         (rb_shell_constructor): Remove hseparator.  Monitor
9657         toolbar visibility settings.  Add toolbar.  Add
9658         volume button to toolbar.  Add tooltips for volume button.
9659         (rb_shell_view_toolbar_changed_cb) 
9660         (rb_shell_sync_toolbar_visibility)
9661         (toolbar_visibility_changed_cb): Set visibility of
9662         toolbar.
9663         (rb_shell_sync_smalldisplay): Set the toolbar style to
9664         icons only when in small display mode.
9665         (rb_shell_volume_widget_changed_cb): Save volume setting.
9667         * shell/rb-shell-player.c (rb_shell_player_constructor):
9668         Remove pause and stop actions.  Make play action "important"
9669         so that text is visible in horizontal toolbar position.
9670         Remove control buttons.
9671         (rb_shell_player_init) 
9672         (rb_shell_player_sync_song_position_slider_visibility):
9673         Set visbibility of seek bar.
9674         (rb_shell_player_cmd_play, rb_shell_player_playpause):
9675         Make play action a toggle.
9676         (rb_shell_player_sync_volume): Volume control moved
9677         to player.
9678         (gconf_song_position_slider_visibility_changed):
9679         Set visbibility of seek bar.
9680         (rb_shell_player_sync_buttons):
9681         Set sensitivity of actions instead of buttons.
9682         (rb_shell_player_playing_changed_cb): Add callback
9683         for player notify::playing changes.
9685         * lib/rb-preferences.h: Add hide toolbar and seek
9686         bar key names.
9688         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
9689         seek bar menu items.  Remove pause and stop actions
9690         from the control menu.  Add a toolbar.
9692         * data/rhythmbox.schemas: Add toolbar_hidden
9693         song_position_slider_hidden keys.
9695         Patch by: James Livingston  <jrl@ids.org.au>
9696                   William Jon McCann  <mccann@jhu.edu>
9697         Fixes #316238.
9699 2005-12-05  James Livingston  <jrl@ids.org.au>
9701         * data/glade/library-prefs.glade:
9702         * data/rhythmbox.schemas:
9703         * lib/rb-preferences.h:
9704         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
9705         (rhythmdb_sync_library_location):
9706         * sources/rb-library-source.c: (rb_library_source_class_init),
9707         (rb_library_source_finalize), (rb_library_source_constructor),
9708         (impl_get_config_widget), (rb_library_source_preferences_sync),
9709         (rb_library_source_watch_toggled_cb): allow people to disable library
9710         monitoring, because with nothing set the file chooser button selects
9711         the Home folder (and hence that will get monitored).
9713 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
9715         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
9716         attempt to fix problem with RSS parsing showing invalid feed types.
9717         Fixes bug 323153
9719 2005-12-04  James Livingston  <jrl@ids.org.au>
9721         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
9722         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
9723         importing a remote directory not block the UI.
9725 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
9727         * data/glade/podcast-feed-properties.glade:
9728         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
9730 2005-12-04  James Livingston  <jrl@ids.org.au>
9732         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
9734         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
9735         to && to fix a mistake in the earlier podcast patch.
9737 2005-12-03  James Livingston  <jrl@ids.org.au>
9739         * data/glade/podcast-new.glade:
9740         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
9741         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
9743         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
9744         GValue, which stops occasional errors.
9746         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
9747         compile issue.
9749 2005-12-03  James Livingston  <jrl@ids.org.au>
9751         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
9753         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
9754         crasher with some podcasts feeds.
9756 2005-12-03  James Livingston  <jrl@ids.org.au>
9758         * data/rhythmbox.schemas: fix the gconf schema
9760 2005-12-03  James Livingston  <jrl@ids.org.au>
9762         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
9763         add a selection timeout to the sourcelist. This lets you hold a track
9764         over the playlist source, and then have the view switch so you can
9765         insert the track in the middle of the playlist. Closes bug 323044.
9767         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
9768         (select_on_drag_timeout), (remove_select_on_drag_timeout),
9769         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
9770         (rb_tree_dnd_add_drag_dest_support):
9771         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
9772         timeout.
9774         * sources/rb-sourcelist-model.c:
9775         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
9776         the source list.
9778 2005-12-02  Bastien Nocera  <hadess@hadess.net>
9780         * data/glade/audioscrobbler-prefs.glade: add a space before the web
9781         links, so that the text doesn't touch the button
9783 2005-12-02  James Livingston  <jrl@ids.org.au>
9785         Add full support for gnome-vfs remote files. Closes bug 140355.
9787         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
9788         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
9789         for authentication information from the user doesn't block the UI.
9791         (rhythmdb_entry_set_visibility): don't emit the signal twice.
9793         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
9794         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
9795         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
9796         (rhythmdb_process_stat_event), (emit_load_error_idle),
9797         (rhythmdb_process_metadata_load),
9798         (rhythmdb_process_queued_entry_set_event),
9799         (rhythmdb_process_file_created_or_modified),
9800         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
9801         (queue_stat_uri), (add_thread_main),
9802         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
9803         (rhythmdb_load), (rhythmdb_save_thread_main),
9804         (threadsafe_entry_set), (rhythmdb_query_internal),
9805         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
9806         (rhythmdb_do_full_query_internal),
9807         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
9808         (rhythmdb_volume_unmounted_cb),
9809         (rhythmdb_check_changed_file): trivial changes to support the
9810         asynchronous stats.
9812         * shell/main.c: (main): activate the authentication manager.
9814         * shell/rb-playlist-manager.c:
9815         (rb_playlist_manager_cmd_load_playlist),
9816         (rb_playlist_manager_cmd_save_playlist):
9817         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
9818         (rb_shell_cmd_add_file_to_library):
9819         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
9820         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
9821         remote files.
9823 2005-12-02  James Livingston  <jrl@ids.org.au>
9825         * shell/rb-playlist-manager.c: makes playlist menu items use the
9826         elipses correctly. Fixes bug 322283.
9828 2005-12-02  James Livingston  <jrl@ids.org.au>
9830         * shell/rb-playlist-manager.c:
9831         (rb_playlist_manager_load_playlists): fix silly mistake
9833 2005-12-02  James Livingston  <jrl@ids.org.au>
9835         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
9836         print out metadata-write unless --debug was passed.
9838         * rhythmdb/rhythmdb.c: (rhythmdb_load):
9839         * shell/rb-playlist-manager.c:
9840         (rb_playlist_manager_load_playlists): block writes to disk if they are
9841         still being loaded.
9843 2005-12-02  James Livingston  <jrl@ids.org.au>
9845         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
9846         ctrl-T, because Ctrl-D is used by "small mode"
9848 2005-12-02  James Livingston  <jrl@ids.org.au>
9850         * shell/rb-shell-preferences.c:
9851         (rb_shell_preferences_append_view_page):
9852         * sources/rb-library-source.c: (impl_get_config_widget):
9853         * sources/rb-podcast-source.c: (impl_get_config_widget):
9854         * sources/rb-source.c: (rb_source_get_config_widget):
9855         * sources/rb-source.h: Make the preference actually work.
9857         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
9858         if Rhythmbox is being run for the first time.
9860 2005-12-02  James Livingston  <jrl@ids.org.au>
9862         Add support for Rhythmbox to watch your library, and automatically add
9863         new tracks. Fixes bug 160159.
9865         * data/glade/library-prefs.glade: add "library location" preference
9866         * data/rhythmbox.schemas: add gconf key for the library location
9868         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
9869         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
9870         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
9871         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
9872         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
9873         (rhythmdb_load_thread_main), (rhythmdb_load),
9874         (monitor_subdirectory), (monitor_library_directory),
9875         (monitor_entry_file), (rhythmdb_sync_library_location),
9876         (library_location_changed_cb), (rhythmdb_check_changed_file),
9877         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
9878         specifiec in the gconf key for new additions. Also fix monitoring code
9879         so that it works properly, and notices deletions.
9881         * lib/rb-preferences.h:
9882         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
9883         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
9884         * shell/rb-audioscrobbler.h:
9885         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
9886         (rb_shell_preferences_append_view_page),
9887         (rb_shell_preferences_new):
9888         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
9889         it's preferences pane, so that we don't need #ifdef's through
9890         rb-shell-preferences.
9892         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
9893         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
9894         "preferences" property, so that sources can acccess it. This is needed
9895         because the library location pref needs to take effect when the window
9896         is closed.
9898         * sources/rb-library-source.c:
9899         (rb_library_source_library_location_changed),
9900         (rb_library_source_dispose), (rb_library_source_finalize),
9901         (rb_library_source_constructor), (impl_get_config_widget),
9902         (rb_library_source_preferences_sync),
9903         (rb_library_source_process_library_location_change),
9904         (rb_library_source_prefs_update),
9905         (rb_library_source_process_library_handle_selection),
9906         (rb_library_source_library_location_cb): set up and control the
9907         "library location" preference.
9909         * sources/rb-audiocd-source.c:(rb_source_class_init):
9910         * sources/rb-source.c: (rb_source_class_init): remove some pointless
9911         code.
9913 2005-12-01  William Jon McCann  <mccann@jhu.edu>
9915         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
9916         (rb_feed_podcast_properties_dialog_update_title): 
9917         * data/glade/podcast-feed-properties.glade:
9918         Make the feed properties dialog consistent with the podcast
9919         properties dialog.
9921 2005-12-01  William Jon McCann  <mccann@jhu.edu>
9923         * metadata/.cvsignore: 
9924         * po/.cvsignore: 
9925         * podcast/.cvsignore: Updated.
9927         * shell/main.c (main): Support DBus 0.6 flags.
9929 2005-11-30  Bastien Nocera  <hadess@hadess.net>
9931         * data/ui/rhythmbox-ui.xml:
9932         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
9933         (rhythmbd_entry_move_to_trash_set_error),
9934         (rhythmdb_entry_move_to_trash):
9935         * rhythmdb/rhythmdb.h:
9936         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
9937         (rb_shell_clipboard_cmd_delete),
9938         (rb_shell_clipboard_cmd_move_to_trash):
9939         * sources/rb-library-source.c: (rb_library_source_class_init),
9940         (impl_delete), (impl_move_to_trash):
9941         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
9942         (impl_delete), (impl_move_to_trash):
9943         * sources/rb-removable-media-source.c:
9944         (rb_removable_media_source_class_init):
9945         * sources/rb-source.c: (rb_source_class_init),
9946         (rb_source_can_move_to_trash), (rb_source_delete),
9947         (rb_source_move_to_trash):
9948         * sources/rb-source.h:
9949         Add move_to_trash member for the sources, implement move to trash for
9950         the library and playlists
9951         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
9952         local files to the trash, and deleting them from the database
9953         (Closes: #315389)
9955 2005-11-30  William Jon McCann  <mccann@jhu.edu>
9957         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
9958         (rb_tray_icon_init, rb_tray_icon_finalize): 
9959         * shell/rb-statusbar.c (rb_statusbar_class_init) 
9960         (rb_statusbar_init, rb_statusbar_finalize): 
9961         * shell/rb-source-header.c (rb_source_header_class_init) 
9962         (rb_source_header_init, rb_source_header_finalize): 
9963         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
9964         (rb_shell_finalize): 
9965         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
9966         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
9967         * shell/rb-shell-player.c (rb_shell_player_class_init) 
9968         (rb_shell_player_init, rb_shell_player_finalize): 
9969         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
9970         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
9971         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
9972         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
9973         * shell/rb-play-order.c (rb_play_order_class_init) 
9974         (rb_play_order_init, rb_play_order_finalize): 
9975         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
9976         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
9977         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
9978         (rb_random_play_order_init, rb_random_play_order_finalize): 
9979         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
9980         (rb_history_finalize): 
9981         * shell/rb-commander.c (rb_commander_class_init) 
9982         (rb_commander_init, rb_commander_finalize): 
9983         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
9984         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
9985         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
9986         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
9987         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
9988         (rb_podcast_properties_dialog_init) 
9989         (rb_podcast_properties_dialog_finalize): 
9990         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
9991         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
9992         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
9993         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
9994         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
9995         (rb_feed_podcast_properties_dialog_init) 
9996         (rb_feed_podcast_properties_dialog_finalize): 
9997         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
9998         (rb_metadata_init, rb_metadata_finalize): 
9999         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
10000         (rb_station_properties_dialog_init) 
10001         (rb_station_properties_dialog_finalize): 
10002         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
10003         (rb_daap_share_init, rb_daap_share_dispose): 
10005         Use g_type_class_add_private in all classes. Closes bug 313688.
10006         
10007 2005-11-30  James Livingston  <jrl@ids.org.au>
10009         patch by: William Jon McCann <mccann@jhu.edu> to use
10010         g_type_class_add_private in all classes. Closes bug 313688.
10012         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
10013         (rb_thread_finalize):
10014         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
10015         (rb_player_finalize):
10016         * rhythmdb/rhythmdb-property-model.c:
10017         (rhythmdb_property_model_class_init),
10018         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
10019         * rhythmdb/rhythmdb-query-model.c:
10020         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
10021         (rhythmdb_query_model_finalize):
10022         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
10023         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
10024         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
10025         (rhythmdb_finalize):
10026         * sources/rb-daap-source.c: (rb_daap_source_class_init),
10027         (rb_daap_source_init), (rb_daap_source_dispose):
10028         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
10029         (rb_iradio_source_init), (rb_iradio_source_finalize):
10030         * sources/rb-library-source.c: (rb_library_source_class_init),
10031         (rb_library_source_init), (rb_library_source_finalize):
10032         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
10033         (rb_playlist_source_init), (rb_playlist_source_dispose):
10034         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
10035         (rb_podcast_source_init), (rb_podcast_source_finalize):
10036         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
10037         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
10038         * sources/rb-sourcelist-model.h:
10039         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
10040         (rb_sourcelist_init), (rb_sourcelist_finalize):
10041         * sources/rb-sourcelist.h:
10042         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
10043         * widgets/rb-cell-renderer-rating.c:
10044         (rb_cell_renderer_rating_init),
10045         (rb_cell_renderer_rating_class_init),
10046         (rb_cell_renderer_rating_finalize):
10047         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
10048         (rb_druid_finalize):
10049         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
10050         (rb_entry_view_init), (rb_entry_view_finalize):
10051         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
10052         (rb_header_finalize):
10053         * widgets/rb-load-failure-dialog.c:
10054         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
10055         (rb_load_failure_dialog_finalize):
10056         * widgets/rb-property-view.c: (rb_property_view_class_init),
10057         (rb_property_view_init), (rb_property_view_finalize):
10058         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
10059         (rb_rating_finalize):
10060         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
10061         (rb_search_entry_init), (rb_search_entry_finalize):
10062         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
10063         (rb_simple_view_init), (rb_simple_view_finalize):
10064         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
10065         (rb_song_display_box_init), (rb_song_display_box_finalize):
10066         * widgets/rb-song-info.c: (rb_song_info_class_init),
10067         (rb_song_info_init), (rb_song_info_finalize):
10068         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
10069         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
10071 2005-11-30  James Livingston  <jrl@ids.org.au>
10073         * iradio/rb-station-properties-dialog.c:
10074         (rb_station_properties_dialog_init),
10075         (rb_station_properties_dialog_new):
10076         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
10077         * lib/rb-glade-helpers.h:
10078         * podcast/rb-feed-podcast-properties-dialog.c:
10079         (rb_feed_podcast_properties_dialog_init),
10080         (rb_feed_podcast_properties_dialog_new):
10081         * podcast/rb-podcast-properties-dialog.c:
10082         (rb_podcast_properties_dialog_init),
10083         (rb_podcast_properties_dialog_new):
10084         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
10085         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
10086         * sources/rb-library-source.c: (impl_get_config_widget):
10087         * sources/rb-playlist-source-recorder.c:
10088         (rb_playlist_source_recorder_init):
10089         * widgets/rb-song-info.c: (rb_song_info_construct_single),
10090         (rb_song_info_constructor): create a single rb_glade_boldify_label()
10091         in rb-glade-helpers, rather than having eight implementation
10092         throughout the code.
10094 2005-11-30  James Livingston  <jrl@ids.org.au>
10096         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
10097         * lib/rb-util.h:
10098         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
10099         move the duration->string function into rb-utils, as it gets used in a
10100         few places.
10102         patch by: William Jon McCann <mccann@jhu.edu>
10104         * data/glade/podcast-properties.glade:
10105         * podcast/rb-podcast-properties-dialog.c:
10106         (rb_podcast_properties_dialog_init),
10107         (rb_podcast_properties_dialog_update),
10108         (rb_podcast_properties_dialog_update_title),
10109         (rb_podcast_properties_dialog_update_feed),
10110         (rb_podcast_properties_dialog_update_duration),
10111         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
10112         info dialog look more like the song info dialog. Use the same "Feed"
10113         value that is displayed in the treeview (ie. the album field), displays
10114         the duration, uses units in the bitrate field, and sort the fields in
10115         the same order.
10117 2005-11-29  James Livingston  <jrl@ids.org.au>
10119         * rhythmdb/rhythmdb-marshal.list:
10120         * rhythmdb/rhythmdb.h:
10121         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
10122         (emit_load_error_idle), (rhythmdb_process_metadata_load),
10123         (entry_to_rb_metadata), (emit_save_error_idle),
10124         (action_thread_main): emit error signal when metadata write fails.
10126         * shell/rb-shell.c: (rb_shell_constructor),
10127         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
10128         "metadata save" error and display it to the user.
10130 2005-11-29  James Livingston  <jrl@ids.org.au>
10132         * data/ui/rhythmbox-ui.xml:
10133         * sources/rb-podcast-source.c:
10134         (rb_podcast_source_songs_show_popup_cb),
10135         (rb_podcast_source_cmd_download_post),
10136         (rb_podcast_source_cmd_cancel_download): split download and cancel
10137         download commands. Replace usage of "Post" with "Esisode". Fixes bug
10138         321653.
10140 2005-11-18  William Jon McCann  <mccann@jhu.edu>
10142         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
10143         title on alert dialogs per the HIG.
10145         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
10146         the term Burn.
10147         (free_song_list): Routine to free song list.
10148         (rb_playlist_source_recorder_finalize): Use free_song_list.
10149         (rb_playlist_source_recorder_add_from_model): Return FALSE
10150         if unable to add all songs.  Check that duration of all
10151         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
10152         Fixes #321753.
10154         * sources/rb-playlist-source-recorder.c (check_media_length)
10155         (rb_playlist_source_recorder_start): Only check the duration
10156         and current media if the playlist length is longer than a
10157         standard CD (74 min).  Otherwise, just let the Recorder do the
10158         check.
10159         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
10160         drive at init.
10161         (rb_recorder_set_device): Don't leak drives.
10162         (rb_recorder_get_media_length): Use drive that was already set.
10163         (rb_recorder_burn): Let the recorder handle checking media type/size.
10164         Fixes bug 321754.
10166 2005-11-29  James Livingston  <jrl@ids.org.au>
10168         * rhythmdb/rhythmdb-query-model.c:
10169         (rhythmdb_query_model_set_sort_order):
10170         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
10171         emitting the tree-model "resorted" signal.
10173         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
10174         (rb_entry_view_finalize), (rb_entry_view_set_property),
10175         (rb_entry_view_constructor), (rb_entry_view_resort_model):
10176         * widgets/rb-entry-view.h: add a function to resort the entry view,
10177         using the above function.
10179         * sources/rb-iradio-source.c:
10180         (rb_iradio_source_songs_view_sort_order_changed_cb):
10181         * sources/rb-library-source.c: (rb_library_source_finalize),
10182         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
10183         * sources/rb-playlist-source.c:
10184         (rb_playlist_source_songs_sort_order_changed_cb):
10185         * sources/rb-podcast-source.c:
10186         (rb_podcast_source_posts_view_sort_order_changed_cb),
10187         (rb_podcast_source_do_query): use the above function instead of
10188         re-creating the query model. This makes changing the sorting an order
10189         of magnitude faster, as it uses a single resorted signal rather than
10190         deleting and re-adding everything (which emits 2N signals). Closes bug
10191         315389.
10193 2005-11-29  James Livingston  <jrl@ids.org.au>
10195         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
10196         autosizing, which results in large speedups. Closes bug 312122.
10198         * po/ja.po: change the date format, so that it is a constant width
10200         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10201         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
10202         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
10203         (rb_entry_view_constructor): make columns use fixed widths,
10204         disable column autosizing, and enable fixed-height mode.
10206         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
10207         (rb_entry_view_get_time_date_column_sample):
10208         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
10209         and get the canonical date format for the locale.
10211 ============ Version 0.9.2
10213 2005-11-28  James Livingston  <jrl@ids.org.au>
10215         * configure.ac: bump version to 0.9.2
10216         * NEWS: update with changes for 0.9.2
10218 2005-11-28  James Livingston  <jrl@ids.org.au>
10220         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
10222         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
10223         Disable saving, renaming and delting for DAAP playlists.
10224         Fixes bug 322627.
10226 2005-11-28  James Livingston  <jrl@ids.org.au>
10228         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
10229         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
10230         prevent bug 322619.
10232         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
10233         * sources/rb-removable-media-source.c:
10234         (rb_removable_media_source_class_init): fix ipod browser visibility
10235         problem.
10237 2005-11-28  James Livingston  <jrl@ids.org.au>
10239         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
10240         Avahi 0.6 support actually work. Fixes bug 322519.
10242 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
10244         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
10245         avahi is specified in --with-mdns
10247 2005-11-27  James Livingston  <jrl@ids.org.au>
10249         patch by: Bastien Nocera <hadess@hadess.net>
10251         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
10252         not the private one. Fixes bug 322485.
10254 2005-11-26  James Livingston  <jrl@ids.org.au>
10256         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
10257         Avahi 0.6, as well as 0.5.
10259         * configure.ac:
10260         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
10261         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
10262         (add_service):
10264 2005-11-25  James Livingston  <jrl@ids.org.au>
10266         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
10267         321926.
10269 2005-11-25  James Livingston  <jrl@ids.org.au>
10271         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
10272         correct type for checking the date against 0. Stops a warning when
10273         saving metadata.
10275 2005-11-25  James Livingston  <jrl@ids.org.au>
10277         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
10278         adjustment to be inside the element's limits. Without this songs that
10279         have large ReplayGain values will recieve no increase because they are
10280         outside the acceptable range, causing them to remain quiet.
10282 2005-11-25  James Livingston  <jrl@ids.org.au>
10284         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
10285         * sources/rb-daap-source.c: (rb_daap_source_class_init):
10286         * sources/rb-ipod-source.c:
10287         * sources/rb-source.h:
10288         * sources/rb-library-source.h:
10289         * sources/rb-library-source.c: (rb_library_source_class_init),
10290         (rb_library_source_constructor),
10291         (rb_library_source_has_first_added_column),
10292         (rb_library_source_has_drop_support):
10293         * sources/rb-removable-media-source.c:
10294         (rb_removable_media_source_class_init): Make library-derived sources
10295         not show the Date Added column, as it doesn't make sense. Fixes bug
10296         322269.
10297         Move some of the feature funcs from the ipod and audio cd sources up to
10298         the removable media source.
10300 2005-11-24  James Livingston  <jrl@ids.org.au>
10302         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
10303         errors. oops.
10305 2005-11-24  James Livingston  <jrl@ids.org.au>
10307         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
10308         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
10309         (rb_iradio_source_constructor): Chain up dispose method and use
10310         G_DEFINE_TYPE
10312 2005-11-24  James Livingston  <jrl@ids.org.au>
10314         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
10315         mistake in the last commit that can cause crashes.
10317 2005-11-24  James Livingston  <jrl@ids.org.au>
10319         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
10320         instead of g_printerr.
10322         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
10323         rb_debug instead of g_warning. The message happens every time for
10324         removable media/daap shares, so it's not unusual.
10326 2005-11-24  James Livingston  <jrl@ids.org.au>
10328         patch by: Tom Parker <palfrey@tevp.net>
10330         * configure.ac: fix libsoup test for enabling daap
10332 2005-11-23  James Livingston  <jrl@ids.org.au>
10334         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
10335         (rb_query_creator_init), (rb_query_creator_constructor),
10336         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
10337         empty row to queries with no criteria. Fixes bug 322078. use
10338         G_DEFINE_TYPE.
10340 2005-11-23  James Livingston  <jrl@ids.org.au>
10342         patch by:  <baptiste.millemathias@gmail.com>
10344         * help/C/quick-reference.xml: update the quick reference to have the
10345         correct key bindings.
10347 2005-11-22  James Livingston  <jrl@ids.org.au>
10349         * sources/rb-library-source.c: (genres_selection_reset_cb),
10350         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
10351         reset the query when all browser selections are removed.
10353 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10355         * podcast/rb-podcast-manager.c:
10356         (rb_podcast_manager_db_entry_deleted_cb):
10357         Use a custom loop to remove podcast posts, rather than
10358         gtk_tree_model_foreach(), as deleting the entries within
10359         that loop causes the iterator to return the first entry
10360         twice.  Instead, we need to find the next entry before
10361         removing the current one. Fixes bug 321956.
10362         (rb_podcast_manager_entry_remove_cb): No longer needed.
10364 2005-11-22  James Livingston  <jrl@ids.org.au>
10366         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
10367         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
10368         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
10370 2005-11-22  James Livingston  <jrl@ids.org.au>
10372         * sources/rb-podcast-source.c:
10373         (rb_podcast_source_post_date_cell_sort_func),
10374         (rb_podcast_source_post_status_cell_sort_func),
10375         (rb_podcast_source_post_feed_cell_sort_func):
10376         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
10377         (rb_entry_view_album_sort_func),
10378         (rb_entry_view_double_ceiling_sort_func),
10379         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
10380         the entry's location as a last resort when sorting, so the sort order
10381         is stable. This will stop entries moving around when two entries have
10382         the same sorting, and one of them gets played.
10384 2005-11-22  James Livingston  <jrl@ids.org.au>
10386         * daapsharing/rb-daap-connection.c:
10387         (rb_daap_connection_class_init), (rb_daap_connection_init),
10388         (connection_get_password), (build_message),
10389         (http_response_handler), (http_get), (handle_server_info),
10390         (handle_login), (handle_update), (handle_database_info),
10391         (handle_song_listing), (handle_playlists),
10392         (handle_playlist_entries), (rb_daap_connection_new),
10393         (rb_daap_connection_constructor), (rb_daap_connection_logout),
10394         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
10395         (rb_daap_connection_get_headers),
10396         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
10397         (rb_daap_connection_set_property),
10398         (rb_daap_connection_get_property):
10399         * daapsharing/rb-daap-connection.h:
10400         * sources/rb-daap-source.c: (rb_daap_source_dispose),
10401         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
10402         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
10403         of destroying the object when it is going to be used by a callback and
10404         fixes a double-free. Fixes bugs 321930 and 322007.
10406 2005-11-22  James Livingston  <jrl@ids.org.au>
10408         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
10409         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
10410         notification if there aren't any. Fixes bug 321968.
10412 2005-11-22  James Livingston  <jrl@ids.org.au>
10414         * rhythmdb/rhythmdb-property-model.c:
10415         (rhythmdb_property_model_set_property),
10416         (rhythmdb_property_model_finalize),
10417         (rhythmdb_property_model_compare),
10418         (rhythmdb_property_model_insert),
10419         (rhythmdb_property_model_delete_prop): Fix property model sorting
10420         where the display and sort keys are different. Fixes bug 321980.
10422 2005-11-22  James Livingston  <jrl@ids.org.au>
10424         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
10425         when import as a file or passed on the command line, and load them as
10426         playlists.
10428 2005-11-22  James Livingston  <jrl@ids.org.au>
10430         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10432         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
10433         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
10434         a broken daap server. Fixes bug 321919.
10436 2005-11-22  James Livingston  <jrl@ids.org.au>
10438         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
10439         drag-and-drop for both the episodes and feeds list.
10440         
10441         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
10442         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
10443         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
10445         * widgets/rb-property-view.c: (rb_property_view_class_init),
10446         (rb_property_view_set_property), (rb_property_view_get_property),
10447         (rb_property_view_new), (rb_property_view_constructor):
10448         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
10449         (rb_simple_view_new), (rb_simple_view_constructor):
10450         * widgets/rb-simple-view.h: add a "draggable" property to property
10451         views and set it to false for the feed list. Fixes bug 321284.
10453 2005-11-22  James Livingston  <jrl@ids.org.au>
10455         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
10457         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
10458         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
10459         * sources/rb-ipod-source.c: (add_rb_playlist):
10460         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
10461         (rb_playlist_source_set_property),
10462         (rb_playlist_source_get_property), (rb_playlist_source_new),
10463         (impl_receive_drag), (rb_playlist_source_add_location),
10464         (rb_playlist_source_new_from_xml):
10465         * sources/rb-playlist-source.h: give playlists and (optional)
10466         entry-type, and reject entries that don't match. Fixes bug 322006.
10468 2005-11-21  James Livingston  <jrl@ids.org.au>
10470         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
10471         (rb_source_header_finalize): remove the weak references when the
10472         source header is finalised. Stops the callbacks being called after the
10473         object is destroyed.
10475 2005-11-21  James Livingston  <jrl@ids.org.au>
10477         * shell/main.c: (main): don't try to acquite bonobo/dbus when
10478         --no-registration was passed. It causes warnings that make it
10479         impossible to run with --no-registration --g-fatal-warnings
10481 2005-11-21  James Livingston  <jrl@ids.org.au>
10483         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
10484         of strings when they are still in use. Fixes bug 321547.
10486         (rb_daap_connection_destroy): fix memory leak
10488 2005-11-21  James Livingston  <jrl@ids.org.au>
10490         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
10491         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
10492         (rb_daap_mdns_resolve_cancel), (publish_cb),
10493         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
10494         support.
10496 2005-11-21  James Livingston  <jrl@ids.org.au>
10498         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
10499         sorting by genre
10501 2005-11-20  James Livingston  <jrl@ids.org.au>
10503         * podcast/rb-podcast-manager.c:
10504         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
10505         that we don't leak thread structures. Fixes bug 321636, and probably
10506         321775.
10508 2005-11-20  James Livingston  <jrl@ids.org.au>
10510         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
10511         (lookup_cd):
10512         * podcast/rb-podcast-manager.c: (start_job),
10513         (rb_podcast_manager_db_entry_deleted_cb),
10514         (rb_podcast_manager_entry_remove_cb):
10515         * podcast/rb-podcast-parse.c: (rb_insert_item),
10516         (rb_podcast_parse_load_feed):
10517         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
10518         * shell/rb-removable-media-manager.c:
10519         (rb_removable_media_manager_append_media_source):
10520         * shell/rb-shell.c: (add_to_library_response_cb):
10521         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
10522         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
10523         * sources/rb-iradio-source.c:
10524         (stations_view_drag_data_received_cb):
10525         * sources/rb-library-source.c: (string_list_equal),
10526         (impl_get_extra_views), (impl_receive_drag):
10527         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
10528         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
10529         (impl_receive_drag):
10530         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
10531         (rb_entry_view_append_column_custom), (harvest_entries):
10532         * widgets/rb-property-view.c:
10533         (rb_property_view_selection_changed_cb):
10534         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
10535         switch from using g_list_append to g_list_prepend. This changes
10536         operations from O(n^2) to O(n), which in cases like deleting a lot of
10537         tracks can give huge improvements in speed. Closes bug 321696.
10539 2005-11-20  James Livingston  <jrl@ids.org.au>
10541         * sources/rb-sourcelist.c: (rb_sourcelist_init),
10542         (rb_sourcelist_update_expander_visibility): fix indenting of child
10543         sources.
10545 2005-11-20  James Livingston  <jrl@ids.org.au>
10547         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
10548         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
10549         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
10550         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
10551         (add_service), (entry_group_cb): dynamically allocate memory, rather
10552         than using static variables.
10554         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
10555         re-enable the daap share if the name hasn't changed.
10556         * shell/rb-shell-preferences.c:
10557         (share_name_entry_focus_out_event_cb): don't ask the daap share to
10558         change it's name when the checkbox is disabled. Fixed bug 321748.
10560 2005-11-18  James Livingston  <jrl@ids.org.au>
10562         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
10563         as hidden if it is on the current workspace.
10565 2005-11-17  William Jon McCann  <mccann@jhu.edu>
10567         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
10568         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
10569         (rb_podcast_properties_dialog_parse_time): 
10570         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
10571         (rb_feed_podcast_properties_dialog_parse_time):
10572         Rework the way the last mod time strings are created.  It was using
10573         thread unsafe functions, not creating value UTF, and not not checking
10574         the value of the result before modifying it.  This new method fixes
10575         these problems.
10577 2005-11-18  James Livingston  <jrl@ids.org.au>
10579         Don't reset the search box when viewing a different source, because it
10580         will change what is being played. Closes 321593.
10582         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
10583         the search box
10585         * shell/rb-source-header.c: (rb_source_header_class_init),
10586         (rb_source_header_init), (rb_source_header_finalize): use
10587         G_DEFINE_TYPE.
10589         (rb_source_header_set_property),
10590         (rb_source_header_source_weak_destroy_cb),
10591         (rb_source_header_search_cb): store the search text when leaving a
10592         source and put it in the search box when viewing it again.
10594 2005-11-18  James Livingston  <jrl@ids.org.au>
10596         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
10597         (save_entry):
10598         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
10599         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
10600         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
10601         time stamp.
10603         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
10604         last-seen as the timestamp of the last update of the feed. Don't
10605         re-add episodes that have been deleted. Closes 319759.
10607 2005-11-18  James Livingston  <jrl@ids.org.au>
10609         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
10610         that don't have the day name at the start. Closes 321645.
10612 2005-11-18  James Livingston  <jrl@ids.org.au>
10614         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
10615         (rb_podcast_manager_copy_post),
10616         (rb_podcast_manager_get_podcast_dir):
10617         * podcast/rb-podcast-manager.h:
10618         * sources/rb-podcast-source.c: (impl_get_config_widget),
10619         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
10620         download location switching to / if the prefs were opened before
10621         downloading an episode. Closes 321611.
10623 2005-11-18  James Livingston  <jrl@ids.org.au>
10625         * data/glade/podcast-new.glade:
10626         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
10627         (rb_new_podcast_dialog_set_property),
10628         (rb_new_podcast_dialog_get_property),
10629         (rb_new_podcast_dialog_response_cb),
10630         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
10631         for entering new podcast urls in. Closes bug 321610.
10633 2005-11-18  James Livingston  <jrl@ids.org.au>
10635         * sources/rb-podcast-source.c: (construct_query_from_selection),
10636         (rb_podcast_source_do_query): allow podcast list to be re-sorted
10637         without restarting RB. Closes bug 321612.
10639 2005-11-18  James Livingston  <jrl@ids.org.au>
10641         * widgets/rb-entry-view.c: (set_column_visibility),
10642         (rb_entry_view_sync_columns_visible): when changing visibility of one
10643         column, don't hide and re-show all the others. Makes a show/hide
10644         column operation a lot faster.
10646 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
10648         Closes bug 321702.
10650         * iradio/rb-station-properties-dialog.c
10651          (rb_station_properties_dialog_update_bitrate):
10652         Mark the bitrate value as being kbps, using the same
10653         translatable format string as rb-song-info.c
10655         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
10656          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
10658         * shell/rb-shell-player.c (info_available_cb):
10659          Use RB_METADATA_FIELD_BITRATE to update the iradio
10660          station's bitrate value.
10662 2005-11-17  James Livingston  <jrl@ids.org.au>
10664         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
10666         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
10667         free a NULL date.
10669 2005-11-17  James Livingston  <jrl@ids.org.au>
10671         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
10673         * lib/rb-stock-icons.c: emit a single warning rather than multiple
10674         assertions. Lookup the icon size correctly.
10676 2005-11-16  William Jon McCann  <mccann@jhu.edu>
10678         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
10679         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
10680         Fix build errors.
10682 2005-11-16  James Livingston  <jrl@ids.org.au>
10684         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
10685         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
10686         (rb_shell_preferences_sync_column_button): block the toggle signal of
10687         the column checkboxes while setting their initial state. This stops
10688         the visibility being re-set, which causes a lot of time being spent
10689         measuring the columns aagin when opening the prefs window.
10691         Use G_DEFINE_TYPE.
10693 2005-11-16  James Livingston  <jrl@ids.org.au>
10695         * sources/rb-sourcelist.c: (rb_sourcelist_init),
10696         (rb_sourcelist_edit_source_name): don't assume that the editable
10697         source name is in the first column, because it isn't. Fixes bug
10698         320137.
10700 2005-11-16  James Livingston  <jrl@ids.org.au>
10702         * daapsharing/rb-daap-mdns.h:
10703         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
10704         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
10705         parts can know why operations failed. Avahi can report that the daemon
10706         was not running. Howl doesn't do this (yet).
10707         
10708         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
10709         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
10710         (browse_cb): don't display mdns errors to the user, if it wa because
10711         the daemon was not running.
10713 2005-11-16  James Livingston  <jrl@ids.org.au>
10715         * rhythmdb/rhythmdb-property-model.c:
10716         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
10717         (rhythmdb_property_model_compare),
10718         (rhythmdb_property_model_insert),
10719         (rhythmdb_property_model_insert_prop),
10720         (rhythmdb_property_model_delete),
10721         (rhythmdb_property_model_delete_prop),
10722         (rhythmdb_property_model_get_value): use RBRefStrings rather than
10723         copying the string and re-creating the sort key. Saves a little bit of
10724         memory and time.
10726         (rhythmdb_property_model_perform_sync),
10727         (rhythmdb_property_model_sync): perform the count sync in an idle
10728         callback, so that it doesn't have to be re-run once per value when
10729         loading.
10731 2005-11-16  James Livingston  <jrl@ids.org.au>
10733         * rhythmdb/rhythmdb-query-model.c:
10734         (rhythmdb_query_model_entry_deleted_cb),
10735         (rhythmdb_query_model_remove_entry): remove deleted entries from the
10736         limited list. Stops problems if they are deleted, and then things on
10737         the main list are
10739 2005-11-16  James Livingston  <jrl@ids.org.au>
10741         * NEWS: update NEWS
10743         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
10744         button's minimise-to-tray action
10746 2005-11-16  James Livingston  <jrl@ids.org.au>
10748         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
10749         leak. Disable adding newly created files for now, because it doesn't
10750         work properly.
10752         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
10753         (rb_sourcelist_model_finalize):
10754         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
10755         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
10757 2005-11-16  James Livingston  <jrl@ids.org.au>
10759         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
10760         problem where a GError* wasn't being set to NULL. Actually check the
10761         result.
10763 2005-11-16  James Livingston  <jrl@ids.org.au>
10765         * doc/reference/tmpl/rb-entry-view.sgml:
10766         * doc/reference/tmpl/rhythmbox-unused.sgml:
10767         * doc/reference/tmpl/rhythmdb-query-model.sgml:
10768         * doc/reference/tmpl/rhythmdb.sgml:
10769         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
10770         docs, including the patch that was on bug 
10772         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
10773         API, because it should only be used by RhythmDB itself.
10775 2005-11-16  James Livingston  <jrl@ids.org.au>
10777         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
10778         pausing by middle clicking on the tray icon.
10780 2005-11-15  James Livingston  <jrl@ids.org.au>
10782         * configure.ac: enable audioscrobbler support by default, if libsoup
10783         is present.
10785 2005-11-15  James Livingston  <jrl@ids.org.au>
10787         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
10788         Closes bug 321157.
10790         * configure.ac:
10791         * daapsharing/rb-daap-connection.c: (build_message),
10792         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
10793         support gzip encoded daap connections.
10795         (handle_song_listing): fix leak
10797 2005-11-15  James Livingston  <jrl@ids.org.au>
10799         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
10800         * sources/rb-podcast-source.c:
10801         (rb_podcast_source_post_date_cell_data_func): make the date format
10802         translatable again, so that translators can choose the best format for
10803         their locale (%x is huge in some locales)
10805 2005-11-15  James Livingston  <jrl@ids.org.au>
10807         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
10808         (end_job): mark podcast episodes as failed, if the metadata load
10809         fails. This will prevent people playing non-audio enclosures, helping
10810         stop bug 320366.
10812 2005-11-14  James Livingston  <jrl@ids.org.au>
10814         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
10815         video sink to fakesink. This will stop problems (potentially crashers)
10816         that will occur if the file contains a video stream.
10818         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
10819         rather than using magic numbers everywhere.
10821         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
10822         * sources/rb-podcast-source.c:
10823         (rb_podcast_source_songs_show_popup_cb),
10824         (rb_podcast_source_cmd_download_post),
10825         (rb_podcast_source_post_status_cell_data_func),
10826         (rb_podcast_source_entry_activated_cb): use the above constants.
10828         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
10829         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
10830         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
10831         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
10832         (cancel_job), (download_progress_cb),
10833         (rb_podcast_manager_cancel_download),
10834         (rb_podcast_manager_insert_feed): use the constants, and fix a
10835         trhead-safety issue.
10837 2005-11-14  Bastien Nocera  <hadess@hadess.net>
10839         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
10840         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
10841         entry-changed events after stats on startup, fixes entry deleted from
10842         filtered views not disappearing
10844 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10846         Fix rhythmdb query model refcount and polling problems. Closes bug
10847         321410.
10849         * rhythmdb/rhythmdb-property-model.c:
10850         (rhythmdb_property_model_finalize):
10851          Unref the query model if we have one.
10853         * rhythmdb/rhythmdb-query-model.h:
10854          Remove poll and cancel methods.  Query cancellation
10855          never did anything anyway.
10857         * rhythmdb/rhythmdb-query-model.c:
10858         (rhythmdb_query_model_init): Remove GAsyncQueues.
10859          Replace the GAsyncQueue-based update processing
10860          with a simpler g_idle_add approach; still has the
10861          same queueing properties, but now we don't poll the
10862          model forever and updates are processed immediately.
10864         (_unref_entry), (rhythmdb_query_model_finalize):
10865          Unref DB entries when finalized
10867         (rhythmdb_query_model_has_pending_changes):
10868          Use our own counter to decide if there are updates pending
10870         (rhythmdb_query_model_process_update), (idle_process_update):
10871          Process updates using g_idle_add, or directly if possible
10873         (rhythmdb_query_model_signal_complete),
10874         (rhythmdb_query_model_add_entries):
10875          Change to new update processing method
10877         (idle_poll_model), (rhythmdb_query_model_poll):
10878          Remove GAsyncQueue-based update processing.
10880         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
10881          No need to poll the model any more - updates are processed
10882          directly for synchronous queries.
10884         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
10885          Property model needs to be unref'd here
10887         * sources/rb-library-source.c: (rb_library_source_do_query):
10888          Don't try to cancel the active query (it never worked anyway),
10889          remove obsolete poll call, unref property models as required,
10890          and don't unref the cached 'all' query, since hold on to it.
10891          We unref it when the sort order changes, which forces the query
10892          to be rerun.
10894         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
10895          Unref the property model as required
10897         (rb_podcast_source_do_query):
10898          Treat any query with no selected feeds and no search text as
10899          an 'all' query.  Unref query models except for the cached
10900          'all' query, since we hold on to that.
10902         (rb_podcast_source_cmd_update_all):
10903          Unref the property model as required.
10905         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
10906          Don't try to cancel the query (it never worked anyway)
10908         (rb_entry_view_poll_model):
10909          No need for this any more.
10911         * widgets/rb-entry-view.h:
10912          Remove obsolete function rb_entry_view_poll_model
10914         * widgets/rb-property-view.c: (rb_property_view_set_property):
10915          Ref and unref the property model as required.
10917 2005-11-14  James Livingston  <jrl@ids.org.au>
10919         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
10921         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
10922         for error. Closes bug 321416.
10924 2005-11-14  James Livingston  <jrl@ids.org.au>
10926         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
10928         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
10929         a crasher if a feed's last-post value isn't set. Closes bug 321353.
10931 2005-11-14  James Livingston  <jrl@ids.org.au>
10933         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
10934         * shell/rb-removable-media-manager.c:
10935         (rb_removable_media_manager_set_uimanager):
10936         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
10937         translation domain for GTK action groups.
10939 2005-11-12  James Livingston  <jrl@ids.org.au>
10941         * po/POTFILES.in: remove the old station-new files
10943 2005-11-12  James Livingston  <jrl@ids.org.au>
10945         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
10946         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
10947         (save_entry): cause Rhythmbox to re-read the metadata from a file,
10948         when upgrading from a pre-Date-supporting version to a version that
10949         supports Date metadata. Closes bug 320760.
10951 2005-11-12  James Livingston  <jrl@ids.org.au>
10953         Add "update all podcast feeds" command. Closes bug 319954.
10955         * data/ui/rhythmbox-ui.xml: add to source context menu.
10957         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10958         (register_action_group), (rb_podcast_source_cmd_download_post),
10959         (rb_podcast_source_cmd_delete_feed),
10960         (rb_podcast_source_cmd_properties_feed),
10961         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
10962         rather than the shell.
10964         (rb_podcast_source_update_feed_func),
10965         (rb_podcast_source_cmd_update_all): update every feed.
10967 2005-11-11  James Livingston  <jrl@ids.org.au>
10969         * shell/rb-shell-player.c: (rb_shell_player_class_init),
10970         (rb_shell_player_constructor), (rb_shell_player_finalize):
10971         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
10972         others follow the HIG recommentations.
10974 2005-11-11  James Livingston  <jrl@ids.org.au>
10976         * podcast/rb-podcast-manager.c:
10977         (rb_podcast_manager_subscribe_feed): check that the url is valid,
10978         before trying to use it.
10980 2005-11-11  James Livingston  <jrl@ids.org.au>
10982         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
10983         (rb_entry_view_append_column): When sorting by year, sort by album
10984         within a particular year.
10986 2005-11-11  James Livingston  <jrl@ids.org.au>
10988         * NEWS: updates
10990 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
10991         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
10992         spelling of "Language."
10994 2005-11-11  James Livingston  <jrl@ids.org.au>
10996         * rhythmdb/rhythmdb-property-model.c:
10997         (rhythmdb_property_model_row_inserted_cb),
10998         (rhythmdb_property_model_prop_changed_cb),
10999         (rhythmdb_property_model_entry_removed_cb),
11000         (rhythmdb_property_model_insert_prop),
11001         (rhythmdb_property_model_sync): display the count after the "All"
11002         entry of a property model.
11004         * widgets/rb-property-view.c: (rb_property_view_class_init),
11005         (rb_property_view_finalize), (rb_property_view_constructor): use
11006         G_DEFINE_TYPE
11008 2005-11-10  James Livingston  <jrl@ids.org.au>
11010         * rhythmdb/rhythmdb-query-model.c:
11011         (rhythmdb_query_model_remove_entry):
11012         * rhythmdb/rhythmdb-query-model.h: make
11013         rhythmdb_query_model_remove_entry return whether the entry was in the
11014         model.
11016         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
11017         don't add non-SONG entries, as it doesn't really work and can cause
11018         crashes.
11020         (rb_playlist_source_remove_location): assert if the playlist and model
11021         differ on whether the entry is in the playlist
11023 2005-11-10  James Livingston  <jrl@ids.org.au>
11025         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
11026         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
11027         (rb_podcast_manager_thread_parse_feed),
11028         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
11029         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
11030         emulating one with a list and mutex. Fixes a couple of threading
11031         issues.
11032         
11033         (rb_podcast_manager_insert_feed): fix some problems with ignoring
11034         updated feeds.
11035         
11036         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
11037         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
11038         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
11039         * podcast/rb-podcast-parse.c: (rb_insert_item),
11040         (rb_podcast_parse_channel_free):
11041         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
11042         fix some typos, and make a bit of code clearer.
11044 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
11046         Make the "delete podcast" dialog better. Closes bug 320899.
11048         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
11049         Add PROP_WINDOW for rb_shell_get_property so we can access the
11050         GtkWindow widget of the main window. 
11051         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
11052         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
11053         podcast feed delete dialog less confusing as well.
11055 2005-11-09  James Livingston  <jrl@ids.org.au>
11057         * shell/rb-removable-media-manager.c:
11058         (rb_removable_media_manager_mount_volume),
11059         (rb_removable_media_manager_scan): Fix a crasher where we were getting
11060         NULL for a cd volume.
11062 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11064         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
11065         method return a gboolean indicating whether the changes
11066         to the entry have already been applied.
11068         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
11069         only modify the entry if impl_entry_set returns FALSE.
11071         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
11072         When setting the location of an entry, update the
11073         hash table mapping locations to entries.
11075 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11077         * data/glade/Makefile.am:
11078         * iradio/Makefile.am:
11079           Remove 'new station' dialog.
11081         * iradio/rb-station-properties-dialog.h:
11082         * sources/rb-iradio-source.c: (impl_song_properties):
11083         * shell/rb-shell.c: (rb_shell_cmd_new_station):
11084          Add 'new station' mode parameter to
11085          rb_station_properties_dialog_new.
11087         * (rb_station_properties_dialog_response_cb),
11088         (rb_station_properties_dialog_create_station):
11089          When in 'new station' mode, create the station
11090          when OK button is pressed.
11092         * iradio/rb-station-properties-dialog.c:
11093         (rb_station_properties_dialog_location_changed_cb):
11094          Only enable OK button if a location is specified
11095         (rb_station_properties_dialog_init),
11096         (rb_station_properties_dialog_new),
11097         (rb_station_properties_dialog_update),
11098         (rb_station_properties_dialog_update_title),
11099         (rb_station_properties_dialog_rated_cb),
11100         (rb_station_properties_dialog_update_play_count),
11101         (rb_station_properties_dialog_update_bitrate),
11102         (rb_station_properties_dialog_update_last_played),
11103         (rb_station_properties_dialog_update_rating),
11104         (rb_station_properties_dialog_update_playback_error),
11105         (rb_station_properties_dialog_show):
11106          Handle 'new station' mode, where there's no current
11107          station to edit.
11109 2005-11-08  James Livingston  <jrl@ids.org.au>
11111         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
11112         keybinding for track columns consistent between library and playlist
11113         sources.
11115 2005-11-07  James Livingston  <jrl@ids.org.au>
11117         * data/ui/rhythmbox-ui.xml:
11118         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
11119         "Edit" item to playlist menu. Closes bug 311470.
11121 2005-11-07  James Livingston  <jrl@ids.org.au>
11123         patch by: Jaap A. Haitsma <jaap@haitsma.org>
11125         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
11126         confirmation to save dialogs, with gtk 2.8 or higher.
11128 2005-11-07 James Livingston  <jrl@ids.org.au>
11129         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
11130         requirement to a general on, because people are going to have it for
11131         the other dependencies.
11133 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
11135         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
11136         delete dialog less confusing.  Use HIG recommended button order.
11137         Closes bug 320840.
11139 2005-11-06  James Livingston  <jrl@ids.org.au>
11141         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
11142         drag-and-drop error.
11143         
11144         * sources/rb-library-source.c: (rb_library_source_constructor): only
11145         add drag-and-drop for the Library itself, subclasses can add support
11146         themselves if they want it.
11148         * sources/rb-removable-media-source.c:
11149         (rb_removable_media_source_class_init): by default removable media
11150         sources do not support dnd
11152 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
11154         * data/glade/station-properties.glade:
11155          Add box containing error icon and error message label
11156         * iradio/rb-station-properties-dialog.c:
11157         (rb_station_properties_dialog_class_init),
11158         (rb_station_properties_dialog_finalize):
11159          Change this class to use G_DEFINE_TYPE
11160         (rb_station_properties_dialog_init),
11161         (rb_station_properties_dialog_update),
11162         (rb_station_properties_dialog_update_playback_error):
11163          Display error icon and message when there is one, and hide the error
11164          box otherwise.
11165         (rb_station_properties_dialog_show): Hack widget show
11166          method to update the visibility of the error info box when showing
11167          the widget.  Otherwise the icon is displayed all the time (same thing
11168          is done in rb-song-info). Closes bug 320749.
11170 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
11172         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
11173         parsing of the duration of podcast episodes from the feed. Closes bug
11174         320748.
11176 2005-11-05  James Livingston  <jrl@ids.org.au>
11178         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
11179         release date metadata ("Year"). Closes bug 166093.
11181         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
11182         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
11183         (rb_metadata_gst_add_tag_data):
11184         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
11185         (save_entry):
11186         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
11187         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
11188         (set_props_from_metadata), (rhythmdb_entry_set_internal),
11189         (rhythmdb_prop_get_type):
11190         * rhythmdb/rhythmdb.h: add support for "date" property
11191         
11192         * data/glade/general-prefs.glade:
11193         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
11194         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
11195         (rb_entry_view_append_column):
11196         * widgets/rb-entry-view.h:
11197         * sources/rb-library-source.c: (rb_library_source_constructor):
11198         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
11199         "Year" colums
11201         * data/glade/song-info.glade:
11202         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
11203         (rb_song_info_construct_single), (rb_song_info_constructor),
11204         (rb_song_info_populate_dialog), (rb_song_info_update_year),
11205         (rb_song_info_sync_entry_single): Add "Year" to song info window
11207         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
11208         sorted by year.
11210 2005-11-05  James Livingston  <jrl@ids.org.au>
11212         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
11213         description if it's very long.
11215 2005-11-05  James Livingston  <jrl@ids.org.au>
11217         pathc by: Artem Baguinski <femistofel@gmail.com>
11219         * help/C/Makefile.am:
11220         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
11221         Closes bug 320613.
11223 2005-11-05  James Livingston  <jrl@ids.org.au>
11225         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
11227         * daapsharing/rb-daap-share.c: (write_next_chunk),
11228         (message_finished), (databases_cb): Use chunked file loading and
11229         sending in the DAAP server. This should reduce the amount of memory
11230         required to send files to the client.
11232 2005-11-05  James Livingston  <jrl@ids.org.au>
11234         * configure.ac: make the nautilus_burn_drive_door_is_open detection
11235         work better on some systems. Closes 320622.
11237 2005-11-05  James Livingston  <jrl@ids.org.au>
11239         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
11240         homepage, so that users can find out what AudioScrobbler is. Add
11241         access keys.
11243         * data/glade/daap-prefs.glade:
11244         * data/glade/general-prefs.glade:
11245         * data/glade/library-prefs.glade: make the indent be more consistent
11247         * data/glade/podcast-prefs.glade: 
11248         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
11249         (impl_get_config_widget): move thing out of code into glade, where
11250         they belong
11252 2005-11-05  James Livingston  <jrl@ids.org.au>
11254         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
11255         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
11257 2005-11-04  James Livingston  <jrl@ids.org.au>
11259         * configure.ac: don't print DAAP configure info twice
11261 2005-11-04  James Livingston  <jrl@ids.org.au>
11263         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
11264         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
11265         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
11266         #ifdefs, since we removed the symbol. Oops
11268 2005-11-04  James Livingston  <jrl@ids.org.au>
11270         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
11271         after the connect line, not before. Oops.
11273 2005-11-04  James Livingston  <jrl@ids.org.au>
11275         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
11276         fix some warnings
11278 2005-11-03  James Livingston  <jrl@ids.org.au>
11280         * NEWS: update the news file
11282         * data/glade/general-prefs.glade: make the prefs refer to "time" not
11283         "duration" column.
11285         * data/ui/rhythmbox-ui.xml:
11286         * shell/rb-playlist-manager.c:
11287         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
11288         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
11289         and "delete" for feeds.
11291 2005-11-03  James Livingston  <jrl@ids.org.au>
11293         * sources/rb-podcast-source.c: (impl_delete),
11294         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
11295         feed. Closes 319760.
11297 2005-11-03  James Livingston  <jrl@ids.org.au>
11299         Don't start playing from the remote site when a un-downloaded podcast
11300         is activated. Closes 319983.
11301         
11303         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
11304         (write_job_data), (download_progress_cb): write the local location as
11305         soon as any data is recieved
11307         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
11308         the mountpoint to NULL for podcast episodes that haven't yet been
11309         downloaded.
11310         
11311         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
11312         start playing a podcast if it hasn't been downloaded.
11313         
11314         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
11315         (rb_podcast_source_entry_activated_cb): begin downloading when the
11316         podcast is activated.
11318 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
11320         * data/glade/general-prefs.glade:  Fix capitalization.
11321         * shell/rb-removable-media-manager.c:  Add a mnemonic.
11322         * sources/rb-podcast-source.c:
11323         (rb_podcast_source_songs_show_popup_cb),
11324         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
11326 2005-11-03  James Livingston  <jrl@ids.org.au>
11328         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
11330         * shell/rb-removable-media-manager.c:
11331         (rb_removable_media_manager_mount_volume): don't check network or
11332         autofs mounts, as they're not going to be removable media. Stops
11333         sending lots of warnings to syslog. Closes 320571.
11335         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
11336         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
11337         320570.
11339 2005-11-03  James Livingston  <jrl@ids.org.au>
11341         Add support for playing audio CDs. Metadata lookup is done using
11342         SoundJuicer's MusicBrainz lookup code, which can be switched to using
11343         the library when it gets broken out of S-J.
11344         
11345         Add a "rescan media" menu item, and commands for ejecting removable
11346         media.
11348         Move nautilus-cd-burner from optional to required depenency.
11350         * configure.ac:
11351         * data/ui/rhythmbox-ui.xml:
11352         * metadata/Makefile.am:
11353         + metadata/sj-error.c:
11354         + metadata/sj-error.h:
11355         + metadata/sj-metadata-marshal.list:
11356         + metadata/sj-metadata-musicbrainz.c:
11357         + metadata/sj-metadata-musicbrainz.h:
11358         + metadata/sj-metadata.c:
11359         + metadata/sj-metadata.h:
11360         + metadata/sj-structures.c:
11361         + metadata/sj-structures.h:
11362         * player/Makefile.am:
11363         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
11364         * po/POTFILES.in:
11365         * shell/Makefile.am:
11366         * shell/rb-removable-media-manager.c:
11367         (rb_removable_media_manager_dispose), (poll_tray_opened),
11368         (end_cd_drive_monitor), (begin_cd_drive_monitor),
11369         (rb_removable_media_manager_load_media),
11370         (rb_removable_media_manager_mount_volume),
11371         (rb_removable_media_manager_cmd_eject_medium),
11372         (rb_removable_media_manager_cmd_scan_media),
11373         (rb_removable_media_manager_check_volume),
11374         (rb_removable_media_manager_unmount_volume_swap),
11375         (rb_removable_media_manager_scan):
11376         * sources/Makefile.am:
11377         + sources/rb-audiocd-source.c:
11378         + sources/rb-audiocd-source.h:
11379         * tests/Makefile.am:
11381 2005-11-02  James Livingston  <jrl@ids.org.au>
11383         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
11385         * sources/rb-iradio-source.c:
11386         (stations_view_drag_data_received_cb):
11387         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
11388         don't crash when the second uri is missing frm the drop, which
11389         browsers sometimes do.
11391 2005-11-01  James Livingston  <jrl@ids.org.au>
11393         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
11394         (rb_podcast_manager_insert_feed):
11395         * podcast/rb-podcast-manager.h:
11396         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
11397         (rb_set_item_value), (rb_validate_item_propert),
11398         (rb_podcast_parse_date), (rb_podcast_parse_time):
11399         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
11400         from the feed.
11402 2005-10-31  James Livingston  <jrl@ids.org.au>
11404         * ChangeLog:
11405         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
11406         huge
11408 2005-10-31  James Livingston  <jrl@ids.org.au>
11410         * sources/rb-podcast-source.c:
11411         (rb_podcast_source_post_date_cell_data_func): generate the date string
11412         in a way that is correct in all locales.
11413         
11414         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
11415         (rhythmdb_entry_sync_mirrored): make the last played/date added
11416         columns use the same format.
11418 2005-10-30  James Livingston  <jrl@ids.org.au>
11421         * podcast/rb-podcast-manager.c:
11422         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
11423         
11424         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
11425         iradio errors better.
11427 2005-10-30  James Livingston  <jrl@ids.org.au>
11429         patch by: Artem Baguinski <femistofel@gmail.com>
11431         * metadata/rb-metadata-gst.c: (rb_metadata_init):
11433 2005-10-30  James Livingston  <jrl@ids.org.au>
11435         * podcast/rb-podcast-manager.c:
11436         (rb_podcast_manager_subscribe_feed),
11437         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
11438         already been added, usually as a radio station. Closes 319434.
11440 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
11442         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
11443         mnemonics & resize issues)
11444         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
11445         & mnemonics)
11446         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
11447         widget for the "download location" label.
11449         Closes bug 320184.
11451 2005-10-29  James Livingston  <jrl@ids.org.au>
11453         Allow the search box to match words from multiple properties. Closes
11454         bug 139196. Thanks to the person from IRC who did a lot of the initial
11455         work.
11458         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
11459         * lib/rb-util.h: Add functions to split a string into words, and one
11460         to perform "search folding" which is currently like casefolding but
11461         also strips punctuation
11462         
11463         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
11464         (rhythmdb_query_preprocess):
11465         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
11466         against title, artist, album and genre (for the search box)
11467         
11468         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
11469         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
11470         (save_entry), (search_match_properties),
11471         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
11472         splitting into words and matching across multiple properties.
11473         
11474         * sources/rb-library-source.c: (construct_query_from_selection): use
11475         the new SEARCH_MATCH property for the search box
11476         
11477         * widgets/rb-entry-view.c: (type_ahead_search_func):
11479 2005-10-29  James Livingston  <jrl@ids.org.au>
11481         * lib/rb-stock-icons.c: (rb_stock_icons_init):
11482         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
11483         
11484         * shell/rb-playlist-manager.c:
11485         * shell/rb-shell.c: use the above stock ids, so that the icons get set
11486         correctly.
11487         
11488         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
11489         initial state of the shuffle/repeat menu items correctly. Patch from
11490         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
11492 2005-10-29  James Livingston  <jrl@ids.org.au>
11494         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
11495         double-free.
11496         
11497         * widgets/rb-cell-renderer-pixbuf.c:
11498         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
11499         icon go black when row is not selected
11500         
11501         * doc/reference/tmpl/rb-daap-connection.sgml:
11502         * doc/reference/tmpl/rhythmdb.sgml: doc updates
11504 2005-10-29  James Livingston  <jrl@ids.org.au>
11506         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
11507         silly mistake, where it could think partial downloads has been
11508         completed.
11510 2005-10-29  James Livingston  <jrl@ids.org.au>
11512         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
11514         * data/glade/song-info.glade:
11515         * widgets/rb-song-info.c: (rb_song_info_construct_single),
11516         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
11517         (rb_song_info_sync_entry_single): show the disc number in the song
11518         info window. From bug 311199.
11520 2005-10-29  James Livingston  <jrl@ids.org.au>
11522         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
11523         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
11524         regularly. Closes 155306.
11526 2005-10-29  James Livingston  <jrl@ids.org.au>
11528         * podcast/rb-podcast-manager.c:
11529         (rb_podcast_manager_download_entry),
11530         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
11531         (rb_podcast_manager_insert_feed):
11532         * podcast/rb-podcast-manager.h:
11533         * podcast/rb-podcast-parse.c: (rb_set_item_value),
11534         (rb_podcast_parser_start_element):
11535         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
11536         don't download them again. However, it can't resume
11537         partially-downloaded ones.
11539 2005-10-28  James Livingston  <jrl@ids.org.au>
11541         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
11542         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
11543         work. Don't attempt to write duration as a tag.
11545         Thanks to Artem Baguinski <femistofel@gmail.com>
11547 2005-10-28  James Livingston  <jrl@ids.org.au>
11549         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
11550         don't disable the status-bar menu item when the current source doesn't
11551         use the search box.
11553 2005-10-28  James Livingston  <jrl@ids.org.au>
11555         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
11556         crash if the file has unknown length
11558 2005-10-27  James Livingston  <jrl@ids.org.au>
11560         * daapsharing/rb-daap-connection.c:
11561         (rb_daap_connection_state_done): don't assert when a daap server
11562         doesn't have any playlists
11564 2005-10-27  James Livingston  <jrl@ids.org.au>
11566         * sources/rb-sourcelist-model.c:
11567         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
11568         source for the sourcelist. Closes bug 319817.
11570 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
11572         Patch by: Renato Araujo <renatox@gmail.com>
11574         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11575           Fix for a crasher caused by previous patch.
11577 2005-10-26  James Livingston  <jrl@ids.org.au>
11579         * data/glade/podcast-prefs.glade:
11580         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
11581         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
11582         * sources/rb-podcast-source.c: (rb_podcast_source_new):
11583         * podcast/rb-podcast-manager.c:
11584         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
11585         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
11586         * shell/rb-shell.c: Change some strings to make them more consistent.
11587         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
11588         makes it clearer which is which. "Episode" may not be the best term,
11589         but it seems to be widely used.
11590         
11591         Also fix some strings that weren't marked as translatable.
11592         
11593         * podcast/rb-feed-podcast-properties-dialog.c:
11594         (rb_feed_podcast_properties_dialog_class_init),
11595         (rb_feed_podcast_properties_dialog_finalize):
11596         * podcast/rb-new-podcast-dialog.c:
11597         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
11598         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
11599         (rb_simple_view_finalize), (rb_simple_view_constructor):
11600         * podcast/rb-podcast-properties-dialog.c:
11601         (rb_podcast_properties_dialog_class_init),
11602         (rb_podcast_properties_dialog_finalize):
11603         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
11604         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
11605         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
11606         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
11607         use G_DEFINE_TYPE, instead of doing it manually.
11609 2005-10-26  James Livingston  <jrl@ids.org.au>
11611         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
11612         <jrl@ids.org.au>
11614         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
11615         (rb_metadata_init): Check that the necessary plugins are present to do
11616         id3 editing.
11617         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
11618         corrupted before replacing the original.
11620 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
11622         reviewed by: James Livingston <jrl@ids.org.au>
11624         Assign sequential IDs to playlists for DAAP rather than using the
11625         address of the playlist object.  Less flaky, and should work on 64bit
11626         platforms. Closes bug 319304.
11628         * daapsharing/rb-daap-share.c: 
11629         (rb_daap_share_set_property): watch for playlist creation
11630         (_find_by_id), (_find_by_source): playlist list search functions
11631         (rb_daap_share_playlist_created),
11632         (rb_daap_share_process_playlist),
11633         (rb_daap_share_playlist_destroyed):
11634          update playlist list as it changes, use weak refs on 
11635          playlists to get notified on destroy.
11636         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
11637          destroy playlist list on shutdown
11638         (add_playlist_to_mlcl): use playlist ID rather than pointer in
11639          DAAP response
11640         (databases_cb): search for playlist ID in list rather than just
11641          converting it to a pointer; return HTTP 404 if playlist not 
11642          found.
11643         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
11644          is already used for the main library
11646 2005-10-26  James Livingston  <jrl@ids.org.au>
11648         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
11650         * daapsharing/rb-daap-connection.c: (build_message),
11651         (http_response_handler), (http_get), (handle_server_info),
11652         (handle_login), (handle_update), (handle_database_info),
11653         (handle_song_listing), (handle_playlists),
11654         (handle_playlist_entries), (handle_logout),
11655         (rb_daap_connection_new), (rb_daap_connection_logout),
11656         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
11657         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
11658         * daapsharing/rb-daap-connection.h:
11659         * sources/rb-daap-source.c: (rb_daap_source_activate),
11660         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
11661         (rb_daap_source_disconnect): Make connecting to DAAP sources
11662         asynchronous, so that non-responsive servers don't hang the UI. Closes
11663         316225.
11665 2005-10-26  James Livingston  <jrl@ids.org.au>
11667         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
11669         * rhythmdb/rhythmdb-query-model.c:
11670         (rhythmdb_query_model_do_reorder): generate the row re-order map
11671         correctly.
11672         
11673         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
11674         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
11675         Update selection when rows get re-ordered. Closes 319718.
11677 2005-10-26  James Livingston  <jrl@ids.org.au>
11679         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
11681         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
11682         actually set the db pointer in play orders. Closes 319818.
11684 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
11686         Patch by: Renato Araujo <renatox@gmail.com>
11688         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
11689         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
11690         (rb_podcast_manager_update_synctime),
11691         (rb_podcast_manager_config_changed),
11692         (rb_podcast_manager_insert_feed):
11693         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
11694         (save_entry):
11695         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
11696         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
11697         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
11699 2005-10-25  James Livingston  <jrl@ids.org.au>
11701         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
11702         (db_entry_deleted_cb): don't share tracks that are hidden because the
11703         file is missing.
11705 2005-10-22  James Livingston  <jrl@ids.org.au>
11707         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
11708         crash if an entry couldn't be playerd, without streamer setting an
11709         error.
11711         
11712         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11714         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
11715         (rb_new_podcast_dialog_text_changed): enable the add button when a url
11716         is pasted into the dialog.
11717         
11718         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11719         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
11720         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
11721         (rb_podcast_parse_channel_free):
11722         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
11723         feeds
11725 2005-10-22  James Livingston  <jrl@ids.org.au>
11727         * sources/rb-iradio-source.c:
11728         (rb_iradio_source_first_time_changed): Make merging the default
11729         stations actually work.
11730         
11731         * sources/rb-podcast-source.c:
11732         (rb_podcast_source_post_status_cell_data_func): fix problem where some
11733         people weren't seing the percentages in the stats column.
11735 2005-10-21  James Livingston  <jrl@ids.org.au>
11737         Patch from Caio Marcelo <cmarcelo@gmail.com>
11739         * shell/rb-shell.c: (rb_shell_window_state_cb),
11740         (rb_shell_get_visibility), (idle_hide_mainwindow),
11741         (rb_shell_set_visibility): Make the "show window" item in the tray
11742         icon menu show the toggle state correctly. Use a better policy on
11743         deciding whether the window is "visible" or not. Closes bug 308053.
11745 2005-10-21  James Livingston  <jrl@ids.org.au>
11747         * doc/reference/tmpl/rb-shell-preferences.sgml:
11748         * shell/Makefile.am: fix building with gtk-doc
11750         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
11751         don't submit podcasts to audioscrobbler
11752         
11753         
11754         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11755         
11756         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
11757         (rb_set_item_value): strip spaces surrounding podcast urls
11758         
11760         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
11761         
11762         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
11764 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
11766         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
11767          Audioscrobbler/Last.fm support
11769         * configure.ac:
11770         * data/glade/Makefile.am:
11771         * data/glade/audioscrobbler-prefs.glade:
11772         * data/rhythmbox.schemas:
11773         * lib/Makefile.am:
11774         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
11775         * lib/md5.h:
11776         * lib/rb-preferences.h:
11777         * po/POTFILES.in:
11778         * shell/Makefile.am:
11779         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
11780         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
11781         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
11782         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
11783         (rb_audioscrobbler_timeout_cb), (mkmd5),
11784         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
11785         (rb_audioscrobbler_do_handshake),
11786         (rb_audioscrobbler_do_handshake_cb),
11787         (rb_audioscrobbler_submit_queue),
11788         (rb_audioscrobbler_submit_queue_cb),
11789         (rb_audioscrobbler_import_settings),
11790         (rb_audioscrobbler_preferences_sync),
11791         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
11792         (rb_audioscrobbler_gconf_changed_cb),
11793         (rb_audioscrobbler_song_changed_cb),
11794         (rb_audioscrobbler_username_entry_changed_cb),
11795         (rb_audioscrobbler_username_entry_activate_cb),
11796         (rb_audioscrobbler_password_entry_changed_cb),
11797         (rb_audioscrobbler_password_entry_activate_cb),
11798         (rb_audioscrobbler_enabled_check_changed_cb),
11799         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
11800         (rb_audioscrobbler_load_entry_from_string),
11801         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
11802         (rb_audioscrobbler_print_queue),
11803         (rb_audioscrobbler_free_queue_entries):
11804         * shell/rb-audioscrobbler.h:
11805         * shell/rb-shell-preferences.c:
11806         (rb_shell_preferences_append_audioscrobbler_config):
11807         * shell/rb-shell-preferences.h:
11808         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
11809         (rb_shell_select_source), (rb_shell_cmd_preferences):
11810         * sources/Makefile.am:
11812 2005-10-21  James Livingston  <jrl@ids.org.au>
11814         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
11816         * Makefile.am:
11817         * NEWS:
11818         * configure.ac:
11819         * data/art/Makefile.am:
11820         * data/glade/Makefile.am:
11821         * data/rhythmbox.schemas:
11822         * data/ui/rhythmbox-ui.xml:
11823         * doc/reference/Makefile.am:
11824         * doc/reference/tmpl/rhythmdb.sgml:
11825         * lib/rb-stock-icons.c: (rb_stock_icons_init):
11826         * lib/rb-stock-icons.h:
11827         * po/POTFILES.in:
11828         * podcast/Makefile.am:
11829         + podcast/rb-feed-podcast-properties-dialog.c:
11830         + podcast/rb-feed-podcast-properties-dialog.h:
11831         + podcast/rb-new-podcast-dialog.c:
11832         + podcast/rb-new-podcast-dialog.h:
11833         + podcast/rb-podcast-manager.c:
11834         + podcast/rb-podcast-manager.h:
11835         + podcast/rb-podcast-marshal.list:
11836         + podcast/rb-podcast-parse.c:
11837         + podcast/rb-podcast-parse.h:
11838         + podcast/rb-podcast-properties-dialog.c:
11839         + podcast/rb-podcast-properties-dialog.h:
11840         * rhythmdb/rhythmdb-property-model.c:
11841         (rhythmdb_property_model_set_property),
11842         (rhythmdb_property_model_enable_drag):
11843         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
11844         (rhythmdb_tree_parser_end_element), (save_entry),
11845         (rhythmdb_tree_save):
11846         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
11847         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
11848         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
11849         (rhythmdb_entry_podcast_feed_get_type):
11850         * rhythmdb/rhythmdb.h:
11851         * shell/Makefile.am:
11852         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
11853         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
11854         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
11855         (rb_shell_quit):
11856         * sources/Makefile.am:
11857         + sources/rb-podcast-source.c:
11858         + sources/rb-podcast-source.h:
11859         * widgets/Makefile.am:
11860         * widgets/rb-property-view.c: (rb_property_view_class_init),
11861         (rb_property_view_constructor),
11862         (rb_property_view_selection_changed_cb),
11863         (rb_property_view_get_treeview):
11864         * widgets/rb-property-view.h:
11865         + widgets/rb-simple-view.c:
11866         + widgets/rb-simple-view.h:
11868 2005-10-20  James Livingston  <jrl@ids.org.au>
11870         * NEWS: update with changes since 0.9.1
11872         * configure.ac: check whether collate_key_for_filename is available
11873         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
11874         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
11875         it if it isn't available in glib (i.e. building against 2.6)
11876         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
11877         collation to get "natural sorting". Closes bug 158599.
11879 2005-10-20  James Livingston  <jrl@ids.org.au>
11881         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
11883         * doc/reference/tmpl/rb-shell-player.sgml:
11884         * shell/rb-shell-player.c: (rb_shell_player_class_init),
11885         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
11886         (rb_shell_player_get_playing),
11887         (rb_shell_player_get_playing_time_string),
11888         (rb_shell_player_get_playing_time),
11889         (rb_shell_player_set_playing_time), (tick_cb),
11890         (rb_shell_player_get_playing_path), (filter_mmkeys):
11891         * shell/rb-shell-player.h:
11892         * shell/rb-shell-player.xml:
11893         * shell/rb-shell.c: (rb_shell_constructor),
11894         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
11895         (rb_shell_set_window_title), (rb_shell_playing_impl),
11896         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
11897         Merge the duration_changed and elapsed_changed DBUS signals into one
11898         elapsed_changed signal. Check that the output argument isn't NULL
11899         before trying to put things in it.
11901 2005-10-20  James Livingston  <jrl@ids.org.au>
11903         * rhythmdb/rhythmdb-query-model.c:
11904         (rhythmdb_query_model_entry_added_cb),
11905         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
11906         problem where hidden entries could be shown in playlists.
11907         
11908         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
11909         issues when switching in and out of small mode.
11911 2005-10-19  James Livingston  <jrl@ids.org.au>
11913         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
11914         (rb_shell_constructor), (rb_shell_window_state_cb),
11915         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
11916         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
11917         (rb_shell_view_smalldisplay_changed_cb),
11918         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
11919         (rb_shell_sync_paned): remove gconf window-state races, prevent
11920         changing small mode too often, fix window event races. Closes 122806.
11922         
11923         Patch from Caio Marcelo <cmarcelo@gmail.com>
11925         * data/rhythmbox.schemas:
11926         * shell/rb-shell.c: (rb_shell_window_state_cb),
11927         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
11928         Remember the position of the window. Closes 315289.
11930 2005-10-19  James Livingston  <jrl@ids.org.au>
11932         Patch from Christophe Fergeau  <teuf@gnome.org>
11934         * configure.ac: determine whether libgpod is present when neither
11935         --with-ipod nor --without-ipod is passed
11937 2005-10-19  James Livingston  <jrl@ids.org.au>
11939         Patch from Caio Marcelo <cmarcelo@gmail.com>
11941         * shell/rb-shell-player.c: (do_next_idle),
11942         (rb_shell_player_do_previous), (rb_shell_player_do_next),
11943         (rb_shell_player_do_previous_or_seek),
11944         (rb_shell_player_previous_button_cb),
11945         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
11946         (rb_shell_player_cmd_next), (eos_cb):
11947         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
11948         end of the playlist is reached.
11950 2005-10-19  Christopher Aillon  <caillon@redhat.com>
11952         * lib/rb-thread.c: fix a few GSource leaks
11954 2005-10-19  James Livingston  <jrl@ids.org.au>
11956         * doc/reference/tmpl/bacon-volume.sgml:
11957         * doc/reference/tmpl/disclosure-widget.sgml:
11958         * doc/reference/tmpl/eel-gconf-extensions.sgml:
11959         * doc/reference/tmpl/eggnotificationbubble.sgml:
11960         * doc/reference/tmpl/eggtrayicon.sgml:
11961         * doc/reference/tmpl/gsequence.sgml:
11962         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
11963         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
11964         * doc/reference/tmpl/rb-daap-connection.sgml:
11965         * doc/reference/tmpl/rb-daap-dialog.sgml:
11966         * doc/reference/tmpl/rb-daap-mdns.sgml:
11967         * doc/reference/tmpl/rb-daap-share.sgml:
11968         * doc/reference/tmpl/rb-daap-sharing.sgml:
11969         * doc/reference/tmpl/rb-daap-source.sgml:
11970         * doc/reference/tmpl/rb-daap-src.sgml:
11971         * doc/reference/tmpl/rb-daap-structure.sgml:
11972         * doc/reference/tmpl/rb-debug.sgml:
11973         * doc/reference/tmpl/rb-dialog.sgml:
11974         * doc/reference/tmpl/rb-druid.sgml:
11975         * doc/reference/tmpl/rb-entry-view.sgml:
11976         * doc/reference/tmpl/rb-enums.sgml:
11977         * doc/reference/tmpl/rb-file-helpers.sgml:
11978         * doc/reference/tmpl/rb-glade-helpers.sgml:
11979         * doc/reference/tmpl/rb-header.sgml:
11980         * doc/reference/tmpl/rb-history.sgml:
11981         * doc/reference/tmpl/rb-ipod-source.sgml:
11982         * doc/reference/tmpl/rb-iradio-source.sgml:
11983         * doc/reference/tmpl/rb-library-source.sgml:
11984         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
11985         * doc/reference/tmpl/rb-metadata.sgml:
11986         * doc/reference/tmpl/rb-new-station-dialog.sgml:
11987         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
11988         * doc/reference/tmpl/rb-play-order-linear.sgml:
11989         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
11990         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
11991         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
11992         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
11993         * doc/reference/tmpl/rb-play-order-random.sgml:
11994         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
11995         * doc/reference/tmpl/rb-play-order.sgml:
11996         * doc/reference/tmpl/rb-player.sgml:
11997         * doc/reference/tmpl/rb-playlist-manager.sgml:
11998         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
11999         * doc/reference/tmpl/rb-playlist-source.sgml:
12000         * doc/reference/tmpl/rb-preferences.sgml:
12001         * doc/reference/tmpl/rb-property-view.sgml:
12002         * doc/reference/tmpl/rb-query-creator-private.sgml:
12003         * doc/reference/tmpl/rb-query-creator.sgml:
12004         * doc/reference/tmpl/rb-rating-helper.sgml:
12005         * doc/reference/tmpl/rb-rating.sgml:
12006         * doc/reference/tmpl/rb-recorder.sgml:
12007         * doc/reference/tmpl/rb-refstring.sgml:
12008         * doc/reference/tmpl/rb-removable-media-manager.sgml:
12009         * doc/reference/tmpl/rb-removable-media-source.sgml:
12010         * doc/reference/tmpl/rb-search-entry.sgml:
12011         * doc/reference/tmpl/rb-shell-clipboard.sgml:
12012         * doc/reference/tmpl/rb-shell-glue.sgml:
12013         * doc/reference/tmpl/rb-shell-player-glue.sgml:
12014         * doc/reference/tmpl/rb-shell-player.sgml:
12015         * doc/reference/tmpl/rb-shell-preferences.sgml:
12016         * doc/reference/tmpl/rb-shell.sgml:
12017         * doc/reference/tmpl/rb-song-display-box.sgml:
12018         * doc/reference/tmpl/rb-song-info.sgml:
12019         * doc/reference/tmpl/rb-source-header.sgml:
12020         * doc/reference/tmpl/rb-source.sgml:
12021         * doc/reference/tmpl/rb-sourcelist-model.sgml:
12022         * doc/reference/tmpl/rb-sourcelist.sgml:
12023         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
12024         * doc/reference/tmpl/rb-statusbar.sgml:
12025         * doc/reference/tmpl/rb-stock-icons.sgml:
12026         * doc/reference/tmpl/rb-string-helpers.sgml:
12027         * doc/reference/tmpl/rb-thread.sgml:
12028         * doc/reference/tmpl/rb-tray-icon.sgml:
12029         * doc/reference/tmpl/rb-tree-dnd.sgml:
12030         * doc/reference/tmpl/rb-tree-model-sort.sgml:
12031         * doc/reference/tmpl/rb-util.sgml:
12032         * doc/reference/tmpl/rhythmbox-unused.sgml:
12033         * doc/reference/tmpl/rhythmdb-property-model.sgml:
12034         * doc/reference/tmpl/rhythmdb-query-model.sgml:
12035         * doc/reference/tmpl/rhythmdb-tree.sgml:
12036         * doc/reference/tmpl/rhythmdb.sgml: update for changes
12037         
12038         * doc/reference/Makefile.am: make docs build with changed ipod support
12039         
12040         * po/POTFILES.in: remove sources/itunesdb
12042 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
12044         * sources/itunesdb.c:
12045         * sources/itunesdb.h: removed now useless files
12047 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
12049         * configure.ac:
12050         * shell/Makefile.am:
12051         * sources/Makefile.am:
12052         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
12053         code
12054         [1]: http://www.gtkpod.org/libgpod.html
12057 2005-10-18  James Livingston  <jrl@ids.org.au>
12059         patch from Funda Wang <fundawang@linux.net.cn>
12061         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
12062         the notification bubble string translatable.
12064 ============ Version 0.9.1
12066 2005-10-16  James Livingston  <jrl@ids.org.au>
12068         * configure.ac: bump version to 0.9.1
12069         * NEWS: update translation credits
12071 2005-10-16  James Livingston  <jrl@ids.org.au>
12073         * rhythmdb/rhythmdb-query-model.c:
12074         (rhythmdb_query_model_class_init),
12075         (rhythmdb_query_model_drag_data_received): 
12076         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
12077         notified when things are dropped into the entry view.
12078         
12079         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
12080         (rb_playlist_source_add_location_swapped),
12081         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
12082         (rb_playlist_source_non_entry_dropped),
12083         (rb_playlist_source_row_inserted): Use the new signal so that dropping
12084         things onto a playlist's entry view work correctly, and doesn't cause
12085         crashes. Allow folders to be dropped as well. (Closes 318308)
12087 2005-10-16  James Livingston  <jrl@ids.org.au>
12089         * NEWS: Update some more
12091         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
12092         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
12093         with the paned size, so that it doesn't move when the window is
12094         maximised/restored. Closes bug 315852.
12096         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
12097         display the playcount column, as it's useless (it never get changed).
12099 2005-10-14  James Livingston  <jrl@ids.org.au>
12101         * Makefile.am:
12102         * data/Makefile.am:
12103         * doc/reference/Makefile.am: get "make distcheck" to pass again
12105 2005-10-11  James Livingston  <jrl@ids.org.au>
12107         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
12108         destroy the connection when retrieving the playlists fails, because
12109         tracks have already been added. Closes 318380.
12111 2005-10-11  James Livingston  <jrl@ids.org.au>
12113         * sources/rb-sourcelist.c: (rb_sourcelist_append),
12114         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
12115         (source_name_edited_cb): Ask for the columns to be resized when a
12116         source is added, deleted or changes name.
12118 2005-10-11  James Livingston  <jrl@ids.org.au>
12120         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
12121         create a thread when processing a directory. This stops up created one
12122         thread for each file in a playlist we're trying to load. Closes
12123         317850.
12125         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
12126         typo that made sort-by-artist not work correctly.
12128 2005-10-11  James Livingston  <jrl@ids.org.au>
12130         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
12131         support is enabled
12133 2005-10-11  James Livingston  <jrl@ids.org.au>
12135         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
12136         * lib/rb-file-helpers.h: add a function to turn uris into our
12137         canonical path-escaped form
12138         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
12139         above function when import playlists. This will fix the problem of
12140         duplicate entries due to different representations of the uri (bug
12141         158211).
12143 2005-10-11  James Livingston  <jrl@ids.org.au>
12145         * shell/rb-shell.c: (rb_shell_get_visibility),
12146         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
12147         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
12148         window hiding so that Alt-F4 works again.
12150         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
12151         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
12152         (rb_entry_view_string_sort_func): Stop some crashes where a string
12153         property was set to NULL.
12155 2005-10-10  James Livingston  <jrl@ids.org.au>
12157         * doc/reference/rhythmbox.types: fix gtk-doc generation
12159 2005-10-09  James Livingston  <jrl@ids.org.au>
12161         * sources/rb-sourcelist.c: (rb_sourcelist_init):
12162         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
12163         accelerators, so that we don't have as many conflicting keys.
12165 2005-10-08  James Livingston  <jrl@ids.org.au>
12167         * data/iradio-initial.pls: Update the list of radio stations. Thanks
12168         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
12169         bug 129285.
12171 2005-10-07  James Livingston  <jrl@ids.org.au>
12173         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
12174         local path names in the same way as every other URI. This should stop
12175         duplicates occurring due to different escapings. Closes bug 158211.
12177 2005-10-06  James Livingston  <jrl@ids.org.au>
12179         * NEWS: more updates
12180         
12181         patch from Jaap Haitsma <jaap@haitsma.org>:
12183         * configure.ac:
12184         * data/Makefile.am:
12185         * data/art/Makefile.am:
12186         - data/art/rhythmbox-paused.png:
12187         - data/art/rhythmbox-playback-error.png:
12188         - data/art/rhythmbox-playing.png:
12189         - data/art-clearlooks/:
12190         * lib/rb-file-helpers.c: (rb_file):
12191         * lib/rb-stock-icons.c: (rb_stock_icons_init):
12192         * lib/rb-stock-icons.h:
12193         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
12194         * widgets/rb-cell-renderer-pixbuf.c:
12195         (rb_cell_renderer_pixbuf_render):
12196         * widgets/rb-entry-view.c: (rb_entry_view_init),
12197         (rb_entry_view_set_playing):
12198         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
12199         stock icons instead of custom art. Drop remanents of art-clearlooks.
12201 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
12203         * configure.ac: Added ne in ALL_LINGUAS
12205 2005-10-02  James Livingston  <jrl@ids.org.au>
12207         * data/glade/Makefile.am: actually install the daap prefs glade file
12209 2005-09-30  James Livingston  <jrl@ids.org.au>
12211         * po/POTFILES.in: mremove rb-string-helper.c from the list of
12212         translatable files, so that make check works and we don't annoy the
12213         translators.
12214         
12215         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
12216         sanity checking, in case a db entry is missing some properties.
12218 2005-09-29  James Livingston  <jrl@ids.org.au>
12220         - lib/rb-string-helpers.c:
12221         - lib/rb-string-helpers.h:
12222         * lib/Makefile.am:
12223         * rhythmdb/rhythmdb-tree.c:
12224         * rhythmdb/rhythmdb.c:
12225         * shell/main.c: (main):
12226         * shell/rb-shell.c:
12227         * widgets/rb-entry-view.c:
12228         * widgets/rb-property-view.c: remove rb-string-helpers, as they
12229         utility functions haven't been used in a while.
12231 2005-09-27  James Livingston  <jrl@ids.org.au>
12233         * data/art-clearlooks/Makefile.am:
12234         - data/art-clearlooks/rhythmbox-album.png:
12235         - data/art-clearlooks/rhythmbox-audiocd.png:
12236         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
12237         - data/art-clearlooks/rhythmbox-dnd.png:
12238         - data/art-clearlooks/rhythmbox-ipod.png:
12239         - data/art-clearlooks/rhythmbox-iradio.png:
12240         - data/art-clearlooks/rhythmbox-library.png:
12241         - data/art-clearlooks/rhythmbox-next.png:
12242         - data/art-clearlooks/rhythmbox-pause.png:
12243         - data/art-clearlooks/rhythmbox-play.png:
12244         - data/art-clearlooks/rhythmbox-playlist-menu.png:
12245         - data/art-clearlooks/rhythmbox-playlist.png:
12246         - data/art-clearlooks/rhythmbox-previous.png:
12247         - data/art-clearlooks/rhythmbox-repeat.png:
12248         - data/art-clearlooks/rhythmbox-rewind.png:
12249         - data/art-clearlooks/rhythmbox-shuffle.png:
12250         - data/art-clearlooks/rhythmbox-stop.png:
12251         - data/art-clearlooks/rhythmbox-visuals.png:
12252         - data/art-clearlooks/rhythmbox-volume-max.png:
12253         - data/art-clearlooks/rhythmbox-volume-medium.png:
12254         - data/art-clearlooks/rhythmbox-volume-min.png:
12255         - data/art-clearlooks/rhythmbox-volume-mute.png:
12256         - data/art-clearlooks/rhythmbox-volume-zero.png:
12257         * data/art/Makefile.am:
12258         - data/art/rhythmbox-album.png:
12259         - data/art/rhythmbox-audiocd.png:
12260         - data/art/rhythmbox-automatic-playlist.png:
12261         - data/art/rhythmbox-dnd.png:
12262         - data/art/rhythmbox-ipod.png:
12263         - data/art/rhythmbox-iradio.png:
12264         - data/art/rhythmbox-library.png:
12265         - data/art/rhythmbox-next.png:
12266         - data/art/rhythmbox-pause.png:
12267         - data/art/rhythmbox-play.png:
12268         - data/art/rhythmbox-playlist-menu.png:
12269         - data/art/rhythmbox-playlist.png:
12270         - data/art/rhythmbox-previous.png:
12271         - data/art/rhythmbox-repeat.png:
12272         - data/art/rhythmbox-rewind.png:
12273         - data/art/rhythmbox-shuffle.png:
12274         - data/art/rhythmbox-stop.png:
12275         - data/art/rhythmbox-visuals.png:
12276         - data/art/rhythmbox-volume-max.png:
12277         - data/art/rhythmbox-volume-medium.png:
12278         - data/art/rhythmbox-volume-min.png:
12279         - data/art/rhythmbox-volume-mute.png:
12280         - data/art/rhythmbox-volume-zero.png:
12281         * lib/rb-stock-icons.c: (rb_stock_icons_init):
12282         * lib/rb-stock-icons.h:
12283         * shell/rb-playlist-manager.c:
12284         * shell/rb-shell-player.c:
12285         * sources/rb-daap-source.c: (rb_daap_get_icon):
12286         * sources/rb-ipod-source.c:
12287         * sources/rb-iradio-source.c: (rb_iradio_source_init):
12288         * sources/rb-library-source.c: (rb_library_source_new):
12289         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
12290         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
12291         that hasn't been used in a LONG time, and also remove art that are
12292         now stock icons.
12294 2005-09-27  James Livingston  <jrl@ids.org.au>
12296         * README: point to the gnome.org web sites, and update the example
12297         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
12298         
12299         * rhythmdb/rhythmdb-query-model.c:
12300         (rhythmdb_query_model_set_property),
12301         (rhythmdb_query_model_get_property),
12302         (rhythmdb_query_model_finalize):
12303         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
12304         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
12305         * rhythmdb/rhythmdb.h:
12306         * sources/rb-iradio-source.c: (impl_search):
12307         * sources/rb-library-source.c: (impl_search): Add query
12308         "preprocessing", which performs operations such as casefolding any
12309         strings that will be compared to any of the *_FOLDED properties.
12310         Closes bug 316039
12312 2005-09-27  James Livingston  <jrl@ids.org.au>
12314         * data/glade/daap-prefs.glade:
12315         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
12316         file for the daap preferences pane
12317         
12318         * sources/rb-sourcelist.c: (rb_sourcelist_init),
12319         (rb_sourcelist_append), (rb_sourcelist_remove),
12320         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
12321         don't display the column for source expanders unless there is an
12322         expandable source.
12324 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
12326         * .cvsignore:
12327         * Makefile.am:
12328         * configure.ac:
12329         * doc/.cvsignore:
12330         * doc/Makefile.am:
12331         * doc/reference/.cvsignore:
12332         * doc/reference/Makefile.am:
12333         * doc/reference/rhythmbox-docs.sgml:
12334         * doc/reference/rhythmbox-sections.txt:
12335         * doc/reference/rhythmbox.types:
12336         * doc/reference/tmpl/bacon-volume.sgml:
12337         * doc/reference/tmpl/disclosure-widget.sgml:
12338         * doc/reference/tmpl/eel-gconf-extensions.sgml:
12339         * doc/reference/tmpl/eggnotificationbubble.sgml:
12340         * doc/reference/tmpl/eggtrayicon.sgml:
12341         * doc/reference/tmpl/gsequence.sgml:
12342         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
12343         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
12344         * doc/reference/tmpl/rb-daap-connection.sgml:
12345         * doc/reference/tmpl/rb-daap-dialog.sgml:
12346         * doc/reference/tmpl/rb-daap-mdns.sgml:
12347         * doc/reference/tmpl/rb-daap-share.sgml:
12348         * doc/reference/tmpl/rb-daap-sharing.sgml:
12349         * doc/reference/tmpl/rb-daap-source.sgml:
12350         * doc/reference/tmpl/rb-daap-src.sgml:
12351         * doc/reference/tmpl/rb-daap-structure.sgml:
12352         * doc/reference/tmpl/rb-debug.sgml:
12353         * doc/reference/tmpl/rb-dialog.sgml:
12354         * doc/reference/tmpl/rb-druid.sgml:
12355         * doc/reference/tmpl/rb-entry-view.sgml:
12356         * doc/reference/tmpl/rb-enums.sgml:
12357         * doc/reference/tmpl/rb-file-helpers.sgml:
12358         * doc/reference/tmpl/rb-glade-helpers.sgml:
12359         * doc/reference/tmpl/rb-header.sgml:
12360         * doc/reference/tmpl/rb-history.sgml:
12361         * doc/reference/tmpl/rb-ipod-source.sgml:
12362         * doc/reference/tmpl/rb-iradio-source.sgml:
12363         * doc/reference/tmpl/rb-library-source.sgml:
12364         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
12365         * doc/reference/tmpl/rb-metadata.sgml:
12366         * doc/reference/tmpl/rb-new-station-dialog.sgml:
12367         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
12368         * doc/reference/tmpl/rb-play-order-linear.sgml:
12369         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
12370         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
12371         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
12372         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
12373         * doc/reference/tmpl/rb-play-order-random.sgml:
12374         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
12375         * doc/reference/tmpl/rb-play-order.sgml:
12376         * doc/reference/tmpl/rb-player.sgml:
12377         * doc/reference/tmpl/rb-playlist-manager.sgml:
12378         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
12379         * doc/reference/tmpl/rb-playlist-source.sgml:
12380         * doc/reference/tmpl/rb-preferences.sgml:
12381         * doc/reference/tmpl/rb-property-view.sgml:
12382         * doc/reference/tmpl/rb-query-creator-private.sgml:
12383         * doc/reference/tmpl/rb-query-creator.sgml:
12384         * doc/reference/tmpl/rb-rating-helper.sgml:
12385         * doc/reference/tmpl/rb-rating.sgml:
12386         * doc/reference/tmpl/rb-recorder.sgml:
12387         * doc/reference/tmpl/rb-refstring.sgml:
12388         * doc/reference/tmpl/rb-removable-media-manager.sgml:
12389         * doc/reference/tmpl/rb-removable-media-source.sgml:
12390         * doc/reference/tmpl/rb-search-entry.sgml:
12391         * doc/reference/tmpl/rb-shell-clipboard.sgml:
12392         * doc/reference/tmpl/rb-shell-glue.sgml:
12393         * doc/reference/tmpl/rb-shell-player-glue.sgml:
12394         * doc/reference/tmpl/rb-shell-player.sgml:
12395         * doc/reference/tmpl/rb-shell-preferences.sgml:
12396         * doc/reference/tmpl/rb-shell.sgml:
12397         * doc/reference/tmpl/rb-song-display-box.sgml:
12398         * doc/reference/tmpl/rb-song-info.sgml:
12399         * doc/reference/tmpl/rb-source-header.sgml:
12400         * doc/reference/tmpl/rb-source.sgml:
12401         * doc/reference/tmpl/rb-sourcelist-model.sgml:
12402         * doc/reference/tmpl/rb-sourcelist.sgml:
12403         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
12404         * doc/reference/tmpl/rb-statusbar.sgml:
12405         * doc/reference/tmpl/rb-stock-icons.sgml:
12406         * doc/reference/tmpl/rb-string-helpers.sgml:
12407         * doc/reference/tmpl/rb-thread.sgml:
12408         * doc/reference/tmpl/rb-tray-icon.sgml:
12409         * doc/reference/tmpl/rb-tree-dnd.sgml:
12410         * doc/reference/tmpl/rb-tree-model-sort.sgml:
12411         * doc/reference/tmpl/rb-util.sgml:
12412         * doc/reference/tmpl/rhythmdb-property-model.sgml:
12413         * doc/reference/tmpl/rhythmdb-query-model.sgml:
12414         * doc/reference/tmpl/rhythmdb-tree.sgml:
12415         * doc/reference/tmpl/rhythmdb.sgml:
12416         * macros/.cvsignore:
12417         * shell/Makefile.am:
12418         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
12419         (rb_source_finalize), (rb_source_set_property),
12420         (rb_source_get_property), (default_get_pixbuf),
12421         (_rb_source_show_popup):
12422         * sources/rb-source.h:
12423         Add support for gtk-doc in rhythmbox.
12424         Convert RBSource to use newer glib functions, such as add_private.
12425         Gives RBSource a default get_pixbuf implementation.
12427 2005-09-25  James Livingston  <jrl@ids.org.au>
12429         * NEWS: Update with about a months worth of changes
12431         * data/glade/song-info-multiple.glade:
12432         * data/glade/song-info.glade:
12433         * data/rhythmbox.schemas:
12434         * lib/rb-preferences.h:
12435         * rhythmdb/rhythmdb.h:
12436         * shell/rb-shell-player.c:
12437         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
12438         few remaining parts of autorating.
12440 2005-09-24  James Livingston  <jrl@ids.org.au>
12442         * shell/rb-shell.c: (rb_shell_constructor),
12443         (rb_shell_window_state_cb), (rb_shell_set_visibility),
12444         (rb_shell_window_configure_cb): store window state in the gconf keys,
12445         so that it gets used. Closes bugs 313893 and 137068.
12447 2005-09-20  James Livingston  <jrl@ids.org.au>
12449         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
12450         crash if the entry has a NULL string in a property
12451         
12452         * shell/rb-removable-media-manager.c:
12453         (rb_removable_media_manager_load_media): fix some memory leaks
12454         
12455         (rb_removable_media_manager_mount_volume),
12456         (rb_removable_media_manager_eject_medium_cb),
12457         (rb_removable_media_manager_cmd_eject_medium): use
12458         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
12459         
12460         * sources/rb-removable-media-source.c:
12461         (rb_removable_media_source_set_property),
12462         (rb_removable_media_source_get_property): use
12463         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
12465 2005-09-18  James Livingston  <jrl@ids.org.au>
12467         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
12468         column
12470         * data/glade/general-prefs.glade:
12471         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
12472         (rb_shell_preferences_column_check_changed_cb),
12473         (rb_shell_preferences_sync): add checkbox to control visibility
12474         of the column
12475         
12476         
12477         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
12478         (save_entry):
12479         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
12480         (rhythmdb_prop_get_type):
12481         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
12482         was as "last played" is handled
12483         
12484         * sources/rb-library-source.c: (rb_library_source_constructor):
12485         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
12486         Make the column show in the library and playlists
12487         
12488         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
12489         * widgets/rb-entry-view.h: add the column
12490         
12491         * widgets/rb-query-creator-properties.c: allow automatic playlists to
12492         be sorted by the column
12494 2005-09-16  James Livingston  <jrl@ids.org.au>
12496         * shell/rb-shell-player.c: (rb_shell_player_init),
12497         (rb_shell_player_do_previous_or_seek),
12498         (rb_shell_player_previous_button_cb),
12499         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
12500         (rb_shell_player_playpause_button_cb): Make the previous button act
12501         the same as the menu item. Fix an inversion of the "previous track or
12502         seek" logic.
12503         
12504         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
12505         
12506         (rb_shell_player_playpause): make --play-pause stop source that can't
12507         be paused
12509 2005-09-15  James Livingston  <jrl@ids.org.au>
12511         * configure.ac: increase totem-plparser requirements to 1.1.5
12513         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
12514         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
12515         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
12516         use the newer playlist APIs to save the name of the playlist, and use
12517         the name of a loaded playlist.
12519         Closes bug 309817.
12521 2005-09-15  James Livingston  <jrl@ids.org.au>
12523         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
12525         * shell/Makefile.am: stop some linker warnings
12527         * shell/main.c: (main): make --no-registration work with dbus
12529 2005-09-15  James Livingston  <jrl@ids.org.au>
12531         * daapsharing/rb-daap-sharing.c: (create_share):
12532         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
12533         reference sinking and counting issues that I caused.
12535 2005-09-15  James Livingston  <jrl@ids.org.au>
12537         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
12538         playing" icon in the "now playing" column header.
12540 2005-09-14  James Livingston  <jrl@ids.org.au>
12542         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
12543         daap shares, when sharing is turned off.
12545 2005-09-12  Bastien Nocera  <hadess@hadess.net>
12547         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
12548         the GConf value's default, especially for badly installed schema
12549         files
12551 2005-09-12  James Livingston  <jrl@ids.org.au>
12553         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
12555         Patch from Paolo Borelli <pborelli@katamail.com>
12557         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
12558         grip when maximised. Closes bug 316055.
12560 2005-09-11  James Livingston  <jrl@ids.org.au>
12562         Patch from William Jon McCann <mccann@jhu.edu>
12564         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
12565         subclass of GtkStatusbar instead of GtkHBox.
12566         (rb_statusbar_construct): Don't set border width.
12567         (rb_statusbar_init): Use resize grip.  Don't use
12568         markup.
12569         (set_statusbar_tooltip, unset_statusbar_tooltip) 
12570         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
12571         Connect tooltips for actions.
12572         (rb_statusbar_sync_status): Push new message to statusbar.
12573         (rb_statusbar_set_progress): Don't use markup.
12574         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
12575         flag here since it prevents actually showing or hiding.
12576         (rb_statusbar_sync_with_source): Push new message to statusbar.
12578 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
12580         * daapsharing/rb-daap-structure.c:
12581         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
12582         around debugging definition.
12584 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
12585         
12586         * daapsharing/rb-daap-structure.c:
12587         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
12588         type = version.
12590         * daapsharing/rb-daap-mdns.c/h:
12591         (resolve_cb): Updated mDNS resolve callback to send service-name &
12592         name (read from Machine Name in the TXT data or equal to service-name
12593         if not in TXT).
12595         * daapsharing/rb-daap-source.c:
12596         (rb_daap_source_class_init), (rb_daap_source_set_property), 
12597         (rb_daap_source_get_property), (rb_daap_source_new),
12598         (find_source_by_service_name), (resolve_cb), (browse_cb), 
12599         (stop_resolver), (start_browsing), (stop_browsing), 
12600         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
12601         and added 'host' and 'port' gobject properties.  Updated to use new
12602         mDNS resolve callback sending service-name & name arguments.
12604 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
12606         * daapsharing/rb-daap-mdns.c:
12607         (howl_strerror): New function to report errors from Howl
12608         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
12609         (get_sw_discovery), (get_avahi_client): Better error reporting from
12610         Howl & Avahi.
12612         * sources/rb-daap-source.:
12613         (start_browsing), (stop_browsing): Fixed a bug where browsing would
12614         not get started or stopped in some situations.
12615         
12616 2005-09-12  James Livingston  <jrl@ids.org.au>
12618         * shell/rb-removable-media-manager.c: add a missing include, that
12619         would stop compilation if ipod support wasn't turned on
12621 2005-09-11  James Livingston  <jrl@ids.org.au>
12623         * daapsharing/rb-daap-dialog.c: (encode_base64),
12624         (rb_daap_password_dialog_new_run),
12625         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
12626         it is no broken in to two pieces, and remove a use of a goto
12627         
12628         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
12629         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
12630         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
12631         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
12632         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
12633         memory leaks, and some code style things.
12634         
12635         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
12636         (rb_daap_share_init), (rb_daap_share_set_property),
12637         (rb_daap_share_dispose), (rb_daap_share_new),
12638         (rb_daap_share_get_property): make the DB and the playlist manager
12639         gobject properties.
12640         
12641         (message_add_standard_headers),
12642         (message_set_from_rb_daap_structure), (server_info_cb),
12643         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
12644         (server_cb), (add_db_entry), (db_entry_added_cb),
12645         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
12646         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
12647         style and use CONF_PREFIX in the gconf keys
12648         
12649         * daapsharing/rb-daap-sharing.c: (create_share),
12650         (enable_sharing_changed_cb), (share_name_changed_cb),
12651         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
12652         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
12653         (rb_daap_src_instance_init), (rb_daap_src_dispose),
12654         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
12655         (rb_daap_src_get_property), (rb_daap_src_getcaps),
12656         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
12657         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
12658         (rb_daap_src_get_time): Deal with gconf callbacks where the key
12659         hasn't actually changed, fix some memory leaks, code style and release
12660         gconf notifications when the object is destroyed.
12661         
12662         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
12663         (rb_daap_source_class_init), (rb_daap_source_init),
12664         (rb_daap_source_dispose), (rb_daap_source_set_property),
12665         (rb_daap_source_get_property), (rb_daap_source_new),
12666         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
12667         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
12668         (rb_daap_sources_init), (rb_daap_sources_shutdown),
12669         (rb_daap_source_activate), (rb_daap_source_disconnect),
12670         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
12671         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
12672         release gconf notifications, handle gconf callbacks where the key
12673         hasn't changed, make "real name" and "password protected" gobject
12674         properties, fix some code style and fix a memory leak.
12676 2005-09-11  James Livingston  <jrl@ids.org.au>
12678         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
12680         * shell/rb-playlist-manager.c:
12681         (rb_playlist_manager_save_playlists),
12682         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
12683         when we aren't supposed to. (Closes bug 315886)
12685 2005-09-11  James Livingston  <jrl@ids.org.au>
12687         * shell/rb-removable-media-manager.c:
12688         (rb_removable_media_manager_class_init),
12689         (rb_removable_media_manager_init),
12690         (rb_removable_media_manager_dispose),
12691         (rb_removable_media_manager_set_property),
12692         (rb_removable_media_manager_get_property),
12693         (rb_removable_media_manager_new),
12694         (rb_removable_media_manager_load_media),
12695         (rb_removable_media_manager_volume_mounted_cb),
12696         (rb_removable_media_manager_volume_unmounted_cb),
12697         (rb_removable_media_manager_mount_volume),
12698         (rb_removable_media_manager_unmount_volume),
12699         (rb_removable_media_manager_source_deleted_cb),
12700         (rb_removable_media_manager_append_media_source),
12701         (rb_removable_media_manager_set_uimanager),
12702         (rb_removable_media_manager_eject_medium_cb),
12703         (rb_removable_media_manager_cmd_eject_medium):
12704         * shell/rb-removable-media-manager.h:
12705         * sources/rb-removable-media-source.c:
12706         (rb_removable_media_source_class_init),
12707         (rb_removable_media_source_init),
12708         (rb_removable_media_source_dispose),
12709         (rb_removable_media_source_set_property),
12710         (rb_removable_media_source_get_property), (impl_get_pixbuf),
12711         (impl_delete_thyself):
12712         * sources/rb-removable-media-source.h: Add the four files that I
12713         somehow managed not to add to cvs in the last commit. Oops.
12715 2005-09-11  James Livingston  <jrl@ids.org.au>
12717         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
12718         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
12719         
12720         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
12721         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
12722         removable-media-manager on startup, and handle creation of sources.
12723         
12724         * sources/rb-ipod-source.h:
12725         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
12726         (rb_ipod_source_init), (rb_ipod_source_constructor),
12727         (rb_ipod_source_dispose), (rb_ipod_source_new),
12728         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
12729         the iPod source over to the removable media framework.
12730         
12731         * sources/rb-library-source.c: (paned_size_allocate_cb),
12732         (rb_library_source_get_paned_key): fix a potential bug is a
12733         library-derived source doesn't have a paned-key
12735 2005-09-11  Bastien Nocera  <hadess@hadess.net>
12737         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
12738         mp3 when we can't get the suffix of a file (Closes: #315941)
12740 2005-09-10  James Livingston  <jrl@ids.org.au>
12742         * configure.ac: fix the mdns tests, so that it doesn't complain about
12743         not finding one, if daap support isn't being compiled in
12745 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
12747         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
12749         * daapsharing/rb-daap-dialog.c:
12750         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
12751         HIG compliancy & images.
12753         * daapsharing/rb-daap-mdns.c:
12754         (browse_cb), (resolve_cb): Better detection of local services.  
12755         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
12756         Howl's limitations.  Fix the way collision handling is done under
12757         Avahi.
12759         * daapsharing/rb-daap-share.c:
12760         (publish_cb): Better name collision handling (at least for Avahi).
12762 2005-09-10  James Livingston  <jrl@ids.org.au>
12764         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
12765         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
12766         preferences more HIG compliant (Closes #315889)
12767         
12768         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
12769         list of files to be translated
12771 2005-09-10  James Livingston  <jrl@ids.org.au>
12773         * configure.ac: fix it so that --enable-daap=no works
12774         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
12775         uninstalled
12777 2005-09-10  James Livingston  <jrl@ids.org.au>
12779         Patch from Christophe Fergeau <teuf@gnome.org>
12781         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
12782         the ipod code.
12784 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
12785         * README.daap: Updating documentation
12787 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
12788         * AUTHORS: Added myself.
12790         * daapsharing/rb-daap-connection.c:
12791         (connection_login), (rb_connection_new): Reorganized password
12792         handling.
12794         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
12796         * shell/rb-shell.c:
12797         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
12799         * sources/rb-daap-source.c:
12800         (rb_daap_source_activate): Better error handling when we are unable to
12801         connect.
12802         
12803 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
12804         * README.daap: Fixed some terminology.
12806         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
12807         New --with-mdns=auto|howl|avahi flag to specify.
12809         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
12810         name collision dialogs.
12812         * daapsharing/rb-daap-connection.c:
12813         (connection_get_password), (build_message), (http_get)
12814         (connection_login): Ask for & use a password if the share demands it.
12816         * daapsharing/rb-daap-connection.h: Changed prototype of
12817         rb_daap_connection_new.
12818         
12819         * daapsharing/rb-daap-mdns.c: 
12820         (resolve_cb): Better detection of your own music share so it doesn't 
12821         appear in the sourcelist.
12823         * daapsharing/rb-daap-share.c:
12824         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
12825         that start on any available port.
12827         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
12829         * sources/rb-daap-source.c:
12830         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
12831         (browse_cb): Handle passworded shares. Resolve the host immediately
12832         instead of when activated.
12833         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
12834         (rb_daap_source_new): New GConf keys for UI state.
12835         (rb_daap_source_activate): Use RBPlaylistSource instead of
12836         RBDAAPPlaylistSource
12837         
12838         * sources/rb-daap-playlist-source.c/h: Removed
12840         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
12841         if the playlist is local (i.e. not DAAP or iPod).
12842         
12843         * shell/rb-playlist-manager.c:
12844         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
12845         wouldn't get saved if the last playlist hadn't changed.  Only save
12846         local playlists.
12847         
12848 2005-09-09  James Livingston  <jrl@ids.org.au>
12850         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
12851         iPod preferences pane, as it already uses the browser views as the
12852         library.
12854 2005-09-09  James Livingston  <jrl@ids.org.au>
12856         * sources/rb-library-source.c: (rb_library_source_finalize),
12857         (rb_library_source_constructor): fix gconf monitoring of library
12858         preference keys.
12859         * sources/rb-library-source.h: remove declaration of function that
12860         does not exist
12862 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
12864         * player/rb-player-gst.c:
12865         (rb_player_set_time): Fix seeking in daap streams.
12867 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
12869         * data/rhythmbox.schemas: Turn music share browsing on by default.
12871 2005-09-07  James Livingston  <jrl@ids.org.au>
12873         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
12875 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
12876         * player/rb-player-gst.c: 
12877         (rb_player_get_time): Fix for extra << & == that accidentally made
12878         it in.
12880         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
12881         
12882 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
12883         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
12884         it in last time.  Sorry.
12886 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
12887         
12888         * player/rb-player-gst.c:
12889         (rb_player_get_time): Fix a small crash appearing when
12890         the uri isn't set in the player, but rb_player_get_time() is
12891         still called.
12893         * configure.ac: Also check for libsoup 2.4, which is what ships with
12894         Gnome 2.12.
12896         * po/POTFILES.in: Added music sharing files that have translatable 
12897         strings.
12899         * README.daap: New file explaining "How Music Sharing Works"  
12901 2005-09-06  Bastien Nocera  <hadess@hadess.net>
12903         * daapsharing/.cvsignore: added
12905 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
12907         * daapsharing/*: Music sharing library.
12908         
12909         * sources/rb-daap-source.c/h: Music share RBSource.
12910         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
12912         * configure.ac: --enable-daap flag to turn on music sharing. Requires
12913         libsoup and a mutlicast DNS implementation (howl or avahi).
12915         * data/rhythmbox.schemas: New GConf keys for music sharing.
12917         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
12918         source right click menu.
12920         * player/rb-player-gst.c: Changes to properly play & seek in remote
12921         music share files.
12923         * shell/rb-playlist-manager.c/h:
12924         (rb_playlist_manager_get_playlists): New function to get a GList * of
12925         the playlists.
12926         (rb_playlist_manager_save_playlists): Don't save music share playlists
12927         and fixed a GObject reference leak.
12929         * shell/rb-shell.c/h:
12930         (rb_shell_append_source): No longer a local function.  Now takes a
12931         parent RBSource * argument, NULL to append a toplevel source.
12932         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
12933         source (useful for disconnecting from remote music share,
12934         specifically).
12935         (rb_shell_quit): Stop music sharing/browsing.
12936         (rb_shell_playlist_added_cb): Work with tree source structure.
12937         (rb_shell_get_property): "playlist-manager" property accessor.
12938         (rb_shell_class_init): New "playlist-manager" property.
12939         (rb_shell_construor): Append sources as toplevel sources.  Initialize
12940         daap sharing/browsing.
12941         (rb_shell_select_source): Notify source of activation/deactivation.
12943         * shell/rb-shell-prefernces.c: Music sharing preferences.
12945         * sources/rb-source.c/h: New activate, deactivate and disconnect
12946         class functions.  Activate & deactivate are notification style 
12947         functions that will tell a source when it is selected/unselected.
12948         Disconnect can be hooked up to a UI object to disconnect the source.
12950         * sources/rb-sourcelist-model.c:
12951         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
12952         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
12953         append a toplevel source.
12955 2005-09-05  James Livingston  <jrl@ids.org.au>
12957         * rhythmdb/rhythmdb-query-model.c:
12958         (rhythmdb_query_model_entry_changed_cb),
12959         (rhythmdb_query_model_do_reorder): Update the query model's totals if
12960         the duration of filesize of an entry changes.  Emit the row-changed
12961         signals that I forgot to put back in, when I was doing query sorting.
12963         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
12964         out "0 minutes" or "0 bytes".
12966 2005-09-04  James Livingston  <jrl@ids.org.au>
12968         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
12969         remove a leftover bit of the "internal-name" property of sources.
12971 2005-09-03  James Livingston  <jrl@ids.org.au>
12973         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
12974         extraneous debug message
12975         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
12976         crasher would affect any library-derived sources (which was also a
12977         memory leak).
12979 2005-09-02  Colin Walters  <walters@verbum.org>
12981         * configure.ac: Fix sytnax error.
12983         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
12984         code to disable minimization icons - need to figure out
12985         why it doesn't work...
12987 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
12989         * data/glade/song-info-multiple.glade:
12990         * data/glade/song-info.glade:
12991         * widgets/rb-song-info.c: (rb_song_info_constructor):
12992         Add a mnemonic to the newly added "Automatically rate" label
12993         in the properties dialog and use a bold typeface like all the 
12994         other labels in the dialog. (Closes bug 315089)
12996 2005-09-03  James Livingston  <jrl@ids.org.au>
12998         * sources/rb-library-source.c: (rb_library_source_class_init),
12999         (rb_library_source_finalize), (rb_library_source_constructor),
13000         (rb_library_source_set_property), (rb_library_source_get_property),
13001         (impl_get_paned_key), (paned_size_allocate_cb),
13002         (rb_library_source_state_prefs_sync), (impl_show_popup),
13003         (rb_library_source_get_paned_key):
13004         * sources/rb-library-source.h: Allow sources derived from
13005         RBLibrarySource to use different gconf keys for sort order, browser
13006         visibility and browser pane position. Fix a crasher if a derived
13007         source overrides _get_pixbuf.
13009 2005-09-02  Colin Walters  <walters@verbum.org>
13011         * shell/rb-shell.c (rb_shell_set_visibility): Move
13012         hint setting which seems to avoid races more.
13013         
13014 2005-09-03  James Livingston  <jrl@ids.org.au>
13016         * shell/rb-shell.c: fix compilation with iPod support enabled
13017         
13018 2005-09-02  Colin Walters  <walters@verbum.org>
13020         * shell/rb-shell.c (struct RBShellPrivate): Add
13021         idle_hide_mainwindow_id.
13022         (rb_shell_constructor): Move taskbar skipping hint into
13023         rb_shell_set_visibility.
13024         (idle_hide_mainwindow): New function.
13025         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
13026         racy hack to avoid rb appearing in taskbar when minimized.
13028 2005-09-01  Colin Walters  <walters@verbum.org>
13030         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
13032         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
13033         from gtkstatusicion.c.
13035         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
13037         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
13038         TrayShowWindow entry.
13039         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
13040         (rb_tray_icon_constructor): Create action group here.
13041         (rb_tray_icon_finalize): Destroy action group.
13042         (rb_tray_icon_set_property): Don't take an action group.
13043         (rb_tray_icon_new): Ditto.
13044         (tray_popup_position_menu): Some mostly boilerplate code
13045         to position menu.
13046         (rb_tray_icon_button_press_event_cb): Position menu.
13047         (rb_tray_icon_get_geom): New function used for the shell
13048         to set minimization hints.
13050         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
13052         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
13053         (struct RBShellPrivate): Change visible to iconified.
13054         (set_icon_geometry): New function from Søren Sandmann to
13055         tell Metacity where to draw the minimization animiation.
13056         (rb_shell_window_state_cb): Update iconified.
13057         (rb_shell_get_visibility): New function to say whether
13058         or not we're currently visible.
13059         (rb_shell_set_visibility): Update to minimize to
13060         tray or present as appropriate.
13061         (rb_shell_window_delete_cb): On window close, just
13062         minimize to tray if we're deleted.
13063         (rb_shell_set_window_title): Kill old notification code.
13064         (rb_shell_toggle_visibility): Nwe function.
13065         (rb_shell_cmd_toggle_visibility): Call it.
13066         (rb_shell_constructor): Skip the taskbar.
13067         (tray_destroy_cb): Better debugging.
13068         
13069 2005-09-01  Colin Walters  <walters@verbum.org>
13071         * data/ui/rhythmbox-ui.xml: Add MusicClose.
13073         * configure.ac: Enable bonobo by default.
13074         
13075 2005-09-01  Colin Walters  <walters@verbum.org>
13077         * configure.ac: Default to old art.  Add macros subdir.
13079         * Makefile.am (SUBDIRS): Add macros.
13081         * macros/Makefile.am: New.
13082         
13083 2005-09-01  Colin Walters  <walters@verbum.org>
13085         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
13086         rb-shell-player.xml.
13088         * remote/dbus/rb-remote-dbus.h: Deleted.
13089         
13090         * remote/dbus/Makefile.am: Delete all the junk, just dist
13091         rb-print-playing.py and rb-set-rating.py.
13093         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
13095         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
13097 2005-09-02  James Livingston  <jrl@ids.org.au>
13099         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
13100         file from cvs
13102         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
13103         (rb_shell_constructor): Patches from Jonathan Matthew
13104         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
13105         a crash when using "browse this artist".
13107 2005-08-31  Colin Walters  <walters@verbum.org>
13109         * configure.ac: Add --with-old-art configure switch.  Also
13110         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
13111         but it doesn't work.
13113         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
13114         Don't use eel_create_colorized_pixbuf for new art.
13115         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
13117         * data/art-clearlooks: New artwork.
13118         
13119 2005-08-31  Colin Walters  <walters@verbum.org>
13121         * shell/main.c (main): Fix Bastien's commit to continue to focus
13122         the window with GTK+ 2.8 at least.
13123         
13124 2005-08-31  Colin Walters  <walters@verbum.org>
13126         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
13127         is already loaded.
13129         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
13131 2005-08-31  Bastien Nocera  <hadess@hadess.net>
13133         * README: remove mentions of the xine-lib backend
13134         * shell/main.c: (main): make it compilable with gtk+ < 2.8
13136 2005-08-30  Colin Walters  <walters@verbum.org>
13138         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
13139         Make non-visible sources insensitive.
13140         
13141 2005-08-30  Colin Walters  <walters@verbum.org>
13143         * shell/rb-shell.c: Don't use GConf for selected source; it's
13144         confusing to have the selected source change after startup,
13145         and since we don't save other things it's not worth saving this.
13147         * sources/rb-playlist-source.c:
13148         * sources/rb-library-source.c:
13149         * sources/rb-iradio-source.c:
13150         * sources/rb-ipod-source.c: Delete internal-name property usage.
13151         * sources/rb-source.c: Delete internal-name property.
13153         * data/rhythmbox.schemas: Delete selected_source.
13154         
13155 2005-08-30  Colin Walters  <walters@verbum.org>
13157         * sources/rb-sourcelist.c: Make playing source bold instead of
13158         displaying a pixbuf; it's much less ugly.
13159         
13160 2005-08-30  Colin Walters  <walters@verbum.org>
13162         * sources/rb-source.c:
13163         * sources/rb-source.h: New virtual method try_playlist.
13165         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
13166         impl_try_playlist.
13167         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
13168         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
13169         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
13170         need to.
13171         (stations_view_drag_data_received_cb): Don't check for iradio uris;
13172         in theory we should though...
13174         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
13175         list in rb_shell_construct now.
13176         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
13177         RBiPodSource.
13178         (rb_shell_constructor): Create library, iradio, ipod here.
13179         (rb_shell_source_deleted_cb): Use source directly instead of
13180         indirecting through type.
13181         (rb_shell_sync_selected_source): Ditto.
13182         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
13183         from the type instead of special-casing.
13184         (rb_shell_guess_type_for_uri) 
13185         (rb_shell_add_uri)
13186         (handle_one_uri_with_possible_metadata): New functions.
13187         (rb_shell_load_uri): Refactor to allow loading playlists again,
13188         also use other URI infrastructure.
13190         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
13191         (rb_shell_player_error): Always set entry error on error, instead
13192         of depending on EOF behavior.
13194         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
13195         to just invoke rb_shell_add_uri.
13196         (rb_playlist_manager_parse_file): Return error instead of tossing
13197         up dialog box directly.
13198         (load_playlist_response_cb): Display error here.
13199         (add_uri_to_playlist): Delete.
13200         (handle_playlist_entry_into_playlist_cb): Renamed to
13201         handle_playlist_entry_cb.
13203         * shell/rb-playlist-manager.h: Add error, update prototype.
13205         * lib/rb-file-helpers.c:
13206         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
13208 2005-08-29  Colin Walters  <walters@verbum.org>
13210         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
13211         if entry already exists.  Use rhythmdb_entry_set_uninserted.
13213         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
13214         needlessly duping string, and use rhythmdb_entry_set_uninserted.
13215         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
13217         * shell/rb-shell.h (enum RBShellError): Add some more errors.
13218         Prototype rb_shell_set_song_property.
13220         * shell/rb-shell.xml: Export setSongProperty.
13222         * shell/rb-shell.c (rb_shell_set_song_property): New function.
13223         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
13224         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
13226         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
13227         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
13228         want to notify of the change.
13229         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
13231         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
13232         logic error; idle functions would be enqueued for each set.
13233         (rhythmdb_entry_set): Fix assertion logic error.
13235         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
13236         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
13237         Return if the entry already exists.
13238         
13239 2005-08-29  Colin Walters  <walters@verbum.org>
13241         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
13242         "inserted" member which we use to keep track of
13243         whether or not an entry is in the DB.  Prototype
13244         rhythmdb_entry_set_uninserted.
13246         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
13247         flag.
13248         (rhythmdb_entry_insert): Assert entry is not already inserted.
13249         (rhythmdb_process_metadata_load): Update to call _set_uninserted
13250         just after creating entry.
13251         (rhythmdb_entry_set): Document, and fail on uninserted entries.
13252         (rhythmdb_entry_set_nonotify): Ditto.
13253         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
13254         entries.
13255         (rhythmdb_entry_set_internal): Change notify flag to
13256         notify_if_inserted.  Also move notification after assertions.
13258         Update all existing callers of rhythmdb_entry_set_internal
13259         to give TRUE for notify_if_inserted; this should be what
13260         we want but may be an efficiency hit.
13261         
13262 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
13264         * shell/rb-shell-player.c: (rb_shell_player_init),
13265         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
13266         (rb_shell_player_set_playing_source_internal),
13267         (rb_shell_player_sync_with_selected_source): Notify the player when an
13268         entry has updated the title, album or artist field, and resync the big
13269         display.
13270         
13271         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
13272         * sources/rb-library-source.c: (rb_library_source_class_init),
13273         (impl_get_config_widget):
13274         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
13275         * sources/rb-source.c:
13276         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
13277         get_album functions in rb-source and adapted other sources accordingly.
13278         
13279 2005-08-29  Colin Walters  <walters@verbum.org>
13281         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
13282         signal_change member.
13283         (threadsafe_entry_set): New function.
13284         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
13285         (rhythmdb_entry_set_nonotify): New function; just call
13286         threadsafe_entry_set with FALSE.
13287         (rhythmdb_entry_set_internal): Take a notify flag; if true
13288         add the change to our pending set.
13290         Also update all internal callers of rhythmdb_entry_set_internal
13291         to pass FALSE.  Some of these may be bugs however and need to
13292         pass TRUE...
13294         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
13295         rhythmdb_entry_set, and rename rhythmdb_entry_set to
13296         rhythmdb_entry_set_nonotify.
13298         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
13299         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
13301         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
13303         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
13304         * sources/rb-source.c (rb_source_update_play_statistics): 
13305         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
13306         * sources/rb-ipod-source.c (entry_set_string_prop) 
13307         (load_ipod_db_idle_cb): 
13308         * shell/rb-shell.c (rb_shell_set_rating_impl): 
13309         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
13310         (info_available_cb): 
13311         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
13312         (rb_station_properties_dialog_sync_entries): 
13313         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
13315         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
13316         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
13317         
13318 2005-08-29  Colin Walters  <walters@verbum.org>
13320         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
13322         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
13323         linking insanity.
13325         * widgets/rb-header.c (sanitize_string): New function, extracted
13326         from old info_url.  Be sure to always strip the string.
13327         (info_url): Rewrite to take artist/album, and generate a sane
13328         URL for them from last.fm, which is better than allmusic.com in
13329         that they support Rhythmbox, and have a *SANE* URL scheme.
13330         (artist_info_url, album_info_url): Delete.
13331         (rb_header_sync): Use info_url.
13333 2005-08-29  James Livingston  <jrl@ids.org.au>
13335         * sources/rb-source.c: (rb_source_search): Check to ensure that this
13336         is implemented before calling it. Many sources don't implement the
13337         method.
13339 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
13341         * data/glade/create-playlist.glade:  Cleanup the layout,
13342         and add a few more mnemonics.
13343         * shell/rb-playlist-manager.c:
13344         (rb_playlist_manager_cmd_load_playlist),
13345         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
13346         capitalization for window titles.
13347         * widgets/rb-query-creator-properties.c: Add mnemonics
13348         to checkbutton labels.
13349         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
13350         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
13352 2005-08-28  Colin Walters  <walters@verbum.org>
13354         * data/rhythmbox.schemas: Delete search_text for library
13355         and iradio; this isn't a persistent value anymore.
13356         Closes #313757.
13357         
13358         * sources/rb-source.h:
13359         * sources/rb-source.c: Delete impl_can_search.
13361         * sources/rb-iradio-source.c: Delete search_text usage.
13362         * sources/rb-library-source.c: Ditto.
13364         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
13365         search when source is set, and just do rb_source_search in
13366         rb_source_header_search_cb.
13368         * shell/rb-shell.c (rb_shell_append_source): Don't
13369         initiate search.
13371         * shell/Makefile.am: Don't dist dashboard.c.
13373 2005-08-28  Colin Walters  <walters@verbum.org>
13375         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
13376         
13377 2005-08-28  Colin Walters  <walters@verbum.org>
13379         * data/org.gnome.Rhythmbox.service.in: New.
13381         * data/Makefile.am: Install service file.
13383         * configure.ac: Define DBUS_SERVICES_DIR.
13385         * autogen.sh: Set ACLOCAL_FLAGS.
13387         * macros/acinclude.m4: New.
13388         
13389 2005-08-28  Colin Walters  <walters@verbum.org>
13391         Initial patch from Jonathan Matthew; closes 313684.
13393         * rhythmdb/rhythmdb-tree.c:
13394         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
13395         (save_entry): Return on error.
13396         (rhythmdb_tree_save): Handle error when saving the
13397         db; additionally, handle errors from fclose and unlink,
13398         and print error too.
13400 2005-08-28  Colin Walters  <walters@verbum.org>
13402         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
13403         extra _.
13404         
13405 2005-08-28  Colin Walters  <walters@verbum.org>
13407         * configure.ac: Change iPod support to --with-ipod;
13408           automatically enable it if we have HAL.  Try to
13409           support both HAL 0.5 and HAL 0.2.  Break out
13410           totem-plparser into its own check so later we
13411           can do version tests there too.
13412           Kill dashboard support.
13413         
13414         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
13415         to support HAL > 0.5, but preserve the old code for HAL < 0.5
13416         Closes #310017.
13417         
13418         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
13419         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
13421         * sources/Makefile.am: Also handle
13422         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
13424         * shell/dashboard.c: Delete; someone should just write a little
13425         python shim which lists on the D-BUS interface and writes the
13426         stuff to Dashboard.  Even better Dashboard should be ported
13427         to D-BUS and do the listening itself, perhaps on an abstract
13428         "org.gnome.MusicPlayer" interface or something.
13430         * shell/rb-shell.c: Kill dashboard support.
13432 2005-08-28  Colin Walters  <walters@verbum.org>
13434         * remote/dbus/rb-print-playing.py: New file.
13436 2005-08-28  Colin Walters  <walters@verbum.org>
13438         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
13439         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
13441         * shell/rb-shell-player.h:
13442         * shell/rb-shell-player.c: Add playing-uri-changed signal.
13443         * shell/rb-shell-player.xml: Export it.
13445         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
13446         (rb_shell_error_quark): New.
13448         * shell/rb-shell.h: Prototype.  Also add RBShellError.
13449         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
13450         
13451 2005-08-28  Colin Walters  <walters@verbum.org>
13453         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
13454         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
13455         bonobo_unlock.
13456         (rb_remote_bonobo_preinit): Lock setting moved here.
13457         (rb_remote_bonobo_init): From here.
13459         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
13460         Also invoke handle_cmdline in the right place.
13461         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
13462         GFunc.
13464 2005-08-28  James Livingston  <jrl@ids.org.au>
13466         * NEWS: keep the NEWS file up to date, so we don't have to do it all
13467         when 0.9.1 comes around.
13469 2005-08-28  James Livingston  <jrl@ids.org.au>
13471         * iradio/rb-new-station-dialog.c:
13472         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
13473         bug 314477.
13475 2005-08-28  James Livingston  <jrl@ids.org.au>
13477         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
13479         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
13480         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
13481         is a song is longer than 60 minutes. Closes bug 313311.
13483 2005-08-27  James Livingston  <jrl@ids.org.au>
13485         * data/glade/create-playlist.glade:
13486         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
13487         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
13488         "minutes" as an option in the playlist limit menu.
13490         * rhythmdb/rhythmdb-query-model.c:
13491         (rhythmdb_query_model_class_init),
13492         (rhythmdb_query_model_set_property),
13493         (rhythmdb_query_model_get_property),
13494         (rhythmdb_query_model_update_limited_entries): Allow query models to
13495         have a time limit
13496         
13497         * shell/rb-playlist-manager.c:
13498         (rb_playlist_manager_set_automatic_playlist),
13499         (rb_playlist_manager_cmd_edit_automatic_playlist):
13500         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
13501         (rb_playlist_source_get_query), (impl_receive_drag),
13502         (rb_playlist_source_new_from_xml),
13503         (rb_playlist_source_save_to_xml),
13504         (rb_playlist_source_songs_sort_order_changed_cb),
13505         (rb_playlist_source_do_query):
13506         * sources/rb-playlist-source.h:
13507         * widgets/rb-query-creator.h: Allow playlists to be limited by time
13509 2005-08-27  James Livingston  <jrl@ids.org.au>
13511         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
13513         * configure.ac:
13514         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
13515         non-standard location. Closes bug 314640.
13517 2005-08-26  Colin Walters  <walters@verbum.org>
13518         
13519         Patch from Olivier Blin <oblin@mandriva.com>
13521         * widgets/eggnotificationbubble.c (draw_bubble): 
13522         Handle extreme-left case as well.
13523         
13524 2005-08-26  Colin Walters  <walters@verbum.org>
13526         * shell/rb-shell.c (idle_save_state): Don't do this.
13527         (rb_shell_construct): Remove idle calls to idle_save_state.
13528         We should save the playlists automatically when they're
13529         modified.
13530         (rb_shell_load_uri): Don't try to re-stat entry if it already
13531         exists.
13533         * shell/rb-shell-player.c: Keep track of entry we are attempting
13534         to play.
13535         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
13536         Don't double-free error.
13537         (rb_shell_player_play_entry): Signal errors.
13538         (rb_shell_player_entry_activated_cb): Ditto.
13539         (rb_shell_player_property_row_activated_cb): Ditto.
13540         (rb_shell_player_set_playing_source_internal): Unset attempted
13541         playing entry.
13542         (rb_shell_player_error): Refactor to be usable both sync and
13543         async.  Handle case where displayed entry differs from entry.
13544         (error_cb): Move GDK locking here.
13546         * shell/main.c (main): Drop most commandline arguments for D-BUS;
13547         people can just use dbus-send or python.  We only support focusing
13548         and loading files.
13549         (load_uri_args): New function, extracted from handle_cmdline.
13550         (dbus_load_uri, bonobo_load_uri): New functions.
13552         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
13553         appropriate.
13555         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
13556         * remote/dbus/rb-remote-dbus.c: Deleted.
13558         * player/rb-player-gst.c: Clear any pending idle handlers when we
13559         close the player.  Signal errors generated during open/play etc
13560         as synchronous errors.
13562         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
13563         
13564 2005-08-26  Colin Walters  <walters@verbum.org>
13566         * shell/rb-shell.c (rb_shell_present): Try harder.
13568 2005-08-26  Colin Walters  <walters@verbum.org>
13570         * shell/rb-shell.c (rb_shell_present): Try to handle
13571         GTK_MINOR_VERSION < 8.
13573 2005-08-26  James Livingston  <jrl@ids.org.au>
13575         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
13576         <pbrobinson@gmail.com>
13578 2005-08-26  Colin Walters  <walters@verbum.org>
13580         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
13582 2005-08-25  Colin Walters  <walters@verbum.org>
13584         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
13585         Delete.
13586         (rb_shell_player_do_next_with_rating): Move back into
13587         rb_shell_player_do_next.
13588         (rb_shell_player_entry_activated_cb): Remove call to
13589         rb_shell_player_auto_adjust_rating.
13590         (do_next_idle): Just call rb_shell_player_do_next.
13592         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
13594 2005-08-25  Colin Walters  <walters@verbum.org>
13596         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
13597         before gtk_window_present_with_time.
13598         
13599 2005-08-25  Colin Walters  <walters@verbum.org>
13601         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
13602         default.
13604         * shell/rb-shell.c (rb_shell_constructor): Adapted from
13605         rb_shell_construct.  This is so we only have to do g_object_new.
13606         (rb_shell_get_player): New function.
13607         (rb_shell_get_player_path): Ditto.
13608         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
13609         
13610         * shell/rb-shell.h: Prototype them.
13612         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
13613         export over D-BUS.
13614         (reemit_playing_signal): New function.
13615         (rb_shell_player_open_playlist_location): Use return values from
13616         rb_player_open, rb_player_close, etc. instead of checking "error".
13617         Return a gboolean on failure.
13618         (rb_shell_player_open_entry): Just open entry location, don't
13619         print to stderr.
13620         (rb_shell_player_play): Handle retval from rb_player_play.  Return
13621         a gboolean.
13622         (do_next_idle): Move logic for handling of end of playlist here.
13623         (rb_shell_player_set_playing_entry): Take a GError, return a
13624         gboolean.  Update to use gboolean return values.
13625         (rb_shell_player_do_previous): Delete lots of crazy duplicate
13626         logic.  Signal an error on end of playlist.  Also signal error if
13627         we're not playing.  Move heuristic for replaying the song into
13628         rb_shell_player_cmd_previous.
13629         (rb_shell_player_do_next_with_rating): Signal error on end of
13630         playlist.
13631         (rb_shell_player_do_next): Return errors.
13632         (rb_shell_player_cmd_previous): Heuristic for restarting song
13633         moved here; the idea is you generally only want that from the GUI.
13634         (rb_shell_player_cmd_play): Handle error.
13635         (rb_shell_player_playpause): Signal errors.
13636         (filter_mmkeys): Use rb_shell_player_cmd_previous and
13637         rb_shell_player_cmd_next in favor of the internal _do functions.
13638         
13639         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
13640         errors.  Update prototypes for above changes.
13642         * shell/main.c: More tightly integrate D-BUS; register various
13643         major singleton objects here.  Fix handle_cmdline so we only
13644         process extra arguments, not every argument.
13646         * shell/Makefile.am: Generate D-BUS glue headers.
13648         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
13649         into shell/main.c.  Now this file just acts as a client library.
13650         Not heavily tested.
13652         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
13653         Moved here.
13654         (rb_remote_bonobo_init): Move long CORBA rant here along with
13655         setting of lock functions.
13657         * player/rb-player-gst.c (rb_player_construct)
13658         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
13659         on error.
13661         * player/rb-player.h: Update prototypes.
13663         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
13664         rb-remote-bonobo.c.
13665         (rb_threads_init): Don't set gdk lock functions here.
13667 2005-08-25  James Livingston  <jrl@ids.org.au>
13669         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
13671         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
13672         * lib/rb-tree-dnd.h:
13673         * rhythmdb/rhythmdb-property-model.c:
13674         (rhythmdb_property_model_class_init),
13675         (rhythmdb_property_model_drag_source_init),
13676         (rhythmdb_property_model_iter_parent),
13677         (rhythmdb_property_model_row_draggable),
13678         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
13679         (rhythmdb_property_model_drag_data_get),
13680         (rhythmdb_property_model_enable_drag):
13681         * rhythmdb/rhythmdb-property-model.h:
13682         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
13683         (rb_playlist_manager_set_property), (append_new_playlist_source),
13684         (rb_playlist_manager_save_playlists):
13685         * shell/rb-shell.c: (rb_shell_construct),
13686         (sourcelist_drag_received_cb):
13687         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
13688         * sources/rb-playlist-source.c: (impl_receive_drag):
13689         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
13690         (rb_sourcelist_model_drag_dest_init),
13691         (rb_sourcelist_model_set_dnd_targets),
13692         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
13693         (rb_sourcelist_model_row_drop_position),
13694         (rb_sourcelist_model_get_drag_target),
13695         (rb_sourcelist_model_drag_data_get):
13696         * sources/rb-sourcelist-model.h:
13697         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
13698         (rb_sourcelist_init), (rb_sourcelist_get_property),
13699         (rb_sourcelist_selection_changed_cb):
13700         * sources/rb-sourcelist.h:
13701         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
13702         improve drag-n-drop support. Allow dragging of item from property
13703         views to the source list, to create new automatic playlists. Allow
13704         playlist re-ordering. Fix dragging from Rhythmbox to other
13705         applications. (Closes bug 147337)
13707 2005-08-24  Colin Walters  <walters@verbum.org>
13709         Patch from Olivier Blin <oblin@mandriva.com>
13711         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
13712         correctly in the case where the window is next to monitor edge.
13714 2005-08-24  James Livingston  <jrl@ids.org.au>
13716         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13717         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
13718         a gobject property to get the query model that backs the playlist.
13720 2005-08-24  James Livingston  <jrl@ids.org.au>
13722         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
13723         (handle_playlist_entry_into_playlist_cb),
13724         (rb_playlist_manager_playlist_entries_changed): Disable the "create
13725         audio cd" menu item when a non-playlist source is selected, or the
13726         playlist is empty. (Closes Bug 313253)
13728 2005-08-24  James Livingston  <jrl@ids.org.au>
13730         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
13731         Fix the playlist length checkso it doesn't report 0 for automatic
13732         playlists. This was stopping automati playlists being burnt to cd.
13734 2005-08-24  James Livingston  <jrl@ids.org.au>
13736         * configure.ac:
13737         * sources/rb-playlist-source-recorder.c: (burn_cd):
13738         * sources/rb-playlist-source.c:
13739         (rb_playlist_source_songs_sort_order_changed_cb):
13740         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
13741         more warnings that occur when compiling RPMs on Fedora.
13743 2005-08-24  James Livingston  <jrl@ids.org.au>
13745         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
13746         was stopping some distros gcc version compiling.
13748 2005-08-24  James Livingston  <jrl@ids.org.au>
13750         * NEWS:
13751         * data/glade/create-playlist.glade:
13752         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
13753         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
13754         (rhythmdb_query_free), (rhythmdb_query_serialize),
13755         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
13756         * rhythmdb/rhythmdb.h:
13757         * shell/rb-playlist-manager.c:
13758         (rb_playlist_manager_set_automatic_playlist),
13759         (rb_playlist_manager_cmd_edit_automatic_playlist):
13760         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
13761         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
13762         (impl_receive_drag), (rb_playlist_source_new_from_xml),
13763         (rb_playlist_source_save_to_xml),
13764         (rb_playlist_source_songs_sort_order_changed_cb),
13765         (rb_playlist_source_do_query):
13766         * sources/rb-playlist-source.h:
13767         * widgets/Makefile.am:
13768         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
13769         (rb_entry_view_set_sorting_order):
13770         * widgets/rb-query-creator-private.h:
13771         * widgets/rb-query-creator-properties.c:
13772         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
13773         (stringCriteriaGetWidgetData),
13774         (escapedStringCriteriaSetWidgetData),
13775         (escapedStringCriteriaGetWidgetData), (set_rating_score),
13776         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
13777         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
13778         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
13779         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
13780         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
13781         (relativeTimeCriteriaCreateWidget),
13782         (relativeTimeCriteriaSetWidgetData),
13783         (relativeTimeCriteriaGetWidgetData):
13784         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
13785         (rb_query_creator_class_init), (rb_query_creator_constructor),
13786         (rb_query_creator_dispose), (rb_query_creator_set_property),
13787         (rb_query_creator_get_property), (rb_query_creator_load_query),
13788         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
13789         (get_entry_for_property), (rb_query_creator_get_query),
13790         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
13791         (limit_toggled_cb), (lookup_row_by_widget),
13792         (remove_button_click_cb), (append_row),
13793         (get_property_index_from_proptype), (select_criteria_from_value),
13794         (property_option_menu_changed), (create_property_option_menu),
13795         (create_criteria_option_menu), (sort_option_menu_changed),
13796         (setup_sort_option_menu):
13797         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
13798         playlists. The two most notable improvements are 1) adding more
13799         properties to the query creator, making it much easier to add more in
13800         the future, and 2) allow playlists to be sorted, from the query editor
13801         if they gave limits, and by clicking on column headers if they don't.
13803         Files added: widgets/rb-query-creator-private.h,
13804         sources/rb-query-creator-properties.c
13806 2005-08-21  James Livingston  <jrl@ids.org.au>
13808         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
13809         error=NULL. This stops some crashes.
13811 2005-08-19  Colin Walters  <walters@verbum.org>
13813         Patch from Olivier Blin <oblin@mandriva.com>
13815         * widgets/eggnotificationbubble.c (force_window): Support top
13816         orientation.
13817         * widgets/eggnotificationbubble.h: Remove
13818         egg_notification_bubble_force_window from header.
13819         
13820 2005-08-18  James Livingston  <jrl@ids.org.au>
13822         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
13823         with the changes since then.
13825 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
13827         * shell/rb-shell-player.c: (rb_shell_player_init),
13828         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
13829         (rb_shell_player_volume_widget_changed_cb):
13830         * sources/rb-iradio-source.c:
13831         * sources/rb-library-source.c:
13832         * sources/rb-playlist-source.c:
13833         * widgets/Makefile.am:
13834         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
13835         (bacon_volume_button_class_init), (bacon_volume_button_init),
13836         (bacon_volume_button_dispose), (bacon_volume_button_new),
13837         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
13838         (bacon_volume_button_scroll), (bacon_volume_button_press),
13839         (cb_button_timeout), (cb_button_press), (cb_button_release),
13840         (bacon_volume_release_grab), (cb_dock_press),
13841         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
13842         (bacon_volume_scale_new), (bacon_volume_scale_press),
13843         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
13844         * widgets/bacon-volume.h:
13845         * widgets/rb-volume.c:
13846         * widgets/rb-volume.h:
13847           Use BaconVolumeButton (#300867).
13849 2005-08-17  James Livingston  <jrl@ids.org.au>
13851         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
13852         (rhythmdb_process_metadata_load): don't reset the First Seen time
13853         whenever we recheck the metadata.
13855 2005-08-17  James Livingston  <jrl@ids.org.au>
13857         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
13858         temporary workaround to stop crashes when trying to burn an empty
13859         playlist. Doesn't disable the menu item which is the better solution
13860         (Bug 313253).
13862 2005-08-15  James Livingston  <jrl@ids.org.au>
13864         * shell/rb-source-header.c: (rb_source_header_init),
13865         (rb_source_header_sync_control_state),
13866         (rb_source_header_search_activate_cb):
13867         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
13868         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
13869         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
13870         (rb_search_entry_init), (rb_search_entry_searching),
13871         (rb_search_entry_activate_cb):
13872         * widgets/rb-search-entry.h: Move focus to the entry view when user
13873         presses enter in the search box. Patch from Paolo Borelli
13874         <pborelli@katamail.com> (Closes bug 128110)
13876 2005-08-15  James Livingston  <jrl@ids.org.au>
13878         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
13879         (rb_playlist_manager_new_playlist):
13880         * shell/rb-playlist-manager.h:
13881         * shell/rb-shell.c: (rb_shell_construct),
13882         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
13883         the source list to be shown when a new playlist is created. (Closes
13884         bug 161935)
13886 2005-08-15  James Livingston  <jrl@ids.org.au>
13888         * widgets/rb-header.c: (rb_header_init),
13889         (rb_header_set_show_timeline): disable the seek slider, rather than
13890         hiding it, which more closely follows the HIG. (Closes bug 139102)
13892 2005-08-13  Colin Walters  <walters@verbum.org>
13894         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
13895         rb_shell_hidden_notify.
13896         (rb_shell_hidden_notify): Notify if the shell is hidden.
13897         (rb_shell_set_visibility_impl): Debug goo.
13899         * shell/rb-shell.h: Export rb_shell_hidden_notify.
13901         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
13902         when the user clicks on notification.
13904         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
13905         CD burn is complete.
13906         (rb_playlist_source_recorder_finalize): Unref shell.
13907         (rb_playlist_source_recorder_new): Take shell.
13909         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
13910         Pass shell to RBPlaylistSourceRecorder.
13911         
13912 2005-08-13  Colin Walters  <walters@verbum.org>
13914         * lib/rb-thread.c:
13915         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
13916           time to convert.
13918 2005-08-13  Colin Walters  <walters@verbum.org>
13920         * widgets/eggnotificationbubble.h:
13921         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
13922         * widgets/eggtrayicon.c:
13923         * widgets/eggtrayicon.h: Add notification API.
13924         * shell/rb-tray-icon.c:
13925         * shell/rb-tray-icon.h: Add notification API.
13926         * shell/rb-shell.c: Notify on song change.
13928 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
13930         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
13931         Correct an inversion of two lines causing NULL to be unreffed
13933 ============ Version 0.9.0
13935 2005-08-10  Bastien Nocera  <hadess@hadess.net>
13937         * configure.ac: 0.9.0, whee!
13938         * NEWS: badly updated
13939         * remote/bonobo/Makefile.am:
13940         * remote/bonobo/rb-remote-bonobo.h:
13941         * shell/Makefile.am:
13942         * shell/main.c: make distcheck fixes