patch by: Przemysław Grzegorczyk <pgrzegorczyk@gmail.com>
[rhythmbox.git] / ChangeLog
blob25cf4ba9a4f2af9fc14e91d0f79585b6a5f9fdb5
1 2006-07-17  James Livingston  <doclivingston@gmail.com>
3         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
5         * data/glade/playlist-save.glade: Make the "playlist save" dialog use
6         Save not Open for the button. Fixes #345816
8 2006-07-17  James Livingston  <doclivingston@gmail.com>
10         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
12         * sources/rb-library-source.c: (impl_get_config_widget): Fix the build
13         when track transfer is disabled. Fixes #347705
15 2006-07-17  James Livingston  <doclivingston@gmail.com>
17         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
19         * sources/rb-library-source.c: (impl_get_config_widget): fix build
20         with track transfer disabled. Fixes #347705
22 2006-07-14  William Jon McCann  <mccann@jhu.edu>
24         * rhythmdb/rhythmdb-query-model.c:
25         (rhythmdb_query_model_set_property):
26         * shell/main.c: (main):
27         * shell/rb-shell-clipboard.c: (unset_source_internal),
28         (rb_shell_clipboard_finalize),
29         (rb_shell_clipboard_set_source_internal),
30         (rb_shell_clipboard_set_property), (rebuild_playlist_menu):
31         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
32         (rb_shell_player_set_db_internal),
33         (rb_shell_player_set_queue_source_internal),
34         (rb_shell_player_finalize), (rb_shell_player_set_property):
35         * shell/rb-shell.c: (rb_shell_finalize), (construct_sources):
36         * sources/rb-auto-playlist-source.c:
37         (rb_auto_playlist_source_constructor),
38         (rb_auto_playlist_source_new_from_xml):
39         * sources/rb-daap-source.c: (create_pixbufs):
40         * sources/rb-ipod-source.c:
41         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
42         * sources/rb-library-source.c:
43         (rb_library_source_add_child_source):
44         * sources/rb-play-queue-source.c:
45         (rb_play_queue_sync_playing_state),
46         (rb_play_queue_source_track_info_cell_data_func):
47         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
48         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
49         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
50         (impl_can_add_to_queue), (impl_add_to_queue):
51         * sources/rb-source.c: (rb_source_set_property):
52         * sources/rb-sourcelist.c: (rb_sourcelist_append):
53         * sources/rb-static-playlist-source.c:
54         (rb_static_playlist_source_constructor),
55         (rb_static_playlist_source_load_from_xml):
56         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
57         * widgets/rb-entry-view.c: (rb_entry_view_init),
58         (rb_entry_view_finalize), (rb_entry_view_append_column),
59         (rb_entry_view_constructor):
60         * widgets/rb-song-info.c: (rb_song_info_set_property):
61         Fix leaks.  From bug #347446.
63 2006-07-14  William Jon McCann  <mccann@jhu.edu>
65         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize),
66         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
67         (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry),
68         (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb),
69         (add_decoding_pipeline), (profile_bin_find_encoder),
70         (get_profile_from_mime_type), (extract_track), (transcode_track),
71         (rb_encoder_gst_encode):
72         * backends/gstreamer/rb-encoder-gst.h:
73         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init),
74         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
75         (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb),
76         (rb_player_gst_construct):
77         * backends/gstreamer/rb-player-gst.h:
78         * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel):
79         * backends/rb-encoder.h:
80         * backends/rb-player.c: (_rb_player_emit_tick):
81         * backends/rb-player.h:
82         * daapsharing/rb-daap-connection.c: (build_message),
83         (actual_http_response_handler), (http_response_handler),
84         (http_get), (entry_set_string_prop), (emit_progress_idle),
85         (handle_server_info), (handle_database_info),
86         (handle_song_listing), (handle_playlists),
87         (handle_playlist_entries), (rb_daap_connection_new),
88         (connected_cb), (rb_daap_connection_do_something),
89         (rb_daap_connection_get_headers), (rb_daap_connection_dispose),
90         (rb_daap_connection_get_property):
91         * daapsharing/rb-daap-connection.h:
92         * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run),
93         (rb_daap_collision_dialog_new_run):
94         * daapsharing/rb-daap-dialog.h:
95         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
96         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
97         (DigestToString), (rb_daap_hash_generate):
98         * daapsharing/rb-daap-hash.h:
99         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
100         (resolve_cb), (browse_cb):
101         * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb),
102         (resolve_cb), (rb_daap_mdns_browser_resolve),
103         (rb_daap_mdns_browser_start), (resolver_free):
104         * daapsharing/rb-daap-mdns-browser.h:
105         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb):
106         * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb),
107         (publish_cb):
108         * daapsharing/rb-daap-mdns-publisher.h:
109         * daapsharing/rb-daap-share.c: (name_collision_cb),
110         (rb_daap_share_process_playlist), (rb_daap_share_dispose),
111         (message_set_from_rb_daap_structure), (content_codes_cb),
112         (session_id_validate), (logout_cb), (update_cb),
113         (add_entry_to_mlcl), (add_playlist_to_mlcl),
114         (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb),
115         (rb_daap_share_server_start), (rb_daap_share_server_stop),
116         (rb_daap_share_publish_start):
117         * daapsharing/rb-daap-share.h:
118         * daapsharing/rb-daap-sharing.c: (share_name_changed_cb),
119         (share_password_changed_cb), (rb_daap_sharing_shutdown):
120         * daapsharing/rb-daap-sharing.h:
121         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init),
122         (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps),
123         (rb_daap_src_open):
124         * daapsharing/rb-daap-structure.c: (rb_daap_structure_add),
125         (rb_daap_structure_node_serialize), (rb_daap_structure_serialize),
126         (rb_daap_structure_parse_container_buffer),
127         (rb_daap_structure_parse), (gnode_find_node),
128         (rb_daap_structure_find_item), (rb_daap_structure_find_node),
129         (print_rb_daap_item):
130         * daapsharing/rb-daap-structure.h:
131         * iradio/rb-new-station-dialog.c:
132         (rb_new_station_dialog_class_init), (rb_new_station_dialog_init),
133         (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb),
134         (rb_new_station_dialog_text_changed):
135         * iradio/rb-station-properties-dialog.c:
136         (rb_station_properties_dialog_init),
137         (rb_station_properties_dialog_new),
138         (rb_station_properties_dialog_response_cb),
139         (rb_station_properties_dialog_get_current_entry),
140         (rb_station_properties_dialog_rated_cb),
141         (rb_station_properties_dialog_update_rating),
142         (rb_station_properties_dialog_update_playback_error),
143         (rb_station_properties_dialog_sync_entries):
144         * metadata/rb-metadata-common.c: (rb_metadata_error_quark):
145         * metadata/rb-metadata-dbus-client.c: (ping_metadata_service),
146         (start_metadata_service), (rb_metadata_load), (rb_metadata_set),
147         (rb_metadata_can_save), (rb_metadata_save):
148         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load),
149         (rb_metadata_dbus_can_save), (rb_metadata_dbus_save),
150         (_handle_message), (_new_connection), (main):
151         * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message),
152         (rb_metadata_dbus_read_from_message):
153         * metadata/rb-metadata-dbus.h:
154         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb),
155         (rb_add_id3_tagger), (rb_metadata_init),
156         (rb_metadata_gst_tag_to_field), (make_undecodable_error),
157         (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb),
158         (rb_metadata_gst_new_decoded_pad_cb),
159         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
160         * metadata/sj-error.c: (sj_error_quark):
161         * metadata/sj-error.h:
162         * metadata/sj-metadata-musicbrainz.c:
163         (sj_metadata_musicbrainz_instance_init),
164         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
165         (get_rdf), (lookup_cd):
166         * metadata/sj-metadata.c: (sj_metadata_get_type):
167         * metadata/sj-structures.c:
168         * metadata/sj-structures.h:
169         * metadata/test-metadata.c: (load_metadata_cb), (main):
170         * podcast/rb-feed-podcast-properties-dialog.c:
171         (rb_feed_podcast_properties_dialog_init),
172         (rb_feed_podcast_properties_dialog_update_title):
173         * podcast/rb-feed-podcast-properties-dialog.h:
174         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
175         (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb),
176         (rb_new_podcast_dialog_text_changed):
177         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
178         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
179         (rb_podcast_manager_set_property),
180         (rb_podcast_manager_get_property), (rb_podcast_manager_new),
181         (rb_podcast_manager_download_entry),
182         (rb_podcast_manager_update_feeds),
183         (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file),
184         (rb_podcast_manager_copy_post),
185         (rb_podcast_manager_thread_parse_feed),
186         (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata),
187         (rb_podcast_manager_db_entry_added_cb), (write_job_data),
188         (download_info_free), (download_info_new), (start_job),
189         (rb_podcast_manager_cancel_all), (end_job), (cancel_job),
190         (download_progress_cb), (download_progress_update_cb),
191         (rb_podcast_manager_remove_feed),
192         (rb_podcast_manager_db_entry_deleted_cb),
193         (rb_podcast_manager_cancel_download),
194         (rb_podcast_manager_update_synctime),
195         (rb_podcast_manager_set_remove_files),
196         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
197         (rb_podcast_manager_abort_subscribe),
198         (rb_podcast_manager_get_podcast_dir):
199         * podcast/rb-podcast-manager.h:
200         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
201         (rb_validate_channel_propert), (rb_validate_item_propert),
202         (rb_podcast_parser_start_element), (rb_podcast_parser_end_element),
203         (rb_podcast_parser_characters), (rb_podcast_parse_load_feed),
204         (rb_podcast_parse_date), (rb_podcast_parse_time),
205         (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free):
206         * podcast/rb-podcast-parse.h:
207         * podcast/rb-podcast-properties-dialog.c:
208         (rb_podcast_properties_dialog_init),
209         (rb_podcast_properties_dialog_get_current_entry),
210         (rb_podcast_properties_dialog_update_title),
211         (rb_podcast_properties_dialog_update_duration),
212         (rb_podcast_properties_dialog_update_date):
213         * podcast/rb-podcast-properties-dialog.h:
214         * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend),
215         (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate),
216         (g_sequence_remove_range), (g_sequence_get_ptr_at_pos),
217         (g_sequence_ptr_move), (g_sequence_ptr_sort_changed),
218         (g_sequence_search), (g_sequence_set_aggregate_data),
219         (g_sequence_node_update_fields), (g_sequence_node_rotate),
220         (find_min), (g_sequence_node_find_by_pos),
221         (g_sequence_node_find_closest), (g_sequence_node_free),
222         (g_sequence_node_split), (g_sequence_node_insert_before),
223         (g_sequence_node_get_length), (g_sequence_node_remove),
224         (g_sequence_node_calc_height), (g_sequence_node_insert_sorted),
225         (g_sequence_calc_tree_height):
226         * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown),
227         (rb_refstring_get):
228         * rhythmdb/rb-refstring.h:
229         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
230         (rhythmdb_gda_init), (dump_model), (execute_query),
231         (execute_nonquery), (ensure_table_exists), (collect_value_for_sql),
232         (collect_value_from_sql), (_initialize), (rhythmdb_gda_new),
233         (rhythmdb_gda_load), (rhythmdb_gda_entry_new),
234         (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get),
235         (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location),
236         (translate_query), (do_query), (rhythmdb_gda_do_full_query):
237         * rhythmdb/rhythmdb-gda.h:
238         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
239         (rhythmdb_finalize_monitoring), (monitor_entry_file),
240         (monitor_library_directory), (rhythmdb_check_changed_file),
241         (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb),
242         (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted),
243         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb):
244         * rhythmdb/rhythmdb-private.h:
245         * rhythmdb/rhythmdb-property-model.c:
246         (rhythmdb_property_model_set_property),
247         (rhythmdb_property_model_row_inserted_cb),
248         (rhythmdb_property_model_prop_changed_cb),
249         (rhythmdb_property_model_compare),
250         (rhythmdb_property_model_get_value),
251         (rhythmdb_property_model_iter_nth_child),
252         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
253         (rhythmdb_property_model_drag_data_get),
254         (rhythmdb_property_model_enable_drag),
255         (rhythmdb_property_model_column_get_type):
256         * rhythmdb/rhythmdb-property-model.h:
257         * rhythmdb/rhythmdb-query-model.c:
258         (rhythmdb_query_model_class_init),
259         (rhythmdb_query_model_set_property),
260         (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain),
261         (rhythmdb_query_model_has_pending_changes),
262         (rhythmdb_query_model_entry_changed_cb),
263         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
264         (rhythmdb_query_model_add_entry),
265         (rhythmdb_query_model_remove_from_main_list),
266         (rhythmdb_query_model_remove_entry),
267         (rhythmdb_query_model_drag_data_received),
268         (rhythmdb_query_model_row_drop_possible),
269         (rhythmdb_query_model_compute_status_normal),
270         (rhythmdb_query_model_set_sort_order),
271         (rhythmdb_query_model_get_entry_index),
272         (rhythmdb_query_model_base_row_inserted),
273         (rhythmdb_query_model_base_row_deleted),
274         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
275         (rhythmdb_query_model_date_sort_func),
276         (rhythmdb_query_model_within_limit):
277         * rhythmdb/rhythmdb-query-model.h:
278         * rhythmdb/rhythmdb-query-results.c:
279         (rhythmdb_query_results_query_complete):
280         * rhythmdb/rhythmdb-query-results.h:
281         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy),
282         (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist),
283         (rhythmdb_query_free), (rhythmdb_read_encoded_property),
284         (rhythmdb_query_serialize), (rhythmdb_query_deserialize),
285         (rhythmdb_query_preprocess), (rhythmdb_query_get_type):
286         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize),
287         (rhythmdb_tree_parser_start_element),
288         (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load),
289         (save_entry), (save_entry_type), (save_unknown_entry_type),
290         (rhythmdb_tree_save), (rhythmdb_tree_entry_new),
291         (rhythmdb_tree_property_new), (get_genres_hash_for_type),
292         (get_or_create_genre), (remove_entry_from_album),
293         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
294         (remove_one_song), (rhythmdb_tree_entry_delete_by_type),
295         (search_match_properties), (evaluate_conjunctive_subquery),
296         (clone_remove_ptr_array_index), (conjunctive_query_albums),
297         (conjunctive_query_artists), (conjunctive_query_genre),
298         (conjunctive_query), (split_query_by_disjunctions),
299         (do_query_recurse), (rhythmdb_tree_entry_foreach),
300         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
301         (hash_tree_artists_foreach), (hash_tree_genres_foreach),
302         (rhythmdb_hash_tree_foreach),
303         (rhythmdb_tree_entry_type_registered):
304         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
305         (metadata_field_from_prop), (extract_gtype_from_enum_entry),
306         (extract_nice_name_from_enum_entry), (rhythmdb_init),
307         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
308         (rhythmdb_shutdown), (rhythmdb_finalize),
309         (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb),
310         (rhythmdb_entry_insert), (rhythmdb_entry_new),
311         (rhythmdb_entry_example_new),
312         (set_metadata_string_default_unknown), (is_ghost_entry),
313         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
314         (rhythmdb_process_metadata_load),
315         (rhythmdb_process_queued_entry_set_event),
316         (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb),
317         (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata),
318         (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main),
319         (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save),
320         (rhythmdb_entry_set), (rhythmdb_entry_set_internal),
321         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
322         (rhythmdb_entry_delete_by_type),
323         (rhythmdb_propid_from_nice_elt_name),
324         (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query),
325         (rhythmdb_compute_status_normal),
326         (rhythmdb_entry_register_type_alias),
327         (rhythmdb_entry_type_foreach), (song_can_sync_metadata),
328         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
329         (rhythmdb_entry_import_error_get_type),
330         (rhythmdb_entry_podcast_post_get_type),
331         (rhythmdb_entry_podcast_feed_get_type),
332         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
333         (rhythmdb_sync_library_location), (rhythmdb_entry_get_string),
334         (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type):
335         * rhythmdb/rhythmdb.h:
336         * shell/main.c: (main), (load_uri_args), (handle_dbus_message):
337         * shell/rb-history.c: (rb_history_new), (rb_history_set_playing),
338         (rb_history_limit_size):
339         * shell/rb-history.h:
340         * shell/rb-play-order-linear-loop.c:
341         (rb_linear_play_order_loop_get_next):
342         * shell/rb-play-order-linear-loop.h:
343         * shell/rb-play-order-linear.c:
344         * shell/rb-play-order-linear.h:
345         * shell/rb-play-order-queue.c:
346         (rb_queue_play_order_playing_entry_removed):
347         * shell/rb-play-order-queue.h:
348         * shell/rb-play-order-random-by-age-and-rating.c:
349         * shell/rb-play-order-random-by-age-and-rating.h:
350         * shell/rb-play-order-random-by-age.c:
351         (rb_random_by_age_get_entry_weight):
352         * shell/rb-play-order-random-by-age.h:
353         * shell/rb-play-order-random-by-rating.c:
354         * shell/rb-play-order-random-by-rating.h:
355         * shell/rb-play-order-random-equal-weights.c:
356         * shell/rb-play-order-random-equal-weights.h:
357         * shell/rb-play-order-random.c: (rb_random_filter_history),
358         (rb_random_get_total_weight), (rb_random_play_order_get_next),
359         (rb_random_db_changed), (rb_random_playing_entry_changed),
360         (rb_random_db_entry_deleted):
361         * shell/rb-play-order-shuffle.c: (remove_from_history),
362         (add_randomly_to_history), (get_query_model_contents),
363         (rb_shuffle_playing_entry_changed):
364         * shell/rb-play-order-shuffle.h:
365         * shell/rb-play-order.c: (rb_play_order_class_init),
366         (rb_play_order_set_property),
367         (rb_play_order_playing_source_changed),
368         (rb_play_order_query_model_changed_cb),
369         (rb_play_order_query_model_changed),
370         (rb_play_order_entry_added_cb), (default_playing_entry_removed):
371         * shell/rb-play-order.h:
372         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
373         (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager),
374         (rb_playlist_manager_set_property),
375         (rb_playlist_manager_parse_file),
376         (rb_playlist_manager_load_playlists),
377         (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data),
378         (rb_playlist_manager_save_playlists),
379         (rb_playlist_manager_new_playlist),
380         (rb_playlist_manager_new_playlist_from_selection_data),
381         (rb_playlist_manager_cmd_new_automatic_playlist),
382         (rb_playlist_manager_cmd_edit_automatic_playlist),
383         (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist),
384         (save_playlist_response_cb), (export_set_extension_cb),
385         (filter_get_export_filter_label), (setup_format_menu),
386         (rb_playlist_manager_cmd_save_playlist),
387         (rb_playlist_manager_get_playlists),
388         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
389         (rb_playlist_manager_delete_playlist),
390         (rb_playlist_manager_export_playlist):
391         * shell/rb-playlist-manager.h:
392         * shell/rb-removable-media-manager.c:
393         (rb_removable_media_manager_class_init),
394         (rb_removable_media_manager_dispose),
395         (rb_removable_media_manager_finalize),
396         (rb_removable_media_manager_set_property),
397         (split_drive_from_cdda_uri),
398         (rb_removable_media_manager_playing_uri_changed_cb),
399         (rb_removable_media_manager_load_media),
400         (rb_removable_media_manager_volume_mounted_cb),
401         (remove_volume_by_source),
402         (rb_removable_media_manager_source_deleted_cb),
403         (rb_removable_media_manager_volume_unmounted_cb),
404         (rb_removable_media_manager_mount_volume),
405         (rb_removable_media_manager_set_uimanager),
406         (rb_removable_media_manager_scan), (do_transfer),
407         (rb_removable_media_manager_cmd_copy_tracks):
408         * shell/rb-removable-media-manager.h:
409         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
410         (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor),
411         (rb_shell_clipboard_sync),
412         (rb_shell_clipboard_idle_poll_deletions),
413         (rb_shell_clipboard_cmd_add_to_playlist_new),
414         (rb_shell_clipboard_playlist_add_cb),
415         (rb_shell_clipboard_playlist_deleted_cb),
416         (rb_shell_clipboard_playlist_renamed_cb),
417         (rb_shell_clipboard_playlist_visible_cb),
418         (rb_shell_clipboard_playlist_added_cb):
419         * shell/rb-shell-player.c: (rb_shell_player_class_init),
420         (rb_shell_player_constructor), (volume_pre_unmount_cb),
421         (rb_shell_player_init), (rb_shell_player_set_property),
422         (rb_shell_player_new), (rb_shell_player_open_playlist_url),
423         (rb_shell_player_open_location),
424         (rb_shell_player_set_playing_entry),
425         (rb_shell_player_play_order_update_cb),
426         (rb_shell_player_jump_to_current), (rb_shell_player_do_previous),
427         (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek),
428         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
429         (rb_shell_player_cmd_play), (rb_shell_player_playpause),
430         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
431         (gconf_song_position_slider_visibility_changed),
432         (rb_shell_player_entry_activated_cb),
433         (rb_shell_player_property_row_activated_cb),
434         (rb_shell_player_entry_changed_cb),
435         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
436         (actually_set_playing_source),
437         (rb_shell_player_set_playing_source_internal),
438         (rb_shell_player_get_playing_song_duration), (eos_cb),
439         (rb_shell_player_error), (error_cb), (info_available_cb),
440         (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb),
441         (rb_shell_player_error_get_type):
442         * shell/rb-shell-player.h:
443         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
444         (rb_shell_preferences_append_page),
445         (share_check_button_toggled_cb),
446         (password_check_button_toggled_cb), (add_daap_preferences),
447         (rb_shell_preferences_column_check_changed_cb),
448         (rb_shell_preferences_sync_column_button),
449         (rb_shell_preferences_sync),
450         (rb_shell_preferences_browser_views_activated_cb):
451         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init),
452         (rb_shell_set_property), (rb_shell_get_property),
453         (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize),
454         (construct_widgets), (construct_load_ui), (rb_shell_constructor),
455         (rb_shell_get_visibility), (rb_shell_set_visibility),
456         (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb),
457         (rb_shell_register_entry_type_for_source),
458         (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb),
459         (rb_shell_playing_entry_changed_cb), (rb_shell_select_source),
460         (rb_shell_player_stream_song_changed_cb),
461         (rb_shell_set_window_title),
462         (rb_shell_view_smalldisplay_changed_cb),
463         (rb_shell_view_queue_as_sidebar_changed_cb),
464         (rb_shell_cmd_plugins), (add_to_library_response_cb),
465         (rb_shell_cmd_add_folder_to_library),
466         (rb_shell_cmd_add_file_to_library),
467         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
468         (sidepane_visibility_changed_cb), (toolbar_state_changed_cb),
469         (rb_shell_jump_to_entry_with_source), (tray_embedded_cb),
470         (session_die_cb), (save_yourself_cb), (rb_shell_session_init),
471         (handle_playlist_entry_cb), (rb_shell_load_uri),
472         (rb_shell_add_to_queue), (rb_shell_present),
473         (rb_shell_get_song_properties), (rb_shell_set_song_property),
474         (rb_shell_volume_widget_changed_cb),
475         (rb_shell_player_volume_changed_cb),
476         (rb_shell_ui_location_get_type):
477         * shell/rb-shell.h:
478         * shell/rb-source-header.c: (ui_manager_add_widget_cb),
479         (rb_source_header_init), (rb_source_header_set_source_internal),
480         (rb_source_state_sync), (rb_source_header_clear_search),
481         (rb_source_header_view_browser_changed_cb):
482         * shell/rb-source-header.h:
483         * shell/rb-statusbar.c: (rb_statusbar_construct),
484         (rb_statusbar_init), (rb_statusbar_finalize),
485         (rb_statusbar_set_property), (rb_statusbar_set_progress),
486         (rb_statusbar_source_status_changed_cb):
487         * shell/rb-statusbar.h:
488         * shell/rb-tray-icon.c: (rb_tray_icon_init),
489         (rb_tray_icon_constructor), (rb_tray_icon_finalize),
490         (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb),
491         (rb_tray_icon_get_geom), (rb_tray_icon_notify):
492         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor),
493         (rb_audiocd_create_track_entry):
494         * sources/rb-auto-playlist-source.c:
495         (rb_auto_playlist_source_class_init),
496         (rb_auto_playlist_source_constructor),
497         (rb_auto_playlist_source_new_from_xml), (impl_reset_filters),
498         (impl_search), (impl_receive_drag), (impl_save_contents_to_xml),
499         (rb_auto_playlist_source_query_complete_cb),
500         (rb_auto_playlist_source_do_query),
501         (rb_auto_playlist_source_set_query),
502         (rb_auto_playlist_source_browser_changed_cb),
503         (search_action_to_prop):
504         * sources/rb-auto-playlist-source.h:
505         * sources/rb-browser-source.c: (rb_browser_source_init),
506         (rb_browser_source_dispose), (search_action_to_prop),
507         (rb_browser_source_constructor),
508         (rb_browser_source_cmd_choose_genre),
509         (rb_browser_source_cmd_choose_artist),
510         (rb_browser_source_cmd_choose_album), (impl_search),
511         (rb_browser_source_browser_changed_cb),
512         (rb_browser_source_do_query):
513         * sources/rb-browser-source.h:
514         * sources/rb-daap-source.c: (rb_daap_source_class_init),
515         (rb_daap_source_init), (rb_daap_source_dispose),
516         (rb_daap_source_set_property), (start_browsing),
517         (rb_daap_sources_init), (rb_daap_sources_shutdown),
518         (rb_daap_source_connection_cb), (rb_daap_source_activate),
519         (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri),
520         (rb_daap_source_get_headers), (rb_daap_source_get_status):
521         * sources/rb-daap-source.h:
522         * sources/rb-import-errors-source.h:
523         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
524         (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist),
525         (add_ipod_song_to_db), (load_ipod_db_idle_cb),
526         (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path),
527         (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions),
528         (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod),
529         (ipod_mkdir_with_parents), (build_ipod_dir_name),
530         (generate_ipod_filename), (ipod_path_from_unix_path),
531         (impl_delete_thyself):
532         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
533         (rb_iradio_source_init), (rb_iradio_source_constructor),
534         (rb_iradio_source_new), (guess_uri_scheme),
535         (rb_iradio_source_add_station),
536         (rb_iradio_source_async_update_play_statistics),
537         (genre_selection_reset_cb), (rb_iradio_source_do_query),
538         (stations_view_drag_data_received_cb),
539         (rb_iradio_source_cmd_new_station):
540         * sources/rb-iradio-source.h:
541         * sources/rb-library-source.c: (rb_library_source_dispose),
542         (rb_library_source_constructor),
543         (rb_library_source_location_button_clicked_cb),
544         (impl_get_config_widget), (rb_library_source_library_location_cb),
545         (sanitize_path), (filepath_parse_pattern),
546         (layout_example_label_update),
547         (rb_library_source_layout_filename_changed), (build_filename),
548         (impl_can_paste), (impl_paste),
549         (rb_library_source_add_child_source),
550         (rb_library_source_sync_child_sources):
551         * sources/rb-library-source.h:
552         * sources/rb-missing-files-source.h:
553         * sources/rb-play-queue-source.c:
554         (rb_play_queue_source_constructor), (impl_show_entry_view_popup):
555         * sources/rb-play-queue-source.h:
556         * sources/rb-playlist-source-recorder.c:
557         (rb_playlist_source_recorder_class_init), (update_speed_combobox),
558         (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc),
559         (rb_playlist_source_recorder_init),
560         (rb_playlist_source_recorder_new):
561         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
562         (rb_playlist_source_save_playlist),
563         (rb_playlist_source_entry_added_cb),
564         (rb_playlist_source_set_query_model),
565         (rb_playlist_source_add_to_map):
566         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
567         (rb_podcast_source_init), (rb_podcast_source_dispose),
568         (rb_podcast_source_finalize), (search_action_to_prop),
569         (rb_podcast_source_constructor), (rb_podcast_source_set_property),
570         (rb_podcast_source_get_property), (rb_podcast_source_new),
571         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
572         (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb),
573         (rb_podcast_source_show_browser), (construct_query_from_selection),
574         (rb_podcast_source_do_query), (impl_get_config_widget),
575         (rb_podcast_source_btn_file_change_cb),
576         (posts_view_drag_data_received_cb),
577         (rb_podcast_source_cmd_download_post),
578         (rb_podcast_source_cmd_cancel_download),
579         (rb_podcast_source_cmd_delete_feed),
580         (rb_podcast_source_cmd_properties_feed),
581         (rb_podcast_source_cmd_update_feed),
582         (rb_podcast_source_post_status_cell_data_func),
583         (rb_podcast_source_post_feed_cell_data_func),
584         (rb_podcast_source_post_date_cell_data_func),
585         (rb_podcast_source_load_finish_cb), (impl_receive_drag),
586         (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue),
587         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
588         (impl_get_status):
589         * sources/rb-podcast-source.h:
590         * sources/rb-removable-media-source.c:
591         (rb_removable_media_source_constructor):
592         * sources/rb-removable-media-source.h:
593         * sources/rb-source.h:
594         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
595         (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible),
596         (rb_sourcelist_model_row_is_separator),
597         (rb_sourcelist_model_drag_data_received),
598         (rb_sourcelist_model_row_drop_possible), (path_is_droppable),
599         (rb_sourcelist_model_row_drop_position),
600         (rb_sourcelist_model_get_drag_target),
601         (rb_sourcelist_model_row_draggable),
602         (rb_sourcelist_model_drag_data_get),
603         (rb_sourcelist_model_row_inserted_cb),
604         (rb_sourcelist_model_get_group_path):
605         * sources/rb-sourcelist.c: (rb_sourcelist_append),
606         (match_source_to_iter), (rb_sourcelist_source_to_iter),
607         (rb_sourcelist_visible_source_to_iter),
608         (rb_sourcelist_edit_source_name),
609         (rb_sourcelist_selection_changed_cb), (button_press_cb),
610         (key_release_cb), (name_notify_cb), (icon_notify_cb),
611         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
612         * sources/rb-static-playlist-source.c:
613         (rb_static_playlist_source_class_init),
614         (rb_static_playlist_source_constructor),
615         (rb_static_playlist_source_load_from_xml), (impl_reset_filters),
616         (impl_search), (rb_static_playlist_source_do_query),
617         (rb_static_playlist_source_browser_changed_cb),
618         (impl_receive_drag), (impl_save_contents_to_xml),
619         (rb_static_playlist_source_add_location_swapped),
620         (search_action_to_prop):
621         * sources/rb-static-playlist-source.h:
622         * widgets/bacon-volume.c: (bacon_volume_button_get_type):
623         * widgets/eggtrayicon.c: (egg_tray_icon_init),
624         (egg_tray_icon_get_orientation_property),
625         (egg_tray_icon_send_manager_message),
626         (egg_tray_icon_update_manager_window),
627         (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize),
628         (egg_tray_icon_send_message), (egg_tray_icon_notify):
629         * widgets/eggtrayicon.h:
630         * widgets/rb-cell-renderer-pixbuf.c:
631         (rb_cell_renderer_pixbuf_get_property),
632         (rb_cell_renderer_pixbuf_set_property),
633         (rb_cell_renderer_pixbuf_get_size),
634         (rb_cell_renderer_pixbuf_render),
635         (rb_cell_renderer_pixbuf_activate):
636         * widgets/rb-cell-renderer-rating.c:
637         (rb_cell_renderer_rating_class_init),
638         (rb_cell_renderer_rating_get_property),
639         (rb_cell_renderer_rating_set_property),
640         (rb_cell_renderer_rating_get_size),
641         (rb_cell_renderer_rating_render),
642         (rb_cell_renderer_rating_activate):
643         * widgets/rb-dialog.c:
644         * widgets/rb-dialog.h:
645         * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new),
646         (path_dialog_response_cb), (idle_set_sensitive), (do_response),
647         (rb_druid_page3_finish_cb):
648         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
649         (rb_entry_view_init), (rb_entry_view_set_property),
650         (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func),
651         (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting),
652         (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type),
653         (rb_entry_view_set_sorting_order),
654         (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column),
655         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
656         (rb_entry_view_playing_song_changed),
657         (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb),
658         (rb_entry_view_scroll_to_entry), (set_column_visibility),
659         (rb_entry_view_set_fixed_column_width),
660         (rb_entry_view_get_time_date_column_sample),
661         (rb_entry_view_state_get_type):
662         * widgets/rb-entry-view.h:
663         * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
664         (rb_header_sync), (slider_moved_timeout), (slider_moved_callback),
665         (changed_idle_callback), (rb_header_elapsed_changed_cb):
666         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
667         (update_browser_property_visibilty),
668         (rb_library_browser_construct_query), (restore_selection),
669         (rebuild_child_model), (rb_library_browser_set_selection),
670         (rb_library_browser_set_model):
671         * widgets/rb-library-browser.h:
672         * widgets/rb-property-view.c: (rb_property_view_class_init),
673         (rb_property_view_set_property), (rb_property_view_reset),
674         (rb_property_view_get_model), (rb_property_view_constructor),
675         (rb_property_view_set_selection),
676         (rb_property_view_selection_changed_cb),
677         (rb_property_view_button_press_cb),
678         (rb_property_view_set_search_func):
679         * widgets/rb-query-creator-private.h:
680         * widgets/rb-query-creator-properties.c:
681         (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData),
682         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
683         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
684         (relativeTimeCriteriaCreateWidget),
685         (relativeTimeCriteriaSetWidgetData):
686         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
687         (rb_query_creator_dispose), (rb_query_creator_load_query),
688         (rb_query_creator_new_from_query), (rb_query_creator_get_query),
689         (get_property_index_from_proptype), (select_criteria_from_value),
690         (create_property_option_menu), (create_criteria_option_menu),
691         (sort_option_menu_changed), (setup_sort_option_menu):
692         * widgets/rb-query-creator.h:
693         * widgets/rb-rating-helper.c: (rb_rating_install_rating_property),
694         (rb_rating_render_stars):
695         * widgets/rb-rating-helper.h:
696         * widgets/rb-rating.c: (rb_rating_expose):
697         * widgets/rb-rating.h:
698         * widgets/rb-search-entry.c: (rb_search_entry_clear),
699         (rb_search_entry_timeout_cb):
700         * widgets/rb-search-entry.h:
701         * widgets/rb-song-info.c: (rb_song_info_construct_single),
702         (rb_song_info_constructor), (rb_song_info_new),
703         (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog),
704         (rb_song_info_update_location), (rb_song_info_backward_clicked_cb),
705         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
706         (rb_song_info_query_model_changed_cb),
707         (rb_song_info_sync_entries_multiple),
708         (rb_song_info_sync_entry_single):
709         Strip all trailing whitespace.  Fixes #344293.
711 2006-07-13  Ryan P Skadberg  <skadz@stigmata.org>
713         * doc/reference/Makefile.am: Fix GTK Doc Build
715 2006-07-13  James Livingston  <doclivingston@gmail.com>
717         * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri
719         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above
720         instead of the LOCATION, and don't try to get the directory listing
721         for http URI schemes
723         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for
724         invalid utf8 in the error message, since apparently it can happen.
726 2006-07-12  William Jon McCann  <mccann@jhu.edu>
728         * sources/rb-import-errors-source.c:
729         (rb_import_errors_source_class_init),
730         (rb_import_errors_source_init),
731         (rb_import_errors_source_constructor),
732         (rb_import_errors_source_dispose), (rb_import_errors_source_new),
733         (impl_get_status), (rb_import_errors_source_songs_show_popup_cb):
734         * sources/rb-missing-files-source.c:
735         (rb_missing_files_source_class_init),
736         (rb_missing_files_source_init),
737         (rb_missing_files_source_constructor),
738         (rb_missing_files_source_dispose), (rb_missing_files_source_new),
739         (rb_missing_files_source_songs_sort_order_changed_cb),
740         (impl_get_status):
741         * sources/rb-source.c: (rb_source_class_init),
742         (rb_source_finalize), (update_visibility_idle),
743         (queue_update_visibility), (rb_source_set_hidden_when_empty),
744         (rb_source_set_property), (rb_source_get_property),
745         (default_get_status), (rb_source_update_play_statistics),
746         (default_add_to_queue), (_rb_source_show_popup),
747         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb),
748         (rb_source_gather_selected_properties),
749         (_rb_source_register_action_group):
750         * sources/rb-source.h:
751         * sources/rb-sourcelist.c: (visibility_notify_cb):
752         Don't use a fake model for import-errors and missing-files
753         sources.  Add a new source property "hidden-when-empty".
754         Update source visibility in an idle.  Clean up some whitespace.
755         From bug #346800
757 2006-07-12  James Livingston  <doclivingston@gmail.com>
759         * bindings/python/rb.defs:
760         * bindings/python/rb.override: bind rb_error_dialog
762         * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off
763         the current working directory for uninstalled plugins, and add the
764         class name to the method name.
766 2006-07-12  James Livingston  <doclivingston@gmail.com>
768         * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check
769         the sources EOF type if it's NULL. Fixes #346284.
771 2006-07-12  James Livingston  <doclivingston@gmail.com>
773         * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit
774         I accidently committed. Nothing to see here, move along...
776 2006-07-11  James Livingston  <doclivingston@gmail.com>
778         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
779         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of
780         Unknown.
782 2006-07-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
784         * doc/reference/rhythmbox.types: Fix doc build (bug #347223)
786 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
788         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
789         Don't try to set mtime if we've deleted the entry.
791 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
793         * bindings/python/rhythmdb.defs:
794         * rhythmdb/rhythmdb.c:
795         * rhythmdb/rhythmdb.h:
796         * rhythmdb/rhythmdb-private.h:
797         * rhythmdb/rhythmdb-query.c:
798         Move data structures holding registered entry types inside the
799         RhythmDB object, and add a vfunc called when new types are registered.
800         Add a flag to RhythmDBEntryType specifying whether entries of the type
801         should be saved to the on-disk database.
803         * sources/rb-audiocd-source.c:
804         * sources/rb-daap-source.c:
805         * sources/rb-ipod-source.c:
806         * plugins/generic-player/rb-generic-player-source.c:
807         * plugins/generic-player/rb-nokia770-source.c:
808         * plugins/generic-player/rb-psp-source.c:
809         Adjust to the above changes.
811         * rhythmdb/rhythmdb-tree.c:
812         If the type for an entry hasn't been registered yet, store the entry's
813         properties as-is, and convert them to a real entry when the type is
814         registered.  If the type doesn't get registered, save the entry back
815         to the database unmodified.  From #330226.
817 2006-07-10  James Livingston  <doclivingston@gmail.com>
819         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change
820         os.path.unlink to os.unlink, so removing stuff works.
822 2006-07-10  James Livingston  <doclivingston@gmail.com>
824         patch by: Ed Catmur  <ed@catmur.co.uk>
825               and Peter  <bugzilla-gnome-org@maubp.freeserve.co.uk>
827         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
828         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
829         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
830         * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the
831         internals of the cover database and Amazon lookup engine, and add
832         support for loading art from the local file system. Fixes #345688.
834         * plugins/rb/Coroutine.py:
835         * plugins/rb/Makefile.am:
836         * plugins/rb/__init__.py: Add the Coroutine class to the common python
837         plugin classes.
839 2006-07-10  James Livingston  <doclivingston@gmail.com>
841         * tests/Makefile.am: don't run the benchmark when doing "make check"
843         * po/POTFILES.in: more build fixes, from Matti Lindell
844         <feenixx@hotmail.com>. Fixes #347049.
847 2006-07-10  James Livingston  <doclivingston@gmail.com>
849         * plugins/cd-recorder/Makefile.am: build fixes
851         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't
852         attempt to change properties if we couldn't create an entry.
854         * shell/rb-source-header.c: (rb_source_header_init),
855         (rb_source_header_view_browser_changed_cb),
856         (rb_source_header_sync_control_state):
857         * shell/rb-tray-icon.c:
858         * widgets/Makefile.am:
859         * widgets/disclosure-widget.c:
860         * widgets/disclosure-widget.h: remove the remanents of the disclosure
861         widget, as it hasn't been used for a while.
863 2006-07-09  William Jon McCann  <mccann@jhu.edu>
865         * Makefile.am:
866         * configure.ac:
867         * data/ui/rhythmbox-ui.xml:
868         * plugins/Makefile.am:
869         * plugins/cd-recorder/.cvsignore:
870         * plugins/cd-recorder/Makefile.am:
871         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
872         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
873         (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init),
874         (rb_cd_recorder_plugin_finalize), (burn_source_iter_func),
875         (source_burn), (cmd_burn_source), (playlist_entries_changed),
876         (playlist_row_inserted_cb), (update_source),
877         (shell_selected_source_notify_cb), (impl_activate),
878         (impl_deactivate):
879         * shell/Makefile.am:
880         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source),
881         (rb_playlist_manager_cmd_save_playlist):
882         * shell/rb-shell.c: (rb_shell_select_source):
883         * sources/Makefile.am:
884         * sources/rb-playlist-source-recorder.c:
885         (rb_playlist_source_recorder_new):
886         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
887         (rb_playlist_source_add_to_map):
888         * sources/rb-playlist-source.h:
889         Move cd burning into a plugin.  Fixes #344300.
891 2006-07-10  James Livingston  <doclivingston@gmail.com>
893         * lib/eel-gconf-extensions.c:
894         * shell/rb-shell.c: remove some ununsed gnomeui includes
896         * widgets/Makefile.am:
897         * widgets/rb-song-display-box.c:
898         * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs,
899         since it isn't acutally used anywhere. Fixes #346926
901 2006-07-09  James Livingston  <doclivingston@gmail.com>
903         * bindings/python/rb.defs:
904         * bindings/python/rb.override:
905         * lib/rb-debug.c: (rb_debug_real):
906         * lib/rb-debug.h:
907         * plugins/rb/__init__.py: don't print out an extra newline when
908         diverting python print statements to RB's debug log.
910 2006-07-09  James Livingston  <doclivingston@gmail.com>
912         * rhythmdb/rhythmdb-property-model.c:
913         (rhythmdb_property_model_drag_data_get):
914         * sources/rb-sourcelist-model.c:
915         (rb_sourcelist_model_row_draggable),
916         (rb_sourcelist_model_drag_data_get): check that the path/iter we get
917         from the row reference is still valid. Fixes #346709.
919 2006-07-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
921         patch by: Peter  <bugzilla-gnome-org@maubp.freeserve.org.uk>
923         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple):
924         If all selected entries have the same rating, use that as the initial
925         rating for the multiple song info dialog.  Fixes #345970.
927 2006-07-09  James Livingston  <doclivingston@gmail.com>
929         * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try
930         to prevent #343345:
931                 - don't ever scale to 1x1, just hide the image in that case
932                 - don't fade when the window is minimised
933                 - use the last-good allocation width, not the current one - as
934                   it sometimes get weird values.
936 2006-07-08  William Jon McCann  <mccann@jhu.edu>
938         * data/ui/rhythmbox-ui.xml:
939         * shell/rb-shell.c:
940         Remove Import audio CD from menu.  Fixes #339732
942 2006-07-08  James Livingston  <doclivingston@gmail.com>
944         * metadata/test-metadata.c: (print_metadata_string),
945         (load_metadata_cb): print out all the metadata we have read, not just
946         a few.
948         * sources/rb-playlist-source-recorder.c: (insert_media_request_cb),
949         (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues.
951 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
953         * plugins/lyrics/lyrics.py:
954         Change the lyrics cache location to match Quod Libet's,
955         and fix the '&' -> 'and' substitution to require spaces.
957 2006-07-08  James Livingston  <doclivingston@gmail.com>
959         * bindings/python/rb.defs:
960         * bindings/python/rb.override: bind rb_debug_real to rb._debug
962         * configure.ac:
963         * plugins/Makefile.am:
964         * plugins/rb-python-module.c: (rb_python_module_init_python):
965         * plugins/rb/Makefile.am: add a place to put common python classes.
966         plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the
967         rb module/
969         * plugins/lyrics/Makefile.am:
970         * plugins/lyrics/Loader.py:
971         * plugins/artdisplay/artdisplay/Makefile.am:
972         * plugins/artdisplay/artdisplay/Loader.py:
973         * plugins/rb/Loader.py: move the loader class to rb.Loader
975         * plugins/rb/__init__.py: redirect stdout from python (e.g.
976         "print ...") to rb_debug. error output (e.g. exceptions) are still
977         printed on stderr.
979         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
980         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
981         * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader
982         instead of Loader.
984         Fixes #346895.
986 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
988         * shell/rb-shell-player.xml:
989         * shell/rb-shell-player.h:
990         Correct the details of the playing-song-property-changed signal.
992 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
994         * lib/rb-marshal.list:
995         * shell/rb-shell-player.c: (rb_shell_player_class_init),
996         (rb_shell_player_entry_changed_cb):
997         * shell/rb-shell-player.h:
998         * shell/rb-shell-player.xml:
999         Emit a dbus signal when a property is changed on the playing entry.
1000         Fixes #332461.
1002 2006-07-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1004         * rhythmdb/rhythmdb-private.h:
1005         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
1006         Fix build break with gcc 4.1 by changing RBRefString pointers into
1007         gpointers.
1009 2006-07-07  James Livingston  <doclivingston@gmail.com>
1011         * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
1012         remove an extraneous !, which caused it not to monitor folders in the
1013         library with no tracks in them. Fixes #346759.
1015 2006-07-07  James Livingston  <doclivingston@gmail.com>
1017         * rhythmdb/rhythmdb-private.h:
1018         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
1019         (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
1020         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
1021         (rhythmdb_entry_get_string):
1022         * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
1023         flags for the affected properties. _sync_mirrored will get run
1024         automatically when a dirty property is accessed, which improves
1025         performance a bit (especially during startup) as we don't need to sync
1026         every time they change. From #325215.
1028         * tests/bench-rhythmdb-load.c
1029         * tests/Makefile.am: add a RhythmDB loading benchmark.
1031 2006-07-06  James Livingston  <doclivingston@gmail.com>
1033         * bindings/python/rb.defs:
1034         * bindings/python/rb.override: some more fixes, so that
1035         python classes derived from RBSource work correctly.
1037 2006-07-06  James Livingston  <doclivingston@gmail.com>
1039         * configure.ac: bump pygtk requirements to 2.8, since we're already
1040         using some features of it, and weird things will happen if people are
1041         actually trying to use pygtk 2.6.
1043         * bindings/python/rb.override:
1044         * bindings/python/rhythmdb.defs:
1045         * bindings/python/rhythmdb.override: allow python to set
1046         RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
1048         * sources/rb-browser-source.c: remove some left over member variables
1050 2006-07-06  James Livingston  <doclivingston@gmail.com>
1052         * rhythmdb/rhythmdb.c:
1053         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
1054         (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
1055         rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
1056         former is pointless (as rhythmdb already knows which it should use)
1057         and the latter doesn't seem useful at all, and possibly bad. From
1058         #330226.
1060         * bindings/python/rhythmdb.defs:
1061         * bindings/python/rhythmdb.override:
1062         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
1063         (handle_song_listing):
1064         * podcast/rb-podcast-manager.c:
1065         (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
1066         (rb_podcast_manager_insert_feed):
1067         * sources/rb-audiocd-source.c: (entry_set_string_prop),
1068         (rb_audiocd_create_track_entry):
1069         * sources/rb-ipod-source.c: (entry_set_string_prop),
1070         (add_ipod_song_to_db):
1071         * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
1072         * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
1074 2006-07-05  James Livingston  <doclivingston@gmail.com>
1076         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
1077         (playlist_load_end_cb), (rb_playlist_manager_parse_file),
1078         (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
1079         totem-plparser gives us, or the file name if it doesn't give us
1080         anything. Set the default file name when saving too. Fixes #345261
1082 2006-07-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1084         patch by: Ed Catmur  <ed@catmur.co.uk>
1086         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
1087         Skip all hidden directories, not just trash, and skip unreadable
1088         files.  Fixes #346322.
1090 2006-07-04  James Livingston  <doclivingston@gmail.com>
1092         * plugins/rb-module.h:
1093         * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
1094         (rb_module_new):
1095         * plugins/rb-plugin.h:
1096         * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
1097         (rb_plugin_finalise), (rb_plugin_set_property),
1098         (rb_plugin_get_property), (rb_plugin_activate),
1099         (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
1100         (rb_plugin_find_file):
1101         * plugins/rb-plugins-engine.c: (load_plugin_module):
1102         * plugins/rb-python-module.c: (rb_python_module_new_object),
1103         (rb_python_module_new):
1104         * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
1105         rb_plugin_find_file method for locating plugin-specific data. Fixes
1106         346473.
1108         * bindings/python/rb.defs:
1109         * plugins/Makefile.am:
1110         * plugins/generic-player/rb-generic-player-plugin.c:
1111         (create_source_cb):
1112         * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
1114 2006-07-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1116         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
1117         (rb_metadata_can_save), (rb_metadata_save):
1118         Protect the dbus connection with a mutex.
1120 2006-07-03  James Livingston  <doclivingston@gmail.com>
1122         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
1123         case of the parser/tagger not being able to be created.
1125 2006-07-03  James Livingston  <doclivingston@gmail.com>
1127         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
1129         * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
1130         window resizable, as it used to be. Fixes #345940.
1132 2006-07-01  James Livingston  <doclivingston@gmail.com>
1134         Patch from Ståle Lyngaas  <staale@lyngaas.com>
1136         * rhythmdb/rhythmdb.h:
1137         * rhythmdb/rhythmdb-private.h:
1138         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
1139         (rhythmdb_tree_parser_end_element), (save_entry):
1140         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
1141         (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
1142         (set_props_from_metadata), (rhythmdb_entry_set_internal),
1143         (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
1144         MusicBrainz track IDs in the database, and bump the on-disk version
1145         number to trigger a metadata reload.
1147         * backends/gstreamer/rb-player-gst.c: (process_tag):
1148         * metadata/rb-metadata-common.c:
1149         * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
1150         (rb_metadata_gst_field_to_gst_tag):
1151         * metadata/rb-metadata.h: grab MB track IDs and use them.
1153         * plugins/audioscrobbler/rb-audioscrobbler.c:
1154         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
1155         (rb_audioscrobbler_timeout_cb),
1156         (rb_audioscrobbler_song_changed_cb): send the MB track id along with
1157         the other metadata. Fixes #343491.
1159 2006-06-30  James Livingston  <doclivingston@gmail.com>
1161         * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
1162         method.
1164 2006-06-30  James Livingston  <doclivingston@gmail.com>
1166         * bindings/python/rb.defs:
1167         * sources/rb-browser-source.c: (rb_browser_source_class_init),
1168         (rb_browser_source_songs_show_popup_cb),
1169         (default_show_entry_popup):
1170         * sources/rb-browser-source.h:
1171         * sources/rb-library-source.c: (rb_library_source_class_init),
1172         (rb_library_source_constructor), (impl_show_popup): allow
1173         RBBrowserSource-derived sources to override the entry context menu
1174         properly - by making it a virtual function, rather than relying on
1175         signal handler order (which doesn't really work).
1177 2006-06-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1179         * rhythmdb/rhythmdb-query-model.c:
1180         (rhythmdb_query_model_reapply_query_cb):
1181         Use the original query, not the preprocessed query, when redoing
1182         the query to pick up entries that previously didn't match.
1183         Preprocessing the query twice is bad.  Fixes #346186.
1185 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1187         * plugins/audioscrobbler/rb-audioscrobbler.c:
1188         (rb_audioscrobbler_song_changed_cb):
1189         Just check if the elapsed time has been reset, rather
1190         than checking if it's a different track.  Fixes #344827.
1192 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1194         * backends/gstreamer/rb-player-gst.c:
1195         Set cdda source read-speed to 1.  Fixes gaps in playback while the
1196         drive spins up, #344576.
1198 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1200         * plugins/audioscrobbler/rb-audioscrobbler.c:
1201         (rb_audioscrobbler_perform):
1202         Use HTTP/1.1.  Fixes #345895.
1204 2006-06-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1206         * lib/rb-preferences.h:
1207         * lib/rb-proxy-config.c: (rb_proxy_config_init),
1208         (check_auto_proxy_config), (get_proxy_config):
1209         Don't try to use a HTTP proxy if no proxy host is specified.
1210         Alert the user to the fact that we don't support automatic proxy
1211         configuration as infrequently as possible.  From #345712.
1213 2006-06-25  James Livingston  <doclivingston@gmail.com>
1215         * rhythmdb/rhythmdb-property-model.c:
1216         (rhythmdb_property_model_set_property): connect to the
1217         "post-entry-delete" signal, rather than "entry-deleted". This ensures
1218         things get removed correctly, fixes #338183.
1220 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1222         * rhythmdb/rhythmdb-query-model.c:
1223         (rhythmdb_query_model_drag_data_received):
1224         Fix build break.
1226 2006-06-25  James Livingston  <doclivingston@gmail.com>
1228         patch by Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
1230         * widgets/rb-search-entry.c: (rb_search_entry_init),
1231         (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
1232         search box have a pale yellow background when it's in use, except for
1233         when the user has an "accessability" theme. Code based heavily on
1234         Epiphany's. Fixes #344416.
1236 2006-06-25  James Livingston  <doclivingston@gmail.com>
1238         * plugins/lyrics/lyrics.py:
1239         * plugins/pythonconsole/pythonconsole.py:
1240         * plugins/sample-python/sample-python.py: don't import gettext stuff
1241         as _, as the C code does this for us. Fixes i18n for python plugins,
1242         #343081
1244 2006-06-25  James Livingston  <doclivingston@gmail.com>
1246         * rhythmdb/rhythmdb-query-model.c:
1247         (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
1248         a model use a reorder rather then deleting and re-adding the entry.
1249         This means it does do weird things like stop playback of a track that
1250         is dragged, fixing #337657.
1252 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1254         * metadata/rb-metadata-dbus-service.c:
1255         Add missing #include <glib/gi18n.h> from previous commit.
1257 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1259         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
1261         * metadata/rb-metadata-dbus-service.c: (main):
1262         Initialize gettext in the metadata helper.
1263         * metadata/rb-metadata-gst.c:
1264         Make some strings translatable.  Fixes #345286.
1266 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1268         * configure.ac:
1269         * lib/Makefile.am:
1270         * lib/rb-stock-icons.c: (rb_stock_icons_init):
1271         Inline the custom icons so they can always be loaded, but are still
1272         themable.  Fixes #345796.
1274 2006-06-23  James Livingston  <doclivingston@gmail.com>
1276         * sources/rb-auto-playlist-source.c:
1277         (rb_auto_playlist_source_do_query): stop the search box being applied
1278         for limits in auto playlists. Fixes #345307.
1280 2006-06-23  James Livingston  <doclivingston@gmail.com>
1282         * shell/rb-shell-clipboard.c:
1283         (rb_shell_clipboard_set_source_internal),
1284         (rb_shell_clipboard_sync), (add_playlist_to_menu),
1285         (rebuild_playlist_menu): don't use the add-to-playlist menu for
1286         non-library tracks, as we don't supprot it yet. From #345248.
1288 2006-06-23  James Livingston  <doclivingston@gmail.com>
1290         patch by: Brian Cameron  <brian.cameron@sun.com>
1292         * plugins/generic-player/rb-generic-player-plugin.c:
1293         * plugins/generic-player/rb-generic-player-source.c:
1294         * plugins/generic-player/rb-nokia770-source.c:
1295         * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
1296         Fixes 345673.
1298 2006-06-22  James Livingston  <doclivingston@gmail.com>
1300         * backends/rb-player.c: (rb_player_interface_init):
1301         * lib/rb-marshal.list:
1302         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
1303         * rhythmdb/rhythmdb-query-model.c:
1304         (rhythmdb_query_model_class_init):
1305         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
1306         * shell/rb-shell-player.c: (rb_shell_player_class_init):
1307         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
1308         * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
1309         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
1310         * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
1311         marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
1312         possible not.
1314 2006-06-20  James Livingston  <doclivingston@gmail.com>
1316         patch by Alex Lancaster  <alexl@users.sourceforge.net>
1318         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
1319         metadata to clients. Fixes #345276.
1321 2006-06-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1323         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
1324         (rb_add_id3_tagger):
1325         Fix plugin/element version detection for id3v2mux.
1327 2006-06-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1329         * sources/rb-source.c: (rb_source_finalize),
1330         (rb_source_set_property), (rb_source_post_entry_deleted_cb),
1331         (_autohide_update_visibility),
1332         (_rb_autohide_source_post_entry_deleted_cb),
1333         (_rb_autohide_source_row_inserted_cb),
1334         (_rb_source_hide_when_empty):
1335         Use post-entry-delete signal to update status and autohide sources.
1337 2006-06-20  James Livingston  <doclivingston@gmail.com>
1339         * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
1340         "selection changed" idle callback, if present.
1342 2006-06-19  James Livingston  <doclivingston@gmail.com>
1344         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
1346         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
1347         don't try to translate the empty string. Fixes #345285.
1349 2006-06-19  James Livingston  <doclivingston@gmail.com>
1351         * bindings/python/rhythmdb.override: more python binding fixes
1353 2006-06-19  James Livingston  <doclivingston@gmail.com>
1355         * lib/rb-util.c: (rb_copy_function):
1356         * lib/rb-util.h: add a function that returns the same pointer it was
1357         passed.
1359         * rhythmdb/rhythmdb.h:
1360         * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
1361         (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
1362         "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
1363         and RhythmDBEntryType into boxed types. This allows them to be used
1364         from python. Note that entry-types aren't actually reference counted
1365         (yet).
1367         * bindings/python/rb.defs:
1368         * bindings/python/rhythmdb.defs:
1369         * bindings/python/rhythmdb.override: Adapt to the above, and fix the
1370         return types of some bindings.
1372         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
1373         (process_added_entries_cb), (rhythmdb_entry_finalize),
1374         (rhythmdb_entry_delete):
1375         * daapsharing/rb-daap-connection.c:
1376         (rb_daap_connection_class_init), (rb_daap_connection_set_property),
1377         (rb_daap_connection_get_property):
1378         * plugins/generic-player/rb-generic-player-source.c:
1379         (rb_generic_player_source_load_songs), (load_playlist_file):
1380         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
1381         * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
1382         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
1383         (idle_process_update), (rhythmdb_query_model_add_entry),
1384         (rhythmdb_query_model_insert_into_main_list),
1385         (rhythmdb_query_model_insert_into_limited_list),
1386         (rhythmdb_query_model_remove_from_main_list),
1387         (rhythmdb_query_model_remove_from_limited_list),
1388         (rhythmdb_query_model_drag_data_received),
1389         (rhythmdb_query_model_add_results),
1390         (rhythmdb_query_model_get_column_type),
1391         (rhythmdb_query_model_get_value):
1392         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
1393         (rhythmdb_tree_entry_delete), (remove_one_song):
1394         * shell/rb-play-order-linear-loop.c:
1395         (rb_linear_play_order_loop_get_next),
1396         (rb_linear_play_order_loop_get_previous):
1397         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
1398         (rb_linear_play_order_get_previous):
1399         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
1400         (rb_queue_play_order_get_previous):
1401         * shell/rb-play-order-random.c: (rb_random_play_order_init),
1402         (rb_random_filter_history), (rb_random_play_order_get_next),
1403         (rb_random_play_order_go_next), (rb_random_db_changed),
1404         (rb_random_playing_entry_changed):
1405         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
1406         (remove_from_history), (add_randomly_to_history),
1407         (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
1408         * shell/rb-play-order.c: (rb_play_order_class_init),
1409         (rb_play_order_set_property), (rb_play_order_get_property),
1410         (rb_play_order_update_have_next_previous):
1411         * shell/rb-play-order.h:
1412         * shell/rb-shell-clipboard.c:
1413         (rb_shell_clipboard_process_deletions),
1414         (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
1415         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
1416         * sources/rb-auto-playlist-source.c:
1417         (rb_auto_playlist_source_constructor):
1418         * sources/rb-browser-source.c: (rb_browser_source_class_init),
1419         (rb_browser_source_set_property), (rb_browser_source_get_property),
1420         (rb_browser_source_do_query):
1421         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
1422         * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
1423         * sources/rb-ipod-source.c: (add_rb_playlist),
1424         (add_ipod_song_to_db), (impl_paste):
1425         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
1426         (rb_iradio_source_set_property), (rb_iradio_source_get_property):
1427         * sources/rb-library-source.c: (layout_example_label_update):
1428         * sources/rb-missing-files-source.c:
1429         (rb_missing_files_source_class_init),
1430         (rb_missing_files_source_set_property),
1431         (rb_missing_files_source_get_property),
1432         (rb_missing_files_source_new):
1433         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
1434         (rb_playlist_source_set_property),
1435         (rb_playlist_source_get_property):
1436         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
1437         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
1438         (construct_query_from_selection):
1439         * sources/rb-removable-media-source.c: (impl_delete_thyself):
1440         * sources/rb-static-playlist-source.c:
1441         (rb_static_playlist_source_constructor),
1442         (rb_static_playlist_source_add_location_internal):
1443         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
1444         * widgets/rb-header.c: (rb_header_class_init),
1445         (rb_header_set_property), (rb_header_get_property):
1446         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
1447         (rb_library_browser_set_property),
1448         (rb_library_browser_get_property):
1449         * widgets/rb-song-info.c: (rb_song_info_class_init),
1450         (rb_song_info_get_property): Adjust for the _ref/_unref prototype
1451         change, do s/pointer/boxed/ in many places and free entry-types
1452         properly.
1454 2006-06-18  James Livingston  <doclivingston@gmail.com>
1456         * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
1457         unushed GThreadPool non-exclusive threads every now and then.
1459         * rhythmdb/rhythmdb-private.h:
1460         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
1461         (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
1462         threads. Fixes #341593
1464 2006-06-19  James Livingston  <doclivingston@gmail.com>
1466         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
1467         the "Track number" checkbox actually work for playlists. From #329986.
1469 2006-06-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1471         * plugins/generic-player/rb-generic-player-source.c:
1472         Get playlist and audio folder information from HAL.  Fixes #333845.
1474 2006-06-18  James Livingston  <doclivingston@gmail.com>
1476         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
1478         * widgets/rb-entry-view.h:
1479         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
1480         (rb_entry_view_append_column_custom),
1481         (rb_entry_view_insert_column_custom): add support for inserting custom
1482         columns at arbitrary locations, rather than just appending to the end.
1484         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
1485         the playlists "track number" column go at the start, and add a normal
1486         track number column. Fixes #329986.
1488 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
1490         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
1491         a mnemonic conflict.  Add ellipses to the edit button.
1492         * sources/rb-library-source.c:
1493         (rb_library_source_edit_profile_clicked_cb),
1494         (impl_get_config_widget):  Hide dialog separator.  Assign a 
1495         mnemonic widget to the labels. Fixes #344114.
1497 2006-06-18  James Livingston  <doclivingston@gmail.com>
1499         * configure.ac: bump version
1500         * NEWS: add NEWS for 0.9.5
1502 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1504         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
1505         (rb_uri_handle_recursively):
1506         Don't attempt to recurse into directories we can't open.  
1507         Fixes #341485.
1509 2006-06-18  James Livingston  <doclivingston@gmail.com>
1511         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
1513         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
1514         #344610.
1516 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1518         * bindings/python/rb.defs:
1519         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
1520         * shell/rb-shell-player.h:
1521         * shell/rb-shell.c: (rb_shell_play_entry):
1522         Add source parameter to rb_shell_player_play_entry, using the selected
1523         source if not specified.
1525         * shell/rb-play-order.c: (rb_play_order_class_init),
1526         (rb_play_order_finalize), (rb_play_order_query_model_changed),
1527         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
1528         (default_playing_entry_removed):
1529         * shell/rb-play-order.h:
1530         Move entry removal handling back to the row-deleted signal, as we need
1531         the entry to be present in the model.  When changing to the next entry
1532         after the playing entry is deleted, set the new entry as the playing
1533         entry and then sync it to the player in an idle handler, so we don't
1534         end up playing it if it was removed too.
1535         * shell/rb-play-order-queue.c:
1536         (rb_queue_play_order_playing_entry_changed),
1537         (rb_queue_play_order_playing_entry_removed):
1538         Use the playing-entry-removed handler from the play order class,
1539         setting a flag so we don't try to remove the already-removed entry
1540         from the model.
1542         This makes removal of the playing entry from playlists etc. work more
1543         or less correctly for all play orders.  Fixes #344627.
1545 2006-06-17  James Livingston  <doclivingston@gmail.com>
1547         patch by: Elijah Newren  <newren@gmail.com>
1549         * tests/test-rhythmdb.c: fix the build with older versions of check
1550         (again). Fixes #343718.
1552 2006-06-17  James Livingston  <doclivingston@gmail.com>
1554         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
1555         name for capsfilter's "caps" property. Fixes #344968.
1557 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1559         * shell/rb-shell-player.c: (rb_shell_player_playpause):
1560         Don't leak the selected entry list when finding an entry to play.
1562 2006-06-17  James Livingston  <doclivingston@gmail.com>
1564         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
1565         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
1566         as a O(1) one works fine, and it will get called often when the user
1567         deleted multiple tracks. Part of #344922.
1569 2006-06-17  James Livingston  <doclivingston@gmail.com>
1571         * shell/rb-shell-player.c: (rb_shell_player_stop): make
1572         rb_shell_player_stop and rb_shell_player_playpause not mutually
1573         recursive. Fixed #336912.
1575 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1577         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
1578         Treat nested elements inside properties as unknown.  Fixes parsing of
1579         podcast feeds with unescaped HTML in description tags, bug #344532.
1581 2006-06-15  William Jon McCann  <mccann@jhu.edu>
1583         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
1584         when quitting.  Fixes #344875.
1586 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1588         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
1589         Move the playing-entry-removed handling to after the normal entry
1590         delete handling, since we're called after the entry has been removed
1591         from the query model now.  Fixes crashes described in #344627.
1593 2006-06-13  William Jon McCann  <mccann@jhu.edu>
1595         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
1596         (rb_rating_get_rating_from_widget):
1597         * widgets/rb-rating.c: (rb_rating_class_init),
1598         (rb_rating_finalize), (rb_rating_get_property),
1599         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
1600         (rb_rating_button_press_cb):
1601         Don't crash when ratings icons can't be found.  Fixes #344533.
1603 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1605         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
1607 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1609         * Makefile.am:
1610         * configure.ac:
1611         * remote/Makefile.am:
1612         * remote/dbus/Makefile.am:
1613         * remote/dbus/rb-client.c:
1614         * shell/Makefile.am:
1615         New dbus client program providing --play/--next etc. arguments.
1616         Fixes #340863, #155763.
1618 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1620         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
1621         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
1623 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
1625         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
1627         * rhythmdb/rhythmdb-query-model.c:
1628         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
1629         to Library incorrectly
1631 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1633         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
1634         Return input string untouched if gnome_vfs_uri_new returns NULL.
1635         * sources/rb-static-playlist-source.c: (impl_receive_drag),
1636         (rb_static_playlist_source_add_list_uri):
1637         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
1638         URIs don't break it.  Fixes #339033.
1640 2006-06-08  James Livingston  <doclivingston@gmail.com>
1642         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
1643         for sources on the edge (i.e. the queue). Fixes #328409.
1645         * sources/rb-ipod-source.c: fix typo
1647 2006-06-08  James Livingston  <doclivingston@gmail.com>
1649         * configure.ac:
1650         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
1651         --enable-ipod-writing to enable the ipod syncing code.
1653 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1655         * sources/rb-library-source.c: (layout_example_label_update):
1656         add missing comma so we don't generate broken markup.
1658 2006-06-08  James Livingston  <doclivingston@gmail.com>
1660         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
1661         tag-merging with id3v2mux as well as id3mux. From #342330.
1663 2006-06-07  James Livingston  <doclivingston@gmail.com>
1665         * tests/test-rhythmdb.c: #define fail_if for old version of check
1666         which don't have it. Hopefully fixes #343718.
1668 2006-06-07  James Livingston  <doclivingston@gmail.com>
1670         * shell/rb-playlist-manager.c:
1671         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
1672         g_value_array_free with NULL. Fixes #341053.
1674 2006-06-07  James Livingston  <doclivingston@gmail.com>
1676         * shell/rb-playlist-manager.c:
1677         (rb_playlist_manager_playlist_entries_changed),
1678         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
1679         instead of "row-removed", which fixes updating "burn playlist"
1680         sensitivity. Fixes #331119.
1682 2006-06-07  James Livingston  <doclivingston@gmail.com>
1684         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
1685         rather than restarting if the source uses _RETRY and there is an
1686         actual error (like an undecodable stream) rather than it just dropping
1687         out and causing EOS.
1689 2006-06-07  James Livingston  <doclivingston@gmail.com>
1691         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
1692         free the pixbufs if they couldn't be loaded. Fixed #343852.
1694 2006-06-07  James Livingston  <doclivingston@gmail.com>
1696         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
1697         the close button on the dialog work. Fixes #335346.
1699 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1701         * sources/rb-sourcelist-model.c: (path_is_droppable),
1702         (path_is_reorderable):
1703         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
1704         (row_activated_cb), (emit_show_popup), (key_release_cb),
1705         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
1706         Ignore group marker rows in the source list.  Fixes #344089, a couple
1707         of other crashers, and some weird UI glitches too.
1709 2006-06-07  James Livingston  <doclivingston@gmail.com>
1711         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
1712         the seeking query fails. This is needed because many gst elements
1713         don't implement the seeking query yet. Should fix 329977.
1715 2006-06-06  James Livingston  <doclivingston@gmail.com>
1717         * configure.ac: bump version for a prerelease, turn on track transfer
1718         by default.
1720         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
1721         ipod transfer stuff, since it has big issues and we'll hopefully land
1722         real support (bug 310774) after 0.9.5
1724 2006-06-06  James Livingston  <doclivingston@gmail.com>
1726         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
1727         id3v2mux once we've detected it.
1729 2006-06-06  James Livingston  <doclivingston@gmail.com>
1731         * lib/Makefile.am:
1732         * tests/test-rhythmdb.c: undo accidental commit which caused
1733         rb-thread.c to be built (which it isn't normally)
1735 2006-06-06  James Livingston  <doclivingston@gmail.com>
1737         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
1738         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
1739         fail_{if/unless} calls, as some versions of check need them (they are
1740         optional in others). Should fix bug 343718.
1742 2006-06-06  James Livingston  <doclivingston@gmail.com>
1744         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
1745         343836.
1746         
1747         * lib/Makefile.am:
1748         * lib/rb-thread.c: (process_actions):
1749         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
1750         tests that don't pass.
1752 2006-06-05  James Livingston  <doclivingston@gmail.com>
1754         * data/glade/Makefile.am:
1755         * data/glade/load-failure.glade:
1756         * data/rhythmbox.schemas: remove the remainder of the old load-failure
1757         dialog.
1759 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1761         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
1762         checked in.
1764 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1766         * bindings/python/rb.defs:
1767         * sources/rb-source.h:
1768         * sources/rb-source.c: (rb_source_class_init),
1769         (rb_source_set_property), (rb_source_get_property),
1770         (rb_sourcelist_group_get_type):
1771         Add 'sourcelist-group' property on the RBSource class, describing how
1772         sources should be grouped in the source list.
1774         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
1775         (rb_sourcelist_model_new), (real_row_is_separator),
1776         (rb_sourcelist_model_is_row_visible),
1777         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
1778         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
1779         (rb_sourcelist_model_row_draggable),
1780         (rb_sourcelist_model_row_inserted_cb),
1781         (rb_sourcelist_model_row_deleted_cb),
1782         (rb_sourcelist_model_get_group_path):
1783         * sources/rb-sourcelist-model.h:
1784         * sources/rb-sourcelist.c: (rb_sourcelist_init),
1785         (rb_sourcelist_append):
1786         Add group marker rows for each sourcelist group, and use these to
1787         insert sources in the right place.  Sort transient sources (DAAP
1788         shares) by name.  Show the group marker rows as separators when the
1789         next visible row is a source.  Make persistant sources (playlists) and
1790         removable sources reorderable using drag and drop, restricting them
1791         within the source groups.
1792         
1793         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
1794         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
1795         * sources/rb-daap-source.c: (rb_daap_source_new):
1796         * sources/rb-ipod-source.c: (rb_ipod_source_new):
1797         * sources/rb-static-playlist-source.c:
1798         (rb_static_playlist_source_new):
1799         * plugins/generic-player/rb-generic-player-source.c:
1800         (rb_generic_player_source_new):
1801         * plugins/generic-player/rb-nokia770-source.c:
1802         (rb_nokia770_source_new):
1803         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
1804         Add source list group information to existing source classes.
1806         Fixes #318754 and #336492.
1808 2006-06-04  James Livingston  <doclivingston@gmail.com>
1810         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
1811         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
1812         win32 build fixes.
1814 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1816         * rhythmdb/rhythmdb-query-model.c:
1817         (rhythmdb_query_model_class_init),
1818         (rhythmdb_query_model_remove_from_main_list):
1819         * rhythmdb/rhythmdb-query-model.h:
1820         Add a new 'post-entry-delete' signal, emitted when the entry has been
1821         removed from the model's data structures.
1823         * shell/rb-play-order.c: (rb_play_order_finalize),
1824         (rb_play_order_query_model_changed),
1825         (rb_play_order_post_entry_delete_cb):
1826         Use the new signal to update the play order, so the queue play order
1827         doesn't try to scroll to entries that don't exist in a way that causes
1828         the tree view to crash.  Fixes #340216.
1830 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1832         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
1833         Fix rb_debug call I missed previously.
1835 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1837         * metadata/rb-metadata-gst.c:
1838         Don't use NULL as the error message for ignored files, as it crashes
1839         with some C libraries.  Fixes #343713.
1841 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1843         * widgets/rb-dialog.c: (rb_error_dialog):
1844         * widgets/rb-dialog.h:
1845         Mark rb_error_dialog as taking printf-like arguments, and use a format
1846         string for the primary message rather than passing in the message
1847         directly.
1849         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
1850         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
1851         (info_available_cb):
1852         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
1853         * shell/rb-removable-media-manager.c:
1854         (rb_removable_media_manager_eject_medium_cb):
1855         Make sure all calls to rb_error_dialog use string constants for the
1856         format string rather than passing the error message directly.  Remove
1857         an extra %s from the message used when playback fails.  Fixes #343562.
1859         * lib/rb-debug.h:
1860         * sources/rb-audiocd-source.c:
1861         * plugins/audioscrobbler/rb-audioscrobbler.c:
1862         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
1863         Mark rb_debug as taking printf-like arguments and fix a few resulting
1864         warnings.
1866 2006-06-02  James Livingston  <doclivingston@gmail.com>
1868         * configure.ac:
1869         + macros/check.m4: add support for using check for unit tests, the .m4
1870         files is so autogen can run without check being installed
1872         * tests/Makefile.am:
1873         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
1874         some of the old tests, and add some new ones. Currently
1875         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
1876         yet (the query doesn't return any entries).
1878         - tests/deserialization-test1.xml:
1879         - tests/deserialization-test2.xml:
1880         - tests/deserialization-test3.xml:
1881         - tests/test-rhythmdb-indexing.c:
1882         - tests/test-rhythmdb-simple.c:
1883         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
1884         have been ported
1886         - tests/test-cd.c:
1887         - tests/test-cmdline.c: remove obsolete tests
1889 2006-06-02  James Livingston  <doclivingston@gmail.com>
1891         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
1892         (rb_add_id3_tagger), (rb_metadata_init): add support for using
1893         id3v2mux, and check whether we are using a version of id3mux that has
1894         the correct merge-mode behaviour.
1896         * plugins/sample-python/Makefile.am: fix distcheck.
1898         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
1899         the changed-files source was added before trying to remove it.
1901         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
1902         *old* bug which would crash if a query with top-level disjunctions
1903         tried to check later disjunctive parts. Hooray for unit-testing.
1905 2006-06-02  William Jon McCann  <mccann@jhu.edu>
1907         * player/rb-recorder-gst.c (rb_recorder_set_device):
1908         Check for a null drive.
1910 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1912         * lib/Makefile.am:
1913         * lib/rb-stock-icons.c: (rb_stock_icons_init):
1914         Register the app icon as a builtin if the icon theme can't find it.
1916 2006-05-31  James Livingston  <doclivingston@gmail.com>
1918         * player/rb-recorder-gst.c: add missing include.
1920 2006-05-30  William Jon McCann  <mccann@jhu.edu>
1922         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
1923         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
1924         (tick_timeout_cb), (rb_recorder_sync_pipeline),
1925         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
1926         (rb_recorder_set_device), (rb_recorder_get_default_device):
1927         * shell/main.c: (main):
1928         * shell/rb-removable-media-manager.c:
1929         (rb_removable_media_manager_finalize),
1930         (get_nautilus_burn_drive_for_path),
1931         (rb_removable_media_manager_playing_uri_changed_cb),
1932         (rb_removable_media_manager_load_media),
1933         (nautilus_burn_drive_get_device),
1934         (rb_removable_media_manager_scan):
1935         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
1937         Update for libnautilus-burn 2.15.3 API changes.
1938         Fixes #342604
1940 2006-05-30  James Livingston  <doclivingston@gmail.com>
1942         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
1943         "return" to that it asks for the password again if it was wrong.
1945 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1947         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
1948         typefind element.
1950 2006-05-30  James Livingston  <doclivingston@gmail.com>
1952         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
1953         (download_progress_cb): don't do wonky things if the transfer
1954         "suceeds" without transferring any data.
1956 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1958         * sources/rb-library-source.c: (layout_example_label_update),
1959         (build_filename):  Fix crash when no audio profile is selected.
1960         Fixes #341447.
1962 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1964         * shell/rb-shell.c: (rb_shell_clear_queue):
1965         * shell/rb-shell.h:
1966         * shell/rb-shell.xml:
1967         * sources/rb-play-queue-source.c:
1968         (rb_play_queue_source_clear_queue),
1969         (rb_play_queue_source_cmd_clear):
1970         * sources/rb-play-queue-source.h:
1971         Add clearQueue dbus method.
1973 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1975         * shell/main.c: (main):  Implement --quit option.
1977 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1979         * rhythmdb/rhythmdb-private.h:
1980         * rhythmdb/rhythmdb-tree.h:
1981         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
1982         (rhythmdb_entry_insert), (rhythmdb_entry_set),
1983         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
1984         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
1985         (rhythmdb_entry_get_boolean):
1986         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
1987         bitmask, giving the db backend anything past the first 16 bits for 
1988         its own private use.
1990         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
1991         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
1992         Add a 'loading' flag to indicate that an entry is being loaded from
1993         disk, and use that to ignore entry_set operations on such entries
1994         rather than the 'inserted' flag, which doesn't quite mean the same
1995         thing.  Fixes #342694.
1997 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1999         * shell/rb-shell.xml: Remove visibility property, since it causes
2000         crashes (dbus bug 7057) and doesn't do much else.
2002 2006-05-28  James Livingston  <doclivingston@gmail.com>
2004         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
2006         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
2007         * po/POTFILES.in: fix some more i18n issues.
2009 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2011         * bindings/python/rb.defs:
2012         * shell/rb-shell-player.c: (rb_shell_player_playpause),
2013         (filter_mmkeys):
2014         * shell/rb-shell-player.h:
2015         Deprecate the useless 'ignore_stop' parameter to
2016         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
2017         API.  From bug #334829.
2019 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2021         * plugins/generic-player/rb-generic-player-source.c:
2022         (visit_playlist_dirs), (default_transform_playlist_uri):
2023         When playlist parsing fails, unref the playlist, not the parent
2024         source.  Fix memory leak in playlist uri transform.
2025         * plugins/generic-player/rb-nokia770-source.c:
2026         (impl_transform_playlist_uri):
2027         Fix memory leak in playlist uri transform.
2029 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
2031         * doc/reference/Makefile.am: fix grk-doc build
2033 2006-05-27  James Livingston  <doclivingston@gmail.com>
2035         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
2037         * plugins/lyrics/lyrics.py:
2038         * po/POTFILES.in: Make strings in plugins translatable. From bug
2039         343081.
2041 2006-05-27  James Livingston  <doclivingston@gmail.com>
2043         * backends/Makefile.am:
2044         * backends/gstreamer/Makefile.am:
2045         * lib/Makefile.am:
2046         * plugins/audioscrobbler/Makefile.am:
2047         * plugins/generic-player/Makefile.am:
2048         * po/POTFILES.in:
2049         * rhythmdb/rhythmdb-monitor.c:
2050         * rhythmdb/rhythmdb.c:
2051         * sources/Makefile.am:
2052         * widgets/Makefile.am: fix compilation after some CVS surgery was
2053         done.
2055 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2057         * bindings/python/rhythmdb.defs:
2058         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
2059         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
2060         (rhythmdb_query_deserialize):
2061         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
2062         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
2063         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
2064         (rhythmdb_entry_register_type_alias),
2065         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
2066         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
2067         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
2068         (rhythmdb_entry_podcast_feed_get_type),
2069         (rhythmdb_entry_import_error_get_type),
2070         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
2071         * rhythmdb/rhythmdb.h:
2072         Allocate a specified amount of extra memory for each db entry, to be
2073         used to store fields specific to the entry type.  Optionally associate
2074         a name with each entry type, to be used when saving entries and
2075         auto playlists to disk.  Allow entry types to have multiple names
2076         to handle older playlist files that used '0' to represent 'song'.
2077         Use private data to store podcast fields.
2079         * rhythmdb/rhythmdb-private.h:
2080         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
2081         (rhythmdb_tree_parser_end_element), (save_entry),
2082         (rhythmdb_tree_entry_set):
2083         Simplify property handling by using existing code to convert
2084         properties from strings to GValues and to set properties on entries.
2085         Other assorted changes due to the above.
2087         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
2088         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
2089         * sources/rb-generic-player-source.c:
2090         (rb_generic_player_source_new):
2091         * sources/rb-ipod-source.c: (rb_ipod_source_new):
2092         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
2093         * sources/rb-psp-source.c: (rb_psp_source_new):
2094         Update for changes to rhythmdb_entry_register_type.  None of these
2095         entry types need names or use private data.
2097         Fixes #337429.
2099 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2101         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
2102         Fix creation of ignored-file db entries - need to check for
2103         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
2105 2006-05-25  James Livingston  <doclivingston@gmail.com>
2107         * AUTHORS:
2108         * MAINTAINERS: update my email address
2110 2006-05-25  James Livingston  <doclivingston@gmail.com>
2112         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
2113         "(... mix)" when searching for lyrics. Cache the lyrics under
2114         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
2116 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2118         * sources/rb-import-errors-source.c:
2119         (rb_import_errors_source_class_init):
2120         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
2121         * sources/rb-browser-source.c: (rb_browser_source_class_init):
2122         * sources/rb-source.c: (rb_source_class_init),
2123         (default_move_to_trash):
2124         Implement the basic move-to-trash operation once in rb-source.c, 
2125         rather than in each source type that supports it.
2127         * plugins/ipod/rb-ipod-plugin.c:
2128         * shell/rb-removable-media-manager.c:
2129         * shell/rb-shell.c: (rb_shell_constructor):
2130         Only scan removable media once after loading plugins.  Add a flag
2131         plugins can use to check if the initial scan has been done.
2133         * data/rhythmbox.schemas:
2134         Enable ipod and generic-player plugins by default.
2135         
2136         * configure.ac:
2137         * data/ui/Makefile.am:
2138         * data/ui/generic-player-ui.xml:
2139         * data/ui/rhythmbox-ui.xml:
2140         * plugins/Makefile.am:
2141         * plugins/generic-player/Makefile.am:
2142         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
2143         * plugins/generic-player/rb-generic-player-plugin.c:
2144         * sources/Makefile.am:
2145         * sources/rb-generic-player-source.c:
2146         * sources/rb-generic-player-source.h:
2147         * sources/rb-nokia770-source.c:
2148         * sources/rb-nokia770-source.h:
2149         * sources/rb-psp-source.c: (visit_playlist_dirs):
2150         * sources/rb-psp-source.h:
2151         Pluginise generic player (and nokia770 and PSP) support and add
2152         move-to-trash for players not mounted read-only.
2153         Fixes #342868.
2155 2006-05-24  William Jon McCann  <mccann@jhu.edu>
2157         * daapsharing/rb-daap-connection.c (handle_song_listing):
2158         Lower bound check for batch commit.  Fixes #342848
2160         * sources/rb-daap-source.c (rb_daap_source_get_status):
2161         Always set output variables if provided.
2163 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2165         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
2166         (rhythmdb_tree_entry_delete), (remove_one_song):
2167         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
2168         Fix two db entry reference counting problems.
2169         The initial reference on the entry is held by the db backend, but it
2170         was never being dropped.  The reference count was incremented when
2171         adding an entry to the deleted_entries map and to the
2172         deleted_entries_to_emit list, but only decremented for one of those.
2174 2006-05-24  William Jon McCann  <mccann@jhu.edu>
2176         * daapsharing/rb-daap-connection.c (http_response_handler) 
2177         (rb_daap_connection_dispose):
2178         Call soup_session_abort to make sure there are no outstanding
2179         requests when we dispose of the connection.  Ignore cancelled
2180         messages in the callback.
2182 2006-05-24  William Jon McCann  <mccann@jhu.edu>
2184         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
2185         (rb_daap_source_disconnect): Set a flag when disconnecting
2186         the source.  Check this flag in connection callback
2187         to see if we should release the connection.
2189 2006-05-24  William Jon McCann  <mccann@jhu.edu>
2191         * daapsharing/Makefile.am:
2192         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
2193         (rb_daap_connection_class_init), (connection_connected),
2194         (connection_disconnected), (connection_operation_done),
2195         (build_message), (connection_set_error_message),
2196         (actual_http_response_handler), (http_get),
2197         (entry_set_string_prop), (emit_progress_idle),
2198         (handle_server_info), (handle_login), (handle_update),
2199         (handle_database_info), (handle_song_listing), (handle_playlists),
2200         (handle_playlist_entries), (handle_logout),
2201         (rb_daap_connection_new), (rb_daap_connection_is_connected),
2202         (connection_response_data_free), (connected_cb),
2203         (rb_daap_connection_connect), (disconnected_cb),
2204         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
2205         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
2206         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
2207         (rb_daap_connection_get_property):
2208         * daapsharing/rb-daap-connection.h:
2209         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
2210         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
2211         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
2212         (rb_daap_hash_generate):
2213         * daapsharing/rb-daap-hash.h:
2214         * sources/rb-daap-source.c: (rb_daap_source_class_init),
2215         (rb_daap_get_icon), (remove_source), (stop_browsing),
2216         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
2217         (connection_connecting_cb), (connection_disconnected_cb),
2218         (release_connection), (rb_daap_source_connection_cb),
2219         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
2220         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
2222         Adds a better async API for connect and disconnect.  Doesn't share
2223         callback data for every async call.  Adds a connect signal.  Uses
2224         an operation-done signal to trigger the callbacks.  Displays an
2225         error when connections fail.  A few refcounting fixes to fix
2226         crashes.  Uses a weak pointer to set the connection to NULL so we
2227         don't clobber references.  Wait for each disconnect when shutting
2228         down sources.  Split out DAAP hash stuff into its own file.  Fix
2229         typo in header.
2231         Fixes #342643
2232         
2233 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2235         * sources/rb-auto-playlist-source.c:
2236         (rb_auto_playlist_source_new_from_xml):
2237         Initialize the gvalue used to hold the size limit correctly.
2238         Fixes #342744.
2240 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2242         * shell/rb-shell.c: (rb_shell_window_delete_cb),
2243         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
2244         * shell/rb-shell.h:
2245         * shell/rb-shell.xml:
2246         Convert rb_shell_quit into a dbus method, and add visibility dbus
2247         property.
2249 2006-05-22  James Livingston  <doclivingston@gmail.com>
2251         * rhythmdb/rhythmdb.h:
2252         * rhythmdb/rhythmdb.c: (sync_entry_changed),
2253         (rhythmdb_entry_is_editable), (action_thread_main),
2254         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
2255         vfuncs for can_sync_metadata, and sync_metadata. The default is always
2256         false, and syncing into the file.
2258         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
2259         (rhythmdb_entry_iradio_get_type),
2260         (rhythmdb_entry_import_error_get_type):
2261         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
2262         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
2263         change the DB.
2265 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2267         * rhythmdb/Makefile.am:
2268         * rhythmdb/rhythmdb-monitor.c:
2269         * rhythmdb/rhythmdb-private.h:
2270         * rhythmdb/rhythmdb-query.c:
2271         * rhythmdb/rhythmdb.c:
2272         Split up rhythmdb.c a bit.
2274 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2276         * data/glade/audioscrobbler-prefs.glade:
2277         Add a link to the last.fm server status page.
2279 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
2281         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
2282         Capitalization fix.
2283         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
2284         (impl_create_configure_dialog):  UI layout fixes, remove
2285         dialog separator, and capitalization fix for window title.
2286         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
2287         and remove dialog separator.
2288         * data/glade/plugins.glade:  UI layout fixes.
2289         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
2290         and capitalization fix.  Fixes #342438.
2292 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
2294         * data/glade/podcast-properties.glade:  Fix layout of the download 
2295         location.  Fixes #342431.
2297 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2299         * data/ui/rhythmbox-ui.xml:
2300         We only need one copy of the 'add to queue' action in the edit menu.
2302 2006-05-20  James Livingston  <doclivingston@gmail.com>
2304         * data/ui/rhythmbox-ui.xml:
2305         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
2306         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
2307         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
2308         (rb_shell_clipboard_sync),
2309         (rb_shell_clipboard_cmd_add_to_playlist_new),
2310         (rb_shell_clipboard_cmd_queue_song_info),
2311         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
2312         (rb_shell_clipboard_playlist_deleted_cb),
2313         (rb_shell_clipboard_playlist_renamed_cb),
2314         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
2315         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
2316         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
2317         dynamically generated with all the static playlists. Fixes bug 323364.
2319         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
2320         right child, so it doesn't go weird when art appears and disappears.
2322 2006-05-20  James Livingston  <doclivingston@gmail.com>
2324         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
2326         * rhythmdb/rhythmdb-query-model.c:
2327         (rhythmdb_query_model_set_property),
2328         (rhythmdb_query_model_finalize),
2329         (rhythmdb_query_model_reapply_query_cb):
2330         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
2331         (rhythmdb_query_append_prop_multiple),
2332         (rhythmdb_query_is_time_relative):
2333         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
2334         time-based criteria, fixes bug 341131.
2336 2006-05-20  James Livingston  <doclivingston@gmail.com>
2338         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
2339         we have already changed playing entries. Interpolate the art size so
2340         it doesn't jump when the old and new images have different aspect
2341         ratios.
2343 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2345         * rhythmdb/rhythmdb-private.h:
2346         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
2347         (save_entry):
2348         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
2349         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
2350         (rhythmdb_entry_get_ulong):
2351         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
2352         and elsewhere, use them on the stack rather than allocating on 
2353         the heap.  From bug #342333.
2355 2006-05-19  William Jon McCann  <mccann@jhu.edu>
2357         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
2358         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
2359         (add_track), (eos_cb), (error_signal_idle),
2360         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
2361         (rb_recorder_construct), (recorder_track_free),
2362         (rb_recorder_finalize):
2363         * sources/rb-playlist-source-recorder.c:
2364         Support libnautilus-burn size -> capacity API change.  Add
2365         some braces to blocks.
2367 2006-05-19  William Jon McCann  <mccann@jhu.edu>
2369         * metadata/sj-metadata-musicbrainz.c:
2370         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
2371         Sync with sound-juicer in CVS.  Fixes #342177
2372         * sources/rb-audiocd-source.c: Don't declare variables
2373         in the middle of a block (c99ism).  Fix order of #includes.
2374         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
2375         one variable per line.  Update copyright date.
2377 2006-05-19  James Livingston  <doclivingston@gmail.com>
2379         patch by: Hendrik Richter  <hendi@gnome-de.org>
2381         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
2382         "translator_credits" to a hyphen, so it doesn't cause problems for
2383         tools that check access keys. Fixes bug 341832.
2385 2006-05-19  James Livingston  <doclivingston@gmail.com>
2387         * po/POTFILES.in: remove references to files that don't exist any more
2388         (fixes make distcheck).
2390 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
2392         * plugins/lyrics/lyrics.py:  Fix layout close button in 
2393         Song Lyrics dialog. Fixes bug 342322.
2395 2006-05-19  James Livingston  <doclivingston@gmail.com>
2397         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
2399         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
2400         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
2401         version checks not break when libnotify goes to 1.0.0. Fixes bug
2402         342244.
2404 2006-05-18  James Livingston  <doclivingston@gmail.com>
2406         * shell/rb-shell-clipboard.c:
2407         * shell/rb-shell.c:
2408         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
2410 2006-05-17  William Jon McCann  <mccann@jhu.edu>
2412         * sources/rb-playlist-source-recorder.c (get_song_description):
2413         Reverse artist and title in song description.  This
2414         is useful because at least the title will be visible
2415         when there is limited space.
2417 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2419         * daapsharing/rb-daap-connection.c: (connection_get_password):
2420         Take gdk lock before emitting authenticate signal.
2421         * sources/rb-daap-source.c: (connection_connecting_cb):
2422         Get rid of the unnecessary idle handler (it's already called from one)
2423         Fixes #342047 once more.
2425 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2427         * shell/rb-shell.c: (rb_shell_class_init):
2428         * shell/rb-shell.h:
2429         * widgets/rb-song-info.c: (rb_song_info_class_init),
2430         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
2431         (rb_song_info_constructor), (rb_song_info_get_property),
2432         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
2433         (rb_song_info_forward_clicked_cb):
2434         * widgets/rb-song-info.h:
2435         * data/glade/song-info-multiple.glade:
2436         * lib/rb-marshal.list:
2437         * bindings/python/Makefile.am:
2438         * bindings/python/rb.defs:
2439         * bindings/python/rb.override:
2440         Allow plugins to add pages to the notebooks used in song info windows,
2441         and to track the current song displayed in single-entry windows.
2442         
2443         * configure.ac:
2444         * plugins/Makefile.am:
2445         * plugins/lyrics/Loader.py:
2446         * plugins/lyrics/Makefile.am:
2447         * plugins/lyrics/lyrics.py:
2448         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
2449         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
2450         as a separate window (for the playing song) or as a page in the song
2451         info window.  A few TODO items left, but this fixes #319320.
2453 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2455         Patch by:  Roozbeh Pournader
2457         * configure.ac:
2458         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
2459         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
2461 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2462         
2463         * sources/rb-daap-source.c: (update_connection_status):
2464         Correct return value.  Fixes #342047 again.
2466 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2468         * sources/rb-daap-source.c: (update_connection_status),
2469         (connection_connecting_cb):
2470         Update status in an idle handler so we don't rely on the gdk lock
2471         being recursive (because it isn't any more).  Fixes #342047.
2473 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2475         * lib/rb-util.c: (rb_make_duration_string),
2476         (rb_make_elapsed_time_string):
2477         * lib/rb-util.h:
2478         Add a function for formatting an elapsed time string.
2480         * shell/rb-shell-player.c: (rb_shell_player_init),
2481         (rb_shell_player_sync_with_source),
2482         (rb_shell_player_get_playing_time_string), (tick_cb):
2483         Store elapsed time in the private data structure, and use the above
2484         function.
2485         
2486         * widgets/rb-header.c:
2487         * widgets/rb-header.h:
2488         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
2489         object, so everything has the same idea of the elapsed time.
2490         Fixes #339693.
2492 2006-05-16  James Livingston  <doclivingston@gmail.com>
2494         * bindings/python/rhythmdb.defs:
2495         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
2496         some parametre defaults, so you don't have to pass None, False for the
2497         sorting order.
2499 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2501         * bindings/python/rhythmdb.defs:
2502         * rhythmdb/rhythmdb-query-model.c:
2503         (rhythmdb_query_model_compute_status_normal):
2504         * rhythmdb/rhythmdb-query-model.h:
2505         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
2506         * rhythmdb/rhythmdb.h:
2507         Change the various compute_status methods to accept a singular/plural
2508         pair to use in the status string.
2509         
2510         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
2511         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
2512         * sources/rb-source.c: (default_get_status):
2513         Call entries 'songs' by default, and 'episodes' in the podcast source.
2514         Fixes #340227.
2516 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2518         patch by:  Paul Drain
2520         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
2521         Fixes #341817.
2523 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2525         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
2526         Generate reorder maps correctly.
2527         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
2528         Scroll to the first entry from the old selection.
2529         Fixes #322992.
2531 2006-05-15  William Jon McCann  <mccann@jhu.edu>
2533         * data/ui/rhythmbox-ui.xml:
2534         * lib/rb-preferences.h:
2535         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
2536         (rb_shell_playlist_created_cb),
2537         (rb_shell_view_sidepane_changed_cb),
2538         (rb_shell_sync_sidepane_visibility),
2539         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
2540         (sidepane_visibility_changed_cb):
2541         * sources/rb-podcast-source.c:
2542         Convert sourcelist visibility to side-pane visbility.
2543         Fixes #339733
2545 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2547         * widgets/rb-header.c:
2548         * widgets/rb-header.h: Stop RBHeader from referring to itself as
2549         'player', and make it use the private data structure allocated for it.
2551 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2553         * configure.ac: enable metadata helper with dbus < 0.35.
2555 2006-05-15  James Livingston  <doclivingston@gmail.com>
2557         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
2559         * data/glade/song-info.glade:
2560         * widgets/rb-song-info.c: (rb_song_info_construct_single),
2561         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
2562         (rb_song_info_update_filesize): Add the file size into the song info
2563         window. Fixes bug 340861.
2565 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2567         * bindings/python/rhythmdb.defs:
2568         * rhythmdb/rhythmdb-query-model.c:
2569         (rhythmdb_query_model_set_property),
2570         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
2571         * rhythmdb/rhythmdb-query-model.h:
2572         Add a new method to chain query models without importing entries from
2573         the parent into the child.  This is useful when the subset of entries
2574         in the child can be more easily determined by running a query than by
2575         filtering entries from the parent.
2577         * bindings/python/rb.defs:
2578         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
2579         (rb_library_browser_set_property),
2580         (rb_library_browser_get_property), (rb_library_browser_new),
2581         (rebuild_child_model):
2582         * widgets/rb-library-browser.h:
2583         * sources/rb-auto-playlist-source.c:
2584         (rb_auto_playlist_source_constructor):
2585         * sources/rb-static-playlist-source.c:
2586         (rb_static_playlist_source_constructor):
2587         * sources/rb-browser-source.c: (rb_browser_source_constructor):
2588         Use more efficient queries for constructing the browser query model
2589         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
2590         backend to optimise the query) and run new queries rather than
2591         filtering entries from the parent.  Fixes #341402.
2593         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
2595 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2597         * configure.ac:
2598         * shell/Makefile.am:
2599         * shell/main.c: (main), (load_uri_args), (send_present_message),
2600         (unregister_dbus_handler), (handle_dbus_message),
2601         (register_dbus_handler):
2602         Add minimal support for dbus 0.31 - 0.35.
2604         * doc/reference/Makefile.am:
2605         * doc/reference/rhythmbox.types:
2606         * data/Makefile.am:
2607         * data/GNOME_Rhythmbox.server.in:
2608         * data/rhythmbox.pc.in:
2609         * remote/*:
2610         * remote/bonobo/*:
2611         Remove remaining bonobo and generic remote interface files.
2613 2006-05-14  James Livingston  <doclivingston@gmail.com>
2615         * shell/rb-shell.c: (construct_widgets):
2616         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
2617         resize the browser and queue-sidebar section of their panes, unless
2618         the other section is below the minimum size. Fixes bug 331927.
2620 2006-05-13  James Livingston  <doclivingston@gmail.com>
2622         * rhythmdb/rhythmdb-query-model.c:
2623         (rhythmdb_query_model_class_init),
2624         (rhythmdb_query_model_set_property),
2625         (rhythmdb_query_model_get_property),
2626         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
2627         (rhythmdb_query_model_insert_into_main_list),
2628         (rhythmdb_query_model_insert_into_limited_list),
2629         (rhythmdb_query_model_do_reorder),
2630         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
2631         (rhythmdb_query_model_location_sort_func),
2632         (rhythmdb_query_model_title_sort_func),
2633         (rhythmdb_query_model_album_sort_func),
2634         (rhythmdb_query_model_artist_sort_func),
2635         (rhythmdb_query_model_genre_sort_func),
2636         (rhythmdb_query_model_track_sort_func),
2637         (rhythmdb_query_model_double_ceiling_sort_func),
2638         (rhythmdb_query_model_ulong_sort_func),
2639         (rhythmdb_query_model_date_sort_func),
2640         (rhythmdb_query_model_string_sort_func):
2641         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
2642         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
2643         "data destroy" property. Fixed bug 341543.
2645         * bindings/python/rhythmdb.defs:
2646         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
2647         rhythmdb_query_model_set_sorting_order
2649         * rhythmdb/rhythmdb-property-model.c:
2650         (rhythmdb_property_model_drag_data_get):
2651         * sources/rb-import-errors-source.c:
2652         (rb_import_errors_source_constructor):
2653         * sources/rb-missing-files-source.c:
2654         (rb_missing_files_source_constructor):
2655         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
2656         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
2657         * widgets/rb-entry-view.h: adapt to the above change.
2659 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2661         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
2662         (rhythmdb_tree_load):
2663         Commit loaded entries in batches, rather than individually.  
2664         More startup time reduction.
2666 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
2668         * doc/reference/Makefile.am: fix gtk-doc compilation
2670 2006-05-12  William Jon McCann  <mccann@jhu.edu>
2672         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
2673         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
2674         * plugins/artdisplay/artdisplay/Loader.py:
2675         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
2676         Only call the first artist the best match when album==Unknown.
2677         Don't perform each query twice if album doesn't include "Vol N".
2678         Fix searching for compilations.  Fix blacklisting.
2679         Part of bug #307848
2681 2006-05-12  William Jon McCann  <mccann@jhu.edu>
2683         * Makefile.am:
2684         * bindings/python/Makefile.am:
2685         * bindings/python/rb.defs:
2686         * bindings/python/rb.override:
2687         * configure.ac:
2688         * doc/reference/Makefile.am:
2689         * plugins/Makefile.am:
2690         * plugins/audioscrobbler/Makefile.am:
2691         * plugins/ipod/Makefile.am:
2692         * plugins/lirc/Makefile.am:
2693         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
2694         (impl_activate), (impl_deactivate):
2695         * plugins/sample/Makefile.am:
2696         * remote/Makefile.am:
2697         * shell/Makefile.am:
2698         * shell/main.c: (main), (main_shell_weak_ref_cb):
2699         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
2700         (rb_shell_get_property), (rb_shell_window_state_cb),
2701         (idle_hide_mainwindow), (rb_shell_set_visibility),
2702         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
2703         (rb_shell_set_song_property):
2704         * shell/rb-shell.h:
2705         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
2706         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
2707         (rb_tray_icon_get_property), (rb_tray_icon_new),
2708         (rb_tray_icon_button_press_event_cb),
2709         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
2710         (rb_tray_icon_show_window_changed_cb):
2711         * shell/rb-tray-icon.h:
2713         Remove bonobo, require DBUS.
2714         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
2715         Fixes #339720
2717 2006-05-13  James Livingston  <doclivingston@gmail.com>
2719         * bindings/python/rb.override: fix some pointer-type warnings
2721 2006-05-12  James Livingston  <doclivingston@gmail.com>
2723         * lib/rb-util.c: (rb_value_free):
2724         * lib/rb-util.h: Add function to unset and free a GValue* that was
2725         allocated in the heap.
2727         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
2728         the metadata hastable values
2729         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
2730         leak the metadata hashtable structure
2731         * metadata/rb-metadata-dbus.c:
2732         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
2733         using g_strdup and then _take_string
2735         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
2736         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
2737         stat something.
2739         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
2740         leak the encoded string
2742         * widgets/rb-property-view.c:
2743         (rb_property_view_selection_changed_cb): set some variables to have
2744         inital values, because some code paths may not set them before we use
2745         them.
2747         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
2748         don't have python warning into a debug message".
2750 2006-05-10  William Jon McCann  <mccann@jhu.edu>
2752         * data/rhythmbox.schemas: Use zero instead of null for
2753         default burn speed.  Fixes #341283.
2755 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2757         * bindings/python/rb.defs:
2758         * widgets/rb-library-browser.c:
2759         (rb_library_browser_get_property_view):
2760         * widgets/rb-library-browser.h:
2761         Add a method to get the property view for a given property.
2763         * sources/rb-browser-source.c:
2764         (rb_browser_source_cmd_choose_genre),
2765         (rb_browser_source_cmd_choose_artist),
2766         (rb_browser_source_cmd_choose_album):
2767         Change the browser selection by changing the property view selection. 
2768         Makes the selection change visible, fixing #331740.
2770 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2772         * bindings/python/rb.defs:
2773         * bindings/python/rb.override:
2774         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
2775         * shell/rb-statusbar.c: (*),
2776         * sources/rb-import-errors-source.c: (impl_get_status):
2777         * sources/rb-iradio-source.c: (impl_get_status):
2778         * sources/rb-missing-files-source.c: (impl_get_status):
2779         * sources/rb-source.c: (default_get_status),
2780         (rb_source_get_status):
2781         * sources/rb-source.h:
2782         Allow sources to provide a progress value for the status bar.
2783         Simplify status bar processing (much less polling).
2784         Consider rhythmdb busy while it's still loading the database.
2786         * daapsharing/rb-daap-connection.c: (*)
2787         * daapsharing/rb-daap-connection.h:
2788         * lib/rb-marshal.list:
2789         * sources/rb-daap-source.c: (rb_daap_source_class_init),
2790         (rb_daap_source_init), (connection_connecting_cb),
2791         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
2792         (rb_daap_source_get_status):
2793         Provide status information for DAAP connections, and move processing
2794         of large responses into a separate thread.
2795         Fixes bugs #322020 and #338978.
2797 2006-05-09  James Livingston  <doclivingston@gmail.com>
2799         Split the artdisplay plugin into several files.
2800         Fix loader and amazon-search re-use issues.
2801         Add some better search heuristics.
2803         * configure.ac:
2804         * plugins/artdisplay/Makefile.am:
2805         * plugins/artdisplay/artdisplay.py:
2806         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
2807         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
2808         * plugins/artdisplay/artdisplay/Loader.py:
2809         * plugins/artdisplay/artdisplay/Makefile.am:
2810         * plugins/artdisplay/artdisplay/__init__.py:
2812 2006-05-09  James Livingston  <doclivingston@gmail.com>
2814         * sources/rb-browser-source.h: remove the _has_first_added_column
2815         stuff since it isn't actually used anywhere. Sources that want it
2816         should just add it themselves, as the library already does
2818         * bindings/python/rb.defs:
2819         * sources/rb-daap-source.c: (rb_daap_source_class_init):
2820         * sources/rb-library-source.c: (rb_library_source_class_init):
2821         * sources/rb-removable-media-source.c:
2822         (rb_removable_media_source_class_init): Remove the remanants of the
2823         above.
2825 2006-05-09  James Livingston  <doclivingston@gmail.com>
2827         * bindings/python/rb.defs:
2828         * sources/rb-browser-source.h: remove a function that was declared in
2829         the header, but not defined anywhere.
2831 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2833         * plugins/artdisplay/.cvsignore:
2834         * plugins/ipod/.cvsignore: Added.
2836 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2838         * sources/rb-auto-playlist-source.c:
2839         (rb_auto_playlist_source_new_from_xml):
2840         Fix reading of older playlist files where all three limits were
2841         specified so we take the first nonzero limit.  From #341053.
2843 2006-05-09  James Livingston  <doclivingston@gmail.com>
2845         * bindings/python/Makefile.am:
2846         * bindings/python/rb.defs:
2847         * bindings/python/rb.override: bind RBBrowserSource,
2848         RBRemovableMediaSource and RBRemovableMediamanager.
2850 2006-05-09  James Livingston  <doclivingston@gmail.com>
2852         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
2854         * data/glade/plugins.glade: make the plugin dialog look a bit better.
2855         Fixes bug 339221.
2857 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2859         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
2860         Don't explode when trying to edit a query with no limit set.
2862 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2864         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
2865         Clear the should_queue flag when switching to a non-submittable entry,
2866         so we don't submit songs that played for three seconds before
2867         switching to a podcast episode.
2869         * rhythmdb/rhythmdb-query-model.c
2870         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
2871         in the drag data list.
2873 2006-05-08  James Livingston  <doclivingston@gmail.com>
2875         * lib/rb-util.c: (rb_value_array_append_data):
2876         * lib/rb-util.h: add function which is basically a combination of
2877         G_VALUE_COLLECT and g_value_array_append.
2879         * rhythmdb/rhythmdb-query-model.h:
2880         * rhythmdb/rhythmdb-query-model.c:
2881         (rhythmdb_query_model_class_init),
2882         (rhythmdb_query_model_set_property),
2883         (rhythmdb_query_model_get_property),
2884         (rhythmdb_query_model_finalize),
2885         (rhythmdb_query_model_update_limited_entries),
2886         (rhythmdb_query_model_set_sort_order),
2887         (rhythmdb_query_model_within_limit),
2888         (rhythmdb_query_model_limit_type_get_type): Make query model limits
2889         saner. Rather than having <count=N, time=N, size=N> we now have a
2890         <type, value> pair. This will also make it much easier to add new
2891         limit types in the future.
2893         * shell/rb-playlist-manager.c:
2894         (rb_playlist_manager_set_automatic_playlist),
2895         (rb_playlist_manager_cmd_edit_automatic_playlist):
2896         * sources/rb-auto-playlist-source.c:
2897         (rb_auto_playlist_source_finalize),
2898         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
2899         (_save_write_ulong), (_save_write_uint64),
2900         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
2901         (rb_auto_playlist_source_set_query),
2902         (rb_auto_playlist_source_get_query):
2903         * sources/rb-auto-playlist-source.h:
2904         * sources/rb-library-source.c:
2905         (rb_library_source_add_child_source):
2906         * sources/rb-psp-source.c: (visit_playlist_dirs):
2907         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
2908         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
2909         * widgets/rb-query-creator.h: Adapt to the above change.
2911 2006-05-08  James Livingston  <doclivingston@gmail.com>
2913         * shell/rb-playlist-manager.c:
2914         (rb_playlist_manager_cmd_edit_automatic_playlist):
2915         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
2916         (rb_auto_playlist_source_set_query),
2917         (rb_auto_playlist_source_get_query): copy the query in the _get method
2918         and free it in things calling that. Fixes a crasher.
2920 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2922         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
2923         Make entries on newly mounted volumes visible immediately, hiding them
2924         later if they turn out to be missing.  Fixes #340068.
2926 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2928         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
2929         Ignore zip files and ignore errors for files we've decided to ignore.
2931 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2933         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
2934         Add missing }, should fix #340844.
2936 2006-05-06  James Livingston  <doclivingston@gmail.com>
2938         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
2939         typo.
2941 2006-05-06  James Livingston  <doclivingston@gmail.com>
2943         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
2944         that we work with libnotify >= 0.4
2946 2006-05-06  James Livingston  <doclivingston@gmail.com>
2948         patch by: Joe Barnett  <thejoe@gmail.com>
2950         * configure.ac: check if we're using a version of libgpod that
2951         supports the Motorola ROKR
2953         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
2954         for the db path, if we using the newer version.
2956         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
2958 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2960         * rhythmdb/rhythmdb-query-model.c:
2961         (rhythmdb_query_model_drag_data_get):
2962         Use playback URI, not location, for drag data.  Fixes #322597.
2964 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
2966         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
2968 2006-05-03  James Livingston  <doclivingston@gmail.com>
2970         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
2971         (rb_add_id3_tagger), (rb_metadata_save):
2972         Set the tags on the tagging element when it is
2973         created, not during pipeline creation - which is required for
2974         dynamically created elements.
2976         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
2977         support for using the "vorbistag" element to re-tag ogg vorbis files.
2978         Fixes bug 339878.
2980 2006-05-03  James Livingston  <doclivingston@gmail.com>
2982         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
2984         * plugins/artdisplay/artdisplay.py:
2985         - Fix small bug callback of data loader getting overwritten on fast
2986         connections.
2987         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
2988         Jonathan Matthew)
2989         - Fix Rhythmbox UI blocking while loading/searching cover art
2990         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
2991         - Initial approach to allow additional "art search engines"
2992         - Further modularization in a couple of places
2993         - Minor fixes for empty entries (iradio, album, artist etc.)
2995 2006-05-03  James Livingston  <doclivingston@gmail.com>
2997         * shell/rb-playlist-manager.c:
2998         (rb_playlist_manager_playlist_entries_changed),
2999         (rb_playlist_manager_set_source): don't show the edit/delete/rename
3000         options for non-local sources, rather than showing disabled ones.
3002         * sources/rb-library-source.c: (add_child_sources_idle),
3003         (rb_library_source_constructor), (rb_library_source_new),
3004         (rb_library_source_library_location_changed),
3005         (rb_library_source_add_child_source),
3006         (rb_library_source_sync_child_sources): Create "child library" sources
3007         when the user has multiple library locations set. Fixes bug 100552.
3009 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3011         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
3012         * plugins/sample/sample.rb-plugin.desktop.in:
3013         Finish changing 'Author' to 'Authors'
3014         
3015         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
3016         (rhythmdb_entry_import_error_get_type):
3017         Implement get_playback_uri for import errors (returns NULL)
3019         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
3020         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
3021         entry, rather than doing entry type checks.
3023 2006-05-02  James Livingston  <doclivingston@gmail.com>
3025         patch from Alessandro Decina  <alessandro@nnva.org>
3027         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
3028         the signal emission in the case of fatal-on-init errors. From bug
3029         322268.
3031 2006-05-02  James Livingston  <doclivingston@gmail.com>
3033         * rhythmdb/rhythmdb.h:
3034         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
3035         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
3036         (rhythmdb_entry_podcast_post_get_type),
3037         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
3038         virtual function to entry-types for getting the playback URI. From bug
3039         330226.
3041         * backends/gstreamer/rb-encoder-gst.c:
3042         (create_pipeline_and_source), (extract_track):
3043         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
3044         to get the URI.
3046 2006-05-02  James Livingston  <doclivingston@gmail.com>
3048         patch by: Brian Cameron  <brian.cameron@sun.com>
3050         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
3051         340337.
3053 2006-05-01  William Jon McCann  <mccann@jhu.edu>
3055         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
3056         instead of clear.  Use regex matching to strip "disc N"
3057         from album.  Match titles in ProductName.  Perform
3058         fallback queries including various artist compilations.
3059         Include "us" locale.  Improve queries when artist or album
3060         is unknown.  Use medium size image if large is unavailable.
3062         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
3063         William Jon McCann  <mccann@jhu.edu>
3064         
3065 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3067         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
3068         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
3069         (conjunctive_query): Sanity check.
3070         (evaluate_conjunctive_subquery): 
3071         Don't return TRUE immediately when a relative-time query criterion
3072         matches.  Fixes #339972.
3074 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3076         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
3077         Don't crash if primary or secondary are NULL.
3079 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3081         * doc/reference/Makefile.am: fix gtk-doc build yet again
3083 2006-04-28  James Livingston  <doclivingston@gmail.com>
3085         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
3086         python console. Fixes bug 339934.
3088 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3090         * rhythmdb/rhythmdb-property-model.c:
3091         (rhythmdb_property_model_drag_data_get):
3092         When creating uri list drag data, create a new query model based on
3093         the query model the property model is attached to.  Makes the
3094         resulting query use the right entry type and include the upstream
3095         query criteria.  Fixes half of #327540.
3097 2006-04-27  James Livingston  <doclivingston@gmail.com>
3099         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
3100         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
3101         build fixes.
3103 2006-04-27  James Livingston  <doclivingston@gmail.com>
3105         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
3107 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3109         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
3110         (rb_playlist_manager_save_data),
3111         (rb_playlist_manager_save_playlists):
3112         * shell/rb-playlist-manager.h:
3113         * shell/rb-shell.c: (rb_shell_sync_state),
3114         (idle_save_playlist_manager):
3115         Remove a bit more threading insanity from the playlist manager.
3117 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3119         * shell/rb-playlist-manager.c: 
3120         * shell/rb-playlist-manager.h:
3121         Remove dead code, add gtk-doc, remove threading insanity (mostly).
3122         
3123         * shell/rb-shell.c: (rb_shell_sync_state),
3124         (idle_save_playlist_manager), (construct_sources),
3125         (rb_shell_select_source), (rb_shell_sync_party_mode):
3126         Adjustments for above changes.
3128 2006-04-26  William Jon McCann  <mccann@jhu.edu>
3130         * sources/rb-browser-source.c (impl_browser_toggled):
3131         Reset browser when hidden.  Fixes #339617.
3133 2006-04-26  James Livingston  <doclivingston@gmail.com>
3135         * backends/Makefile.am:
3136         * backends/gstreamer/Makefile.am: work again with separated
3137         built-roots
3139 2006-04-26  James Livingston  <doclivingston@gmail.com>
3141         * shell/rb-removable-media-manager.c:
3142         (rb_removable_media_manager_set_uimanager): fix compilation with
3143         -Werror and --enable-track-transfer.
3145 2006-04-26  James Livingston  <doclivingston@gmail.com>
3147         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
3148         implementing class. In theory allows alternate player implementations
3149         to be selected at run-time rather than compile-time. Fixes bug 338667.
3151         * Makefile.am:
3152         * backends/Makefile.am:
3153         * backends/gstreamer/Makefile.am:
3154         * backends/gstreamer/rb-player-gst.h:
3155         * backends/rb-player.c: (rb_player_interface_init),
3156         (rb_player_get_type), (rb_player_open), (rb_player_opened),
3157         (rb_player_close), (rb_player_play), (rb_player_pause),
3158         (rb_player_playing), (rb_player_set_volume),
3159         (rb_player_get_volume), (rb_player_set_replaygain),
3160         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
3161         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
3162         (_rb_player_emit_buffering), (_rb_player_emit_error),
3163         (_rb_player_emit_tick), (rb_player_error_quark):
3164         * player/Makefile.am:
3165         * player/rb-player-gst.c: (rb_player_gst_class_init),
3166         (rb_player_init), (tick_timeout), (rb_player_gst_init),
3167         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
3168         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
3169         (process_tag), (found_tag_cb), (buffering_cb),
3170         (rb_player_gst_bus_cb), (rb_player_gst_construct),
3171         (rb_player_gst_new):
3172         * player/rb-player.h:
3173         * shell/Makefile.am:
3174         * sources/rb-audiocd-source.c:
3175         * widgets/Makefile.am:
3176         * widgets/rb-header.c: (rb_header_class_init):
3178 2006-04-26  James Livingston  <doclivingston@gmail.com>
3180         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
3181         don't try to download an episode if it couldn't be parsed. Fixes bug
3182         339712.
3184         * shell/rb-removable-media-manager.c:
3185         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
3186         Library" option when track transfer is disabled. Fixes bug 339728.
3188 2006-04-26  James Livingston  <doclivingston@gmail.com>
3190         * data/ui/Makefile.am:
3191         * data/ui/daap-ui.xml:
3192         * data/ui/rhythmbox-ui.xml:
3193         * sources/rb-daap-source.c: (rb_daap_sources_init),
3194         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
3195         way that the ipod ui is. Fixes bug 339743.
3197 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3199         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
3200         (process_added_entries_cb), (process_deleted_entries_cb),
3201         (rhythmdb_commit_internal): 
3202         Combine the idle functions to emit entry-added and entry-deleted,
3203         and combine as many invocations of same as possible.  Another
3204         significant reduction in startup time.
3205         
3206         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
3207         Delay the next call to rhythmdb_process_events if the queue is
3208         empty or if we can't process any of the events in the queue because
3209         the database is read only.
3211         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
3213 2006-04-25  William Jon McCann  <mccann@jhu.edu>
3215         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
3217         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
3218         Don't special case errors quite so much.
3220 2006-04-25  William Jon McCann  <mccann@jhu.edu>
3222         * data/rhythmbox.schemas: Remove default speed.
3224         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
3225         Add n-c-b 2.15 support.  Make the default speed to slowest since
3226         that is all that works reliably.
3228 2006-04-25  William Jon McCann  <mccann@jhu.edu>
3230         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
3231         Fix compiler error from last commit.
3233 2006-04-25  James Livingston  <doclivingston@gmail.com>
3235         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
3236         transcoding-related issues. From bug 322268.
3238         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
3239         don't emit the signal, since the object is being finalised, which os a
3240         Bad Thing To Do.
3242         (profile_bin_find_encoder), (get_profile_from_mime_type),
3243         (transcode_track): find the encoding element by iterating looking for
3244         element in the class Codec/Encoder/Audio rather than the one named
3245         "enc".
3247 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3249         * shell/rb-shell-player.xml:
3250         * shell/rb-shell.xml:
3251         Add signal argument information.  
3252         Patch by Tim Moloney  <t.moloney@verizon.net>
3254         * shell/rb-shell.c: (rb_shell_window_state_cb):
3255         Use the right value for the visibility_changed signal.  Most of the
3256         time, anyway.
3258 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3260         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
3261         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
3262         (impl_create_configure_dialog):
3263         * data/glade/audioscrobbler-prefs.glade:
3264         * shell/rb-audioscrobbler.c (*):
3265         * lib/rb-preferences.h:
3266         * data/rhythmbox.schemas:
3267         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
3268         Add status information (# tracks submitted, # queued, last submit
3269         time, result of last submission) to the plugin config window.
3270         Remove 'enabled' setting, since it's easier to just disable the
3271         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
3272         nonexistant (so far) 'last.fm streaming' plugin.
3273         
3274         * help/C/rhythmbox.xml: Update documentation for last.fm profile
3275         plugin
3277         Fixes some of #325848.  We still don't provide a way to view the
3278         submission queue.
3280 2006-04-25  James Livingston  <doclivingston@gmail.com>
3282         patch by: Anders Petersson  <demitar@worldforge.org>
3284         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
3285         the YY-MM-DD format.
3287 2006-04-23  James Livingston  <doclivingston@gmail.com>
3289         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
3290         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
3291         * bindings/python/override_common.h:
3292         * bindings/python/rb.override: python binding fixes
3294 2006-04-23  James Livingston  <doclivingston@gmail.com>
3296         * shell/rb-statusbar.c: (rb_statusbar_finalize),
3297         (rb_statusbar_sync_with_source),
3298         (rb_statusbar_source_status_changed_cb): do the sync in an idle
3299         callback, rather than immediately every time. Takes ~5% off my warm-cache
3300         startup time.
3302         * bindings/python/rhythmdb.defs: fix the types using for
3303         RhythmDBEntryTypes.
3305 2006-04-22  James Livingston  <doclivingston@gmail.com>
3307         * data/ui/rhythmbox-ui.xml:
3308         * shell/rb-shell.c:
3309         * sources/rb-daap-source.c: (rb_daap_source_class_init),
3310         (remove_source), (rb_daap_sources_init),
3311         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
3312         (rb_daap_source_disconnect):
3313         * sources/rb-source.c: (rb_source_class_init),
3314         (rb_source_deactivate):
3315         * sources/rb-source.h: move the "disconnect" functionality from into
3316         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
3318 2006-04-22  James Livingston  <doclivingston@gmail.com>
3320         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
3321         actually get the translated strings for browser headers (they were
3322         already marked as translatable). Fixes bug 339380.
3324 2006-04-22  James Livingston  <doclivingston@gmail.com>
3326         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
3327         submission timeout when the object is finalised.
3329         * bindings/python/Makefile.am:
3330         * bindings/python/rb.defs:
3331         * bindings/python/rb.override:
3332         * bindings/python/rhythmdb.defs: fix some python binding stuff.
3334         * widgets/rb-library-browser.c:
3335         (rb_library_browser_construct_query), (rebuild_output_model),
3336         (rebuild_child_model):
3337         * widgets/rb-library-browser.h: change from GPtrArray to
3338         RhythmDBQuery (which in C is the same thing).
3340 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3342         * shell/rb-shell.c: (rb_shell_get_song_properties):
3343         Don't try to include entry-type (or anything else not easily
3344         marshallable) in the song properties hash table.
3346         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
3348         * sources/rb-playlist-source.c: (rb_playlist_source_init),
3349         (rb_playlist_source_constructor): Fix entry-type initialization as
3350         with previous commit.
3352 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3354         * sources/rb-iradio-source.c: (rb_iradio_source_init),
3355         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
3356         * sources/rb-podcast-source.c: (rb_podcast_source_init),
3357         (rb_podcast_source_constructor):
3358         Set default values for entry-type after base class construction,
3359         rather than in _init, because gobject will set the entry-type property
3360         to NULL after _init if no value is provided.  Fixes #339206.
3362 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
3364         patch by: Gunnar Steinn Magnusson
3366         * COPYING:
3367         * backends/gstreamer/rb-encoder-gst.c:
3368         * backends/gstreamer/rb-encoder-gst.h:
3369         * backends/rb-encoder.c:
3370         * backends/rb-encoder.h:
3371         * bindings/python/override_common.c:
3372         * bindings/python/override_common.h:
3373         * daapsharing/rb-daap-connection.c:
3374         * daapsharing/rb-daap-connection.h:
3375         * daapsharing/rb-daap-dialog.c:
3376         * daapsharing/rb-daap-dialog.h:
3377         * daapsharing/rb-daap-mdns-browser-avahi.c:
3378         * daapsharing/rb-daap-mdns-browser-howl.c:
3379         * daapsharing/rb-daap-mdns-browser.h:
3380         * daapsharing/rb-daap-mdns-publisher-avahi.c:
3381         * daapsharing/rb-daap-mdns-publisher-howl.c:
3382         * daapsharing/rb-daap-mdns-publisher.h:
3383         * daapsharing/rb-daap-share.c:
3384         * daapsharing/rb-daap-share.h:
3385         * daapsharing/rb-daap-sharing.c:
3386         * daapsharing/rb-daap-sharing.h:
3387         * daapsharing/rb-daap-src.c:
3388         * daapsharing/rb-daap-src.h:
3389         * daapsharing/rb-daap-structure.c:
3390         * daapsharing/rb-daap-structure.h:
3391         * help/C/fdl-appendix.xml:
3392         * help/es/es.po:
3393         * help/ja/fdl-appendix.xml:
3394         * iradio/rb-new-station-dialog.c:
3395         * iradio/rb-new-station-dialog.h:
3396         * iradio/rb-station-properties-dialog.c:
3397         * iradio/rb-station-properties-dialog.h:
3398         * lib/mkdtemp.c:
3399         * lib/mkdtemp.h:
3400         * lib/rb-cut-and-paste-code.c:
3401         * lib/rb-cut-and-paste-code.h:
3402         * lib/rb-debug.c:
3403         * lib/rb-debug.h:
3404         * lib/rb-file-helpers.c:
3405         * lib/rb-file-helpers.h:
3406         * lib/rb-glade-helpers.c:
3407         * lib/rb-glade-helpers.h:
3408         * lib/rb-preferences.h:
3409         * lib/rb-proxy-config.c:
3410         * lib/rb-stock-icons.c:
3411         * lib/rb-stock-icons.h:
3412         * lib/rb-thread.c:
3413         * lib/rb-thread.h:
3414         * lib/rb-tree-dnd.c:
3415         * lib/rb-tree-dnd.h:
3416         * lib/rb-util.c:
3417         * lib/rb-util.h:
3418         * metadata/rb-metadata-common.c:
3419         * metadata/rb-metadata-dbus-client.c:
3420         * metadata/rb-metadata-dbus-service.c:
3421         * metadata/rb-metadata-dbus.c:
3422         * metadata/rb-metadata-dbus.h:
3423         * metadata/rb-metadata-gst.c:
3424         * metadata/rb-metadata.h:
3425         * metadata/sj-error.c:
3426         * metadata/sj-error.h:
3427         * metadata/sj-metadata-musicbrainz.c:
3428         * metadata/sj-metadata-musicbrainz.h:
3429         * metadata/sj-metadata.c:
3430         * metadata/sj-metadata.h:
3431         * metadata/sj-structures.c:
3432         * metadata/sj-structures.h:
3433         * metadata/test-metadata.c:
3434         * player/rb-player-gst.c:
3435         * player/rb-player.h:
3436         * player/rb-recorder-gst.c:
3437         * player/rb-recorder.h:
3438         * plugins/artdisplay/artdisplay.py:
3439         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
3440         * plugins/ipod/rb-ipod-plugin.c:
3441         * plugins/lirc/rb-lirc-plugin.c:
3442         * plugins/pythonconsole/pythonconsole.py:
3443         * plugins/rb-module.c:
3444         * plugins/rb-module.h:
3445         * plugins/rb-plugin-manager.c:
3446         * plugins/rb-plugin-manager.h:
3447         * plugins/rb-plugin.c:
3448         * plugins/rb-plugin.h:
3449         * plugins/rb-plugins-engine.c:
3450         * plugins/rb-plugins-engine.h:
3451         * plugins/rb-python-module.c:
3452         * plugins/rb-python-module.h:
3453         * plugins/rb-python-plugin.c:
3454         * plugins/rb-python-plugin.h:
3455         * plugins/sample/rb-sample-plugin.c:
3456         * po/de.po:
3457         * po/el.po:
3458         * po/en_CA.po:
3459         * po/eu.po:
3460         * po/fi.po:
3461         * po/fr.po:
3462         * po/it.po:
3463         * po/ja.po:
3464         * po/mk.po:
3465         * po/pt_BR.po:
3466         * po/ru.po:
3467         * podcast/rb-feed-podcast-properties-dialog.c:
3468         * podcast/rb-feed-podcast-properties-dialog.h:
3469         * podcast/rb-new-podcast-dialog.c:
3470         * podcast/rb-new-podcast-dialog.h:
3471         * podcast/rb-podcast-manager.c:
3472         * podcast/rb-podcast-manager.h:
3473         * podcast/rb-podcast-parse.c:
3474         * podcast/rb-podcast-parse.h:
3475         * podcast/rb-podcast-properties-dialog.c:
3476         * podcast/rb-podcast-properties-dialog.h:
3477         * remote/bonobo/libmain.c:
3478         * remote/bonobo/rb-nautilus-context-menu.c:
3479         * remote/bonobo/rb-nautilus-context-menu.h:
3480         * remote/bonobo/rb-remote-bonobo.c:
3481         * remote/bonobo/rb-remote-bonobo.h:
3482         * remote/rb-remote-client-proxy.c:
3483         * remote/rb-remote-client-proxy.h:
3484         * remote/rb-remote-common.c:
3485         * remote/rb-remote-common.h:
3486         * remote/rb-remote-proxy.c:
3487         * remote/rb-remote-proxy.h:
3488         * rhythmdb/gsequence.c:
3489         * rhythmdb/gsequence.h:
3490         * rhythmdb/rb-refstring.c:
3491         * rhythmdb/rb-refstring.h:
3492         * rhythmdb/rhythmdb-gda.c:
3493         * rhythmdb/rhythmdb-gda.h:
3494         * rhythmdb/rhythmdb-private.h:
3495         * rhythmdb/rhythmdb-property-model.c:
3496         * rhythmdb/rhythmdb-property-model.h:
3497         * rhythmdb/rhythmdb-query-model.c:
3498         * rhythmdb/rhythmdb-query-model.h:
3499         * rhythmdb/rhythmdb-query-results.c:
3500         * rhythmdb/rhythmdb-query-results.h:
3501         * rhythmdb/rhythmdb-tree.c:
3502         * rhythmdb/rhythmdb-tree.h:
3503         * rhythmdb/rhythmdb.c:
3504         * rhythmdb/rhythmdb.h:
3505         * shell/main.c:
3506         * shell/rb-audioscrobbler.c:
3507         * shell/rb-audioscrobbler.h:
3508         * shell/rb-history.c:
3509         * shell/rb-history.h:
3510         * shell/rb-play-order-linear-loop.c:
3511         * shell/rb-play-order-linear-loop.h:
3512         * shell/rb-play-order-linear.c:
3513         * shell/rb-play-order-linear.h:
3514         * shell/rb-play-order-queue.c:
3515         * shell/rb-play-order-queue.h:
3516         * shell/rb-play-order-random-by-age-and-rating.c:
3517         * shell/rb-play-order-random-by-age-and-rating.h:
3518         * shell/rb-play-order-random-by-age.c:
3519         * shell/rb-play-order-random-by-age.h:
3520         * shell/rb-play-order-random-by-rating.c:
3521         * shell/rb-play-order-random-by-rating.h:
3522         * shell/rb-play-order-random-equal-weights.c:
3523         * shell/rb-play-order-random-equal-weights.h:
3524         * shell/rb-play-order-random.c:
3525         * shell/rb-play-order-random.h:
3526         * shell/rb-play-order-shuffle.c:
3527         * shell/rb-play-order-shuffle.h:
3528         * shell/rb-play-order.c:
3529         * shell/rb-play-order.h:
3530         * shell/rb-playlist-manager.c:
3531         * shell/rb-playlist-manager.h:
3532         * shell/rb-removable-media-manager.c:
3533         * shell/rb-removable-media-manager.h:
3534         * shell/rb-shell-clipboard.c:
3535         * shell/rb-shell-clipboard.h:
3536         * shell/rb-shell-player.c:
3537         * shell/rb-shell-player.h:
3538         * shell/rb-shell-preferences.c:
3539         * shell/rb-shell-preferences.h:
3540         * shell/rb-shell.c:
3541         * shell/rb-shell.h:
3542         * shell/rb-source-header.c:
3543         * shell/rb-source-header.h:
3544         * shell/rb-statusbar.c:
3545         * shell/rb-statusbar.h:
3546         * shell/rb-tray-icon.c:
3547         * shell/rb-tray-icon.h:
3548         * sources/rb-audiocd-source.c:
3549         * sources/rb-audiocd-source.h:
3550         * sources/rb-auto-playlist-source.c:
3551         * sources/rb-auto-playlist-source.h:
3552         * sources/rb-browser-source.c:
3553         * sources/rb-browser-source.h:
3554         * sources/rb-daap-source.c:
3555         * sources/rb-daap-source.h:
3556         * sources/rb-generic-player-source.c:
3557         * sources/rb-generic-player-source.h:
3558         * sources/rb-import-errors-source.c:
3559         * sources/rb-import-errors-source.h:
3560         * sources/rb-ipod-source.c:
3561         * sources/rb-ipod-source.h:
3562         * sources/rb-iradio-source.c:
3563         * sources/rb-iradio-source.h:
3564         * sources/rb-library-source.c:
3565         * sources/rb-library-source.h:
3566         * sources/rb-missing-files-source.c:
3567         * sources/rb-missing-files-source.h:
3568         * sources/rb-nokia770-source.c:
3569         * sources/rb-nokia770-source.h:
3570         * sources/rb-play-queue-source.c:
3571         * sources/rb-play-queue-source.h:
3572         * sources/rb-playlist-source-recorder.c:
3573         * sources/rb-playlist-source-recorder.h:
3574         * sources/rb-playlist-source.c:
3575         * sources/rb-playlist-source.h:
3576         * sources/rb-playlist-xml.h:
3577         * sources/rb-podcast-source.c:
3578         * sources/rb-podcast-source.h:
3579         * sources/rb-psp-source.c:
3580         * sources/rb-psp-source.h:
3581         * sources/rb-removable-media-source.c:
3582         * sources/rb-removable-media-source.h:
3583         * sources/rb-source.c:
3584         * sources/rb-source.h:
3585         * sources/rb-sourcelist-model.c:
3586         * sources/rb-sourcelist-model.h:
3587         * sources/rb-sourcelist.c:
3588         * sources/rb-sourcelist.h:
3589         * sources/rb-static-playlist-source.c:
3590         * sources/rb-static-playlist-source.h:
3591         * tests/test-cd.c:
3592         * tests/test-cmdline.c:
3593         * tests/test-rhythmdb-indexing.c:
3594         * tests/test-rhythmdb-query.c:
3595         * tests/test-rhythmdb-simple.c:
3596         * tests/test-rhythmdb-tree-deserialization.c:
3597         * tests/test-rhythmdb-tree-serialization.c:
3598         * tests/test-rhythmdb-view.c:
3599         * widgets/bacon-volume.c:
3600         * widgets/bacon-volume.h:
3601         * widgets/disclosure-widget.c:
3602         * widgets/disclosure-widget.h:
3603         * widgets/eel-gconf-extensions.c:
3604         * widgets/eel-gconf-extensions.h:
3605         * widgets/eggtrayicon.c:
3606         * widgets/eggtrayicon.h:
3607         * widgets/libsexy/sexy-icon-entry.c:
3608         * widgets/libsexy/sexy-icon-entry.h:
3609         * widgets/rb-cell-renderer-pixbuf.c:
3610         * widgets/rb-cell-renderer-pixbuf.h:
3611         * widgets/rb-cell-renderer-rating.c:
3612         * widgets/rb-cell-renderer-rating.h:
3613         * widgets/rb-dialog.c:
3614         * widgets/rb-dialog.h:
3615         * widgets/rb-druid.c:
3616         * widgets/rb-druid.h:
3617         * widgets/rb-entry-view.c:
3618         * widgets/rb-entry-view.h:
3619         * widgets/rb-header.c:
3620         * widgets/rb-header.h:
3621         * widgets/rb-library-browser.c:
3622         * widgets/rb-library-browser.h:
3623         * widgets/rb-property-view.c:
3624         * widgets/rb-property-view.h:
3625         * widgets/rb-query-creator-private.h:
3626         * widgets/rb-query-creator-properties.c:
3627         * widgets/rb-query-creator.c:
3628         * widgets/rb-query-creator.h:
3629         * widgets/rb-rating-helper.c:
3630         * widgets/rb-rating-helper.h:
3631         * widgets/rb-rating.c:
3632         * widgets/rb-rating.h:
3633         * widgets/rb-search-entry.c:
3634         * widgets/rb-search-entry.h:
3635         * widgets/rb-song-display-box.c:
3636         * widgets/rb-song-display-box.h:
3637         * widgets/rb-song-info.c:
3638         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
3640 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
3642         patch by: Gareth Murphy, James Livingston
3644         * bindings/python/rb.defs:
3645         * configure.ac:
3646         * plugins/Makefile.am:
3647         * plugins/artdisplay/Makefile.am:
3648         * plugins/artdisplay/artdisplay.py:
3649         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
3650         * plugins/rb-python-module.c: (rb_python_module_init_python):
3651         * shell/rb-shell.c: (construct_widgets),
3652         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
3653         (rb_shell_add_widget), (rb_shell_remove_widget),
3654         (rb_shell_ui_location_get_type):
3655         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
3657 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3659         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
3660         Fix build failure caused by the combination of the previous two
3661         commits.
3663 2006-04-20  James Livingston  <doclivingston@gmail.com>
3665         patch by: Christophe Fergeau  <teuf@gnome.org> to make
3666         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
3667         table to the entry types, which will allow us to get rid of some of
3668         the "if entry type == WHATEVER" code everywhere. From bug 
3670         * bindings/python/rb.defs:
3671         * bindings/python/rb.override:
3672         * bindings/python/rhythmdb.defs:
3673         * bindings/python/rhythmdb.override:
3674         * daapsharing/rb-daap-connection.c:
3675         (rb_daap_connection_class_init), (rb_daap_connection_init),
3676         (rb_daap_connection_set_property),
3677         (rb_daap_connection_get_property):
3678         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
3679         * podcast/rb-podcast-manager.c:
3680         (rb_podcast_manager_entry_downloaded),
3681         (rb_podcast_manager_subscribe_feed),
3682         (rb_podcast_manager_db_entry_added_cb),
3683         (rb_podcast_manager_db_entry_deleted_cb),
3684         (rb_podcast_manager_insert_feed):
3685         * rhythmdb/rhythmdb-private.h:
3686         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3687         (conjunctive_query):
3688         * rhythmdb/rhythmdb.c: (sync_entry_changed),
3689         (process_added_entries_cb), (rhythmdb_entry_allocate),
3690         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
3691         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
3692         (rhythmdb_process_metadata_load),
3693         (rhythmdb_process_file_created_or_modified), (action_thread_main),
3694         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
3695         (write_encoded_gvalue), (read_encoded_property),
3696         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
3697         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
3698         (rhythmdb_entry_iradio_get_type),
3699         (rhythmdb_entry_podcast_post_get_type),
3700         (rhythmdb_entry_podcast_feed_get_type),
3701         (rhythmdb_entry_import_error_get_type),
3702         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
3703         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
3704         (rhythmdb_entry_type_get_type):
3705         * rhythmdb/rhythmdb.h:
3706         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
3707         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
3708         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
3709         (rb_shell_player_entry_activated_cb), (info_available_cb):
3710         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
3711         (rb_shell_register_entry_type_for_source),
3712         (rb_shell_playing_from_queue_cb),
3713         (rb_shell_playing_entry_changed_cb),
3714         (rb_shell_player_stream_song_changed_cb),
3715         (rb_shell_jump_to_entry_with_source),
3716         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
3717         (handle_playlist_entry_cb), (rb_shell_load_uri):
3718         * shell/rb-shell.h:
3719         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
3720         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3721         (rb_browser_source_init), (rb_browser_source_set_property),
3722         (rb_browser_source_get_property):
3723         * sources/rb-ipod-source.c: (impl_paste):
3724         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
3725         (rb_iradio_source_init), (rb_iradio_source_set_property),
3726         (rb_iradio_source_get_property):
3727         * sources/rb-library-source.c: (impl_paste):
3728         * sources/rb-missing-files-source.c:
3729         (rb_missing_files_source_class_init),
3730         (rb_missing_files_source_init),
3731         (rb_missing_files_source_set_property),
3732         (rb_missing_files_source_get_property):
3733         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3734         (rb_playlist_source_init), (rb_playlist_source_set_property),
3735         (rb_playlist_source_get_property):
3736         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3737         (rb_podcast_source_init), (rb_podcast_source_set_property),
3738         (rb_podcast_source_get_property):
3739         * sources/rb-static-playlist-source.c:
3740         (rb_static_playlist_source_add_location_internal):
3742 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3744         * rhythmdb/rhythmdb.c: (rhythmdb_init),
3745         (rhythmdb_add_import_error_entry),
3746         (entry_volume_mounted_or_unmounted),
3747         (rhythmdb_volume_unmounted_cb):
3748         When a volume is unmounted, delete import errors for files stored on
3749         it.  When a volume is mounted, stat all tracks stored on it, rather
3750         than assuming they're present.  Fixes #339023.
3752 2006-04-20  James Livingston  <doclivingston@gmail.com>
3754         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
3755         browser visibility for non-gconf-using sources (like playlists). Part
3756         of bug 118862.
3758         * shell/rb-source-header.c: (sourcestate_free),
3759         (rb_source_header_init), (rb_source_header_finalize),
3760         (rb_source_header_source_weak_destroy_cb): switch from storing the
3761         search string to storing a "source state" structure
3763         (rb_source_header_set_source_internal),  (rb_source_state_sync),
3764         (rb_source_header_search_cb), (rb_source_header_clear_search),
3765         (rb_source_header_disclosure_toggled_cb): as well as storing the
3766         string, stop the visibility of the source's browser.
3768 2006-04-20  James Livingston  <doclivingston@gmail.com>
3770         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
3771         library entries back into the library. Fixes bug 339065.
3773 2006-04-20  James Livingston  <doclivingston@gmail.com>
3775         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
3776         only exists in glib 2.10.
3778 2006-04-20  James Livingston  <doclivingston@gmail.com>
3780         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
3781         Solaris. From bug 335318.
3783         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
3784         * shell/rb-audioscrobbler.c:
3785         * sources/rb-psp-source.c:
3787 2006-04-20  James Livingston  <doclivingston@gmail.com>
3789         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
3790         issues for some people.
3792         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
3793         accidental s/suffix/prefix/
3795         * sources/rb-auto-playlist-source.c:
3796         (rb_auto_playlist_source_set_query): fix the invered logic preventing
3797         you from sorting playlists which aren't limited by time.
3799 2006-04-19  James Livingston  <doclivingston@gmail.com>
3801         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
3802         duration or bitrate back to the file, since they are properties of the
3803         audio data, not tags we can set.
3805 2006-04-19  James Livingston  <doclivingston@gmail.com>
3807         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
3808         of libtool, to fix builds which are using a different version. Fixes
3809         bug 338996.
3811         * shell/Makefile.am:
3813 2006-04-19  James Livingston  <doclivingston@gmail.com>
3815         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
3816         to sync data to a file which is uneditable.
3818 2006-04-19  James Livingston  <doclivingston@gmail.com>
3820         patch by: Gavin Stewart  <gavin@brokentrain.net>
3822         * data/glade/playlist-save.glade:
3823         * data/glade/Makefile.am:
3824         * po/POTFILES.in: add the playlist saving dialog.
3826         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
3827         (export_set_extension_cb), (filter_get_export_filter_label),
3828         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
3829         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
3830         formats (PLS and M3U at the moment). Fixes bug 316295.
3832 2006-04-19  James Livingston  <doclivingston@gmail.com>
3834         * shell/rb-playlist-manager.c:
3835         (rb_playlist_manager_set_source_internal): don't let you edit remove
3836         auto playlists.
3838         * sources/rb-auto-playlist-source.c:
3839         (rb_auto_playlist_source_set_query): correctly handle time-limited
3840         playlists.
3842 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3844         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
3846         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
3847         Don't crash if the queue file contains no newlines.
3848         Fixes #338924.
3850 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
3852         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
3853         condition
3855 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
3857         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
3858         case. Moreover, they may not exist yet, so take that into account when
3859         generating the iPod filename.
3861 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
3863         * sources/rb-ipod-source.c: added support for drag and drop from the
3864         library to the iPod (only enabled if --enable-track-transfer was
3865         passed to configure)
3867 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
3869         * configure.ac:
3870         * lib/rb-marshal.list:
3871         * lib/rb-util.c: 
3872         * lib/rb-util.h:
3873         * plugins/Makefile.am:
3874         * plugins/ipod/Makefile.am:
3875         * plugins/ipod/ipod.rb-plugin.desktop.in:
3876         * plugins/ipod/rb-ipod-plugin.c: 
3877         * plugins/rb-plugin.h:
3878         * shell/Makefile.am:
3879         * shell/rb-removable-media-manager.c:
3880         * shell/rb-removable-media-manager.h:
3881         * shell/rb-shell.c: 
3882         * sources/Makefile.am:
3883         * sources/rb-ipod-source.c: 
3884         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
3885         various iPod related files should be moved to plugins/ipod/ now...
3887 2006-04-17  James Livingston  <doclivingston@gmail.com>
3889         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
3890         and "vic".
3892         * help/C/figures/rb-iradio-main.png:
3893         * help/C/figures/rb-notification-area-menu.png:
3894         * help/C/figures/rb-notification-window.png:
3895         * help/C/figures/rb-notification-zone.png:
3896         * help/C/figures/rb-podcast-main.png:
3897         * help/C/figures/rb-statusbar.png:
3898         * help/C/figures/rb-volume-changer.png:
3899         * help/C/figures/rb-window-small.png:
3900         * help/C/figures/rb-window.png:
3901         * help/C/rhythmbox.xml:
3903 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3905         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
3906         more obviously.
3908         * metadata/rb-metadata-gst.c: (rb_metadata_init),
3909         (make_undecodable_error), (rb_metadata_gst_error_cb),
3910         (rb_metadata_gst_new_decoded_pad_cb),
3911         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
3912         Ignore really small files (<4kB) for which typefinding fails.
3913         Always link decoded pads from decodebin to fakesink.
3914         Shut the pipeline down by posting an error on the bus when decodebin
3915         emits unknown-type signals.  Fixes bug #338062.
3917 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3919         * shell/rb-shell.c: (rb_shell_load_uri):
3920         Fix glaring mistakes in previous commit: actually pass arguments to
3921         rb_debug, and specify the right entry type when adding a new iradio
3922         station so we don't try to add local playlist files to the library.
3924 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3926         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
3927         before trying to add them, as iradio streams often fail rb_uri_exists().
3929         * shell/rb-shell-player.c: (notify_playing_idle),
3930         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
3931         (open_location_thread), (rb_shell_player_open_location),
3932         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
3933         (eos_cb):  When playing an iradio stream using a playlist, keep a list
3934         of all the stream URLs, and try them in turn.  If we get through the
3935         whole playlist too quickly, error out.  Various other fixes that make
3936         iradio work a lot better.
3938         * shell/rb-shell.c: (add_to_library_response_cb),
3939         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
3940         (handle_playlist_entry_cb), (rb_shell_load_uri):
3941         Add playlists containing streams as iradio stations.  If the playlist
3942         is local, add each stream URL, but if the playlist is remote, just add
3943         the playlist URL.
3944         
3945         * sources/rb-iradio-source.c: (new_station_location_added):
3946         Add new station URLs as-is, rather than parsing the playlist and
3947         adding the streams.
3948         
3949         * rhythmdb/rhythmdb-query-model.c:
3950         (rhythmdb_query_model_entry_changed_cb),
3951         (rhythmdb_query_model_emit_reorder),
3952         (rhythmdb_query_model_do_reorder):
3953         Emit row-changed notifications when an entry changes but is not
3954         reordered.
3956         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
3957         Display the playback error icon when the entry has an error and
3958         there's nothing else to display.
3959         
3960         Fixes bug #320336 and some of #324402.
3961         
3962 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
3964         * sources/rb-ipod-source.c: use a GHashTable for the
3965         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
3966         time, this fixes compilation breakage for people not having libgpod
3967         CVS HEAD
3969 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
3971         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3973         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
3974         (rb_podcast_manager_insert_feed):
3975         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
3976         fixes bug 321945
3978 2006-04-16  James Livingston  <doclivingston@gmail.com>
3980         * sources/rb-library-source.c:
3981         (rb_library_source_library_location_cb): return FALSE like we are
3982         supposed to, not void.
3984         patch by: FreeBSD GNOME Project
3985         * configure.ac: fix some bash-isms.
3987         patch by: Pawel Worach  <pawel.worach@gmail.com>
3988         * metadata/rb-metadata-dbus-client.c:
3989         * rhythmdb/rhythmdb-query-model.c:
3990         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
3993 2006-04-16  James Livingston  <doclivingston@gmail.com>
3995         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
3996         for transcoding to RBEncoderGst.
3998         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
3999         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
4000         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
4001         (add_decoding_pipeline), (encoder_match_mime),
4002         (get_profile_from_mime_type), (extract_track), (transcode_track),
4003         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
4005 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
4007         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
4008         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
4009         load_ipod_db_idle_cb to a new separate function
4011 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
4013         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
4014         source
4016 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
4018         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
4019         variables
4021 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
4023         * data/ui/Makefile.am:
4024         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
4025         menu
4026         * lib/rb-util.c: check if the widget we got from the UI manager isn't
4027         NULL before using it as a popup menu
4028         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
4029         'eject' an iPod
4031 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
4033         * sources/rb-ipod-source.c: when hal tells us a partition is on an
4034         iPod, check if it contains an iPod database before using it (in case
4035         the iPod was repartitionned somehow). Should fix bug #325034
4037 2006-04-16  Steve Frécinaux  <steve@istique.net>
4039         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
4041         * data/Makefile.am: install application icon into the default theme.
4043         * data/rhythmbox.desktop.in: don't specify icon file extension.
4044         
4045         * shell/main.c: (main): set default window icon from theme.
4046         
4047         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
4048         code concerning window icon, and fix leak by unreferencing the about
4049         logo pixbuf once it's not used anymore.
4051 2006-04-16  James Livingston  <doclivingston@gmail.com>
4053         * configure.ac: bump version to 0.9.4
4054         * NEWS: update NEWS and 0.9.4 insert translations
4056 2006-04-16  James Livingston  <doclivingston@gmail.com>
4058         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
4059         namespace automatically.
4061 2006-04-16  James Livingston  <doclivingston@gmail.com>
4063         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
4065         * doc/reference/Makefile.am:
4066         * doc/reference/rhythmbox.types: make distcheck work again
4068         * doc/reference/tmpl/eggnotificationbubble.sgml:
4069         * doc/reference/tmpl/eggtrayicon.sgml:
4070         * doc/reference/tmpl/rb-debug.sgml:
4071         * doc/reference/tmpl/rb-entry-view.sgml:
4072         * doc/reference/tmpl/rb-enums.sgml:
4073         * doc/reference/tmpl/rb-metadata.sgml:
4074         * doc/reference/tmpl/rb-new-station-dialog.sgml:
4075         * doc/reference/tmpl/rb-playlist-manager.sgml:
4076         * doc/reference/tmpl/rb-refstring.sgml:
4077         * doc/reference/tmpl/rb-shell-player.sgml:
4078         * doc/reference/tmpl/rb-shell-preferences.sgml:
4079         * doc/reference/tmpl/rb-shell.sgml:
4080         * doc/reference/tmpl/rb-song-info.sgml:
4081         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
4082         * doc/reference/tmpl/rb-statusbar.sgml:
4083         * doc/reference/tmpl/rhythmbox-unused.sgml:
4084         * doc/reference/tmpl/rhythmdb-query-model.sgml:
4085         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
4087 2006-04-16  James Livingston  <doclivingston@gmail.com>
4089         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
4091         * po/LINGUAS: don't split the variable across two lines, as it breaks
4092         the build. Fixes bug 338625.
4094 2006-04-15  James Livingston  <doclivingston@gmail.com>
4096         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
4097         add a "sourcelist-model" gobject property.
4099 2006-04-14  William Jon McCann  <mccann@jhu.edu>
4101         * .cvsignore:
4102         * backends/.cvsignore:
4103         * backends/gstreamer/.cvsignore:
4104         * bindings/.cvsignore:
4105         * bindings/python/.cvsignore:
4106         * help/es/.cvsignore:
4107         * metadata/.cvsignore:
4108         * plugins/.cvsignore:
4109         * plugins/audioscrobbler/.cvsignore:
4110         * plugins/lirc/.cvsignore:
4111         * plugins/pythonconsole/.cvsignore:
4112         * plugins/sample-python/.cvsignore:
4113         * plugins/sample/.cvsignore:
4114         * shell/.cvsignore:
4115         * widgets/libsexy/.cvsignore:
4116         Make CVS ignore files.
4118 2006-04-14  James Livingston  <doclivingston@gmail.com>
4120         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
4121         the track-loading thread hold a reference on the source, so it doesn't
4122         explode if the cd is removed before it is done. Fixes bug 337237.
4124 2006-04-14  James Livingston  <doclivingston@gmail.com>
4126         * bindings/python/override_common.c:
4127         (_helper_unwrap_pointer_pylist):
4128         * bindings/python/override_common.h:
4129         * bindings/python/rb.override:
4130         * bindings/python/rhythmdb.override: Bind some more functions and
4131         virtual functions.
4133         * shell/rb-shell.c: (rb_shell_select_source):
4134         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
4135         * sources/rb-audiocd-source.c:
4136         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
4137         * sources/rb-browser-source.c: (impl_get_search_actions):
4138         * sources/rb-iradio-source.c: (impl_get_ui_actions):
4139         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
4140         * sources/rb-playlist-source.c: (impl_get_ui_actions):
4141         * sources/rb-podcast-source.c: (impl_get_ui_actions),
4142         (impl_get_search_actions):
4143         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
4144         the impl_get_ui_actions and impl_get_search_actions functions return
4145         lists that contain copies of the strings, instead of constant ones.
4146         Needed to bindings
4148 2006-04-14  James Livingston  <doclivingston@gmail.com>
4150         * bindings/python/rhythmdb.defs:
4151         * bindings/python/rhythmdb.override: fix the method argument format
4152         specifiers.
4154 2006-04-14  James Livingston  <doclivingston@gmail.com>
4156         * bindings/python/rhythmdb.defs:
4157         * bindings/python/rhythmdb.override:
4158         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
4159         (entry_to_rb_metadata), (record_entry_change),
4160         (rhythmdb_entry_set_visibility):
4161         * rhythmdb/rhythmdb.h:
4162         * shell/rb-shell.c: (rb_shell_get_song_properties): change
4163         rhythmdb_entry_get to take the db as the first parameter. Fixes the
4164         python bindings of it. The rhythmdb_entry_get_* ones are left the same
4165         since they are used in too many places, and not in the Python
4166         bindings.
4168 2006-04-13  William Jon McCann  <mccann@jhu.edu>
4170         * lib/rb-debug.c: (_rb_profile_log):
4171         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
4172         * rhythmdb/rhythmdb.c: (rhythmdb_load):
4173         * shell/main.c: (main):
4174         * shell/rb-shell.c: (rb_shell_constructor),
4175         (rb_shell_set_visibility), (rb_shell_sync_window_state),
4176         (rb_shell_present):
4177         Fix profile output indentation.  Add more profiling points.
4178         Fixes part of #338114
4180 2006-04-13  James Livingston  <doclivingston@gmail.com>
4182         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
4183         library source being deleted, by setting the active source to NULL.
4184         From bug 338116.
4186 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4188         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
4189         Update the last-seen string when hiddenness changes.
4191 2006-04-12  James Livingston  <doclivingston@gmail.com>
4193         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
4194         which caused the first-seen time to be reset when a metadata load was
4195         done. Fixes bug 336874.
4197         * shell/rb-shell.h: remove old function declaration.
4199         * bindings/python/rhythmdb.defs:
4200         * bindings/python/rhythmdb.override: Fix some python binding stuff.
4202 2006-04-11  James Livingston  <doclivingston@gmail.com>
4204         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
4205         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
4206         interaction. Fixes bug 337999.
4208 2006-04-11  James Livingston  <doclivingston@gmail.com>
4210         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
4211         track transfer. Fixes bug 338056.
4213         * shell/Makefile.am:
4215 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4217         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
4219 2006-04-10  William Jon McCann  <mccann@jhu.edu>
4221         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
4222         (_rb_profile_log):
4223         * lib/rb-debug.h:
4224         * shell/rb-shell.c: (construct_db), (construct_widgets),
4225         (construct_sources), (construct_load_ui), (rb_shell_constructor):
4226         Add profiling.  Fixes #337387
4228 2006-04-10  William Jon McCann  <mccann@jhu.edu>
4230         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
4231         * widgets/rb-header.c:
4232         Use italics for artist and album. Fixes #336748
4234 2006-04-10  James Livingston  <doclivingston@gmail.com>
4236         * Makefile.am:
4237         * backends/gstreamer/Makefile.am:
4238         * configure.ac:
4239         * data/glade/library-prefs.glade:
4240         * shell/Makefile.am:
4241         * shell/rb-removable-media-manager.c:
4242         * shell/rb-removable-media-manager.h:
4243         * sources/Makefile.am:
4244         * sources/rb-audiocd-source.c:
4245         * sources/rb-library-source.c: (rb_library_source_class_init),
4246         (rb_library_source_finalize), (impl_get_config_widget),
4247         (rb_library_source_preferences_sync), (impl_can_paste): add a
4248         --enable-track-transfer configure option, abd make cd ripping disabled
4249         by default.
4251         * shell/rb-source-header.c:
4252         * sources/rb-source.c: (rb_source_class_init),
4253         (rb_source_delete_thyself), (default_get_entry_view):
4254         * lib/rb-glade-helpers.c:
4255         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
4256         some compiler warnings, and also bug 337427.
4258 2006-04-10  James Livingston  <doclivingston@gmail.com>
4260         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
4261         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
4262         if the gconf key is missing. Fixes bug 337742.
4264 2006-04-10  James Livingston  <doclivingston@gmail.com>
4266         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4267         to fix build problems I caused with a commit yesterday. Fixed bug
4268         337806.
4270         * daapsharing/rb-daap-mdns-browser-howl.c:
4271         (rb_daap_mdns_browser_class_init):
4272         * podcast/Makefile.am:
4273         * rhythmdb/Makefile.am:
4274         * widgets/eggtrayicon.h:
4276 2006-04-09  Steve Frécinaux  <steve@istique.net>
4278         * configure.ac:
4279         * po/LINGUAS:
4280         
4281         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
4282         translators' life easier.
4284 2006-04-09  James Livingston  <doclivingston@gmail.com>
4286         * bindings/python/rb.defs:
4287         * bindings/python/rb.override: add bindings for most RBSource virtual
4288         functions.
4290         * sources/rb-source.h:
4291         * sources/rb-source.c: (rb_source_class_init): make
4292         impl_get_browser_key return a non-consht string, since Python can't
4293         really give us constant strings.
4295         * shell/rb-source-header.c: (rb_source_header_finalize),
4296         (rb_source_header_set_source_internal):
4297         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
4298         * sources/rb-iradio-source.c: (impl_get_browser_key):
4299         * sources/rb-library-source.c: (impl_get_browser_key):
4300         * sources/rb-playlist-source.c:
4301         * sources/rb-browser-source.c: (rb_browser_source_constructor),
4302         (rb_browser_source_state_prefs_sync):
4303         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
4304         above change.
4306         * plugins/sample-python/sample-python.py: show how to add a new
4307         source.
4309 2006-04-09  James Livingston  <doclivingston@gmail.com>
4311         * daapsharing/Makefile.am:
4312         * daapsharing/rb-daap-connection.c:
4313         (rb_daap_connection_class_init):
4314         * daapsharing/rb-daap-marshal.list:
4315         * daapsharing/rb-daap-mdns-browser-avahi.c:
4316         (rb_daap_mdns_browser_class_init):
4317         * lib/rb-marshal.list:
4318         * player/Makefile.am:
4319         * player/rb-recorder-gst.c: (rb_recorder_class_init):
4320         * player/rb-recorder-marshal.list:
4321         * podcast/Makefile.am:
4322         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
4323         * podcast/rb-podcast-marshal.list:
4324         * rhythmdb/Makefile.am:
4325         * rhythmdb/rhythmdb-marshal.list:
4326         * rhythmdb/rhythmdb-query-model.c:
4327         (rhythmdb_query_model_class_init):
4328         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
4329         into one file, as there is no point having several of them.
4331 2006-04-09  James Livingston  <doclivingston@gmail.com>
4333         * lib/Makefile.am:
4334         * lib/rb-enums.h:
4335         * widgets/Makefile.am:
4336         * widgets/eggnotificationbubble.c:
4337         * widgets/eggnotificationbubble.h:
4338         * widgets/rb-song-info.c: remove lib/rb-enums.h and
4339         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
4341         * rhythmdb/rhythmdb-property-model.h:
4342         * rhythmdb/rhythmdb-query-model.h:
4343         * rhythmdb/rhythmdb.h:
4344         * shell/rb-playlist-manager.h:
4345         * widgets/rb-cell-renderer-pixbuf.h:
4346         * widgets/rb-cell-renderer-rating.h:
4347         * widgets/rb-rating.h: fix the prototypes of various class-closures.
4349 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4351         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
4352         so we can build without a system-wide installed copy.
4354 2006-04-09  James Livingston  <doclivingston@gmail.com>
4356         * data/glade/general-prefs.glade:
4357         * data/rhythmbox.schemas:
4358         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
4359         (rb_combo_box_hyphen_separator_func):
4360         * lib/rb-glade-helpers.h:
4361         * lib/rb-preferences.h:
4362         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
4363         (rb_shell_preferences_sync),
4364         (rb_shell_preferences_toolbar_style_cb),
4365         (rb_shell_preferences_browser_views_activated_cb):
4366         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
4367         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
4368         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
4370 2006-04-09  James Livingston  <doclivingston@gmail.com>
4372         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
4373         data that MusicBrainz returns to us. Last part of bug 334167.
4375 2006-04-09  James Livingston  <doclivingston@gmail.com>
4377         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
4378         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
4380 2006-04-09  James Livingston  <doclivingston@gmail.com>
4382         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
4383         the entry view properly when the rows are reordered. Fixes bug 337019.
4385 2006-04-09  James Livingston  <doclivingston@gmail.com>
4387         * configure.ac:
4388         * widgets/Makefile.am:
4389         * widgets/libsexy/Makefile.am:
4390         * widgets/libsexy/sexy-icon-entry.c:
4391         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
4392         libsexy, and allow building against it or a system-wide installed
4393         copy.
4396         * widgets/rb-search-entry.c: (rb_search_entry_init),
4397         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
4398         search box. Fixes bug 128109.
4400 2006-04-09  James Livingston  <doclivingston@gmail.com>
4402         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4404         * widgets/rb-entry-view.c: (rb_entry_view_init),
4405         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
4406         and Pause icons rather than the volume ones in the Now Playing column.
4407         Closes bug 336482.
4409 2006-04-08  James Livingston  <doclivingston@gmail.com>
4411         * bindings/python/override_common.h:
4412         * bindings/python/rb.override:
4413         * bindings/python/rhythmdb.override: bind some more functions 
4415 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4417         * metadata/rb-metadata-dbus-service.c: (_send_error):
4418         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
4419         are sent properly and we don't get 'method doesn't exist' messages
4420         from dbus instead.
4422 2006-04-08  James Livingston  <doclivingston@gmail.com>
4424         * bindings/python/override_common.h:
4425         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
4426         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
4427         more utility functions for C<->Python conversions
4429         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
4430         (rb_entry_view_state_get_type):
4431         * widgets/rb-entry-view.h: make the colume type and entry view state
4432         GTypes
4434         * bindings/python/Makefile.am:
4435         * bindings/python/rb.defs:
4436         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
4437         RBSource.
4439 2006-04-08  James Livingston  <doclivingston@gmail.com>
4441         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
4442         initialiser for a GError
4444         * sources/rb-source.c: (rb_source_eof_type_get_type):
4445         * sources/rb-source.h: add a GType for RBSourceEOFType
4447         * bindings/python/Makefile.am:
4448         * bindings/python/rb.defs:
4449         * bindings/python/rb.override: bind RBSource and RBSourceList
4451 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4453         * shell/rb-shell-player.c: (rb_shell_player_class_init),
4454         (rb_shell_player_get_property),
4455         (rb_shell_player_get_active_source),
4456         (rb_shell_player_set_playing_source_internal):
4457         * shell/rb-shell-player.h:
4458         Change 'playing-from-queue' from being a signal to being a property.
4460         * shell/rb-shell.c: (rb_shell_constructor),
4461         (rb_shell_playing_from_queue_cb),
4462         (rb_shell_view_queue_as_sidebar_changed_cb),
4463         (rb_shell_jump_to_entry_with_source):
4464         When the queue side pane is used, make 'jump to current' jump to the
4465         entry in the registered source for its type, rather than in the queue,
4466         and show it as playing in that source.
4467         
4468         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
4469         * sources/rb-sourcelist.h:
4470         Remove the 'preempted source' stuff, since it wasn't doing anything
4471         anyway.
4473 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4475         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
4476         (download_progress_cb): Canonicalise downloaded file location before
4477         setting the mountpoint property of the corresponding entry.
4478         Fixes #337287 and a couple of memory leaks.
4480 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4482         * metadata/rb-metadata-dbus-service.c: (test_can_save),
4483         (test_load), (main): Call g_set_prgname, report errors more
4484         usefully in test mode.
4485         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
4486         (rb_metadata_load): Don't ignore the have-type signal for non-audio
4487         files.  Run the event loop when the state change fails so we get the
4488         error messages from the bus.  Fixes #336921.
4490 2006-04-05  William Jon McCann  <mccann@jhu.edu>
4492         * data/art/Makefile.am: Install media-eject.
4494         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
4495         return value of rb_file.
4497         Fixes #337209
4499 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4501         Patch by: William Jon McCann  <mccann@jhu.edu>
4503         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
4504         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
4505         Fix GError leak.
4507 2006-04-04  William Jon McCann  <mccann@jhu.edu>
4509         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
4510         Don't try to add a date when we don't have one.  Fixes #336741.
4512         Also fix variable declaration in middle of block.
4514 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4516         * shell/rb-shell-player.c: (rb_shell_player_playpause):
4517         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
4519 2006-04-02  James Livingston  <doclivingston@gmail.com>
4521         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
4522         inverted logic causing imports to fail.
4524 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4526         * shell/main.c: (main): Fix dbusless build.
4528 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
4530         * player/rb-recorder-gst.c: fix packing of the C struct holding a
4531         wav header for non-gcc compilers (not tested much, was only written
4532         according to docs)
4534 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4536         * shell/main.c: (main): Check if we got a dbus connection before
4537         trying to create a proxy for the shell object.  Fixes #336634.
4539 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4541         * doc/reference/Makefile.am:
4542         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
4543         * shell/rb-source-header.c:
4544         * sources/rb-generic-player-source.c:
4545         (default_transform_playlist_uri):
4546         Fix various build issues.  Patch approximately 50% by Alex Lancaster
4547         <alexl@users.sourceforge.net>
4549 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4551         * configure.ac: Detect LIRC.
4552         
4553         * plugins/Makefile.am:
4554         * plugins/lirc/Makefile.am:
4555         * plugins/lirc/lirc.rb-plugin.desktop.in:
4556         * plugins/lirc/rb-lirc-plugin.c:
4557         LIRC plugin.
4559         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
4560         Remove obsolete files.
4562 2006-04-02  James Livingston  <doclivingston@gmail.com>
4564         * sources/rb-generic-player-source.c:
4565         (default_transform_playlist_uri): consider playlist paths as relative
4566         to the volume root by default, since that is what most players use.
4568 2006-04-02  James Livingston  <doclivingston@gmail.com>
4570         * lib/rb-util.c: (rb_mime_get_friendly_name):
4571         * lib/rb-util.h: add helper function to get the "friendly" name for a
4572         mime-type
4574         * metadata/rb-metadata-gst.c: (rb_metadata_init),
4575         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
4576         the user better error messages about undecodable streams, using the
4577         "friendly" name if possible. Fixes bug 128109.
4579 2006-04-02  James Livingston  <doclivingston@gmail.com>
4581         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
4582         (start_pipeline): fix building with gstreamer 0.8
4584 2006-04-02  James Livingston  <doclivingston@gmail.com>
4586         * sources/rb-podcast-source.c: (impl_delete),
4587         (rb_podcast_source_cmd_delete_feed),
4588         (rb_podcast_source_cmd_update_feed): copy the list before traversing
4589         it, since it may change during traversal. Fixes bug 336204.
4591 2006-04-01  James Livingston  <doclivingston@gmail.com>
4593         * data/art/media-eject.png: add the media-eject icon from Banshee
4594         (BSD-licensed), for use when the user's icon theme doesn't have one.
4596         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
4597         bug 334897.
4599 2006-04-01  James Livingston  <doclivingston@gmail.com>
4601         * shell/rb-shell-player.h:
4602         * shell/rb-shell-player.c: (rb_shell_player_play),
4603         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
4604         new rb_shell_player_{play,pause} functions, so everyone doesn't have
4605         to do rb_shell_player_playing followed by rb_shell_player_playpause.
4607         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
4608         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
4609         * shell/rb-shell.h: add rb_shell_get_ui_manager.
4611         * bindings/python/rb.defs: bind the above to Python, and remove some
4612         useless stuff from the bindings.
4614 2006-04-01  James Livingston  <doclivingston@gmail.com>
4616         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
4617         number tag.
4619         * shell/rb-shell.c:
4620         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
4622         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
4623         to true.
4625         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
4626         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
4627         method assigning, so it's understandable
4629         * sources/rb-library-source.c: (rb_library_source_class_init),
4630         (impl_paste): rather than hard-coding the types to ignore, use
4631         rb_source_can_copy.
4633 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4635         * sources/rb-library-source.c:
4636         (rb_library_source_preferences_sync):
4637         Don't crash if no audio profile is selected and the gconf schemas are 
4638         not installed.
4640 2006-03-31  James Livingston  <doclivingston@gmail.com>
4642         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
4643         "*" which caused compilation to fail
4645 2006-03-31  James Livingston  <doclivingston@gmail.com>
4647         * configure.ac:
4648         * Makefile.am:
4649         * backends/Makefile.am:
4650         * backends/gstreamer/Makefile.am:
4651         * backends/gstreamer/rb-encoder-gst.c:
4652         * backends/gstreamer/rb-encoder-gst.h:
4653         * backends/rb-encoder.c:
4654         * backends/rb-encoder.h: add a interface for transcoding, and a
4655         GStreamer implementation of it (based on Sound-Juicer's code).
4657         * shell/Makefile.am:
4658         * shell/rb-removable-media-manager.c:
4659         (rb_removable_media_manager_class_init),
4660         (rb_removable_media_manager_init),
4661         (rb_removable_media_manager_dispose),
4662         (rb_removable_media_manager_finalize),
4663         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
4664         (progress_cb), (completed_cb), (do_transfer),
4665         (rb_removable_media_manager_queue_transfer), (copy_entry),
4666         (rb_removable_media_manager_cmd_copy_tracks):
4667         * shell/rb-removable-media-manager.h: use the encoder interface to
4668         perform transfers of entries to other locations
4670         * shell/rb-shell-player.c: (open_location_thread):
4671         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
4672         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
4673         (rb_shell_quit):
4674         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
4675         progress in the status bar.
4677         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
4678         (rb_shell_preferences_sync),
4679         (rb_shell_preferences_browser_views_activated_cb):
4680         * data/glade/general-prefs.glade: move the browser views setting from
4681         the library tab to the general one.
4683         * data/glade/library-prefs.glade: add settings for the layout of the
4684         user's library, and their preferred encoding format (e.g. for CD
4685         ripping).
4687         * lib/rb-preferences.h:
4688         * data/rhythmbox.schemas: add keys for the above options (and a few
4689         other minor ones)
4691         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
4692         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
4693         entry, that isn't inserted into the database.
4695         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
4696         (rb_audiocd_create_track_entry):
4697         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
4698         cds, and set the mime-type of audio cd tracks correctly.
4700         * sources/rb-library-source.c: (rb_library_source_class_init),
4701         (rb_library_source_finalize),
4702         (rb_library_source_edit_profile_clicked_cb),
4703         (impl_get_config_widget), (rb_library_source_preferences_sync),
4704         (impl_receive_drag), (rb_library_source_path_changed_cb),
4705         (rb_library_source_filename_changed_cb),
4706         (rb_library_source_format_changed_cb), (sanitize_path),
4707         (filepath_parse_pattern), (layout_example_label_update),
4708         (rb_library_source_layout_path_changed),
4709         (rb_library_source_layout_filename_changed), (build_filename),
4710         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
4711         entries to the library. Large chunks of code for determining the
4712         destination file name stolen from Sound-Juicer.
4714         * sources/rb-sourcelist-model.c: (path_is_droppable):
4715         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
4716         * sources/rb-static-playlist-source.c:
4717         (rb_static_playlist_source_class_init):
4718         * sources/rb-removable-media-source.c:
4719         (rb_removable_media_source_class_init):
4720         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
4721         (rb_source_can_paste):
4722         * sources/rb-source.h: add a new _can_paste method, and use it (rather
4723         than _can_copy) to determine whether we can paste into the source.
4726 2006-03-31  Steve Frécinaux  <steve@istique.net>
4728         * plugins/rb-python-module.c: allow import of python modules with a '.'
4729         (gedit's bug 336403). Patch by Johan Dahlin.
4731 2006-03-31  James Livingston  <doclivingston@gmail.com>
4733         * sources/rb-library-source.c: 
4734         * sources/rb-library-source.h:
4735         * sources/rb-browser-source.c:
4736         * sources/rb-browser-source.h: Split RBLibrarySource into two.
4737         RBBrowserSource now contains all the stuff for having a source which
4738         views a particular entry type (including browsers and searching).
4739         RBLibrarySource derives from this, and includes the library-specific
4740         stuff, like importing and library watching. Fixes some issues where
4741         library-derived sources were doing things that should be
4742         library-specific. Fixes bug 335185.
4744         * data/ui/rhythmbox-ui.xml:
4745         * sources/Makefile.am: modifications for the above
4747         * sources/rb-daap-source.c: (rb_daap_source_class_init),
4748         (rb_daap_source_get_paned_key):
4749         * sources/rb-daap-source.h:
4750         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
4751         * sources/rb-removable-media-source.c:
4752         (rb_removable_media_source_class_init):
4753         * sources/rb-removable-media-source.h: derive from RBBrowserSource
4754         instead of RBLibrarySource.
4756 2006-03-31  James Livingston  <doclivingston@gmail.com>
4758         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
4759         I buggered up when changing from GnomeVFSFileSize.
4761 2006-03-30  James Livingston  <doclivingston@gmail.com>
4763         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
4764         for "-Wno-error".
4766         * bindings/python/rb.override:
4767         * bindings/python/Makefile.am: make the RB python bindings depend on
4768         the RhythmDB ones, and use "-Wno-error" since the machine-generated
4769         code sometimes emits warnings.
4771         * shell/rb-shell-player.c: (rb_shell_player_class_init),
4772         (rb_shell_player_error_get_type):
4773         * shell/rb-shell-player.h:
4774         * bindings/python/rb.defs: add bindings for RBShellPlayer
4776         * rhythmdb/rhythmdb.c: (rhythmdb_init),
4777         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
4778         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
4779         * rhythmdb/rhythmdb.h:
4780         * shell/rb-shell.c: (rb_shell_get_song_properties):
4781         * widgets/rb-entry-view.c: (propid_from_name):
4782         * widgets/rb-property-view.c: (rb_property_view_class_init):
4783         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
4784         than just plain GPtrArray, and add bindings for it.
4786         * bindings/python/rhythmdb.override: wrap some functions that use
4787         GValues
4789 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4791         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
4792         Only watch directories from which entries of type SONG have been
4793         added.
4795 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4797         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
4798         No need to restore the selection after rebuilding the child model,
4799         since that can't have changed the selection.
4801 2006-03-29  James Livingston  <doclivingston@gmail.com>
4803         * bindings/python/override_common.c:
4804         * bindings/python/override_common.h: add some for missing files to
4805         cvs.
4807 2006-03-29  James Livingston  <doclivingston@gmail.com>
4809         * configure.ac:
4810         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
4811         copied from gedit's autofoo and we don't need it
4813         * bindings/python/rhythmdb.defs:
4814         * bindings/python/rhythmdb.override: add missing files to cvs
4816 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4818         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
4819         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
4820         before running any of the debug/test modes.
4821         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
4822         Make plugin loading work when running uninstalled from the shell/
4823         directory.
4825 2006-03-29  James Livingston  <doclivingston@gmail.com>
4827         * rhythmdb/rhythmdb-property-model.c:
4828         (rhythmdb_property_model_sync),
4829         (rhythmdb_property_model_column_get_type):
4830         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
4832         * rhythmdb/rhythmdb-private.h:
4833         * rhythmdb/rhythmdb-query-model.c:
4834         (rhythmdb_query_model_class_init):
4835         * rhythmdb/rhythmdb-query-model.h:
4836         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
4837         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
4838         (rhythmdb_entry_get_type):
4839         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
4841         * widgets/rb-query-creator-properties.c:
4842         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
4843         was missing.
4845         * bindings/python/Makefile.am:
4846         * bindings/python/rb.defs:
4847         * bindings/python/rb.override:
4848         * plugins/rb-python-module.c: (rb_python_module_init_python): add
4849         Python bindings for RhythmDB.
4851 2006-03-29  James Livingston  <doclivingston@gmail.com>
4853         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
4854         sharing when using --no-registration
4856 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4858         * rhythmdb/rhythmdb-query-model.c:
4859         (rhythmdb_query_model_reapply_query):
4860         Don't remove entries while iterating, as it breaks the sequence
4861         nodes.  Instead, collect a list of removed entries and process it
4862         after iterating the sequence.  Fixes #334642.
4864 2006-03-29  James Livingston  <doclivingston@gmail.com>
4866         * plugins/rb-plugin-manager.c: (active_toggled_cb),
4867         (row_activated_cb), (plugin_manager_toggle_all):
4868         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
4869         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
4870         (button_press_cb), (source_name_edited_cb):
4871         * widgets/rb-property-view.c: (rb_property_view_set_property),
4872         (rb_property_view_post_row_deleted_cb),
4873         (rb_property_view_row_activated_cb),
4874         (rb_property_view_selection_changed_cb),
4875         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
4876         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
4878 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4880         * rhythmdb/rhythmdb-query-model.c:
4881         (rhythmdb_query_model_drag_data_received):
4882         Increment the reference count for entries added by drag and drop.
4883         Fixes #336045.
4885 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4887         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
4888         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
4889         Ignore invalid UTF-8 strings.  Fixes most of #334167.
4891 2006-03-27  James Livingston  <doclivingston@gmail.com>
4893         * shell/rb-shell.c: (rb_shell_constructor),
4894         (rb_shell_sync_window_state): fix a maximise-realise race that would
4895         cause some widgets to be resized after we had explicity set theri
4896         size. Hopefully fixes bug 331927.
4898 2006-03-27  James Livingston  <doclivingston@gmail.com>
4900         * plugins/rb-plugin-manager.c: (active_toggled_cb),
4901         (row_activated_cb), (plugin_manager_set_active),
4902         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
4903         configure button sensitivity when a plugin is enabled/disabled.
4905 2006-03-27  James Livingston  <doclivingston@gmail.com>
4907         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
4908         stop warnings, only the vbos is used anyway
4910         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
4911         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
4912         collection every now an then.
4914         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
4915         if we are finalising because the python object couldn't be created.
4917         * plugins/rb-python-module.c: (rb_python_module_new_object): return
4918         NULL if the python-side object couldn't be created. Stops crashes when
4919         the object is later used when it doesn't exist in Python.
4921         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
4922         (rb_python_shutdown): do better garbage collection when shutting down.
4923         Fixes the problem where Python was holding a reference to the shell,
4924         causing RB not to exit.
4926 2006-03-27  James Livingston  <doclivingston@gmail.com>
4928         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
4929         336131.
4931 2006-03-27  James Livingston  <doclivingston@gmail.com>
4933         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
4934         From bug 334829.
4936 2006-03-26  James Livingston  <doclivingston@gmail.com>
4938         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
4939         library location list to NULL after we free it. Fixes bug 336047.
4941 2006-03-26  James Livingston  <doclivingston@gmail.com>
4943         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
4945         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
4946         supplies. Fixes bug 335947.
4948 2006-03-25  James Livingston  <doclivingston@gmail.com>
4950         * data/glade/audioscrobbler-prefs.glade:
4951         * shell/rb-audioscrobbler.c:
4952         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
4953         "submit songs" checkbox, and make it not disable username/password
4954         entry. This will be needed when we support other last.fm stuff
4955         (profile access, radio, etc).
4957 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
4959         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
4960         Volume should not display stock_volume-0 for volume > 0. Fixes bug
4961         335777.
4963 2006-03-24  James Livingston  <doclivingston@gmail.com>
4965         * shell/rb-shell-player.c: (rb_shell_player_set_property),
4966         (rb_shell_player_sync_play_order),
4967         (rb_shell_player_play_order_update_cb),
4968         (actually_set_playing_source): update the next/previous availablility
4969         in places where it was missing. Fixes bug 335490.
4971 2006-03-24  James Livingston  <doclivingston@gmail.com>
4973         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
4974         can't find the widget
4976         * lib/rb-util.c: (rb_uri_list_parse):
4977         * lib/rb-util.h: add function for parsing a URI list into strings.
4979         * metadata/Makefile.am: make the metdata helper build when linking
4980         with --as-needed
4982         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
4983         g_mkdir_with_parents instead of coding our own.
4985         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
4986         <itunes:author> over <generator>, instead of using whichever comes
4987         last.
4989         * rhythmdb/rhythmdb-private.h:
4990         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
4991         field, as we don't ever check it (to detect corruption). Saves a bit
4992         of memory.
4994 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4996         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
4997         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
4998         Escape '&' and '=' in the paths we get back from
4999         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
5001 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5003         * shell/rb-shell.c: (rb_shell_constructor):
5004         Issue startup notification after creating the main window, so
5005         notification is issued whether the window is visible or not.
5006         Fixes #335086.
5008 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5010         * sources/rb-auto-playlist-source.c: (impl_search),
5011         (rb_auto_playlist_source_query_complete_cb),
5012         (rb_auto_playlist_source_do_query):
5013         * sources/rb-library-source.c: (impl_search),
5014         (rb_library_source_query_complete_cb),
5015         (rb_library_source_do_query):
5016         Defer subset searches (where text is appended to an existing search)
5017         until the original query is complete.
5019 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
5021         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
5023         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
5024         (rb_refstring_get_sort_key): fixes for strict-aliasing
5026 2006-03-21  James Livingston  <jrl@ids.org.au>
5028         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
5029         importing a single file. Fixes bug 335307.
5031 2006-03-21  James Livingston  <jrl@ids.org.au>
5033         * shell/Makefile.am: remove the reference to backends/ that I
5034         accidently included.
5036 2006-03-21  James Livingston  <jrl@ids.org.au>
5038         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
5039         with Forte (on Solaris). Closes bug 335318.
5041         * configure.ac:
5042         * lib/Makefile.am:
5043         * player/rb-recorder-gst.c:
5044         * podcast/rb-podcast-parse.c:
5045         * remote/bonobo/Makefile.am:
5046         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
5047         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
5048         (rhythmdb_query_model_add_entry),
5049         (rhythmdb_query_model_add_results):
5050         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
5051         * rhythmdb/rhythmdb.h:
5052         * shell/Makefile.am:
5053         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
5054         (update_speed_combobox):
5055         * sources/rb-sourcelist-model.c:
5057 2006-03-21  James Livingston  <jrl@ids.org.au>
5059         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
5061         * player/Makefile.am:
5062         * shell/Makefile.am: work correctly with a separate build root.
5064 2006-03-21  James Livingston  <jrl@ids.org.au>
5066         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
5067         get handed NULL.
5069 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5071         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
5072         Only create ignore entries when importing into the library.  
5073         Ignore entries for files in removable media sources don't help.
5075 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5077         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
5078         * shell/rb-source-header.h:
5079         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
5080         * widgets/rb-search-entry.h:
5081         Add functions to make the search box grab focus.
5083         * shell/rb-shell.c: (rb_shell_cmd_view_all):
5084         Focus the search box after handling the 'view all' action.
5086 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5088         * rhythmdb/rhythmdb.h:
5089         * rhythmdb/rhythmdb.c: (rhythmdb_init),
5090         (rhythmdb_execute_multi_stat_info_cb),
5091         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
5092         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
5093         (action_thread_main):
5094         Collect all the get_file_info requests on startup into one gnome-vfs
5095         job to reduce overhead and avoid contention for the rhythmdb lock.
5096         Add a new method to call when all initial query models are set up.
5097         
5098         * shell/rb-shell.c: (idle_handle_load_complete):
5099         Call rhythmdb startup complete function when we've loaded all the
5100         playlists.  Fixes #334106.
5102 2006-03-20  James Livingston  <jrl@ids.org.au>
5104         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
5105         (rb_entry_view_selection_changed_cb),
5106         (rb_entry_view_have_complete_selection): make has_complete_selection
5107         not slow. Fixes a performance issue I added a week or so ago.
5109 2006-03-20  James Livingston  <jrl@ids.org.au>
5111         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
5112         before passing to strcmp. From bug 334559.
5114 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5116         * configure.ac:
5117         * lib/Makefile.am:
5118         * lib/rb-proxy-config.c:
5119         * lib/rb-proxy-config.h:
5120         Add a new object to watch the HTTP proxy configuration and emit
5121         signals when it changes.
5123         * shell/rb-audioscrobbler.c:
5124         * shell/rb-audioscrobbler.h:
5125         Use rb-proxy-config to watch HTTP proxy configuration.
5127         * shell/rb-shell.c:
5128         Construct rb-proxy-config object on startup, and remove all
5129         audioscrobbler references.
5131         * shell/Makefile.am:
5132         * plugins/audioscrobbler/Makefile.am:
5133         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5134         Move all audioscrobbler code into the plugin.  We should move
5135         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
5136         point.  Don't use a private data structure in the plugin, since the
5137         class definition isn't in a header file.  Fixes #335091.
5139 2006-03-20  James Livingston  <jrl@ids.org.au>
5141         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
5142         don't enable Next if the source has an EOS type other than
5143         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
5145 2006-03-20  James Livingston  <jrl@ids.org.au>
5147         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
5148         (rb_song_info_forward_clicked_cb): deal with there being no
5149         next/previous entry.
5151         (rb_song_info_query_model_inserted_cb),
5152         (rb_song_info_query_model_deleted_cb),
5153         (rb_song_info_query_model_reordered_cb),
5154         (rb_song_info_query_model_changed_cb): monitor the query for changes,
5155         to update the button status. Fixes bug 333293.
5157 2006-03-20  James Livingston  <jrl@ids.org.au>
5159         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
5160         caused by my last commit
5162 2006-03-20  James Livingston  <jrl@ids.org.au>
5164         * bindings/python/Makefile.am:
5165         * bindings/python/rb.defs:
5166         * bindings/python/rb.override: add python bindings of RBRemoteProxy
5168         * shell/rb-shell.c: (rb_shell_constructor),
5169         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
5170         tray-icon detection slightly
5172 2006-03-19  Steve Frécinaux  <steve@istique.net>
5174         * data/ui/rhythmbox-ui.xml:
5175         * shell/rb-shell.c:
5177         Add an empty Tool Menu (hidden by default) containing placeholders for
5178         plugins.
5180         * configure.ac:
5181         * plugins/Makefile.am:
5182         * plugins/pythonconsole/Makefile.am:
5183         * plugins/pythonconsole/pythonconsole.py:
5184         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
5185         
5186         Python Console plugin
5188 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5190         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
5191         Extra step to encode '&' and '=' to match what gnome-vfs does
5192         internally.
5193         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5194         (rhythmdb_tree_save):
5195         Increment rhythmdb xml version to 1.2, and force another uri
5196         re-canonicalisation when loading v1.1 databases.
5197         Fixes bug #333998.
5199 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5201         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
5202         (avahi_client_init), (browse_cb):
5203         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
5204         (avahi_client_init):
5205         Fix compilation with Avahi 0.5.x (bug #334551).
5207 2006-03-19  James Livingston  <jrl@ids.org.au>
5209         Add Increase/Decrease Volume menu items and keybindings. From bug
5210         123383.
5212         * data/ui/rhythmbox-ui.xml:
5213         * shell/rb-shell-player.c: (rb_shell_player_constructor),
5214         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
5215         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
5217 2006-03-19  James Livingston  <jrl@ids.org.au>
5219         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
5221         * shell/Makefile.am: fix the link order, so that we compile with
5222         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
5224 2006-03-19  James Livingston  <jrl@ids.org.au>
5226         patch by: Adam Petaccia  <adam@tpetaccia.com>
5228         * data/ui/rhythmbox-ui.xml: move preferences below "configure
5229         plugins". Fixes bug 335037.
5231 2006-03-18  James Livingston  <jrl@ids.org.au>
5233         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
5234         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
5235         332992.
5237         * widgets/rb-header.c: don't make artist/album info in the header the
5238         small size, since it's hard to read.
5240 2006-03-16  William Jon McCann  <mccann@jhu.edu>
5242         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
5243         (rhythmdb_finalize): Don't leak the hash tables.
5244         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
5245         (rhythmdb_commit_internal): Make sure to process the deletions.
5246         (rhythmdb_entry_delete): Use a hash.
5248         * podcast/rb-podcast-manager.c: Random analness about char*
5249         (rb_podcast_manager_remove_feed): Add debugging.
5250         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
5251         the result of gnome_vfs_unlink.  Don't leak a uri.
5253         Fixes #334786
5255 2006-03-18  James Livingston  <jrl@ids.org.au>
5257         * NEWS: update NEWS file
5259 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5261         * rhythmdb/rhythmdb-property-model.c:
5262         (rhythmdb_property_model_prop_changed_cb):
5263         Remove entries from the hash table after processing visible->hidden
5264         changes.
5266 2006-03-16  William Jon McCann  <mccann@jhu.edu>
5268         * sources/rb-daap-source.c (connection_connected_cb) 
5269         (connection_disconnected_cb): Add debug.
5270         (rb_daap_source_get_headers): Check for NULL connection.
5272         * daapsharing/rb-daap-src.c (rb_daap_src_open):
5273         Check return value of rb_daap_source_get_headers.
5275         Fixes #332089
5277 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5279         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
5280         Restore the selection after rebuilding the child model, so the
5281         selection is shown correctly after using the 'browse this
5282         album/artist/genre' menu items.
5284 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5286         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
5287         Clear the selection before changing the active model.
5288         Fixes crash reported in bug 334549.
5290 2006-03-15  James Livingston  <jrl@ids.org.au>
5292         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
5293         (rb_tray_icon_sync_action):
5294         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
5295         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
5296         for non-libnotify notification bubbles. Fixes bug 331721.
5298 2006-03-15  James Livingston  <jrl@ids.org.au>
5300         Add search-bar options to playlists. Fixes bug 334407.
5302         * sources/rb-auto-playlist-source.c:
5303         (rb_auto_playlist_source_class_init),
5304         (rb_auto_playlist_source_constructor),
5305         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
5306         (search_action_to_prop), (search_action_changed):
5307         * sources/rb-static-playlist-source.c:
5308         (rb_static_playlist_source_class_init),
5309         (rb_static_playlist_source_constructor),
5310         (construct_query_from_selection), (impl_get_search_actions),
5311         (search_action_to_prop), (search_action_changed):
5313 2006-03-14  William Jon McCann  <mccann@jhu.edu>
5315         * shell/rb-source-header.c (rb_source_header_set_source_internal):
5316         Remove broken attempt at making the search bar buttons not
5317         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
5319 2006-03-14  William Jon McCann  <mccann@jhu.edu>
5321         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
5322         Chain up to parent's dispose instead of finalize.  Fixes #334479.
5324 2006-03-14  William Jon McCann  <mccann@jhu.edu>
5326         * widgets/rb-header.c (rb_header_sync): Escape album and
5327         artist before adding to markup.
5329 2006-03-14  William Jon McCann  <mccann@jhu.edu>
5331         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
5332         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
5333         (rb_header_set_property), (rb_header_get_property),
5334         (rb_header_sync):
5335         Remove the GnomeUrl song links until we can do it properly.
5336         Fixes #334453.
5338 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5340         * shell/rb-source-header.c: (rb_source_header_clear_search):
5341         Remove the stored search text from the hash table, so it doesn't
5342         reappear after switching to another source and back.
5344         * sources/rb-auto-playlist-source.c: (impl_search):
5345         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
5346         * sources/rb-static-playlist-source.c: (impl_search):
5347         Make sure all sources treat impl_search(NULL) and impl_search("") the
5348         same.  Fixes #334525.
5350 2006-03-14  James Livingston  <jrl@ids.org.au>
5352         Store which thread created new entries, and make rhythmdb_commit only
5353         insert the entries for the thread that calls it. This stops one thread
5354         calling rhythmdb_commit inserting entries that are half-way through
5355         construction by another thread (as happens with audio cds). From bug
5356         330226.
5358         * rhythmdb/rhythmdb.c: (rhythmdb_init),
5359         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
5360         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
5361         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
5362         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
5363         (rhythmdb_process_metadata_load),
5364         (rhythmdb_process_queued_entry_set_event),
5365         (rhythmdb_prop_get_type):
5367 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5369         * rhythmdb/rhythmdb-query-model.c:
5370         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
5371         (rhythmdb_query_model_finalize):
5372         Move object unrefs from _finalize into _dispose.
5373         
5374         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
5375         Remove extra g_object_ref that was causing query model leaks.
5376         
5377         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
5378         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
5379         (genre_selection_reset_cb), (rb_iradio_source_do_query):
5380         Remove the cached 'all' query, since it doesn't really help and it
5381         makes the code more complicated.  Attach the genre property view to
5382         the query model build from the search text, so only genres for
5383         stations matching the search terms are displayed.  Preserve the genre
5384         selection across searches.
5386         * widgets/rb-library-browser.c: 
5387         (rb_library_browser_class_init), (rb_library_browser_get_property):
5388         Add properties for the input and output models for the browser, and
5389         remove the 'changed' signal as we can just use notify::output-model.
5390         (ignore_selection_changes),
5391         (selection_restore_data_destroy), (query_complete_cb),
5392         (restore_selection): Helper functions for preserving selections across
5393         query model rebuilds.
5394         (rebuild_output_model):  New function for creating a query model to
5395         use as the display model for a source using the browser.
5396         (rebuild_child_model): Add a call to rebuild_output_model, add missing
5397         g_object_unrefs, reuse the parent's query model when there's no
5398         selection, and use ignore_selection_changes and restore_selection.
5399         (rb_library_browser_set_selection): rebuild_child_model emits the
5400         changed signal, so no need to do it here.
5401         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
5402         ignore_selection_changes and restore_selection. 
5403         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
5404         flag to rb_library_browser_set_model indicating whether the query is
5405         asynchronous.
5407         * sources/rb-static-playlist-source.c:
5408         (rb_static_playlist_source_class_init),
5409         (rb_static_playlist_source_dispose):
5410         (rb_static_playlist_source_constructor):  Add an extra reference on
5411         the base model, so it doesn't vanish when we set a new display model
5412         based on a search or browser selection.
5413         (impl_search): Ensure the search_text field in the source is NULL if
5414         the search box is empty.
5415         (construct_query_from_selection),
5416         (rb_static_playlist_source_do_query): Use the query model constructed
5417         from the search as the input model for the browser.
5418         (rb_static_playlist_source_browser_changed_cb): Use the browser's
5419         output model as the query model for the source.
5421         * sources/rb-auto-playlist-source.c:
5422         (rb_auto_playlist_source_finalize): Free more stuff.
5423         (rb_auto_playlist_source_constructor),
5424         (rb_auto_playlist_source_browser_changed_cb):
5425         Update for rb-library-browser changes, use the browser's output query
5426         model as the query model for the source.
5427         (impl_reset_filters), (impl_search), 
5428         (rb_auto_playlist_source_do_query),
5429         (rb_auto_playlist_source_set_query):
5430         Use the query model constructed from the search text as the input to
5431         the library browser, and when adding text to an existing search, apply
5432         the new query to the existing query model.
5433         
5434         * sources/rb-library-source.c: (rb_library_source_dispose):
5435         (rb_library_source_finalize): Chain dispose up to the parent class.
5436         (rb_library_source_constructor): Update for rb-library-browser
5437         changes. 
5438         (impl_search): Ensure search_text is NULL if the search box is empty,
5439         and use the subset flag to _do_query if text has been appended to an
5440         existing search.
5441         (search_action_changed), (impl_reset_filters):
5442         (rb_library_source_browser_changed_cb),
5443         (rb_library_source_do_query): Use the browser's output model as the
5444         query model for the source.
5446         Rework library and playlist sources to use a single query chain,
5447         and to limit the entries shown in property views based on the search
5448         terms.  Fixes bug #322787.
5450 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5452         * configure.ac:  Enable metadata helper by default, and fix a typo.
5454 2006-03-13  James Livingston  <jrl@ids.org.au>
5456         Make RBRefStrings lazily create the folded and sort-key strings when
5457         they are first used. This will same some memory by not creating ones
5458         that are never used, and delaying some of the others to when the user
5459         resorts or performs a similar action. Fixes bug 332992.
5461         * rhythmdb/rb-refstring.c: (rb_refstring_free),
5462         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
5463         (rb_refstring_get), (rb_refstring_get_folded),
5464         (rb_refstring_get_sort_key), (rb_refstring_hash),
5465         (rb_refstring_equal):
5466         * rhythmdb/rb-refstring.h:
5467         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
5469 2006-03-12  William Jon McCann  <mccann@jhu.edu>
5471         * data/ui/rhythmbox-ui.xml:
5472         * lib/rb-stock-icons.c: (rb_stock_icons_init):
5473         * lib/rb-stock-icons.h:
5474         * shell/rb-shell-player.c:
5475         * shell/rb-shell.c: (rb_shell_constructor):
5476         * shell/rb-source-header.c: (force_no_shadow),
5477         (ui_manager_add_widget_cb), (rb_source_header_constructor),
5478         (rb_source_header_class_init), (rb_source_header_init),
5479         (merge_source_ui_cb), (toolbar_set_homogeneous),
5480         (rb_source_header_set_source_internal),
5481         (rb_source_header_set_property), (rb_source_header_get_property),
5482         (rb_source_header_set_source), (rb_source_header_new),
5483         (rb_source_header_filter_changed_cb):
5484         * shell/rb-source-header.h:
5485         * sources/rb-library-source.c: (rb_library_source_class_init),
5486         (rb_library_source_init), (search_action_to_prop),
5487         (search_action_changed), (rb_library_source_constructor),
5488         (impl_search), (impl_reset_filters), (impl_get_search_actions),
5489         (construct_query_from_selection):
5490         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5491         (rb_podcast_source_init), (search_action_to_prop),
5492         (search_action_changed), (rb_podcast_source_constructor),
5493         (construct_query_from_selection), (impl_get_ui_actions),
5494         (impl_get_search_actions):
5495         * sources/rb-source.c: (rb_source_class_init),
5496         (rb_source_get_ui_actions), (default_get_search_actions),
5497         (rb_source_get_search_actions):
5498         * sources/rb-source.h:
5500         Add a search bar.  Fixes #328618
5502 2006-03-12  James Livingston  <jrl@ids.org.au>
5504         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
5505         * shell/main.c: (main): make --no-update not stat files checking for
5506         changes, instead of doing nothing. Fixes bug 125177.
5508 2006-03-12  James Livingston  <jrl@ids.org.au>
5510         * podcast/rb-podcast-manager.c:
5511         (rb_podcast_manager_thread_parse_feed):
5512         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
5513         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
5514         having an invalid mime-type. Fixed bug 329813.
5516 2006-03-12  James Livingston  <jrl@ids.org.au>
5518         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
5519         Finally lets us close bug 309609.
5521         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
5522         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
5523         0.10
5525         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
5526         inverted logic of the editable check.
5528 2006-03-12  James Livingston  <jrl@ids.org.au>
5530         Make API doc generation work again. Fixes bug 334276.
5532         * doc/reference/Makefile.am:
5533         * doc/reference/tmpl/rb-debug.sgml:
5534         * doc/reference/tmpl/rb-druid.sgml:
5535         * doc/reference/tmpl/rb-entry-view.sgml:
5536         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
5537         * doc/reference/tmpl/rb-metadata.sgml:
5538         * doc/reference/tmpl/rb-shell.sgml:
5539         * doc/reference/tmpl/rhythmbox-unused.sgml:
5540         * doc/reference/tmpl/rhythmdb.sgml:
5542 2006-03-12  James Livingston  <jrl@ids.org.au>
5544         * shell/rb-shell-clipboard.c:
5545         (rb_shell_clipboard_set_source_internal),
5546         (rb_shell_clipboard_sync): don't try to use the source's entry view if
5547         it doesn't have one. Fixes bug 331673.
5549         * sources/rb-source.c: (rb_source_class_init): provide a default
5550         have_url implementation that returns FALSE.
5552 2006-03-12  James Livingston  <jrl@ids.org.au>
5554         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
5555         doing a distclean. Fixes bug 334221.
5558         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
5560         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
5562 2006-03-11  James Livingston  <jrl@ids.org.au>
5564         * shell/rb-shell.c: (rb_shell_window_state_cb),
5565         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
5566         update the window width/height when iconified. Stops the window
5567         changing size when it is restored from the tray, fixing bug 333824. 
5569 2006-03-11  James Livingston  <jrl@ids.org.au>
5571         Try to get cvs to actually add the necessary files for plugin support
5573 2006-03-11  James Livingston  <jrl@ids.org.au>
5575         Add a plugin framework, with basic support for Python plugins (based
5576         on gedit's). Closes bug 330523.
5578         * Makefile.am:
5579         * shell/Makefile.am:
5580         * configure.ac: necessary autofoo.
5582         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
5584         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
5585         * lib/rb-file-helpers.h:
5587         * data/glade/plugins/glade:
5588         * lib/rb-preferences.h:
5589         * plugins/*:
5590         * bindings/*: plugin framework
5592         * plugins/sample/*:
5593         * plugins/sample-python/*: sample plugins
5595         * plugins/audioscrobbler/*:
5596         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
5597         (rb_audioscrobbler_set_property),
5598         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
5599         submission into a plugin. shell/audioscrobbler.* should really be
5600         moved, but that sucks with cvs.
5602         * shell/rb-shell.h:
5603         * shell/rb-shell.c: (rb_shell_constructor),
5604         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
5605         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
5606         (rb_shell_quit): start and stop plugin framework.
5608 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5610         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
5611         (rhythmdb_entry_delete):
5612         Emit entry-deleted signals when rhythmdb_commit is called, rather than
5613         immediately, so we can't get change notifications afterwards.  
5614         Fixes #331732.
5615         (rhythmdb_process_metadata_load): Add a commit after removing an
5616         entry so we can recreate it with a different type without getting
5617         confused.
5619 2006-03-11  James Livingston  <jrl@ids.org.au>
5621         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
5622         use the drive name for audio CDs, use "Unknown CD".
5624 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5626         patch by:  James Henstridge  <james@jamesh.id.au>
5628         * sources/rb-removable-media-source.c:
5629         (rb_removable_media_source_constructor):
5630         Get the device name from the GnomeVFSDrive if possible,
5631         since this is usually a more descriptive name.  Fixes #333080.
5633 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5635         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
5637         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
5638         Don't automatically download episodes when configured for manual
5639         updating.  Fixes #331564.
5641 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5643         * rhythmdb/rhythmdb-property-model.c:
5644         (rhythmdb_property_model_iter_from_string):
5645         Return an iterator for the 'all' property when name == NULL,
5646         and don't write to *iter if iter == NULL.
5648 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5650         * shell/rb-shell-player.c: (rb_shell_player_do_next):
5651         When switching to the play queue, still call _go_next on the normal
5652         play order, so self-emptying auto playlists ("play count = 0" etc.)
5653         don't restart once the queue is empty.
5655         * shell/rb-tray-icon.c:
5656         Change shortcut for 'show notifications' to 'o' so it doesn't clash
5657         with 'next'.
5659 2006-03-05  James Livingston  <jrl@ids.org.au>
5661         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5662         don't submit tracks which could not be played. Fixed bug 333013.
5664         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
5665         tracks which could not be played.
5667 2006-03-05  James Livingston  <jrl@ids.org.au>
5669         Sync musicbrainz lookup code from Sound-Juicer cvs.
5671         * metadata/sj-metadata-musicbrainz.c:
5672         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
5673         (get_offline_track_listing), (artist_and_title_from_title),
5674         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
5675         (mb_list_albums), (mb_get_submit_url):
5676         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
5677         * metadata/sj-metadata.h:
5678         * metadata/sj-structures.c: (track_details_free),
5679         (album_details_free):
5680         * metadata/sj-structures.h:
5682 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5684         * lib/rb-debug.h:
5685         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
5686         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
5687         (rb_profiler_reset), (rb_profiler_free):
5688         Filter debug output by matching the file and function names against a
5689         match string.
5691         * shell/main.c: (main):
5692         Add -D command line option to specify the debug match string.
5694         * shell/rb-removable-media-manager.c:
5695         (rb_removable_media_manager_mount_volume):
5696         Fix some typos in debug output.
5698 2006-03-03  James Livingston  <jrl@ids.org.au>
5700         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
5701         * shell/rb-shell.c: (rb_shell_load_uri):
5702         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
5703         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
5704         use the new "recurse" property from totem-plparser, if present. Stop
5705         RB hanging for new users who don't have a 'net connection. From bug
5706         331508.
5708 2006-03-02  Bastien Nocera  <hadess@hadess.net>
5710         * shell/rb-removable-media-manager.c:
5711         (rb_removable_media_manager_mount_volume):
5712         * sources/Makefile.am:
5713         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
5714         Fix missing files on make dist (conditional files), only build the
5715         N770 support if there's HAL support, as we have no other ways of
5716         detecting it
5718 2006-03-03  James Livingston  <jrl@ids.org.au>
5720         * shell/rb-shell-clipboard.c:
5721         (rb_shell_clipboard_set_source_internal): really fix it this time.
5722         hopefully.
5724 2006-03-03  James Livingston  <jrl@ids.org.au>
5726         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
5727         with the idle function not being removed.
5729 2006-03-02  James Livingston  <jrl@ids.org.au>
5731         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
5732         * widgets/rb-entry-view.h: add function for determining whether all
5733         entries are selected.
5735         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
5736         (rb_shell_clipboard_set_source_internal),
5737         (rb_shell_clipboard_finalize),
5738         (rb_shell_clipboard_idle_poll_deletions),
5739         (rb_shell_clipboard_entryview_changed_cb),
5740         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
5741         removals, to update things.
5743         (rb_shell_clipboard_sync): update the Select All and Select None
5744         sensitivity, based on what is selected. Fixed bug 172220.
5746 2006-03-02  James Livingston  <jrl@ids.org.au>
5748         * widgets/rb-library-browser.c: (rebuild_child_model): save and
5749         restore the selections of later models. This means that selecting the
5750         artist for the selected album does not reset the album selection.
5752 2006-03-02  James Livingston  <jrl@ids.org.au>
5754         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
5755         Stops it emitting critical warnings.
5757 2006-03-02  James Livingston  <jrl@ids.org.au>
5759         * lib/rb-file-helpers.c: (rb_uri_append_uri):
5760         * lib/rb-file-helpers.h: Add uri concatenation function for when the
5761         second fragment is already escaped.
5763         * sources/rb-generic-player-source.c:
5764         (rb_generic_player_source_class_init),
5765         (rb_generic_player_source_constructor), (impl_show_popup),
5766         (rb_generic_player_source_load_playlists),
5767         (rb_generic_player_source_transform_playlist_uri),
5768         (handle_playlist_entry_cb), (visit_playlist_dirs),
5769         (default_load_playlists), (default_transform_playlist_uri):
5770         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
5771         the device. Allow subclasses to override the playlist loading, and
5772         (playlist uri)->(actual uri) mapping. A lot of devices which have
5773         playlists won't work right now, but people will see them and hopefully
5774         file bugs.
5776         * sources/rb-psp-source.c: (rb_psp_source_class_init),
5777         (rb_psp_source_create_playlists): Adapt the PSP for the above change
5778         
5779         * sources/Makefile.am:
5780         + sources/rb-nokia770-source.{c,h}:
5781         * shell/rb-removable-media-manager.c:
5782         (rb_removable_media_manager_mount_volume): Add support for reading
5783         playlists of Nokia 770s.
5785 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5787         * data/glade/podcast-properties.glade:
5788         * podcast/rb-podcast-properties-dialog.c:
5789         (rb_podcast_properties_dialog_init),
5790         (rb_podcast_properties_dialog_update),
5791         (rb_podcast_properties_dialog_update_location),
5792         (rb_podcast_properties_dialog_update_download_location):
5793         Add 'download location' field showing the path to the downloaded copy.
5794         Fixes #330696.
5796 2006-03-01  Bastien Nocera  <hadess@hadess.net>
5798         * configure.ac: simplify HAVE_HAL define
5800 2006-03-01  Bastien Nocera  <hadess@hadess.net>
5802         * configure.ac:
5803         * lib/rb-file-helpers.c: (rb_uri_append_path):
5804         * lib/rb-file-helpers.h:
5805         * shell/rb-removable-media-manager.c:
5806         (rb_removable_media_manager_mount_volume):
5807         * sources/Makefile.am:
5808         * sources/rb-ipod-source.c:
5809         * sources/rb-psp-source.*:
5810         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
5811         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
5813 2006-03-02  James Livingston  <jrl@ids.org.au>
5815         * shell/rb-shell-player.c: (rb_shell_player_set_property),
5816         (rb_shell_player_play), (rb_shell_player_jump_to_current),
5817         (swap_playing_source), (rb_shell_player_playpause),
5818         (rb_shell_player_sync_buttons), (actually_set_playing_source),
5819         (rb_shell_player_set_playing_source_internal): check for the entry
5820         view being NULL before trying to use it. Lets us support sources which
5821         don't have an entry view. From bug 331673.
5823 2006-03-01  Bastien Nocera  <hadess@hadess.net>
5825         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
5826         use gnome_vfs_read_entire_file with a URI, not a local filename
5828 2006-03-01  James Livingston  <jrl@ids.org.au>
5830         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
5831         first-seen and last-seen when merging duplicate entries.
5833 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5835         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
5836         * widgets/rb-property-view.h:  New function, allowing custom 
5837         interactive search functions for property views.
5838         
5839         * sources/rb-podcast-source.c: 
5840         (feed_select_change_cb): Only do a new query when the selection
5841         actually changes.
5842         (rb_podcast_source_constructor),
5843         (rb_podcast_source_feed_title_search_func):
5844         Interactive search function for podcast feed titles.  Fixes #327451.
5846 2006-03-01  James Livingston  <jrl@ids.org.au>
5848         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
5849         the uri in the callback, since it causes symbols to not be escaped.
5850         Fixes bug 332976.
5852         * data/ui/rhythmbox-ui.xml:
5853         * sources/rb-import-errors-source.c:
5854         (rb_import_errors_source_class_init),
5855         (rb_import_errors_source_constructor), (impl_get_status),
5856         (impl_move_to_trash),
5857         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
5858         import errors source
5859         
5860         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
5861         (rb_entry_view_append_column): unescape the URI for display.
5863 2006-03-01  James Livingston  <jrl@ids.org.au>
5865         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
5866         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
5867         function fails.
5869 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
5871         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
5872         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
5873         * sources/rb-play-queue-source.c:
5874         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
5875         (rb_play_queue_source_update_count):  Use "Play Queue" instead
5876         of "Queued Songs".
5878         Fixes #331637.
5880 2006-03-01  James Livingston  <jrl@ids.org.au>
5882         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
5883         Fixes bug 332913.
5885 2006-03-01  James Livingston  <jrl@ids.org.au>
5887         * daapsharing/rb-daap-mdns-browser-howl.c:
5888         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
5889         * daapsharing/rb-daap-mdns-publisher-avahi.c:
5890         (rb_daap_mdns_publisher_class_init),
5891         (rb_daap_mdns_publisher_finalize):
5892         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
5893         * player/rb-recorder-gst.c: (rb_recorder_class_init),
5894         (rb_recorder_finalize):
5895         * rhythmdb/rhythmdb-query-model.c:
5896         (rhythmdb_query_model_constructor):
5897         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
5898         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
5899         * sources/rb-playlist-source-recorder.c:
5900         (rb_playlist_source_recorder_style_set),
5901         (rb_playlist_source_recorder_class_init),
5902         (rb_playlist_source_recorder_finalize):
5903         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
5904         other classes in the same way, so they don't break when derived from.
5906 2006-03-01  James Livingston  <jrl@ids.org.au>
5908         * sources/rb-generic-player-source.c:
5909         (rb_generic_player_source_constructor): don't get the parent class in
5910         a dumb way, and it breaks when the class is derived from.
5912 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
5914         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
5916 2006-03-01  James Livingston  <jrl@ids.org.au>
5918         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
5919         not work in glib 2.8 systems.
5921 2006-03-01  James Livingston  <jrl@ids.org.au>
5923         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
5924         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
5925         say it is crap.
5927         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
5928         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
5929         podcasts on ion-local places
5931         * rhythmdb/gsequence.c: (g_sequence_node_new),
5932         (g_sequence_node_free): use gslice if we are building against glib
5933         2.10.
5935         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
5936         local files too, so it doesn't block.
5938 2006-02-28  James Livingston  <jrl@ids.org.au>
5940         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
5941         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
5942         stats the file. Stops the UI blocking while stats are done.
5944 2006-02-28  James Livingston  <jrl@ids.org.au>
5946         * sources/rb-static-playlist-source.c:
5947         (rb_static_playlist_source_class_init),
5948         (rb_static_playlist_source_constructor), (impl_reset_filters),
5949         (impl_get_property_views), (impl_browser_toggled),
5950         (rb_static_playlist_source_do_query),
5951         (rb_static_playlist_source_browser_changed_cb): add browsers to static
5952         playlists. From bug 118862.
5954         * sources/rb-play-queue-source.c:
5955         (rb_play_queue_source_class_init): disable them for the play queue.
5957 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
5959         * data/glade/library-prefs.glade:  Add a mnemonic.
5960         * sources/rb-library-source.c:
5961         (rb_library_source_location_button_clicked_cb):  Use title
5962         capitalization for window title.
5964 2006-02-28  James Livingston  <jrl@ids.org.au>
5966         * sources/rb-auto-playlist-source.c:
5967         (construct_query_from_selection): don't create a subquery for only one
5968         criteria, as it's a silly effifiency degredation.
5970 2006-02-28  James Livingston  <jrl@ids.org.au>
5972         * rhythmdb/rhythmdb.h:
5973         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5974         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
5975         saved to disk
5977         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
5978         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
5979         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
5980         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
5981         IGNORE (e.g. known video stream) create an entry of the Ignore type.
5982         This will make importing files quicker as we don't need to try files
5983         that we know are not going to be interesting - especially useful when
5984         using the library watching facility.
5986         Fixes bug 323179.
5988 2006-02-28  James Livingston  <jrl@ids.org.au>
5990         * shell/rb-shell.c: (rb_shell_constructor),
5991         (rb_shell_set_visibility): fix browser and source-list pane
5992         positioning, that I broke with the "remember visibility" patch.
5994 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5996         * metadata/rb-metadata-dbus-service.c: (main):
5997         Change argument handling so you can use --debug with the --load and
5998         --can-save test modes.
5999         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
6000         Use a separate GMainContext, not the default one.  Probably fixes
6001         #332344.
6003 2006-02-27  James Livingston  <jrl@ids.org.au>
6005         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
6006         first starting up. Fixes bug 330342.
6008 2006-02-27  James Livingston  <jrl@ids.org.au>
6010         * sources/rb-sourcelist-model.c:
6011         (rb_sourcelist_model_set_dnd_targets):
6012         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
6013         COPY action for draging sources and tracks, not MOVE as well. Stops
6014         Nautilus moving file away, and fixes bug 332488.
6016 2006-02-27  James Livingston  <jrl@ids.org.au>
6018         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
6020         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
6021         and Last Played metadata off iPods. Closes bug 324648.
6023 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6025         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
6026         Disable audioscrobbler when run with the --no-registration flag, since
6027         last.fm doesn't allow multiple concurrent clients per user.
6029 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6031         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
6032         Rename renamable sources when F2 is pressed when the sourcelist has
6033         focus.  Fixes #330700.
6035 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6037         * shell/rb-playlist-manager.c: (cleanup_edit_data),
6038         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
6039         (rb_playlist_manager_cmd_edit_automatic_playlist):
6040         Fix various crashes when deleting auto playlists previously edited
6041         by disconnecting signal handlers when the query editor is closed or
6042         the playlist is deleted.
6044 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6046         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
6047         removed load failure dialog, and actually use the friendly file type
6048         name in error messages.
6050 2006-02-24  James Livingston  <jrl@ids.org.au>
6052         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
6054         * sources/rb-library-source.c:
6055         (rb_library_source_location_button_clicked_cb),
6056         (rb_library_source_preferences_sync),
6057         (rb_library_source_library_location_cb): convert the library URI to
6058         for display, and back again. Fixes bug 332356.
6060 2006-02-23  James Livingston  <jrl@ids.org.au>
6062         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
6063         (rhythmdb_process_metadata_load), (monitor_subdirectory),
6064         (rhythmdb_sync_library_location): don't monitor files at all if
6065         watching is turned off. From bug 323096.
6067 2006-02-23  James Livingston  <jrl@ids.org.au>
6069         * data/rhythmbox.schemas:
6070         * lib/rb-preferences.h:
6071         * shell/rb-shell.c: (rb_shell_constructor),
6072         (rb_shell_set_visibility): remember main window visibility between
6073         sessions. Fixes bug 127320.
6075 2006-02-23  James Livingston  <jrl@ids.org.au>
6077         * data/glade/library-prefs.glade:
6078         * sources/rb-library-source.c: (impl_get_config_widget),
6079         (rb_library_source_location_button_clicked_cb),
6080         (rb_library_source_preferences_sync),
6081         (rb_library_source_library_location_cb),
6082         (rb_library_source_watch_toggled_cb): change the library-location
6083         widgets from the file-chooser drop menu to a text entry and Browse
6084         button. This is needed to prevent the location from chaning if the
6085         directory cannot be found. Fixes bug 328414.
6087 2006-02-23  James Livingston  <jrl@ids.org.au>
6089         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
6090         item. Fixes bug 329042.
6092 2006-02-23  James Livingston  <jrl@ids.org.au>
6094         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
6096         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
6097         comma in some podcast feeds. Fixes bug 332194.
6099 2006-02-23  James Livingston  <jrl@ids.org.au>
6101         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
6102         lower priority.
6104         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
6105         the internal audio cd URIs from "cdda://device:track" to
6106         "cdda://track#device" as it makes processing much easier.
6108         * shell/rb-shell-player.c: (rb_shell_player_open_location):
6109         * player/rb-player-gst.c: don't have the shell close the player
6110         between songs, as doing that should be backend-specific. Make the
6111         gstreamer backend close before starting a new track, unless the old
6112         and new ones are both tracks on the same audio cd. Just seek in that
6113         case.
6115 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6117         * doc/reference/rhythmbox.types: Fix doc build a bit more.
6119 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6121         * configure.ac: Enable more warnings in my stupid setup too.
6122         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
6123         #332210.
6125 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6127         * sources/rb-missing-files-source.h,
6128         * sources/rb-missing-files-source.c,
6129         * sources/rb-import-errors-source.h,
6130         * sources/rb-import-errors-source.c:
6131         Add library meta-sources, showing missing files and import errors.
6132         Fixes #167763, #142322.
6134         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
6135         * sources/rb-sourcelist-model.h:
6136         * sources/rb-sourcelist.c: (rb_sourcelist_append),
6137         (match_source_to_iter), (rb_sourcelist_source_to_iter),
6138         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
6139         (visibility_notify_cb):
6140         Store source visibility in the sourcelist model, so we can determine
6141         child source counts correctly and get the sourcelist expander column
6142         right.
6143         
6144         * widgets/rb-entry-view.h:
6145         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
6146         (rb_entry_view_append_column), (set_column_visibility):
6147         Allow the creator of the entry view to specify which columns are
6148         always visible.
6150         * sources/rb-source.h:
6151         * sources/rb-source.c: (_autohide_update_visibility),
6152         (_rb_autohide_source_row_deleted_cb),
6153         (_rb_autohide_source_row_inserted_cb),
6154         (_rb_source_hide_when_empty):
6155         Allow sources to automatically hide themselves when empty.
6156         
6157         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
6158         * sources/rb-library-source.c: (rb_library_source_constructor):
6159         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
6160         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
6161         Explicitly specify which columns are always visible.
6162         
6163         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
6164         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
6165         Remove load error signal handling and load failure dialog.
6166         Create missing files and import errors sources for the library.
6168         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
6169         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
6170         Create DB entries for import errors rather than emitting the 'load
6171         error' signal; mark loaded entries visible.
6172         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
6173         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
6174         (rhythmdb_prop_get_type): Store string form of last seen time for
6175         hidden entries, since it's used in the missing files source.
6176         (rhythmdb_entry_import_error_get_type): 
6177         Add entry type for import errors.
6178         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
6179         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
6180         (rhythmdb_entry_move_to_trash_set_error),
6181         (rhythmdb_entry_move_to_trash):  
6182         Correct spelling, add missing rhythmdb_commit.
6183         * rhythmdb/rhythmdb.h:  
6184         Add import error entry type and last seen string property.
6185         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
6186         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
6187         (save_entry):  Ignore string form of 'last seen' property.
6189         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
6190         Don't try to play hidden entries or import error entries.
6192         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
6193         * sources/Makefile.am: Add meta-source files
6194         * widgets/Makefile.am: Remove load failure dialog files
6196 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6198         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
6199         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
6200         few bits and pieces.
6202 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6204         * metadata/test-metadata.c: (load_metadata_cb):
6205         Fix compile warning for ignoring return value from getcwd, #332064.
6207 2006-02-21  James Livingston  <jrl@ids.org.au>
6209         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
6210         (edit_auto_playlist_deleted_cb),
6211         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
6212         playlist editor non-modal. Fixes bug 320030.
6214 2006-02-21  James Livingston  <jrl@ids.org.au>
6216         * shell/rb-shell.c: (rb_shell_constructor):
6217         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
6218         (rb_header_set_show_artist_album):
6219         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
6220         (rb_song_display_box_sync): make the queue sidebar and song display
6221         not get affected by gtk_widget_show_all. Fixes bug 332001.
6223 2006-02-21  James Livingston  <jrl@ids.org.au>
6225         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6227         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
6228         feeds which use timezone names instead of offsets. Doesn't actually
6229         parse the timezone name since they are not standardised. Fixes bug
6230         331691.
6232 2006-02-21  James Livingston  <jrl@ids.org.au>
6234         * help/C/figures/rb-notification-area.png:
6235         * help/C/figures/rb-sidebar.png:
6236         * help/C/quick-reference.xml: remove obsolete files from CVS.
6238         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
6239         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
6240         (rhythmdb_query_free), (rhythmdb_query_serialize),
6241         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
6242         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
6244         * widgets/rb-query-creator-properties.c: add prefix and suffix
6245         (escapedStringCriteriaGetWidgetData): use better escaping, so it
6246         doesn't escape the ':' separator in uris.
6248 2006-02-21  James Livingston  <jrl@ids.org.au>
6250         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
6251         on startup.
6253 2006-02-21  James Livingston  <jrl@ids.org.au>
6255         * NEWS: update with recent changes
6257 2006-02-21  James Livingston  <jrl@ids.org.au>
6259         * shell/rb-shell.c: (rb_shell_constructor),
6260         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
6261         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
6262         (rb_druid_browse_clicked_cb), (do_response):
6263         * widgets/rb-druid.h: Make running the druid not block RBShell
6264         starting up. This is required so that bonobo registration doesn't time
6265         out. Fixed bug 318766.
6267 2006-02-21  James Livingston  <jrl@ids.org.au>
6269         * rhythmdb/rhythmdb-property-model.c:
6270         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
6271         hash table after using it, not before. Fixed bug 331922.
6273 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6275         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
6276         (rb_shell_view_queue_as_sidebar_changed_cb):
6277         When playing from the queue, only attempt to highlight the queue
6278         source in the source list if it's actually visible there.  Otherwise,
6279         leave the preempted source highlighted.  Mostly fixes #330819.
6281 2006-02-20  James Livingston  <jrl@ids.org.au>
6283         * rhythmdb/rhythmdb-property-model.c:
6284         (rhythmdb_property_model_row_inserted_cb),
6285         (rhythmdb_property_model_prop_changed_cb),
6286         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
6287         store the roperty value in the entry-mapping table, so that receiving
6288         the remove signal from a query model before we get notified of a
6289         change doesn't cause a crash. Fixes bug 331770.
6291 2006-02-20  James Livingston  <jrl@ids.org.au>
6293         * data/ui/rhythmbox-ui.xml:
6294         * sources/rb-play-queue-source.c:
6295         (rb_play_queue_source_class_init),
6296         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
6297         playlist things in the queue popup source. From 330490.
6299         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
6300         previous commit
6302 2006-02-20  James Livingston  <jrl@ids.org.au>
6304         * widgets/rb-song-info.c: (rb_song_info_response_cb),
6305         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
6306         attempt to sync data for non-editable entries when using
6307         next/previous. Don't write our Year if it wasn't changed. Fixes bug
6308         331762.
6310 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
6312         * .cvsignore:
6313         * Makefile.am:
6314         * autogen.sh:
6315         * configure.ac:
6316         * help/.cvsignore:
6317         * help/Makefile.am: ported to gnome-doc-utils
6318         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
6319         * help/ChangeLog: added, for translators
6320         * help/C/rhytmbox-C.omf: removed, no longer used
6321         Know issue: figures are installed, but some are not showed; manual
6322         description added, but not showed in Yelp while browsing. I'll
6323         investigate, maybe are needed some little changes to
6324         help/C/rhythmbox.xml.
6326 2006-02-20  James Livingston  <jrl@ids.org.au>
6328         * data/ui/rhythmbox-ui.xml:
6329         * help/C/figures/rb-adv.png:
6330         * help/C/figures/rb-asst-finish.png:
6331         * help/C/figures/rb-asst-library.png:
6332         * help/C/figures/rb-asst-start.png:
6333         * help/C/figures/rb-basic.png:
6334         * help/C/figures/rb-browser.png:
6335         * help/C/figures/rb-context-menu.png:
6336         * help/C/figures/rb-empty.png:
6337         * help/C/figures/rb-full-play.png:
6338         * help/C/figures/rb-group-auto.png:
6339         * help/C/figures/rb-group-create.png:
6340         * help/C/figures/rb-group.png:
6341         * help/C/figures/rb-imported.png:
6342         * help/C/figures/rb-iradio-add.png:
6343         * help/C/figures/rb-iradio.png:
6344         * help/C/figures/rb-nextprev.png:
6345         * help/C/figures/rb-nobrowse-play.png:
6346         * help/C/figures/rb-notification-area-menu.png:
6347         * help/C/figures/rb-player.png:
6348         * help/C/figures/rb-prefs-general.png:
6349         * help/C/figures/rb-prefs-ipod.png:
6350         * help/C/figures/rb-prefs-library.png:
6351         * help/C/figures/rb-prefs.png:
6352         * help/C/figures/rb-repeat.png:
6353         * help/C/figures/rb-search.png:
6354         * help/C/figures/rb-shuffle.png:
6355         * help/C/figures/rb-stats.png:
6356         * help/C/figures/rb-toolbar-editor.png:
6357         * help/C/figures/rb-volume-mute.png:
6358         * help/C/figures/rhythmbox-group.png:
6359         * help/C/figures/rhythmbox-tray-icon.png:
6360         * help/C/user-guide.xml: remove old stuff from cvs
6362 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6364         * metadata/rb-metadata-dbus-client.c: 
6365         * metadata/rb-metadata-dbus-service.c:
6366         * metadata/rb-metadata-dbus.c:
6367         * metadata/rb-metadata-dbus.h:
6368         New files, adding an external service for reading and writing
6369         metadata, and an implementation of the RBMetaData interface that uses
6370         dbus to communicate with it.
6371         
6372         * metadata/rb-metadata.h,
6373         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
6374         (rb_metadata_get_field_name): Put metadata details in a static array
6375         instead of using a hash table, and add a field for language code (not
6376         used for anything)
6377         * metadata/rb-metadata-gst.c: Updates for changes in
6378         rb-metadata-common.c, fix signal handler closure leak for the typefind
6379         element's have-type signal, and add XML to the list of types we ignore.
6380         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
6381         Update for changes to rb_metadata_get_field_type
6382         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
6383         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
6384         here and there.
6385         
6386         * configure.ac: Add --enable-metadata-helper option (not enabled by
6387         default) to use the external metadata service
6388         * metadata/Makefile.am: Add new files
6389         * metadata/test-metadata.c:  Test program for the metadata service
6391         Fixes #329597. 
6393 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6395         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
6396         * sources/rb-podcast-source.c: (impl_get_ui_actions),
6397         (rb_podcast_source_cmd_new_podcast):
6398         Move 'new podcast' action to the podcast source, and add it to the
6399         toolbar.  Fixes #331562.
6401 2006-02-19  James Livingston  <jrl@ids.org.au>
6403         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
6404         menus, and away from move-to-trash. Fixes bug 331013.
6406 2006-02-19  James Livingston  <jrl@ids.org.au>
6408         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
6409         when deleting last entry. Fixes bug 331712.
6411 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6413         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
6414         (rb_entry_view_button_press_cb):
6415         * widgets/rb-entry-view.h: Emit show-popup when right clicked
6416         anywhere, and include a flag indicating whether the click was over an
6417         entry or not.
6418         
6419         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
6420         (rb_playlist_source_songs_show_popup_cb):
6421         * sources/rb-playlist-source.h:
6422         Add the 'over entry' flag to the class show popup method, and in the
6423         default handler, ignore right clicks when not over an entry.
6424         
6425         * sources/rb-iradio-source.c:
6426         (rb_iradio_source_songs_show_popup_cb):
6427         * sources/rb-library-source.c:
6428         (rb_library_source_songs_show_popup_cb):
6429         * sources/rb-podcast-source.c:
6430         (rb_podcast_source_songs_show_popup_cb):
6431         Show the source list popup menu when right clicked while not over an
6432         entry.
6434         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
6435         For the queue sidebar, always display the popup so the 'clear queue'
6436         action is available regardless of where you click.  For the queue
6437         source, only display the popup when right clicked over an entry.
6438         Fixes #331392.
6440 2006-02-19  James Livingston  <jrl@ids.org.au>
6442         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
6443         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
6444         entry view, when we're not even using it
6446         * rhythmdb/rhythmdb-property-model.c:
6447         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
6448         function, rather than a copy of the code.
6450         * shell/rb-playlist-manager.c:
6451         (rb_playlist_manager_playlist_row_inserted_cb),
6452         (rb_playlist_manager_set_source_internal),
6453         (rb_playlist_manager_playlist_entries_changed): use the query-model
6454         directly, rather than the source's entry view.
6456         * shell/rb-source-header.c: don't use the entry view, just select the
6457         source widget.
6459 2006-02-18  James Livingston  <jrl@ids.org.au>
6461         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
6463         * help/C/figures/rb-iradio-main.png:
6464         * help/C/figures/rb-notification-area-menu.png:
6465         * help/C/figures/rb-notification-window.png:
6466         * help/C/figures/rb-notification-zone.png:
6467         * help/C/figures/rb-podcast-main.png:
6468         * help/C/figures/rb-statusbar.png:
6469         * help/C/figures/rb-toolbar-prevplaynext.png:
6470         * help/C/figures/rb-toolbar-repeat.png:
6471         * help/C/figures/rb-toolbar-shuffle.png:
6472         * help/C/figures/rb-toolbar.png:
6473         * help/C/figures/rb-volume-changer.png:
6474         * help/C/figures/rb-window-small.png:
6475         * help/C/figures/rb-window.png:
6476         * help/C/rhythmbox.xml: Update user guide with some of the changes
6477         that have occurred after 0.8.8. From bug 314001.
6479 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6481         * rhythmdb/rhythmdb-query-results.h,
6482           rhythmdb/rhythmdb-query-results.c:
6483         New interface for objects that accept query results from RhythmDB.
6485         * rhythmdb/rhythmdb-query-model.c:
6486         (rhythmdb_query_model_query_results_init),
6487         (rhythmdb_query_model_set_query),
6488         (rhythmdb_query_model_add_results),
6489         (rhythmdb_query_model_query_complete):
6490         * rhythmdb/rhythmdb-query-model.h:
6491         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
6493         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
6494         (rhythmdb_tree_do_full_query):
6495         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
6496         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
6497         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
6498         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
6499         * rhythmdb/rhythmdb.h:
6500         Pass query results through the RhythmDBQueryResults interface, rather
6501         than directly to a RhythmDBQueryModel.
6503         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
6504         (rb_podcast_manager_db_entry_deleted_cb):
6505         * sources/rb-auto-playlist-source.c:
6506         (rb_auto_playlist_source_do_query),
6507         (rb_auto_playlist_source_set_query):
6508         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
6509         * sources/rb-library-source.c: (rb_library_source_constructor),
6510         (rb_library_source_do_query):
6511         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
6512         (rb_podcast_source_do_query):
6513         * rhythmdb/rhythmdb-property-model.c:
6514         (rhythmdb_property_model_drag_data_get):
6515         Cast the query model to RhythmDBQueryResults when passing to one of
6516         the RhythmDB query methods.
6518         * rhythmdb/Makefile.am: Add new files.
6520 2006-02-18  James Livingston  <jrl@ids.org.au>
6522         * data/ui/rhythmbox-ui.xml:
6523         * shell/rb-playlist-manager.c:
6524         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
6525         "queue playlist" item to source context menu. Fixes bug 330490.
6527 2006-02-18  James Livingston  <jrl@ids.org.au>
6529         * data/glade/general-prefs.glade:
6530         * shell/rb-shell-preferences.c:
6531         (rb_shell_preferences_column_check_changed_cb),
6532         (rb_shell_preferences_sync):
6533         * sources/rb-library-source.c: (rb_library_source_constructor):
6534         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
6535         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
6536         (rb_entry_view_append_column): Add a "quality" colume which indicates
6537         the bitrate of media. Part of bug 167659.
6539 2006-02-18  James Livingston  <jrl@ids.org.au>
6541         * shell/rb-play-order.c: (do_next_idle_cb),
6542         (default_playing_entry_removed): move to next track when playing entry
6543         is deleted. Fixes bug 131150.
6545         * shell/rb-shell-player.h: remove ancient stuff
6547 2006-02-17  William Jon McCann  <mccann@jhu.edu>
6549         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
6550         (rb_shell_clipboard_set_property): 
6551         * shell/rb-shell.c (rb_shell_sync_party_mode):
6552         Trigger a resync of the clipboard properties when changing party mode.
6554 2006-02-17  William Jon McCann  <mccann@jhu.edu>
6556         * sources/rb-static-playlist-source.c: Fix includes.
6558         * sources/rb-source.c (rb_source_can_rename) 
6559         (rb_source_can_delete, rb_source_can_move_to_trash):
6560         Return FALSE if in party mode.
6562         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
6563         Replace fullscreen with party mode.
6564         (rb_shell_window_delete_cb): Don't quit if in party mode.
6565         (rb_shell_view_party_mode_changed_cb): Setup party mode.
6566         (window_state_event_cb): Try to deiconify shell when iconified
6567         in party mode.
6568         (rb_shell_sync_party_mode): Sync party mode properties.
6569         Currently, that means [de]sensitizing close, quit, and small-display,
6570         going into fullscreen mode with window stuck and kept above, and
6571         toggling queue-only for the shell player.
6572         (rb_shell_sync_smalldisplay): Sensitive party mode.
6573         (rb_shell_get_party_mode): Get party mode setting.
6575         * shell/rb-shell-player.c (rb_shell_player_class_init) 
6576         (rb_shell_player_set_property, rb_shell_player_get_property):
6577         Add queue-only property.
6578         (rb_shell_player_entry_activated_cb): If in party mode
6579         only queue the entry on activation.
6581         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
6582         Break out from set_properties.  Desensitize some actions when
6583         in party mode.
6584         (rb_playlist_manager_set_property): Break out set_source_internal.
6586         * data/rhythmbox.schemas: Remove fullscreen mode.
6588         * data/ui/rhythmbox-ui.xml: Replace fullscreen
6589         action with party mode.
6591         Partial fix for #323933
6593 2006-02-17  James Livingston  <jrl@ids.org.au>
6595         * configure.ac:
6596         * shell/rb-removable-media-manager.c:
6597         (get_nautilus_burn_drive_for_path),
6598         (rb_removable_media_manager_playing_uri_changed_cb): only use
6599         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
6600         over the list when it doesn't.
6602 2006-02-17  James Livingston  <jrl@ids.org.au>
6604         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
6605         (rb_iradio_source_first_time_changed): Only do the import on the
6606         first change from FALSE to TRUE.
6608         * sources/rb-library-source.c:
6609         (rb_library_source_preferences_sync),
6610         (rb_library_source_library_location_cb): set the first-run done flag
6611         if the user presses close and then sets their watches library
6612         location. Fixes bug 325997.
6614 2006-02-17  James Livingston  <jrl@ids.org.au>
6616         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
6617         removable media manager gobject properties
6619         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
6620         (split_drive_from_cdda_uri),
6621         (rb_removable_media_manager_playing_uri_changed_cb),
6622         (rb_removable_media_manager_load_media): stop polling a cd drive
6623         when we are playing from it. Part of bug 330716.
6625 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6627         * rhythmdb/rhythmdb-query-model.c:
6628         (rhythmdb_query_model_set_property),
6629         (rhythmdb_query_model_finalize),
6630         (rhythmdb_query_model_base_entry_removed):
6631         Propagate entry removal from base models out to attached property
6632         models.  Fixes the rest of #331165.
6634 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6636         * rhythmdb/rhythmdb-property-model.c:
6637         (rhythmdb_property_model_row_inserted_cb),
6638         (rhythmdb_property_model_prop_changed_cb),
6639         (rhythmdb_property_model_insert):
6640         Don't store NULL as a hash table value if we want to use
6641         g_hash_table_lookup to check if a key exists, and get the checks for
6642         how and whether to handle entry changes the right way around.
6643         Fixes #331211 and half of #331165.
6645 2006-02-16  James Livingston  <jrl@ids.org.au>
6647         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
6648         the audio cd's TOC in a separate thread, so it doesn't block the UI.
6649         Fixes bug 329942.
6651 2006-02-16  James Livingston  <jrl@ids.org.au>
6653         * widgets/rb-library-browser.c: (reset_view_cb): make View All
6654         actually reset the browsers.
6656 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6658         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
6659         Escape the strings we pass into libnotify so we don't get blank
6660         notifications when the song name contains '&' etc.  Fixes #330784.
6662 2006-02-16  James Livingston  <jrl@ids.org.au>
6664         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
6665         enable "View All" when there is only a search box and no browser.
6666         Fixes bug 331395.
6668 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6670         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
6671         popup menu, which I forgot to commit with the patch for bug #330014.
6673 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6675         * shell/rb-shell-player.c: (open_location_thread):
6676         Sync button and entry view state once we've started the player, so the
6677         entry view gets into the playing state for iradio.
6679 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6681         * shell/rb-shell-player.c: (open_location_thread):
6682         Take GDK lock before doing anything UI-related.
6684 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6686         * shell/rb-shell.c: Move 'new iradio station' action to
6687         iradio source.
6689         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
6690         (rb_iradio_source_init), (rb_iradio_source_finalize),
6691         (rb_iradio_source_constructor):
6692         Remove some unused stuff.
6694         (guess_uri_scheme), (rb_iradio_source_add_station),
6695         (rb_iradio_source_add_from_playlist),
6696         (impl_get_ui_actions), (new_station_location_added),
6697         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
6698         action, include it in the toolbar, and make sure the URI we add has a
6699         scheme.  Fixes #327059, more or less.
6701 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6703         * sources/rb-play-queue-source.c:
6704         (rb_play_queue_source_class_init),
6705         (rb_play_queue_source_constructor),
6706         (rb_play_queue_source_update_count),
6707         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
6708         Add a toolbar button to clear the play queue, and make it sensitive
6709         only when there are entries in the queue.  Fixes #330014.
6711         * sources/rb-source.c: (_rb_source_register_action_group):
6712         * sources/rb-source.h:  Add helper function to register an
6713         action group for a source.
6715         * sources/rb-library-source.c: (rb_library_source_constructor):
6716         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
6717         (register_action_group):  Use _rb_source_register_action_group.
6719 2006-02-15  James Livingston  <jrl@ids.org.au>
6721         * widgets/rb-song-info.c: (rb_song_info_add_completion),
6722         (rb_song_info_constructor), (rb_song_info_set_property): make
6723         tag-editing completion work for albums too.
6725 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6727         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
6728         Check the 'limit' checkbox for time-limited playlists.
6730 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
6732         * widgets/rb-song-info.c: Prove text-completion when editing title,
6733         artist or album
6735 2006-02-14  James Livingston  <jrl@ids.org.au>
6737         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
6738         tray icon popup menu. Fixes bug 331026.
6740 2006-02-14  James Livingston  <jrl@ids.org.au>
6742         * data/iradio-initial.pls: update the Virgin Radio stations to use the
6743         Ogg Vorbis streams, instead of the MP3 ones.
6745 2006-02-14  James Livingston  <jrl@ids.org.au>
6747         * rhythmdb/rhythmdb-property-model.c:
6748         (rhythmdb_property_model_class_init),
6749         (rhythmdb_property_model_drag_data_get):
6750         * rhythmdb/rhythmdb-query-model.c:
6751         (rhythmdb_query_model_title_sort_func):
6752         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
6753         LOCATION as the key. Fixes bug 330601.
6755 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6757         * sources/rb-playlist-source.c: (playlist_iter_func):
6758         Make it compile with older versions of totem-plparser too.      
6760 2006-02-13  James Livingston  <jrl@ids.org.au>
6762         * rhythmdb/rhythmdb.h:
6763         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
6764         structure private, since things should use the accessor functions
6765         rather than manipulating it directly - Only RhythmDB and the
6766         implementation classes should access it directly. Part of the RhythmDB
6767         cleanup of bug 330226.
6769         * iradio/rb-station-properties-dialog.c:
6770         (rb_station_properties_dialog_update_title),
6771         (rb_station_properties_dialog_update_title_entry),
6772         (rb_station_properties_dialog_update_genre),
6773         (rb_station_properties_dialog_update_location),
6774         (rb_station_properties_dialog_update_play_count),
6775         (rb_station_properties_dialog_update_bitrate),
6776         (rb_station_properties_dialog_update_last_played),
6777         (rb_station_properties_dialog_update_rating),
6778         (rb_station_properties_dialog_update_playback_error),
6779         (rb_station_properties_dialog_sync_entries):
6780         * podcast/rb-feed-podcast-properties-dialog.c:
6781         (rb_feed_podcast_properties_dialog_update_title),
6782         (rb_feed_podcast_properties_dialog_update_title_label),
6783         (rb_feed_podcast_properties_dialog_update_author),
6784         (rb_feed_podcast_properties_dialog_update_location),
6785         (rb_feed_podcast_properties_dialog_update_copyright),
6786         (rb_feed_podcast_properties_dialog_update_language),
6787         (rb_feed_podcast_properties_dialog_update_summary):
6788         * podcast/rb-podcast-manager.c:
6789         (rb_podcast_manager_entry_downloaded),
6790         (rb_podcast_manager_db_entry_added_cb),
6791         (download_progress_update_cb),
6792         (rb_podcast_manager_db_entry_deleted_cb):
6793         * podcast/rb-podcast-properties-dialog.c:
6794         (rb_podcast_properties_dialog_update_title),
6795         (rb_podcast_properties_dialog_update_title_label),
6796         (rb_podcast_properties_dialog_update_feed),
6797         (rb_podcast_properties_dialog_update_location),
6798         (rb_podcast_properties_dialog_update_play_count),
6799         (rb_podcast_properties_dialog_update_bitrate),
6800         (rb_podcast_properties_dialog_update_last_played),
6801         (rb_podcast_properties_dialog_update_rating),
6802         (rb_podcast_properties_dialog_update_date),
6803         (rb_podcast_properties_dialog_update_description):
6804         * rhythmdb/rhythmdb-query-model.c:
6805         (rhythmdb_query_model_entry_changed_cb),
6806         (rhythmdb_query_model_remove_from_main_list),
6807         (rhythmdb_query_model_update_limited_entries),
6808         (rhythmdb_query_model_drag_data_get),
6809         (rhythmdb_query_model_album_sort_func):
6810         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
6811         (save_entry):
6812         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
6813         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
6814         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
6815         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
6816         (rhythmdb_entry_get_double):
6817         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
6818         * shell/rb-play-order-random-by-age-and-rating.c:
6819         (rb_random_by_age_and_rating_get_entry_weight):
6820         * shell/rb-play-order-random-by-age.c:
6821         (rb_random_by_age_get_entry_weight):
6822         * shell/rb-play-order-random-by-rating.c:
6823         (rb_random_by_rating_get_entry_weight):
6824         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
6825         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
6826         (rb_shell_player_set_playing_entry),
6827         (rb_shell_player_sync_replaygain),
6828         (rb_shell_player_sync_with_source),
6829         (rb_shell_player_get_playing_song_duration), (info_available_cb):
6830         * sources/rb-playlist-source.c: (playlist_iter_func),
6831         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
6832         (rb_playlist_source_entry_added_cb):
6833         * sources/rb-podcast-source.c:
6834         (rb_podcast_source_post_status_cell_data_func):
6835         * sources/rb-source.c: (rb_source_update_play_statistics):
6836         * sources/rb-sourcelist-model.c:
6837         (rb_sourcelist_model_drag_data_get):
6838         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
6839         (rb_static_playlist_source_add_entry),
6840         (rb_static_playlist_source_remove_entry):
6841         * widgets/rb-entry-view.c: (type_ahead_search_func),
6842         (rb_entry_view_playing_cell_data_func),
6843         (rb_entry_view_rating_cell_data_func),
6844         (rb_entry_view_pixbuf_clicked_cb):
6845         * widgets/rb-header.c: (rb_header_get_duration):
6846         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
6847         (rb_song_info_populate_dialog),
6848         (rb_song_info_update_playback_error),
6849         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
6850         (rb_song_info_update_location), (rb_song_info_update_play_count),
6851         (rb_song_info_update_last_played), (rb_song_info_update_rating),
6852         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
6853         (rb_song_info_sync_entry_single): fix the huge number of times that
6854         the internals got accessed directly.
6856 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6858         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
6859         trash' are grouped together.
6860         * shell/main.c: (main): Pass no-registration flag in to RBShell
6861         constructor, rather than mysteriously always passing TRUE.
6862         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
6863         Set dirty flag when entries are removed from the model, so the play
6864         queue is marked dirty appropriately.
6865         * AUTHORS: update my email address
6867 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6869         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
6871         * widgets/rb-druid.c: (path_dialog_response_cb):
6872         If the URI is local, don't display the 'file://' prefix.  
6873         Fixes #330919.
6875 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6877         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
6878         Attach the notification to the tray icon widget, so libnotify
6879         positions it less badly.  Fixes #330876.
6881 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6883         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
6884         Reverse the selection list before returning it, so we get it in the
6885         right order.  Fixes #330283 and some other weirdness.
6887 2006-02-11  James Livingston  <jrl@ids.org.au>
6889         * shell/rb-shell.c: (rb_shell_constructor),
6890         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
6891         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
6892         make small-mode and fullscreen mutually exclusive, since they don't
6893         work together
6895         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
6896         Mode.
6898 2006-02-10  James Livingston  <jrl@ids.org.au>
6900         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
6901         since it can cause it to be slower than real-time. Should fix bug
6902         322270.
6904 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6906         * rhythmdb/rhythmdb-query-model.c:
6907         (rhythmdb_query_model_set_property):
6908         Think just a little bit harder about that last commit.
6910 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6912         * rhythmdb/rhythmdb-query-model.c:
6913         (rhythmdb_query_model_set_property):
6914         Get the check for hidden entries the right way around.
6915         Fixes #330527, #330514.
6917         (rhythmdb_query_model_set_sort_order):
6918         Ignore no-op sort order changes, so we don't get critical
6919         messages when selecting 'all' in auto playlist browsers.
6921 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6923         Patch by: Christophe Fergeau  <teuf@gnome.org>
6925         * sources/rb-removable-media-source.c:
6926         (rb_removable_media_source_init),
6927         (rb_removable_media_source_constructor):
6928         Move icon setup code to the constructor, as the volume property
6929         haven't been set yet when _init is called.
6931 2006-02-09  William Jon McCann  <mccann@jhu.edu>
6933         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
6934         Make the source pixbuf a dynamic property.
6936         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
6937         (rb_source_set_pixbuf, rb_source_set_property) 
6938         (rb_source_get_property): Add icon property.
6940         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
6941         (rb_auto_playlist_source_init):
6942         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
6943         (rb_static_playlist_source_init):
6944         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
6945         (rb_removable_media_source_init): 
6946         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
6947         (rb_podcast_source_init): 
6948         * sources/rb-library-source.c (rb_library_source_class_init) 
6949         (rb_library_source_set_property, rb_library_source_get_property): 
6950         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
6951         (rb_iradio_source_init): Remove impl_get_pixbuf and
6952         set icon property on source base class.
6954         * sources/rb-daap-source.c (rb_daap_get_icon): Get
6955         a different icon for when the share is password protected
6956         and locked.
6957         (rb_daap_source_new): Set icon property.
6958         (composite_icons): Composite an emblem on a pixbuf.
6959         (create_pixbufs): Load global pixbufs.
6960         (destroy_pixbufs): unref global pixbufs.
6961         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
6962         (connection_auth_cb, connection_connected_cb) 
6963         (connection_disconnected_cb): Update icon when connection
6964         status changes.
6965         (rb_daap_source_activate): Connect signals.
6967         * daapsharing/rb-daap-share.c (name_collision_cb): Run
6968         dialog with parent.
6970         * daapsharing/rb-daap-marshal.list: Add new signal.
6972         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
6973         (rb_daap_collision_dialog_new_run): Set parent of dialog.
6975         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
6976         Add authenticate, connected, and disconnected signals.
6977         (connection_get_password): emit authenticate signal instead
6978         of running dialog directly.
6979         (connection_connected, connection_disconnected): Emit signals.
6980         (handle_login): Emit connected signal.
6981         (handle_logout): Emit disconnected signal.
6982         (rb_daap_connection_do_something): Fix leak.
6984         Fixes #330291
6986 2006-02-09  James Livingston  <jrl@ids.org.au>
6988         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
6989         entries from the base model if we don't have show-hidden set. Fixes
6990         bug 330514.
6992 2006-02-08  William Jon McCann  <mccann@jhu.edu>
6994         * daapsharing/rb-daap-share.c (message_get_session_id):
6995         Ugh. Use strtoul instead of atoi.
6996         (session_id_validate): Add debug statements.
6998 2006-02-08  William Jon McCann  <mccann@jhu.edu>
7000         * daapsharing/rb-daap-connection.c (http_response_handler):
7001         Report the actual uri from the message in debug statements.
7003 2006-02-08  William Jon McCann  <mccann@jhu.edu>
7005         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
7006         Add context argument.
7007         (message_get_session_id): New function to parse session id from
7008         the message.
7009         (message_get_revision_number): Break out function to parse
7010         revision number from the message.
7011         (session_id_validate): New function to validate given session id
7012         is valid for given context (ie. client address).
7013         (session_id_generate): Generate a random session id.
7014         (session_id_create): Create a unique session id and store it.
7015         (session_id_remove): Remove a session id from the store.
7016         (login_cb): Create a session id instead of using a constant one.
7017         (logout_cb): Validate session id.
7018         (update_cb): Use new message_get_revision_number function.
7019         (databases_cb): Validate session id.
7020         (server_cb): Add server context to argument list for callbacks.  It
7021         is needed to look up the remote host.
7022         (db_entry_changed_cb): Use braces.
7023         (soup_auth_callback): Remove FIXME.
7024         (rb_daap_share_server_start): Create session id store.
7025         (rb_daap_share_server_stop): Destroy session id store.
7027         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
7028         Don't base64-encode password here since it needs to be
7029         combined with the username first.
7031         * daapsharing/rb-daap-connection.c (build_message):
7032         Add username to Authorization token.
7033         (handle_login, handle_song_listing) 
7034         (rb_daap_connection_do_something): Session id
7035         must be an unsigned int.
7037         Fixes #329814
7039 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7041         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
7042         Don't check if we've got a playing entry, ask the player object (duh).
7043         Might actually fix #329993.     
7045 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7047         * sources/rb-static-playlist-source.c:
7048         (rb_static_playlist_source_add_list_uri):
7049         Canonicalise URIs before trying to add them to the playlist, and 
7050         don't try to add files to the database for which there is 
7051         already an entry.
7053 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7055         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
7056         Don't ask the entry view if we're playing, just check if we've got a
7057         playing entry.  Fixes #329993.
7059 2006-02-08  James Livingston  <jrl@ids.org.au>
7061         * rhythmdb/rhythmdb-query-model.c:
7062         (rhythmdb_query_model_set_property),
7063         (rhythmdb_query_model_finalize),
7064         (rhythmdb_query_model_base_complete): remove
7065         rhythmdb_query_model_base_entry_prop_changed, so that two signals
7066         don't get emitted for entry changes. Fixes bug 330301.
7068         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
7069         (rb_library_browser_init), (rb_library_browser_constructor),
7070         (rb_library_browser_new): do stuff in the constructor, not the init
7071         function, so that the db property gets set on RBPropertyViews
7072         correctly. Fixes a crash when dragging properties to a playlist.
7074 2006-02-07  William Jon McCann  <mccann@jhu.edu>
7076         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
7077         Actually stop soup server.  Fixes #329816.
7079 2006-02-07  James Livingston  <jrl@ids.org.au>
7081         * lib/rb-util.h:
7082         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
7083         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
7084         (collate_values_cb), (rb_collate_hash_table_keys),
7085         (rb_collate_hash_table_values): add functions to compare, copy and
7086         free string-lists. add functions to collate the keys or values of a
7087         hash table into a list.
7089         * rhythmdb/rhythmdb-property-model.c:
7090         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
7091         (_remove_entry_cb), (_add_entry_cb),
7092         (rhythmdb_property_model_set_property),
7093         (rhythmdb_property_model_get_property),
7094         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
7095         (rhythmdb_property_model_row_inserted_cb),
7096         (rhythmdb_property_model_prop_changed_cb),
7097         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
7098         that are hidden, storing those that we have counted in a hash-table.
7100         * shell/Makefile.am: fix build order issue
7102         * shell/rb-shell-player.c: (rb_shell_player_set_property):
7103         * sources/rb-source.h:
7104         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
7105         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
7106         * sources/rb-podcast-source.c: (feed_select_change_cb): add
7107         browser-toggled method, rename _get_exta_views to _get_property_views,
7108         since several things depend on returning only that.
7110         * sources/rb-source.c: (rb_source_class_init),
7111         (rb_source_browser_toggled), (default_get_property_views),
7112         (rb_source_get_property_views), (rb_source_row_deleted_cb),
7113         (rb_source_gather_hash_keys),
7114         (rb_source_gather_selected_properties): above changes, and move some
7115         utility functions up from RBLibraryView
7117         * widgets/rb-property-view.c:
7118         (rb_property_view_selection_changed_cb): fix leak.
7120         * rhythmdb/rhythmdb-query-model.c:
7121         (rhythmdb_query_model_set_property),
7122         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
7123         (rhythmdb_query_model_set_sort_order),
7124         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
7125         query model being resorted.
7127         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
7128         NULL query.
7130         * rhythmdb/rhythmdb.h:
7131         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
7132         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
7133         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
7134         two queries. Add a function to append "property={X,Y,Z,...}" to a
7135         query.
7137         * sources/rb-library-source.c: (rb_library_source_class_init),
7138         (rb_library_source_finalize), (rb_library_source_constructor),
7139         (rb_library_source_cmd_choose_genre),
7140         (rb_library_source_cmd_choose_artist),
7141         (rb_library_source_cmd_choose_album), (impl_search),
7142         (impl_get_property_views), (impl_reset_filters),
7143         (rb_library_source_preferences_sync),
7144         (rb_library_source_browser_views_activated_cb),
7145         (rb_library_source_state_prefs_sync),
7146         (construct_query_from_selection), (rb_library_source_do_query),
7147         (rb_library_source_browser_changed_cb):
7148         * widgets/Makefile.am:
7149         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
7150         browser" widgets, which contains several property views, based on the
7151         code from RBLibrarySource. Make RBLibrarySource use it.
7153         * sources/rb-auto-playlist-source.c:
7154         (rb_auto_playlist_source_class_init),
7155         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
7156         (rb_auto_playlist_source_constructor), (impl_reset_filters),
7157         (impl_get_property_views), (impl_browser_toggled),
7158         (construct_query_from_selection),
7159         (rb_auto_playlist_source_do_query),
7160         (rb_auto_playlist_source_set_query),
7161         (rb_auto_playlist_source_browser_changed_cb): Use the new
7162         library-browser widget to add browsers to automatic playlists.
7164 2006-02-07  James Livingston  <jrl@ids.org.au>
7166         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
7167         properly.
7168         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
7169         type of the source is taken into account. Fixes bug 329621.
7171 2006-02-07  James Livingston  <jrl@ids.org.au>
7173         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
7174         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
7175         1.1, and perform URI canonicalistion when first upgrading. This should
7176         fix our remaining canonicalisation issues, such as bug 329988.
7178 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
7180         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
7181         Track the playing entry when the entry view isn't in the playing
7182         state, so we don't have to get the state changes exactly right.
7183         Fixes #330135.
7185 2006-02-06  James Livingston  <jrl@ids.org.au>
7187         * shell/rb-shell-player.c: (open_location_thread),
7188         (rb_shell_player_open_location): fix several iradio issues: having to
7189         press play after double-clicking on a station, not working correctly
7190         without a http:// prefix, and ignoring totem-plparser results other
7191         than success or error (e.g. IGNORE).
7193 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
7195         Addition of dbus methods for dealing with static playlists and the
7196         play queue.  Fixes #329958.
7198         * shell/Makefile.am:
7199         * shell/rb-playlist-manager.h:
7200         * shell/rb-playlist-manager.xml:
7201         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
7202         (rb_playlist_manager_get_playlists),
7203         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
7204         (rb_playlist_manager_create_static_playlist),
7205         (rb_playlist_manager_delete_playlist),
7206         (rb_playlist_manager_add_to_playlist),
7207         (rb_playlist_manager_remove_from_playlist),
7208         (rb_playlist_manager_export_playlist):
7209         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
7210         to create, delete, list, modify, export, and import  static playlists.
7211         
7212         * shell/main.c: (main): Register playlist manager object with dbus.
7214         * shell/rb-shell.h:
7215         * shell/rb-shell.xml:
7216         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
7217         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
7218         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
7219         object, and implement the addToQueue and removeFromQueue methods.
7220         
7221         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
7222         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
7223         formats.
7225 2006-02-05  James Livingston  <jrl@ids.org.au>
7227         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
7228         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
7229         (save_entry): allow storage of booleans in the on-disk db, and
7230         save/load the HIDDEN property.
7232         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
7233         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
7234         to the state it was when RB shutdown. This makes RB appear to start
7235         faster, as tracks can appear before the stat is done. Remote files
7236         still start hidden. From bug 325215.
7238 2006-02-05  James Livingston  <jrl@ids.org.au>
7240         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
7241         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
7242         really cares about the difference from "entry-added", and it isn't
7243         emitted by the tree backend anyway.
7245         * rhythmdb/rhythmdb-query-model.c:
7246         (rhythmdb_query_model_constructor):
7247         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
7248         remove the references to the entry-restored signal.
7250 2006-02-05  James Livingston  <jrl@ids.org.au>
7252         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
7253         issue.
7255 2006-02-05  James Livingston  <jrl@ids.org.au>
7257         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
7258         things are NULL before using g_object_unref. Fixes bug 327452.
7260         * player/rb-recorder-gst.c: (rb_recorder_construct):
7261         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
7262         rather than assertion.
7264         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
7265         emit a warning, rather than asserting if an unknown playlist type is
7266         encountered.
7268 2006-02-05  James Livingston  <jrl@ids.org.au>
7270         * widgets/Makefile.am:
7271         * widgets/rb-simple-view.c:
7272         * widgets/rb-simple-view.h: Move the two features that this class
7273         provides into RBPropertyView, and remove this class. Closes bug
7274         327500.
7276         * podcast/rb-feed-podcast-properties-dialog.c:
7277         * podcast/rb-feed-podcast-properties-dialog.h:
7278         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
7279         (rb_podcast_source_feeds_show_popup_cb):
7280         * sources/rb-podcast-source.h:
7281         * widgets/rb-property-view.c: (rb_property_view_class_init),
7282         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
7283         (rb_property_view_append_column_custom),
7284         (rb_property_view_button_press_cb):
7285         * widgets/rb-property-view.h: Updated for the above change.
7287 2006-02-04  James Livingston  <jrl@ids.org.au>
7289         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
7290         too close to Move to Trash and people aren't likely to use it often.
7292 2006-02-04  James Livingston  <jrl@ids.org.au>
7294         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
7296 2006-02-04  James Livingston  <jrl@ids.org.au>
7298         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
7299         passed a path instead of a URI.
7301         * sources/rb-generic-player-source.c: (default_get_mount_path):
7302         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
7303         the path. This fixes bug 329723.
7305 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
7307         * daapsharing/rb-daap-structure.c:
7308         (rb_daap_content_code_string_as_int32):
7309         Use network byte order.
7311 2006-02-03  William Jon McCann  <mccann@jhu.edu>
7313         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
7314         Use a hash for source lookup.
7315         (mdns_service_added, mdns_service_removed): Handle
7316         service-added and service-removed signals from RBDaapMdnsBrowser.
7317         (remove_source): GDestroyNotify function for when sources
7318         are removed from the hash.
7319         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
7320         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
7321         (rb_daap_sources_shutdown): Update.
7322         (source_host_find): GHRFunc for finding a source by ip.
7323         (rb_daap_source_find_for_uri): Use the hash source lookup.
7325         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
7326         Namespace keys.
7327         (password_check_button_toggled_cb): Handle password enabled.
7328         (share_name_entry_focus_out_event_cb): Namespace keys.
7329         Handle changes more robustly.
7330         (share_password_entry_focus_out_event_cb): Handle password entry.
7331         (add_daap_preferences): Connect to password signals.
7333         * lib/rb-preferences.h: Add DAAP keys.
7335         * data/glade/daap-prefs.glade: Add password UI.
7337         * data/rhythmbox.schemas: Add password keys.
7339         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
7340         assert with warning.
7342         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
7343         gconf keys to lib/rb-preferences.h.  Namespace
7344         the gconf keys.
7345         (create_share): Add password support.
7346         (enable_sharing_changed_cb): Namespaced keys.
7347         (require_password_changed_cb): Handle key change.
7348         (share_name_changed_cb): Namespaced keys.
7349         (share_password_changed_cb): Handle key change.
7350         (rb_daap_sharing_init): Namespaced keys.
7351         (rb_daap_sharing_shutdown): Ditto.
7353         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
7354         Add password property.
7355         (rb_daap_share_set_name): Break out prop set function.
7356         (published_cb): New RBDaapMdnsPublisher signal handler.
7357         (name_collision_cb): Ditto.
7358         (rb_daap_share_init): Create publisher object and
7359         connect to signals.
7360         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
7361         (rb_daap_share_set_property): Break out prop set functions.
7362         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
7363         Unref publisher.
7364         (rb_daap_share_new): Add password argument.  Start
7365         publishing and DAAP server.
7366         (message_set_from_rb_daap_structure): Change print to debug.
7367         (server_info_cb): Set auth method to publish.
7368         (logout_cb): Handle DAAP client logout.
7369         (update_cb): Remove C++ comments.
7370         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
7371         (server_cb): Add debug.
7372         (soup_auth_callback): Handle auth requests.
7373         (rb_daap_share_server_start): Split up functions for starting
7374         server and publishing.  Add auth handling to server.
7375         (rb_daap_share_server_stop): Split stop server and publish.
7376         No C++ comments.
7377         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
7378         Start and stop publishing.
7379         (rb_daap_share_restart): Restart server and publishing.
7380         (rb_daap_share_maybe_restart): Conditionally restart.
7382         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
7383         (rb_daap_collision_dialog_new_run): Don't use
7384         separators in dialogs.
7386         * daapsharing/rb-daap-connection.h: Add private
7387         data to class structure.
7389         * daapsharing/rb-daap-connection.c: Move
7390         some includes to top of file.  Make private
7391         data struct name consistent with others.
7392         (rb_daap_connection_class_init): Rename
7393         private.
7394         (rb_daap_connection_init): Get and store the pointer
7395         to the private data once instead of in every
7396         function.  Create a username value "Rhythmbox_VERSION".
7397         (connection_get_password): Don't get private.
7398         (build_message): Ditto.
7399         (http_response_handler): Don't init variables in
7400         declaration.  Add debug.  Spacing.
7401         (http_get, entry_set_string_prop, handle_server_info) 
7402         (handle_login, handle_update, handle_database_info) 
7403         (handle_song_listing, handle_playlists, handle_playlist_entries) 
7404         (rb_daap_connection_constructor, rb_daap_connection_logout) 
7405         (rb_daap_connection_state_done): Don't get private.
7406         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
7407         spacing.  Correctly base64 encode the Authentication token.
7408         Add username to auth token.
7409         (rb_daap_connection_get_playlists): Don't get private.
7410         (rb_daap_connection_dispose): Ditto.  Free username.
7411         (rb_daap_connection_set_property) 
7412         (rb_daap_connection_get_property): Don't get private.
7414         * daapsharing/Makefile.am: Conditionally
7415         compile MDNS backends.  Add marshall stuff.
7417         * daapsharing/.cvsignore: Update.
7419         * configure.ac: Add conditional to see which
7420         MDNS backend we should use.
7422         * daapsharing/rb-daap-mdns.[ch]: Removed files.
7424         * daapsharing/rb-daap-marshal.list:
7425         * daapsharing/rb-daap-mdns-browser-avahi.c:
7426         * daapsharing/rb-daap-mdns-browser-howl.c:
7427         * daapsharing/rb-daap-mdns-browser.h:
7428         * daapsharing/rb-daap-mdns-publisher-avahi.c:
7429         * daapsharing/rb-daap-mdns-publisher-howl.c:
7430         * daapsharing/rb-daap-mdns-publisher.h:
7431         Split rb-daap-mdns.c into two classes.  One for
7432         publishing and one for browsing.  Split out
7433         the avahi and howl backends into different files.
7435         Fixes #322966
7436         
7437 2006-02-04  James Livingston  <jrl@ids.org.au>
7439         patch by: Jan Schmidt <thaytan@mad.scientist.com>
7441         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
7442         crash if metadata reader gives us NULL for strings.
7444 2006-02-03  James Livingston  <jrl@ids.org.au>
7446         * shell/rb-shell-player.c: (open_location_thread),
7447         (rb_shell_player_open_location):
7448         retrieve iradio playlists files in a thread, so that with GStreamer
7449         0.10 the UI doesn't block while connecting to stations. The streamer
7450         connection is synchronous with 0.8, so that will still block (a bit).
7451         Fixed bug 128106.
7453         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
7454         because _open_entry does that automatically when it is ready to.
7456 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
7458         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
7459         (rb_podcast_source_post_status_cell_data_func):
7460         Leave the podcast status column blank for episodes that have not been
7461         downloaded.
7463 2006-02-03  James Livingston  <jrl@ids.org.au>
7465         Add support for source-specific toolbar items, and make the Burn
7466         Playlist item only available for playlists. Also add Update All
7467         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
7469         * data/ui/rhythmbox-ui.xml:
7470         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
7471         (impl_get_ui_actions): make the Burn CD toolbar item only for
7472         playlists
7474         * lib/rb-stock-icons.c: (rb_stock_icons_init):
7475         * lib/rb-stock-icons.h: load the Eject icon as stock.
7477         * shell/rb-removable-media-manager.c: use the eject icon for the eject
7478         action
7480         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
7481         (rb_shell_select_source):
7482         * sources/rb-source.c: (rb_source_class_init),
7483         (rb_source_disconnect), (default_get_ui_actions),
7484         (rb_source_get_ui_actions):
7485         * sources/rb-source.h: add support for source-specific toolbar items
7487         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
7488         Eject and Rip toolbar items
7490         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
7491         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
7492         item.
7494 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
7496         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
7497         * shell/main.c: (main):
7498         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
7499         Replace all g_critical calls with g_warning, since none of them are
7500         the sort of thing the process should die over.  Fixes #329398.
7502 2006-02-03  James Livingston  <jrl@ids.org.au>
7504         * configure.ac: mention gst-plugins-base in the error message for not
7505         finding GStreamer 0.10, since not having that will cause it to fail.
7507 2006-02-03  James Livingston  <jrl@ids.org.au>
7509         * configure.ac: fix typo that means you get the wrong error message if
7510         you explicity request a particular playback engine, and it can't be
7511         found.
7513 2006-02-03  James Livingston  <jrl@ids.org.au>
7515         * data/glade/library-prefs.glade: allow the watched library location
7516         to be a non-local place.
7518 ============ Version 0.9.3
7521 2006-02-02  James Livingston  <jrl@ids.org.au>
7523         * NEWS: update NEWS
7524         * configure.ac: bump version to 0.9.3
7526         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
7527         <caillon@redhat.com>, fixed bug 329517. 
7529 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
7531         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
7533         * widgets/rb-song-info.c: (rb_song_info_constructor):
7534         Make year and disc number fields non-editable if tag editing
7535         is disabled.  Fixes #329463.
7537 2006-02-01  James Livingston  <jrl@ids.org.au>
7539         * rhythmdb/rhythmdb-property-model.c:
7540         (rhythmdb_property_model_row_inserted_cb),
7541         (rhythmdb_property_model_prop_changed_cb),
7542         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
7543         correctly. Fixes bug 327061.
7545         * rhythmdb/rhythmdb-query-model.c:
7546         (rhythmdb_query_model_entry_changed_cb): emit change notification of
7547         the HIDDEN property when an entry is removed for being hidden.
7549         * rhythmdb/rhythmdb-query-model.h:
7550         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
7551         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
7552         models's "connected" property. Whatever it was needed for seems to
7553         have gone.
7555 2006-02-01  James Livingston  <jrl@ids.org.au>
7557         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
7559         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
7560         (rb_shell_player_playing_changed_cb): block the signal to prevent
7561         re-entrancy. Fixes bug 329329 and fixes the first click of the play
7562         button pausing.
7564 2006-02-01  James Livingston  <jrl@ids.org.au>
7566         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
7567         /should/ now work, if the neccessary plugins get ported.
7569 2006-01-30  James Livingston  <jrl@ids.org.au>
7571         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
7572         string properties to "Unknown" is the string is empty. Kind of fixes
7573         bug 327495.
7575         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
7576         gettext calls once, rather than once per time the function is used.
7577         This stops us making tens of thousands of gettext calls on startup,
7578         which reduces the cpu-time of startup by 10-20%
7580 2006-01-29  James Livingston  <jrl@ids.org.au>
7582         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
7583         (rhythmdb_add_uri):
7584         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
7585         for files containing known video streams.
7588 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
7590         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
7591         required.
7593 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
7595         * INSTALL.quick: More random updates
7597         * rhythmdb/rhythmdb-query-model.c:
7598         (rhythmdb_query_model_class_init),
7599         (rhythmdb_query_model_set_property),
7600         (rhythmdb_query_model_get_property),
7601         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
7602         Remove user sort data handling, take a property ID and a reverse
7603         flag instead.
7604         (rhythmdb_query_model_insert_into_main_list),
7605         (rhythmdb_query_model_insert_into_limited_list),
7606         (rhythmdb_query_model_do_reorder),
7607         (_reverse_sorting_func):
7608         Handle reverse sorting by calling _reverse_sorting_func, which
7609         calls the real sort function and reverses the result.
7610         (rhythmdb_query_model_set_sort_order):
7611         Allow this to be called to set the initial sort order for limited
7612         queries, and handle reverse sorting when reordering.
7613         (rhythmdb_query_model_location_sort_func),
7614         (rhythmdb_query_model_album_sort_func),
7615         (rhythmdb_query_model_artist_sort_func),
7616         (rhythmdb_query_model_genre_sort_func),
7617         (rhythmdb_query_model_track_sort_func),
7618         (rhythmdb_query_model_double_ceiling_sort_func),
7619         (rhythmdb_query_model_ulong_sort_func),
7620         (rhythmdb_query_model_date_sort_func),
7621         (rhythmdb_query_model_string_sort_func):
7622         Sort functions moved from rb-entry-view.c.
7623         * rhythmdb/rhythmdb-query-model.h:
7624         Add the sort functions, and update the changed functions.
7625         
7626         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
7627         Just call _resort_model when the query model is set, since it
7628         does all the same things.
7629         (rb_entry_view_append_column):
7630         Rework bits so the rating column doesn't have to be so much of a
7631         special case.
7632         (rb_entry_view_append_column_custom):
7633         Take a property ID to sort on, rather than arbitrary custom data.
7634         (rb_entry_view_resort_model):
7635         Query model does all the reverse sort handling now.
7636         * widgets/rb-entry-view.h: Update _append_column_custom.
7638         * sources/rb-play-queue-source.c:
7639         (rb_play_queue_source_constructor):
7640         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
7641         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
7642         (rb_podcast_source_post_date_cell_sort_func),
7643         (rb_podcast_source_post_status_cell_sort_func),
7644         (rb_podcast_source_post_feed_cell_sort_func):
7645         Updates required by all the other changes.
7647         * rhythmdb/rhythmdb-property-model.c:
7648         (rhythmdb_property_model_drag_data_get):
7649         Sort the query results on the selected property,
7650         so they arrive in the expected order.  All the other changes were made
7651         to make this possible.  Fixes bug #327494.
7653 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
7654         
7655         * shell/rb-shell-clipboard.c:
7656         Use GTK_STOCK_REMOVE icon for the remove action in
7657         the play queue too.
7659 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
7661         * sources/rb-play-queue-source.c:
7662         (rb_play_queue_source_constructor),
7663         (rb_play_queue_source_update_count):
7664         Don't make the 'queued songs' column clickable,
7665         and add the queued song count to the column title.
7667 2006-01-29  James Livingston  <jrl@ids.org.au>
7669         * configure.ac: remove "experimental" marking from DAAP, and enable by
7670         default if the dependencies are found.
7672 2006-01-29  James Livingston  <jrl@ids.org.au>
7674         * NEWS: update NEWS
7676 2006-01-29  James Livingston  <jrl@ids.org.au>
7678         patch by: William Jon McCann  <mccann@jhu.edu>
7680         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
7681         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
7682         property used for the feed list. Fixes problem with feeds with no
7683         episodes not showing up.
7685 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
7686         
7687         * shell/rb-play-order-random-by-age-and-rating.c:
7688         (rb_random_by_age_and_rating_get_entry_weight):
7689         Fix compile errors, bug #328978.
7691 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
7693         * INSTALL.quick, README: Random updates
7694         * README.lirc: Add notes on controlling Rhythmbox with LIRC
7696 2006-01-28  James Livingston  <jrl@ids.org.au>
7698         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
7699         default rating back to 0 (from 2.5, which was needed for autorating).
7701         * shell/rb-play-order-random-by-age-and-rating.c:
7702         (rb_random_by_age_and_rating_get_entry_weight):
7703         * shell/rb-play-order-random-by-rating.c:
7704         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
7705         2.5 for the purposes of weighting entries.
7707 2006-01-28  James Livingston  <jrl@ids.org.au>
7709         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
7710         translator comments, to make it clearer what the "friendly time"
7711         formatting strings mean.
7713 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
7715         * daapsharing/rb-daap-connection.c: (http_response_handler):
7716         Fix the sense of the overflow check so it'll accept valid input.
7718 2006-01-27  James Livingston  <jrl@ids.org.au>
7720         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
7722         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
7723         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
7725 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
7727         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
7728         
7729         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
7730         Don't include the artist field in the window title if it's blank.
7731         Fixes #325973.
7733 2006-01-26  William Jon McCann  <mccann@jhu.edu>
7735         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
7736         Use stock delete icon for move to trash and stock remove
7737         for remove menu item.
7739 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
7741         * shell/rb-shell.c: (rb_shell_constructor),
7742         (idle_handle_load_complete):  Don't start the playlist save
7743         timeout until we've loaded the playlists, otherwise we'll
7744         write an empty playlist file if startup takes too long.
7746 2006-01-25  William Jon McCann  <mccann@jhu.edu>
7748         * shell/rb-shell.c: Make view toolbar toggle use
7749         shift+ctrl+t.  Fixes #327585.
7751 2006-01-25  James Livingston  <jrl@ids.org.au>
7753         patch by: Christope Fergeau  <teuf@gnome.org>
7755         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
7756         (http_response_handler): fix a potential buffer overflow issue.
7758 2006-01-25  James Livingston  <jrl@ids.org.au>
7760         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
7761         Year column wide enough to display "Unknown"
7763 2006-01-25  James Livingston  <jrl@ids.org.au>
7765         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
7766         (rb_podcast_source_post_status_cell_data_func): make the episode
7767         status wording better. Part of bug 321607.
7769 2006-01-25  James Livingston  <jrl@ids.org.au>
7771         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
7772         others with a separator.
7774         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
7775         stock Delete icon.
7777 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
7779         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
7781 2006-01-23  James Livingston  <jrl@ids.org.au>
7783         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
7784         0.3.2. Fixed bug 328158.
7786 2006-01-23  James Livingston  <jrl@ids.org.au>
7788         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
7789         (gulong_gst_date_transform), (rb_metadata_class_init):
7790         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
7792 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
7794         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
7795         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
7796         (record_entry_change): Protect added_entries and changed_entries with
7797         a mutex, so it doesn't crash on startup on SMT/SMP machines.
7799 2006-01-23  James Livingston  <jrl@ids.org.au>
7801         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
7802         the browser for audio CDs.
7804 2006-01-22  James Livingston  <jrl@ids.org.au>
7806         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
7807         NEVER_FAIL as it causes the daemon-not-running error to never be
7808         reported, resulting in bug 319438 re-occurring.
7810 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
7812         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
7813         Just call the podcast manager's update method.  Unbreaks the 'update
7814         all feeds' command.
7816 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
7818         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
7820 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
7822         * configure.ac: Don't disable DAAP with gstreamer 0.10
7824         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
7825         (rb_daap_src_class_init), (rb_daap_src_init),
7826         (rb_daap_src_finalize), (rb_daap_src_set_property),
7827         (rb_daap_src_get_property), (rb_daap_src_write),
7828         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
7829         (_split_uri), (rb_daap_src_open):
7830         * daapsharing/rb-daap-src.h:
7831         Mostly fix seeking, handle chunked transfer encoding, and port to
7832         gstreamer 0.10.
7833         
7834         * player/rb-player-gst.c:
7835         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
7836         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
7838         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
7839         being fixed.
7841 2006-01-21  James Livingston  <jrl@ids.org.au>
7843         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
7844         for Year metadata in DAAP sources. Fixes bug 327700.
7846         * daapsharing/rb-daap-connection.c: (handle_song_listing):
7848 2006-01-20  William Jon McCann  <mccann@jhu.edu>
7850         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
7851         enum values instead of magic numbers.
7853         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
7854         Add number of songs that match each property title into
7855         the cell.  Also show the number of properties that match
7856         in the All entry.
7857         (rb_property_view_constructor): Use enum values instead of
7858         magic numbers.
7860         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
7861         Query podcast posts instead of feeds for browser.  Use
7862         post SUBTITLE which is the location for the property view.
7863         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
7864         (construct_query_from_selection) 
7865         (rb_podcast_source_cmd_delete_feed) 
7866         (rb_podcast_source_cmd_properties_feed) 
7867         (rb_podcast_source_cmd_update_feed): Use variable to make
7868         it clear what the selection data represents.
7869         (rb_podcast_source_feed_title_cell_data_func): Add number
7870         of posts that belong to each feed in the browser.
7872         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
7873         (rhythmdb_property_model_delete_prop): Decrement the refcount
7874         for the All entry.
7875         (rhythmdb_property_model_get_column_type): Use column enum
7876         values instead of magic numbers.  Add NUMBER column.
7877         (rhythmdb_property_model_get_value): Use enum.
7878         Add NUMBER column that represents the refcount for
7879         the title of that property.
7880         (rhythmdb_property_model_perform_sync): Don't fake up
7881         a title for All here.
7883         Fixes #327372.
7884         
7885 2006-01-21  James Livingston  <jrl@ids.org.au>
7887         Make Rhythmbox start faster by not blocking the UI while database
7888         initialisation and loading occurs. Closes bug 323348.
7890         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
7891         start 10 seconds later instead of immediately.
7892         
7893         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
7894         safe to call from any thread.
7896         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
7897         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
7898         so the UI doesn't block.
7900 2006-01-18  James Livingston  <jrl@ids.org.au>
7902         * sources/rb-static-playlist-source.c:
7903         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
7904         cause crashes. Oops. fixes bug 327477.
7906 2006-01-17  William Jon McCann  <mccann@jhu.edu>
7908         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
7909         Set GST element state to NULL before unreffing.
7910         Fixes #327422.
7912 2006-01-18  James Livingston  <jrl@ids.org.au>
7914         * sources/rb-static-playlist-source.c:
7915         (rb_static_playlist_source_do_query): don't filter on the SONG entry
7916         type, since the playlists can contain non-song entries. Fixes bug
7917         327448.
7919         * sources/rb-play-queue-source.c:
7920         (rb_play_queue_source_class_init): disable the search box for the
7921         queue.
7923 2006-01-18  James Livingston  <jrl@ids.org.au>
7925         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
7926         dragging of podcast episodes. Fixed bug 327450.
7928 2006-01-18  James Livingston  <jrl@ids.org.au>
7930         * rhythmdb/rhythmdb-query-model.c:
7931         (rhythmdb_query_model_drag_data_received): fix possible assertion when
7932         dragging to an emoty playlist.
7934 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
7936         * sources/rb-playlist-source-recorder.c:
7937         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
7939 2006-01-17  James Livingston  <jrl@ids.org.au>
7941         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
7943         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
7944         different number of tracks than exist on the cd, since that happens
7945         with audio+data hybrid CDs. Part of bug 325046.
7947 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
7949         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
7950         Remove useless call to gtk_tree_view_column_set_clickable().
7952         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
7953         Don't store sort data for columns if the sort function is NULL,
7954         so only sortable columns will be in the column sort data map.
7955         (rb_entry_view_set_columns_clickable): Only make columns we can sort
7956         on clickable.
7957         (rb_entry_view_constructor):  The 'playing icon' column is never
7958         clickable, so don't connect a signal handler for it.
7960         Fixes bug 326811.
7962 2006-01-17  James Livingston  <jrl@ids.org.au>
7964         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
7965         are 0.8 only. Fix element detection.
7967         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
7968         saving the new metadata failed
7970 2006-01-17  James Livingston  <jrl@ids.org.au>
7972         * shell/rb-shell-player.c: (do_next_idle),
7973         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
7974         (eos_cb): release audio device when a playlist finishes. Fixes bug
7975         323679.
7977 2006-01-17  James Livingston  <jrl@ids.org.au>
7979         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
7980         canonicalise the URIs when things are added via library watching.
7982 2006-01-16  William Jon McCann  <mccann@jhu.edu>
7984         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
7985         Off by one error in default speed index.
7987 2006-01-16  William Jon McCann  <mccann@jhu.edu>
7989         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
7990         (update_speed_combobox, update_speed_combobox):
7991         Get a list of the actually supported write speeds from
7992         n-c-b >= 2.13.90.  Otherwise use fallback list.
7994 2006-01-17  James Livingston  <jrl@ids.org.au>
7996         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
7997         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
7998         don't get stuck on recursive symlinks. Fixed bug 125452.
8000 2006-01-17  James Livingston  <jrl@ids.org.au>
8002         Add support for mass-storage audio players. Players are detected via
8003         either the HAL "audio_player" capability, or a ".is_audio_player" file
8004         in the root of the volume. Closes bug 325602.
8006         * configure.ac: separate using HAL from ipod support.
8008         * lib/rb-file-helpers.c: (rb_uri_is_local):
8009         * lib/rb-file-helpers.h: add function to determine whether a URI is
8010         local.
8012         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
8013         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
8014         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
8015         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
8016         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
8017         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
8018         directories can be scanned for files to add as  non-SONG entries.
8020         * shell/rb-removable-media-manager.c:
8021         (rb_removable_media_manager_mount_volume): add checking for
8022         mass-storage players.
8024         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
8025         * sources/rb-ipod-source.c: (rb_ipod_source_new),
8026         (hal_udi_is_ipod):
8027         * sources/rb-removable-media-source.c:
8028         (rb_removable_media_source_class_init),
8029         (rb_removable_media_source_constructor): move some things up to the
8030         RBRemovableMediaSource, rather than making subclasses do it.
8032         * sources/Makefile.am:
8033         * sources/rb-generic-player-source.c:
8034         * sources/rb-generic-player-source.h: add mass-storage player source.
8036 2006-01-16  James Livingston  <jrl@ids.org.au>
8038         patch by: William Jon McCann  <mccann@jhu.edu>
8040         * rhythmdb/rhythmdb-query-model.c:
8041         (rhythmdb_query_model_base_row_deleted): fix build issue from last
8042         commit.
8044 2006-01-16  James Livingston  <jrl@ids.org.au>
8046         Patch to add support for "chained queries" and putting hidden tracks
8047         in query models. Use chained queries to add search box support to
8048         normal playlists, and to make hidden entries not get lost. Fixes bug
8049         319278.
8051         * rhythmdb/rhythmdb-query-model.h:
8052         * rhythmdb/rhythmdb-query-model.c:
8053         (rhythmdb_query_model_class_init),
8054         (rhythmdb_query_model_set_property),
8055         (rhythmdb_query_model_get_property):
8056         (rhythmdb_query_model_finalize): add "show-hidden" and
8057         "base-model" properties.
8059         (rhythmdb_query_model_set_connected),
8060         (rhythmdb_query_model_has_pending_changes),     
8061         (rhythmdb_query_model_entry_added_cb),
8062         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
8063         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
8064         (rhythmdb_query_model_remove_entry),
8065         (rhythmdb_query_model_drag_data_received),
8066         (rhythmdb_query_model_base_row_inserted),
8067         (rhythmdb_query_model_base_row_deleted),
8068         (rhythmdb_query_model_base_non_entry_dropped),
8069         (rhythmdb_query_model_base_complete),
8070         (rhythmdb_query_model_base_entry_prop_changed),
8071         (rhythmdb_query_model_base_rows_reordered),
8072         (rhythmdb_query_model_row_drop_possible): handle base-model by
8073         chaining events and operations where necessary. Make hidden entries
8074         not get added only if "show-hidden" is false.
8076         (rhythmdb_query_model_child_index_to_base_index),
8077         (rhythmdb_query_model_base_index_to_child_index),
8078         (rhythmdb_query_model_get_entry_index): utility functions for handling
8079         base-model entries.
8081         (rhythmdb_query_model_reapply_query): apply the current query, and
8082         remove entries that don't match it.
8084         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
8085         empty queries.
8087         * sources/rb-source.c: (rb_source_set_property): move the unref later
8088         to fix problem if it is the last reference.
8090         * sources/rb-static-playlist-source.c:
8091         (rb_static_playlist_source_class_init),
8092         (rb_static_playlist_source_init),
8093         (rb_static_playlist_source_finalize),
8094         (rb_static_playlist_source_constructor), (impl_reset_filters),
8095         (impl_search), (rb_static_playlist_source_do_query),
8096         (impl_save_contents_to_xml),
8097         (rb_static_playlist_source_add_location_internal): use a chained query
8098         model to filter out hidden entries and implement the search box.
8100 2006-01-15  James Livingston  <jrl@ids.org.au>
8102         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
8103         the default playlist loading, which I broke earlier.
8105 2006-01-15  James Livingston  <jrl@ids.org.au>
8107         patch by: William Jon McCann  <mccann@jhu.edu>
8109         * sources/rb-playlist-source.c: (playlist_iter_func): use
8110         totem-plparser's new API version macros to check for API changes.
8111         Handle the recent API change.
8113 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
8115         * sources/rb-library-source.c: (impl_get_config_widget):
8116         Ref the preferences object to match the unref in the
8117         finalizer.  Fixes some portion of #323505.
8119 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
8121         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
8122         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
8123         Fix valgrind warnings about accessing uninitialised values.
8125 2006-01-14  William Jon McCann  <mccann@jhu.edu>
8127         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
8129 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
8131         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
8132         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
8133         Stops the 'now playing' icon from being displayed after the play
8134         order finishes.
8136 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
8138         * podcast/rb-podcast-manager.c:
8139         (rb_podcast_manager_db_entry_deleted_cb):
8140         Don't try to delete files we never downloaded, and cancel downloads
8141         for deleted episodes.  Fixes bug #326862.
8142         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
8143         Don't complain about NULL data items in the selection list.
8145 2006-01-14  James Livingston  <jrl@ids.org.au>
8147         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
8148         Make the name ofthe queue non editable. Fixes bug 326918.
8150 2006-01-13  William Jon McCann  <mccann@jhu.edu>
8152         * sources/rb-playlist-source-recorder.c (burn_cd) 
8153         (ask_rewrite_disc): Don't use our locally copied functions
8154         if we have at least 2.13.
8156 2006-01-13  William Jon McCann  <mccann@jhu.edu>
8158         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
8159         Correct the argument type for the process_error signal.
8160         May fix bug #323154.
8162 2006-01-13  James Livingston  <jrl@ids.org.au>
8164         save the queue to disk when exiting, and reload on startup. Fixed bug
8165         326677 .
8167         * shell/rb-playlist-manager.c:
8168         (rb_playlist_manager_load_playlists),
8169         (rb_playlist_manager_save_playlists_async): don't disable saving of
8170         the queue
8172         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
8173         add the queue source as a gobject property.
8175         * sources/rb-play-queue-source.c:
8176         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
8177         code to save the queue to xml
8179         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
8180         load the queue from xml.
8181         * sources/rb-playlist-xml.h:
8183         * sources/rb-static-playlist-source.c:
8184         (rb_static_playlist_source_load_from_xml),
8185         (rb_static_playlist_source_new_from_xml):
8186         * sources/rb-static-playlist-source.h: split the playlist xml loading
8187         from the static playlist creation function, so the queue can use it.
8189 2006-01-13  James Livingston  <jrl@ids.org.au>
8191         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
8192         assertion that should be there. Fixes bug 325923.
8193         
8194         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
8195         return NULL if the entry already exists (e.g. as another type).
8196         * daapsharing/rb-daap-connection.c: (handle_song_listing):
8197         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
8198         (rb_podcast_manager_insert_feed):
8199         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
8200         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
8201         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
8202         for the above function returning NULL.
8204 2006-01-12  James Livingston  <jrl@ids.org.au>
8206         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
8207         is enabled. Fixes bug 326673.
8208         
8209         * doc/reference/tmpl/eggtrayicon.sgml:
8210         * doc/reference/tmpl/rb-daap-src.sgml:
8211         * doc/reference/tmpl/rb-source.sgml:
8212         * doc/reference/tmpl/rb-statusbar.sgml:
8213         * doc/reference/tmpl/rb-tree-model-sort.sgml:
8214         * doc/reference/tmpl/rhythmbox-unused.sgml:
8215         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
8217 2006-01-11  James Livingston  <jrl@ids.org.au>
8219         * widgets/rb-song-info.c: (rb_song_info_constructor),
8220         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
8221         (rb_song_info_populate_dialog): fill in the fields if all tracks have
8222         the same value for properties. From bug 326054.
8224 2006-01-11  James Livingston  <jrl@ids.org.au>
8226         * sources/rb-source.h:
8227         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
8228         (rb_shell_player_set_playing_source_internal), (eos_cb):
8229         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
8230         every entry.
8232         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
8233         source use this. Closes bug 322077.
8235 2006-01-10  William Jon McCann  <mccann@jhu.edu>
8237         * widgets/eggtrayicon.c (egg_tray_icon_notify):
8238         In order for set_icon_data_from_pixbuf() to be
8239         effective, one must not set an icon in _new().
8241 2006-01-10  William Jon McCann  <mccann@jhu.edu>
8243         * widgets/eggtrayicon.c (egg_tray_icon_init) 
8244         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
8245         (egg_tray_icon_notify): Add support for libnotify 0.3.
8246         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
8247         * configure.ac: Determine the version of libnotify.
8248         Fixes #326333.
8250 2006-01-08  James Livingston  <jrl@ids.org.au>
8252         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
8253         trying to share a track with unknown length.
8255 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
8257         * shell/rb-shell-player.c: (rb_shell_player_init):
8258         Sync volume on startup so it doesn't default to 0.
8260 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
8262         * shell/rb-shell-player.c: (rb_shell_player_class_init),
8263         (rb_shell_player_get_property), (rb_shell_player_open_location),
8264         (info_available_cb):  Add the iradio streamed song title as a
8265         property, and emit a signal when it changes.
8267         * shell/rb-shell.c: (rb_shell_constructor),
8268         (rb_shell_player_elapsed_changed_cb),
8269         (rb_shell_player_stream_song_changed_cb):
8270         Issue a notification when the iradio song title changes.
8271         Fixes #326166.
8273 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
8275         * shell/rb-shell-player.c: (rb_shell_player_init),
8276         (rb_shell_player_finalize), (rb_shell_player_set_property),
8277         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
8278         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
8279         (rb_shell_player_set_volume_relative),
8280         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
8281         (rb_shell_player_get_mute):
8282         * shell/rb-shell-player.h:
8283         * shell/rb-shell-player.xml:
8284         Store volume as a property on RBShellPlayer, rather than in gconf.
8285         Add some methods to control volume via dbus.
8287         * shell/rb-shell.c: (rb_shell_constructor),
8288         (rb_shell_volume_widget_changed_cb),
8289         (rb_shell_player_volume_changed_cb):
8290         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
8291         Update volume using player properties rather than gconf, and sync the
8292         volume with the volume control button when something else changes it.
8293         Fixes #323840.
8295 2006-01-07  William Jon McCann  <mccann@jhu.edu>
8297         * shell/rb-tray-icon.c (tray_popup_position_menu):
8298         Make tray menu align with edge of panel.
8300         patch from Jaap A. Haitsma <jaap@haitsma.org>
8301         Fixes #319913
8303 2006-01-07  William Jon McCann  <mccann@jhu.edu>
8304         * shell/rb-shell.c (sourcelist_drag_received_cb): 
8305         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
8306         (rb_playlist_manager_new_playlist_from_selection_data):
8307         Make a reasonable default name for playlists created from
8308         dropped data.  Fixes #326116.
8310 2006-01-07  William Jon McCann  <mccann@jhu.edu>
8312         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
8313         Use new gconf key.
8314         (burn_cd): Always eject CD after burning.  Too many drives
8315         get confused if we don't.  Save the speed used if the burn
8316         was completed successfully.
8318         * data/rhythmbox.schemas: Use our own speed instead of from
8319         n-c-b. The situation is that the default_speed for n-c-b is most
8320         likely the maximum write speed.  This is fine for n-c-b because it
8321         has burn-proof turned on.  We can't turn it on for audio CDs
8322         because the results are poor in quality.  So we'll just pick a
8323         default that should work for everyone (4).
8325 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
8326         
8327         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
8328         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
8330 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
8332         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
8333         in my previous commit.  Fixes #326037.
8335 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
8337         patch by: Jonathan Matthew
8339         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
8340         error on Fedora Rawhide.
8342 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
8344         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
8345         Assume HTTP URLs ending with .xml or .rss are podcasts.
8346         (rb_shell_add_uri): Handle adding podcast feeds.
8348         * sources/rb-podcast-source.c: (rb_podcast_source_new):
8349         Register as the source for podcast feeds.
8351 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
8353         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
8354         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
8355         (rb_shell_preferences_append_view_page):
8356         * shell/rb-shell-preferences.h:
8357         Fix typo in function name.  Fixes #325992.
8359 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
8361         * shell/rb-audioscrobbler.c:
8362         Add '+' to the list of characters to URI-encode, so it doesn't get
8363         interpreted as a space.
8365 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
8367         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
8368         (rb_daap_connection_do_something):  Don't crash if the DAAP server
8369         goes away while we're still trying to log in.
8371 2006-01-06  James Livingston  <jrl@ids.org.au>
8373         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
8375 2006-01-06  James Livingston  <jrl@ids.org.au>
8377         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
8378         support for Year to automatic playlists. Closes bug 321341.
8380         * rhythmdb/rhythmdb-query-model.c:
8381         (rhythmdb_query_model_set_property):
8382         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
8383         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
8384         (rhythmdb_query_free), (rhythmdb_query_serialize),
8385         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
8386         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
8387         * rhythmdb/rhythmdb.h: Support special
8388         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
8389         year in date.
8391         * widgets/rb-query-creator-properties.c:
8392         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
8393         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
8395 2006-01-06  James Livingston  <jrl@ids.org.au>
8397         * configure.ac: make the playback backend selection work correctly
8399         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
8400         (rb_daap_src_class_init), (rb_daap_src_dispose),
8401         (rb_daap_src_change_state), (rb_daap_src_initialize):
8402         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
8403         doesn't work for this class. Fixes bug 325934
8405 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
8407         * configure.ac: Fix check for libnotify.
8409 2006-01-05  William Jon McCann  <mccann@jhu.edu>
8411         * sources/rb-playlist-source.c (xml_get_and_trim_names):
8412         Get name element for current lang and remove all name nodes
8413         from the XML tree.
8414         (get_playlist_name_from_xml): Try to get name element or
8415         fall back to name attribute.
8416         (rb_playlist_source_new_from_xml): Get name before turning over
8417         to sub-types for parsing so that we can remove name elements
8418         from the tree if necessary.
8420         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
8421         Load default playlists file if per user playlists are not found.
8423         * data/playlists.xml.in: 
8424         * data/Makefile.am: 
8425         * data/.cvsignore: Add default set of playlists.
8426         Fixes #323004
8428 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
8430         * shell/main.c: (main): Don't use the dbus interface to show the
8431         window if we're also going to use the bonobo interface.
8433 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
8435         * shell/rb-history.c: (rb_history_set_playing):
8436         Allow setting the playing song to NULL.
8437         (rb_history_append), (rb_history_delete_link):
8438         Don't randomly change position when entries are added and removed,
8439         it confuses play orders.
8440         
8441         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
8442         Random orders always have a next entry if the model is not empty.
8443         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
8444         Go back to the start of the history if we're past its end.
8446         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
8447         (rb_shuffle_play_order_go_next): Go back to the start of the history
8448         if we're past its end.
8449         (rb_shuffle_sync_history_with_query_model): Go back to the start of
8450         the history if the current entry is removed.
8452         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
8453         (rb_play_order_entry_deleted_cb): Only update have next/previous for
8454         the play order when the query has finished. This wasted about 10% CPU
8455         while the query was running.
8457         Fixes #324641: assertion failures when the query model was changed
8458         such that the playing song was no longer present.
8460 2006-01-05  James Livingston  <jrl@ids.org.au>
8462         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
8463         (rb_daap_src_dispose), (rb_daap_src_change_state):
8464         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
8465         (rhythmdb_gda_finalize):
8466         * widgets/rb-cell-renderer-pixbuf.c:
8467         * widgets/rb-cell-renderer-rating.c:
8468         (rb_cell_renderer_rating_class_init),
8469         (rb_cell_renderer_rating_finalize):
8470         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
8471         * widgets/rb-load-failure-dialog.c:
8472         (rb_load_failure_dialog_class_init),
8473         (rb_load_failure_dialog_finalize):
8474         * widgets/rb-rating.c: (rb_rating_class_init),
8475         (rb_rating_finalize):
8476         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
8477         (rb_search_entry_finalize): use G_DEFINE_TYPE
8479         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
8481 2006-01-05  James Livingston  <jrl@ids.org.au>
8483         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
8485         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
8486         the tarball.
8488         * shell/rb-history.c: (rb_history_class_init),
8489         (rb_history_finalize):
8490         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
8491         (rb_playlist_manager_finalize):
8492         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
8493         (rb_remote_init): use G_DEFINE_TYPE.
8495 2006-01-05  James Livingston  <jrl@ids.org.au>
8497         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
8498         changes
8500 2006-01-04  William Jon McCann  <mccann@jhu.edu>
8502         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
8503         Disable burn action when source is not a playlist.
8504         Fixes #323578.
8506 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
8508         Optionally use libnotify to display song change and other
8509         notifications, and provide an option to disable notifications.
8510         Fixes #320355 and innumerable informal complaints.
8512         * widgets/eggtrayicon.c: (egg_tray_icon_init),
8513         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
8514         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
8515         (egg_tray_icon_notify):
8516         * widgets/eggtrayicon.h:
8517         * configure.ac:
8518         * shell/Makefile.am:
8519         Optionally use libnotify instead of eggnotificationbubble.
8521         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
8522         (rb_tray_icon_constructor), 
8523         (rb_tray_icon_show_notifications_changed_cb),
8524         (rb_tray_icon_hide_notify_cb)
8525         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
8526         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
8527         EggNotificationBubble pointer to eggtrayicon.
8529         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
8530         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
8531         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
8533 2006-01-04  William Jon McCann  <mccann@jhu.edu>
8535         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
8536         Request a minimum size for the progress bar so that
8537         the window doesn't shrink too small.
8539 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
8541         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
8542         (add_db_entry), (db_entry_deleted_cb):
8543         Don't track the number of songs currently present, track the next ID
8544         to assign.  Fixes potential ID conflict problems.
8545         
8546         (db_entry_changed_cb), (rb_daap_share_start_publish),
8547         (rb_daap_share_stop_publish):
8548         Watch for db entry changes, and when songs become non-hidden after
8549         a successful stat, add them to the mapping tables.   Fixes #325178,
8550         making the DAAP server usable again.
8552 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
8553         
8554         * shell/rb-statusbar.c: (rb_statusbar_class_init),
8555         (rb_statusbar_construct), (rb_statusbar_init),
8556         (rb_statusbar_finalize), (rb_statusbar_set_property),
8557         (rb_statusbar_get_property), (rb_statusbar_new),
8558         (rb_statusbar_sync_with_source):
8559         * shell/rb-statusbar.h:
8560         Remove visibility management code, stop watching for play order
8561         changes (status bar doesn't show play order any more), remove unused
8562         'player' property, and some other minor cleanup.
8563         
8564         * shell/rb-shell.c: (rb_shell_constructor),
8565         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
8566         (rb_shell_sync_statusbar_visibility):
8567         Manage status bar visibility here rather than in the status bar
8568         itself, so we can take small mode into account.  Fixes #323589.
8570 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
8572         * widgets/eggnotificationbubble.c: (draw_bubble):
8573         Move the bubble off the visible screen while setting up bevels.  
8574         Fixes #316810.
8576 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
8578         * shell/rb-shell-player.c: (rb_shell_player_init),
8579         (rb_shell_player_finalize): 
8580         Remove unused structure members.
8581         
8582         (do_next_idle), (rb_shell_player_error):
8583         Only queue one call to do_next_idle, so we don't skip tracks if we get
8584         two errors for the same song.  Fixes #325216.
8586 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
8588         * data/glade/podcast-feed-properties.glade,
8589          podcast/rb-feed-podcast-properties-dialog.c:
8590         (rb_feed_podcast_properties_dialog_init),
8591         (rb_feed_podcast_properties_dialog_update):
8592         Add 'last episode' field to the podcast feed properties dialog.
8594         * podcast/rb-feed-podcast-properties-dialog.c:
8595         (rb_feed_podcast_properties_dialog_update_last_update),
8596         (rb_feed_podcast_properties_dialog_update_last_episode),
8597          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
8598         Use last-seen property for the time at which we last updated the feed,
8599         and post-time for the time the last episode was published.
8601         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
8602         Handle upgrades from 0.9.2; if no post-time was found for a podcast
8603         feed, use last-seen (which in 0.9.2 was the last post time).
8605         Fixes #323894.
8607 2006-01-01  James Livingston  <jrl@ids.org.au>
8609         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
8611         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
8612         year from the ipod database.
8614 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
8616         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
8617         Only set the pipeline back to NULL state for really uninteresting
8618         files.  This was causing deadlocks with various video files.
8619         Fixes #324912.
8621 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
8623         * data/glade/song-info-multiple.glade:
8624         Add disc number label and field.
8625         * widgets/rb-song-info.c: (rb_song_info_construct_single),
8626         (rb_song_info_constructor): 
8627         Handle widgets for disc number.
8628         (rb_song_info_sync_entries_multiple):
8629         Set disc number property on selected entries.
8630         Fixes #324777.
8632 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
8634         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
8635         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
8636         Activate the default widget when enter is pressed in these dialogs.
8637         Fixes #322887.
8639 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
8641         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
8642         Use rb_shell_player_get_playing_entry, so we get the right entry
8643         when playing from the queue.  Fixes #325379.
8645 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
8647         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
8648         Include podcast posts with no publication date.  Typically
8649         seen in static collections rather than feeds.
8651 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
8653         * shell/main.c: (main): Don't attempt to handle
8654         bonobo-only arguments if we couldn't get a bonobo
8655         client proxy.
8657 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
8659         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
8660         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
8661         abort if daap sharing is disabled and then re-enabled.
8663 2005-12-29  William Jon McCann  <mccann@jhu.edu>
8665         * podcast/rb-podcast-parse.c (rb_insert_item):
8666         Add debugging.
8667         (rb_podcast_parser_start_element): Support itunes:image.
8668         Add debugging.  Don't abuse the break statement.  Warn
8669         if state is unknown.
8670         (rb_podcast_parser_end_element): Add debugging.  Warn
8671         if state is unknown.
8672         (rb_podcast_parser_characters): Warn if state is unknown.
8674         Fixes parsing of feeds that use the itunes:image element.
8675         Fixes #324632
8677 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
8679         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
8680         (stations_view_drag_data_received_cb):
8681         Remove calls to rhythmdb_entry_lookup_by_location, as
8682         rb_iradio_source_add_station does that anyway.
8683         
8684         (rb_iradio_source_add_from_playlist):
8685         If the URL doesn't point to a playlist, add it as the stream
8686         URL instead.
8688 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
8690         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
8691         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
8692         so we don't get an assertion failure.
8693         Fixes #325025.
8695 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
8697         * shell/main.c: (load_uri_args): don't compile this in if
8698         neither bonobo nor dbus are enabled.  Fixes #324890.
8700 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
8702         * sources/rb-audiocd-source.c:
8703         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
8704         so it closes the device.
8706 2005-12-20  James Livingston  <jrl@ids.org.au>
8708         * metadata/rb-metadata-gst.c: make the state changes time-out again,
8709         so that it doesn't spend forever getting stuck on the one file. Don't
8710         report errors for failing to change state on known non-audio files.
8712         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
8713         audio sink creation if we can't create the gconfaudiosink. This lets
8714         it work with only gst-plugins-base on 0.10.
8716 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
8718         * rhythmdb/rhythmdb-query-model.c:
8719         (rhythmdb_query_model_set_sort_order):
8720         Fix a tiny memory leak in the previous commit.
8722 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
8724         * rhythmdb/rhythmdb-query-model.c:
8725         (rhythmdb_query_model_set_sort_order):
8726         Don't try to emit reorders for empty query models, since it doesn't
8727         achieve anything and it results in a few warnings.
8729 2005-12-19  William Jon McCann  <mccann@jhu.edu>
8731         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
8732         Make burn dialog non-resizable so that the expander can shrink.
8733         Fixes #308951.
8735 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
8737         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
8738         add entries without a location, rather than those with one.
8740 2005-12-19  James Livingston  <jrl@ids.org.au>
8742         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
8743         the error isn't set.
8745 2005-12-19  James Livingston  <jrl@ids.org.au>
8746         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
8747         add entries without a location. Fixes bug 324290.
8749         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
8750         without a location.
8752         * shell/main.c: (main): don't crash if dbus initialisation fails
8753         without setting an error
8755 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
8757         * sources/rb-library-source.c: Remove unused structure members
8758         (rb_library_source_do_query): Actually use the cached 'all' query.
8759         Fixes #324025.
8760         
8761 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
8763         * sources/rb-audiocd-source.c 
8764         (rb_audiocd_get_cd_info): tab
8765         (rb_audiocd_scan_songs): Return boolean success/failure,
8766         fix error messages a bit.
8767         (metadata_cb): Don't crash if we have no tracks
8768         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
8769         the CD.
8770         Fixes #324222.
8772 2005-12-15  William Jon McCann  <mccann@jhu.edu>
8774         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
8775         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
8776         key.
8778         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
8779         Fixes #324157
8781 2005-12-14  William Jon McCann  <mccann@jhu.edu>
8783         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
8784         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
8785         (fullscreen_changed_cb): 
8786         * lib/rb-preferences.h: 
8787         * data/ui/rhythmbox-ui.xml: 
8788         * data/rhythmbox.schemas:
8789         Add fullscreen mode.
8791         Fixes #324075.
8793 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
8795         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
8796         configure.  It was not working with RPM.
8797         * data/Makefile.am: Switched dbus directory location to use
8798         datadir instead of variable that was not working.
8800 2005-12-13  James Livingston  <jrl@ids.org.au>
8802         patch by: Alex Lancaster <alexl@users.sourceforge.net>
8804         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
8805         the podcast browser work again. Closes bug 323856.
8807 2005-12-12  William Jon McCann  <mccann@jhu.edu>
8809         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
8810         Remove C99ism.
8812         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
8813         (rb_utf_friendly_time):
8814         * lib/rb-cut-and-paste-code.h:
8816         * podcast/rb-feed-podcast-properties-dialog.c:
8817         (rb_feed_podcast_properties_dialog_parse_time):
8818         * podcast/rb-podcast-properties-dialog.c:
8819         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
8820         to display the date in a more user friendly way.
8821         For example, if the feed was updated yesterday it will say:
8822         Last updated: Yesterday 10:00 AM
8823         instead of printing the date.
8825 2005-12-12  William Jon McCann  <mccann@jhu.edu>
8827         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
8828         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
8829         (rb_validate_item_propert, rb_podcast_parser_start_element) 
8830         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
8831         Use RB style.  Check for NULL before strcmp.  No C++ comments.
8832         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
8833         Don't set invalid mime type when mime type is NULL.  Fix leaks.
8834         (rb_podcast_parse_date): Add support for some real world
8835         date formats.
8836         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
8837         (rb_podcast_parse_item_free): Style and no need to check
8838         for NULL before g_free.
8840         May fix #323742
8842 2005-12-12  James Livingston  <jrl@ids.org.au>
8844         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
8845         with gstreamer 0.10, which replaced audioscale.
8847         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
8848         function to free the SoupSession
8850         * shell/rb-source-header.c: (rb_source_header_set_property),
8851         (rb_source_header_disclosure_toggled_cb),
8852         (rb_source_header_view_browser_changed_cb),
8853         (rb_source_header_sync_control_state):
8854         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
8855         * sources/rb-library-source.c: (rb_library_source_class_init):
8856         * sources/rb-source.c: (rb_source_class_init),
8857         (rb_source_get_status), (default_get_browser_key),
8858         (rb_source_get_browser_key), (rb_source_can_browse),
8859         (rb_source_notify_status_changed),
8860         (rb_source_notify_filter_changed):
8861         * sources/rb-source.h: seperate the enabling of browsers from the use
8862         of a gconf key.
8864 2005-12-11  William Jon McCann  <mccann@jhu.edu>
8866         * data/glade/podcast-feed-properties.glade: 
8867         * data/glade/podcast-properties.glade: Use scrolled viewports
8868         for description text.  Fix regression of #320509.
8870 2005-12-11  James Livingston  <jrl@ids.org.au>
8872         * sources/rb-auto-playlist-source.c:
8873         (rb_auto_playlist_source_class_init), (impl_reset_filters),
8874         (impl_search), (rb_auto_playlist_source_do_query),
8875         (rb_auto_playlist_source_set_query),
8876         (rb_auto_playlist_source_get_query): add support for the search box
8877         to automatic playlists.
8879         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
8880         memory leak.
8882 2005-12-11  James Livingston  <jrl@ids.org.au>
8884         * NEWS: update NEWS
8886 2005-12-11  James Livingston  <jrl@ids.org.au>
8888         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
8889         (rhythmdb_load), (monitor_subdirectory),
8890         (rhythmdb_sync_library_location):  start the library sync and
8891         monitoring in an idle callback.
8893 2005-12-10  William Jon McCann  <mccann@jhu.edu>
8895         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
8896         (rb_podcast_source_constructor): Remove unused pixbuf column.
8897         (rb_podcast_source_set_property, rb_podcast_source_get_property):
8898         Use consistent style.
8900         Fixes #322961.
8902 2005-12-11  James Livingston  <jrl@ids.org.au>
8904         * rhythmdb/rhythmdb-property-model.c:
8905         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
8906         (rhythmdb_property_model_insert),
8907         (rhythmdb_property_model_delete_prop):
8908         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
8909         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
8910         (destroy_tree_property):
8911         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
8912         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
8913         GMemChunks, they are crap and deprecated. Improves startup-time and
8914         memory usage slightly.
8916 2005-12-10  William Jon McCann  <mccann@jhu.edu>
8918         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
8919         Added license and website info.
8921         * MAINTAINERS.old: Add Colin.
8922         * MAINTAINERS: Add James.
8923         * AUTHORS: Put back in order.  Add extra space between name and email
8924         to make it easier to read.  Add James and jonathan.
8926         * widgets/rb-song-info.c (rb_song_info_init) 
8927         (rb_song_info_constructor): Make sure close button is primary/rightmost.
8929 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
8931         Play queue implementation. Closes bug 107787.
8933         * data/rhythmbox.schemas: add items for whether the queue should be
8934         displayed as a sidebar, and the height of the sourcelist if it is.
8936         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
8937         playlist, and podcast popups; add 'view queue as sidebar' menu item,
8938         add popups for queue as source and as sidebar.  We need a separate
8939         popup for the sidebar view because otherwise it's hard to tell which
8940         of the visible entry views the action came from.
8942         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
8944         * po/POTFILES.in: Add new file
8946         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
8947         Add helper function for deciding if a podcast episode is available for
8948         playback.
8950         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
8951         reorder entries in the query model.
8952         (idle_process_update): Handle new update type used to insert entries
8953         at a particular position in the query model.
8954         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
8955         parameter to specify the position (-1 meaning 'at the end').
8956         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
8957         parameter.
8958         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
8959         bad entry removal updates for entries that aren't in the model.
8960         (rhythmdb_query_model_emit_reorder): Add helper function for
8961         reordering rows.
8962         (rhythmdb_query_model_move_entry): New method for moving entries
8963         around in the model
8964         (rhythmdb_query_model_entry_added_cb),
8965         (rhythmdb_query_model_update_limited_entries),
8966         (rhythmdb_query_model_do_reorder),
8967         (rhythmdb_query_model_do_insert): Pass through the index parameter,
8968         use rhythmdb_query_model_emit_reorder where appropriate.
8970         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
8971         Don't allow the queue to be deleted.
8972         (handle_playlist_entry_cb): Update for method signature change
8973         (rb_playlist_manager_save_playlists_async),
8974         (rb_playlist_manager_get_playlists): Don't save the play queue,
8975         don't report it as a playlist.
8977         * shell/rb-play-order.c: Include queue play order in the list of
8978         available orders.
8980         * shell/rb-shell.c
8981         (rb_shell_class_init), (rb_shell_get_property): Add new property 
8982         for access to the clipboard object.
8983         (rb_shell_constructor): Handle playing-from-queue signal to update the
8984         sourcelist display; add queue sidebar in to UI, listen for queue
8985         sidebar pane changes, and read initial settings from gconf.
8986         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
8987         Only tell the sourcelist the source has changed if the new source is 
8988         not the queue, as we update the sourcelist differently in that case.
8989         (rb_shell_set_window_title): Only use the cached window title if the
8990         playing state was the same when it was created.
8991         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
8992         (rb_shell_sync_pane_visibility): Only hide the side pane if the
8993         sourcelist is hidden and the queue is shown as a source.
8994         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
8995         mode, since it doesn't make any sense.
8996         (sourcelist_visibility_changed_cb): Update the visibility of the pane
8997         too.
8998         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
8999         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
9000         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
9001         playing from queue shown as sidebar.
9003         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
9004         MusicProperties action here from rb-shell-player.c, since it acts like
9005         cut/copy/paste etc.
9006         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
9007         (rb_shell_clipboard_get_property): new property for queue source.
9008         Watch for selection changes in the sidebar entry view as well as the
9009         normal one.
9010         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
9011         actions and MusicProperties.
9012         (rb_shell_clipboard_cmd_queue_delete),
9013         (rb_shell_clipboard_cmd_add_song_to_queue),
9014         (rb_shell_clipboard_cmd_song_info),
9015         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
9017         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
9018         actually came from (could be the playing source, or the queue), add a 
9019         new play order object for the queue, add a property for the queue
9020         source, add a signal for when we switch between playing from the
9021         source and from the queue.
9022         (rb_shell_player_set_property): Handle playing directly from the
9023         queue so we stop once the queue is empty.  Create queue play order
9024         when we get the queue source.
9025         (rb_shell_player_get_playing_source): Return the source we're actually
9026         playing from.
9027         (rb_shell_player_get_playing_entry): Get playing entry from queue if
9028         that's where it is.
9029         (rb_shell_player_set_playing_entry): Update the queue play order if 
9030         that's where we're playing from.
9031         (rb_shell_player_play_order_update_cb): Take has next/previous for the
9032         queue into consideration too.
9033         (swap_playing_source): Helper function for switching the playing
9034         source.
9035         (rb_shell_player_do_previous): Check the queue, even though there's
9036         never a previous entry in it (yet), swap playing source if it changed.
9037         (rb_shell_player_do_next): Check the queue for entries to play before
9038         the normal play order, and swap playing source if it changed.
9039         (rb_shell_player_do_previous_or_seek): Check the queue for previous
9040         entries to go to as well.
9041         (rb_shell_player_playpause): Check the queue before the selection and
9042         the play order, and swap playing source if it changed.
9043         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
9044         (rb_shell_player_entry_activated_cb): Use
9045         rb_podcast_manager_entry_downloaded, do some tapdancing to make
9046         activating queue entries work properly (move the activated entry to
9047         the start of the queue and then play it); if we were playing from the
9048         queue, clear its playing entry so it'll start again from the start
9049         after the activated entry.
9050         (rb_shell_player_sync_buttons): MusicProperties action handler moved
9051         to rb-shell-clipboard.c
9052         (actually_set_playing_source): Add helper for updating the playing
9053         source.
9054         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
9055         signal if we stop or start doing so; use actually_set_playing_source; 
9056         emit playing-source-changed if we actually did change source.
9058         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
9059         rb_static_playlist_source_add_location.
9061         * sources/rb-library-source.c (rb_library_source_class_init): Allow
9062         enqueueing of songs from the library.
9064         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
9065         enqueueing of sonsg from playlists.
9066         (rb_playlist_source_entry_added_cb): Add extra parameter for
9067         rhythmdb_query_model_add_entry.
9068         
9069         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
9070         Implement (can_)add_to_queue for this class.
9071         (rb_podcast_source_entry_activated): Use
9072         rb_podcast_manager_entry_downloaded.
9073         (impl_can_add_to_queue): Return TRUE if at least one entry that has
9074         been downloaded is selected.
9075         (impl_add_to_queue): Only add downloaded entries to the queue.
9077         * sources/rb-source.{c,h}:
9078         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
9079         methods.
9080         (rb_source_class_init): Don't allow enqueueing by default; implement 
9081         add_to_queue though.
9082         (default_add_to_queue): Add all selected entries to the queue.
9083         
9084         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
9085         would be playing if there wasn't anything in the queue).
9086         (set_source_playing): Helper function for manipulating tree store.
9087         (rb_sourcelist_set_playing_source): Use set_source_playing
9088         (rb_sourcelist_preempt_playing_source): Update preempted source
9089         pointer, manipulate source states.
9091         * sources/rb-static-playlist-source.{c,h}:
9092         (rb_static_playlist_source_add_location_internal),
9093         (rb_static_playlist_source_add_location),
9094         (rb_static_playlist_source_add_entry): Add index parameter for
9095         specifying where in the playlist the new entry goes.
9096         (rb_static_playlist_source_new_from_xml), (impl_paste),
9097         (rb_static_playlist_source_add_list_uri),
9098         (rb_static_playlist_source_add_location_swapped),
9099         (rb_static_playlist_source_add_locations),
9100         (rb_static_playlist_source_non_entry_dropped),
9101         (rb_static_playlist_source_row_inserted):
9102         Handle new index parameter everywhere it appears
9103         (rb_static_playlist_source_move_entry): New method for moving entries
9104         around in the playlist.
9106         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
9107         warnings when trying to scroll entry views that have never been
9108         displayed.
9110         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
9111         play order that removes the old entry when switching to a new one.
9113         * sources/rb-play-queue-source.{c,h}: New files, implementing a
9114         static playlist subclass that has a second entry view for the sidebar
9115         view using alternate formatting, and that displays the number of
9116         entries it contains in its source list entry.
9118 2005-12-10  James Livingston  <jrl@ids.org.au>
9120         * rhythmdb/rhythmdb-query-model.c:
9121         (rhythmdb_query_model_add_entry),
9122         (rhythmdb_query_model_drag_data_received):
9123         * sources/rb-static-playlist-source.c:
9124         (rb_static_playlist_source_non_entry_dropped): when things are
9125         dropped, ignore any blank lines in the list of uris. Make the source
9126         responsible for adding new items to the db.
9128         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
9129         empty string.
9131 2005-12-10  James Livingston  <jrl@ids.org.au>
9133         * shell/rb-shell-player.c: (rb_shell_player_set_property),
9134         (rb_shell_player_sync_buttons),
9135         (rb_shell_player_selection_changed_cb): watch for the
9136         "selection-changed" signal, so that the Song Properties get enabled.
9137         Closes bug 323694.
9139 2005-12-10  James Livingston  <jrl@ids.org.au>
9141         * data/rhythmbox.schemas: fix the gconf schema
9143 2005-12-10  James Livingston  <jrl@ids.org.au>
9145         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
9146         the decoded-pad callback with gstreamer 0.8, it causes problems.
9148 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
9150         Remove more junk from RBEntryView. Closes bug 323640.
9152         * widgets/rb-entry-view.{c,h}:
9153         Remove unused private structure members, replace 'playing' boolean
9154         with an enum (so we know if we're paused too), and store a pointer to
9155         the RBShellPlayer too.  
9156         (rb_entry_view_class_init), (rb_entry_view_set_property),
9157         (rb_entry_view_get_property):
9158         Remove 'entry-selected' and 'changed' signals and
9159         'playing-entry' property, add 'selection-changed' signal and
9160         'shell-player' and 'playing-state' properties.
9161         (rb_entry_view_new): Take the shell player object reference
9162         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
9163         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
9164         No longer needed, shell player is the place to get this information.
9165         (rb_entry_view_busy), (rb_entry_view_get_duration),
9166         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
9167         (rb_entry_view_get_next_from_entry),
9168         (rb_entry_view_get_previous_from_entry),
9169         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
9170         (rb_entry_view_get_num_entries):
9171         Removed, callers should go to the query model directly.
9172         (rb_entry_view_playing_song_changed): Update active query model, emit
9173         row changed signals to update pixbufs, and scroll to the playing song
9174         when the playing song changes, based on a signal from the shell
9175         player.
9176         (queue_changed_sig), (rb_entry_view_row_changed_cb),
9177         (emit_entry_changed): Evil, removed.
9178         (rb_entry_view_selection_changed_cb): Remove old signals, add new
9179         selection-changed signal.
9180         (rb_entry_view_select_none), (rb_entry_view_select_entry):
9181         Remove selection lock.  It didn't work anyway.
9182         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
9183         (rb_entry_view_emit_row_changed): Simple helper function to emit
9184         row-changed signals.
9186         * widgets/Makefile.am: Entry view needs headers from the shell/
9187         directory.
9188         * widgets/rb-song-info.{c,h}: Use the query model for everything except
9190         scrolling the entry view to show the entry being displayed.
9191         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
9192         'source' property so we can watch for query model changes.
9193         (rb_song_info_finalize): Unref objects, disconnect signal handlers
9194         (rb_song_info_set_property): Watch for query model changes, don't
9195         watch for entry view changes.
9196         (rb_song_info_new): Take source as a parameter, use the source's entry
9197         view unless one was specifically supplied.
9198         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
9199         Use query model rather than entry view to move between songs.
9200         (rb_song_info_update_buttons): Use query model.
9201         (rb_song_info_query_model_changed_cb): Handle query model changes.
9203         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
9204         Only one copy of the code to enable/disable the CD burning action
9205         (rb_playlist_manager_playlist_entries_changed):
9206         Use the query model to get the number of entries, not the entry view.
9208         * shell/rb-play-order-random-by-age-and-rating.c,
9209         shell/rb-play-order-random-by-age.c,
9210         shell/rb-play-order-random-by-rating.c,
9211         shell/rb-play-order-random-equal-weights.c:
9212         Use G_DEFINE_TYPE
9214         * shell/rb-shell-player.{c,h}:
9215         Remove a few unused entries from the structure.
9216         (rb_shell_player_set_property):
9217         Don't use the 'changed' signal on the entry view (it's evil)
9218         (rb_shell_player_have_first): No longer needed
9219         (rb_shell_player_play): Just tell the entry view it's playing
9220         (rb_shell_player_playpause): Tell the entry view it's paused
9221         when pausing.
9222         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
9223         (rb_shell_player_property_row_activated_cb):
9224         Get the entry to play using the query model, not the entry view.
9225         (rb_shell_player_sync_buttons): Update entry view state while we're
9226         here.
9227         (rb_shell_player_set_playing_source_internal): Update entry view state
9228         (rb_shell_player_get_playing): Ask the entry view, not the player.
9229         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
9230         and rb_shell_set_window_title work properly, so you get "(Paused)" in
9231         the window title and tray icon tooltip.
9232         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
9234         * sources/rb-iradio-source.c, sources/rb-library-source.c,
9235         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
9236         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
9237         view constructor, pass the source in to the song info widget
9238         constructor.
9240         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
9241         Use 'selection-changed' instead of 'changed', since that's what the
9242         clipboard cares about.
9243         (rb_shell_clipboard_set_source): Don't die if source == NULL
9245 2005-12-10  James Livingston  <jrl@ids.org.au>
9247         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
9248         * sources/rb-playlist-source-recorder.c:
9249         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
9250         stuff not use the deprecated API when compiled against 2.13
9252 2005-12-10  James Livingston  <jrl@ids.org.au>
9254         patch by: Alex Lancaster <alexl@users.sourceforge.net>
9256         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
9257         problem where the genre tag was getting set to the artist. Closes bug
9258         323642.
9260 2005-12-09  William Jon McCann  <mccann@jhu.edu>
9262         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
9263         Return NULL if can't get first iter.
9265         Fixes #323663
9267 2005-12-09  William Jon McCann  <mccann@jhu.edu>
9269         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
9270         updated rb_station_properties_dialog_new API.
9271         (rb_iradio_source_add_from_playlist): New public function.
9272         (rb_iradio_source_first_time_changed): Use add_from_playlist.
9274         * shell/rb-shell.c (new_station_location_added): Handle
9275         iradio location added signal.
9276         (rb_shell_cmd_new_station): Use new iradio station dialog.
9278         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
9279         (rb_station_properties_dialog_new): Don't squeeze new
9280         station functionality into this class.
9281         (rb_station_properties_dialog_response_cb): ditto.
9282         (rb_station_properties_dialog_update_title): Make
9283         consistent with other properties dialogs.
9284         (rb_station_properties_dialog_location_changed_cb): Do nothing.
9286         * iradio/rb-new-station-dialog.[ch]: 
9287         * iradio/Makefile.am: Add new station dialog.
9289         * data/glade/station-new.glade: New file based on
9290         new podcast feed dialog.
9291         * data/glade/station-properties.glade: Updated to
9292         be consistent with song properties dialog.
9294         Fixes #323306.
9296 2005-12-10  James Livingston  <jrl@ids.org.au>
9298         patch by: Ståle Lyngaas <staale@lyngaas.com>
9300         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
9301         submit songs longer than 30 minutes. Fixes bug 323639.
9303 2005-12-09  William Jon McCann  <mccann@jhu.edu>
9305         * shell/rb-shell.c (idle_save_playlist_manager): Use new
9306         async save function.
9307         (rb_shell_finalize): Remove save timeout sources.  Reorder
9308         steps a bit to make saving db and playlists a bit more
9309         failsafe in case something goes wrong later.
9310         (rb_shell_constructor): Keep track of save timeout source.
9311         (add_to_library_response_cb): Keep track of db save timeout source.
9313         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
9314         g_atomic.
9315         (rb_playlist_manager_shutdown): New function to shutdown
9316         threads etc. before exit.
9317         (rb_playlist_manager_finalize): Moved handling outstanding
9318         threads stuff to shutdown since if there are outstanding threads
9319         they hold a ref and finalize is never called.
9320         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
9321         of signal which may be required for sync save.
9322         (rb_playlist_manager_save_playlists_async): Renamed old
9323         save_playlists to save_playlists_async.  Use g_atomic.
9324         (rb_playlist_manager_save_playlists): New function to
9325         perform sync saves (symmetric with RhythmDB API).
9326         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
9328         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
9329         Style consistency anality.
9330         (rhythmdb_finalize): Remove save timeout source.
9331         (rhythmdb_set_property, rhythmdb_get_property) 
9332         (rhythmdb_process_events): More anality and keep track of
9333         save timeout source.
9334         (action_thread_main): No need to call g_thread_exit.
9335         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
9336         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
9337         (write_encoded_gvalue, read_encoded_property): La la la.
9339         Fixes #322940.
9341 2005-12-10  James Livingston  <jrl@ids.org.au>
9343         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
9344         non-audio files.
9346 2005-12-10  James Livingston  <jrl@ids.org.au>
9348         * Makefile.am:
9349         * configure.ac: remove the rpm spec files, so that automake works.
9350         oops
9352         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
9353         locking issue
9355 2005-12-09  James Livingston  <jrl@ids.org.au>
9357         * debian/: try to get cvs to actually remove the files
9359 2005-12-09  James Livingston  <jrl@ids.org.au>
9361         * rhythmbox.spec.in:
9362         * debian/: remove the distro package stuff, they are *really* old, and
9363         downstream manage it anyway.
9365 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
9367         Rework play orders to work off query models rather than 
9368         entry views, and track the playing entry themselves rather
9369         than relying on the entry view to do it.  This makes the entry
9370         view mostly just a widget. Closes bug 323612.
9372         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
9373         Use query model rather than entry view to get the number
9374         of entries in playlists.
9376         * rhythmdb/rhythmdb-query-model.{c.h}
9377         (rhythmdb_query_model_tree_path_to_entry),
9378         (rhythmdb_query_model_iter_to_entry),
9379         (rhythmdb_query_model_get_next_from_entry),
9380         (rhythmdb_query_model_get_previous_from_entry):
9381         New utility functions for iterating through query models.
9382         (rhythmdb_query_model_compute_status_normal):
9383         Have one copy of this code, not four.
9385         * shell/rb-play-order.{c,h}:
9386         Add signals for when next/previous availability changes, and
9387         when the playing entry is removed, and add a property for
9388         the current playing entry.  Add gtkdoc comments too.
9389         (rb_play_order_class_init): Add new property and signals.
9390         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
9391         (rb_play_orer_query_model_changed_cb),
9392         (rb_play_order_query_model_changed): 
9393         Use query model rather than entry view.
9394         (rb_play_order_set_property), (rb_play_order_get_property):
9395         Handle new playing-entry property.  Call playing_entry_changed virtual
9396         method so subclasses can do any processing required.
9397         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
9398         (rb_play_order_set_playing_entry):
9399         Just use the playing-entry property.
9400         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
9401         Utility methods for subclasses.
9402         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
9403         Update next/previous availability, check if the playing entry
9404         was removed.
9405         (default_playing_entry_removed):
9406         Keep the current behaviour of just stopping playback when the 
9407         playing entry is deleted.
9408         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
9409         these for subclasses that don't have go_next/go_previous, but do
9410         have get_next/get_previous.
9411         (rb_play_order_update_have_next_previous): Emit signal if the
9412         availability of next/previous entries has changed.
9414         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
9415         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
9416         Use G_DEFINE_TYPE, replace entry view iterator with query model 
9417         methods.
9418         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
9419         on the last song in the shuffled order, go back to the start. This
9420         means if you press 'play' again you'll get the whole order again, not
9421         just one song.
9423         * shell/rb-shell-player.c:
9424         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
9425         play order rather than the entry view.
9426         (rb_shell_player_set_property): Update the play order when the
9427         selected source changes and we aren't playing anything.
9428         (rb_shell_player_sync_play_order): Copy the playing entry across to
9429         the new play order so playback continues from the same song, and watch
9430         for updates to have_next/have_previous.
9431         (rb_shell_player_play_order_update_cb): Enable/disable the
9432         next/previous actions when next/previous entry availability changes.
9433         (rb_shell_player_jump_to_current): Just use the play order's idea of
9434         what's playing, not the entry view's; if not playing anything, clear
9435         the selection, so when a playlist ends and you hit play again, it'll
9436         start at the start rather than the end.
9437         (rb_shell_player_do_previous): restructure a bit.
9438         (rb_shell_player_do_next): restructure, jump to new playing entry in
9439         an idle handler instead of directly.
9440         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
9441         song if there is one.
9442         (rb_shell_player_playpause): Jump to playing song, don't update the
9443         play order if we got the song from the selection.
9444         (rb_shell_player_playing_entry_deleted_cb): Not needed.
9445         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
9446         looks after next/previous actions now.  Don't break if called while
9447         there is no selected source.
9448         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
9449         (rb_shell_player_set_playing_source_internal),
9450         (rb_shell_player_error): No need to track the attempted playing entry
9451         any more, since the play order does that.
9453         * shell/rb-shell.c:
9454         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
9455         rb_shell_player_get_playing_entry rather than going through the entry
9456         view.
9458         * shell/rb-statusbar.c (rb_statusbar_set_property),
9459         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
9460         than the entry view for status bar text changes.
9461         (rb_statusbar_sync_status): Ask the query model directly
9463         * sources/rb-source.{c}: Add query model property.
9464         (default_get_status): Get status text from query model, should be
9465         suitable for most sources.
9466         (rb_source_set_property): Listen for changes to the query model 
9467         to update the status text.
9468         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
9469         (idle_emit_status_changed): Emit status-changed signals when query
9470         model changes. 
9472         * sources/rb-library-source.c, sources/rb-podcast-source.c:
9473         (impl_get_status): Not needed, RBSource does this now
9474         (rb_library_source_do_query) (rb_podcast_source_do_query): 
9475         Update RBSource's query model reference.
9477         * sources/rb-playlist-source.c:
9478         Remove query-model property, since RBSource has one now
9479         (impl_get_status): Not needed, RBSource does this now
9480         (rb_playlist_source_row_deleted): Use query model iterator helper
9481         function.
9482         (rb_playlist_source_set_query_model): Update RBSource's query model
9483         reference too.
9485         * sources/rb-iradio-source.c:
9486         (impl_get_status): Ask the query model directly.
9487         (rb_iradio_source_do_query): Update RBSource's query model reference
9488         when we create a new query.
9490         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
9491         Use query model rather than entry view.
9493         * widgets/rb-entry-view.{c,h}: 
9494         Remove playing_entry_deleted signal (now in play order).
9495         (entry_from_tree_path), (entry_from_tree_iter): Not needed
9496          as RhythmDBQueryModel has equivalent helper functions.
9497         (rb_entry_view_*): Use query model helpers instead of the above two
9498         functions.
9500 2005-12-09  James Livingston  <jrl@ids.org.au>
9502         * configure.ac:
9503         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
9504         (rb_recorder_enabled):
9505         * shell/rb-removable-media-manager.c: (poll_tray_opened):
9506         * sources/rb-playlist-source-recorder.c:
9507         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
9508         whether libnautilusburn has the _drive_unref function, and if so use
9509         it. Stops it complaining about deprecated API.
9511 2005-12-09  James Livingston  <jrl@ids.org.au>
9513         * configure.ac: drop the minimum gstreamer version back down, it
9514         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
9516 2005-12-09  James Livingston  <jrl@ids.org.au>
9518         * widgets/rb-song-info.c: (rb_song_info_class_init),
9519         (rb_song_info_show), (rb_song_info_constructor),
9520         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
9521         (rb_song_info_forward_clicked_cb): save metadata changes when the
9522         Next/Previous buttons are pressed (closes bug 320952). use
9523         G_DEFINE_TYPE.
9525 2005-12-09  James Livingston  <jrl@ids.org.au>
9527         Patch by: <jonathan@kaolin.hn.org>
9529         * sources/rb-iradio-source.c:
9530         (stations_view_drag_data_received_cb):
9531         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
9532         of urls. Fixes bug 323610.
9534 2005-12-09  James Livingston  <jrl@ids.org.au>
9536          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
9537          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
9539         * configure.ac:
9540         * metadata/rb-metadata-gst.c:
9541         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
9542         (rb_player_construct), (rb_player_new):
9543         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
9544         (rb_recorder_gst_signal_error), (pipe_message),
9545         (rb_recorder_new_pad_cb), (rb_recorder_construct),
9546         (rb_recorder_new):
9547         * shell/main.c: (main):
9548         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
9549         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
9551 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
9553         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
9555         * shell/rb-playlist-manager.c:
9556           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
9557           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
9558           (rb_playlist_manager_set_automatic_playlist),
9559           (rb_playlist_manager_cmd_new_automatic_playlist),
9560           (rb_playlist_manager_cmd_edit_automatic_playlist):
9561            Use new playlist subclasses.
9562           (rb_playlist_manager_save_playlists): Only read the dirty flag
9563            for local playlists, minor pointless reformatting
9565         * sources/Makefile.am: add new files
9567         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
9568           split lots of stuff out into two
9569           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
9570           make RBPlaylistSource abstract, add virtual methods for showing a
9571           popup for the entry view and saving the playlist to XML.
9572           Other stuff is subclass-specific, or already virtual in RBSource.
9574         * sources/rb-playlist-xml: Define playlist XML tags and attributes
9575           in one place, since they're used across three source files now
9577         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
9578           Use new static playlist class
9580         * sources/rb-ipod-source.c: (add_rb_playlist):
9581           Use new static playlist class
9583         * sources/rb-static-playlist-source.{c,h},
9584         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
9585         files.
9587         * po/POTFILES.in: add new files
9589 2005-12-07  James Livingston  <jrl@ids.org.au>
9591         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
9592         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
9593         metadata loads not attempt to write changes to disk.
9595 2005-12-07  James Livingston  <jrl@ids.org.au>
9597         patch by: Alex Lancaster <alexl@users.sourceforge.net>
9599         * data/glade/song-info-multiple.glade:
9600         * widgets/rb-song-info.c: (rb_song_info_constructor),
9601         (rb_song_info_sync_entries_multiple): allow the year to be changed on
9602         multiple songs at once.
9604 2005-12-06  James Livingston  <jrl@ids.org.au>
9606         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
9607         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
9609 2005-12-06  James Livingston  <jrl@ids.org.au>
9611         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
9612         names rather than adding a horizontal scroll bar.
9614 2005-12-06  James Livingston  <jrl@ids.org.au>
9616         * rhythmdb/rhythmdb-query-model.c:
9617         (rhythmdb_query_model_update_limited_entries),
9618         (rhythmdb_query_model_drag_data_received): remove some pointless debug
9619         messages
9621         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
9622         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
9623         always hide rather than remove DB entries, which will make RB not lose
9624         information when tag editing happens or people move files to trash and
9625         then change their mind. Also fix some races where the monitoring code
9626         would notice the temporary files generated by saving metadata.
9628 2005-12-05  William Jon McCann  <mccann@jhu.edu>
9630         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
9631         Hide internals and add tooltips.
9632         (rb_song_display_box_size_allocate): Hide internals.
9633         (sanitize_string, info_url): Copied from rb-header.
9634         (rb_song_display_box_sync): New public function.
9636         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
9637         (rb_header_init): Use a separate row for the seek bar.
9638         (rb_header_finalize): Don't unref widgets.
9639         (rb_header_sync): Use rb_song_display_box_sync.
9640         (rb_header_set_urldata)
9641         (rb_header_set_show_artist_album): Hide instead of remove widgets.
9642         (rb_header_set_show_position_slider): Set visibility of seek bar.
9643         (rb_header_set_show_timeline): Set sensitivity of seek bar.
9644         (rb_header_get_elapsed_string): Don't shift when you first start playback.
9646         * shell/rb-statusbar.c (rb_statusbar_init)
9647         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
9649         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
9650         (rb_shell_constructor): Remove hseparator.  Monitor
9651         toolbar visibility settings.  Add toolbar.  Add
9652         volume button to toolbar.  Add tooltips for volume button.
9653         (rb_shell_view_toolbar_changed_cb) 
9654         (rb_shell_sync_toolbar_visibility)
9655         (toolbar_visibility_changed_cb): Set visibility of
9656         toolbar.
9657         (rb_shell_sync_smalldisplay): Set the toolbar style to
9658         icons only when in small display mode.
9659         (rb_shell_volume_widget_changed_cb): Save volume setting.
9661         * shell/rb-shell-player.c (rb_shell_player_constructor):
9662         Remove pause and stop actions.  Make play action "important"
9663         so that text is visible in horizontal toolbar position.
9664         Remove control buttons.
9665         (rb_shell_player_init) 
9666         (rb_shell_player_sync_song_position_slider_visibility):
9667         Set visbibility of seek bar.
9668         (rb_shell_player_cmd_play, rb_shell_player_playpause):
9669         Make play action a toggle.
9670         (rb_shell_player_sync_volume): Volume control moved
9671         to player.
9672         (gconf_song_position_slider_visibility_changed):
9673         Set visbibility of seek bar.
9674         (rb_shell_player_sync_buttons):
9675         Set sensitivity of actions instead of buttons.
9676         (rb_shell_player_playing_changed_cb): Add callback
9677         for player notify::playing changes.
9679         * lib/rb-preferences.h: Add hide toolbar and seek
9680         bar key names.
9682         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
9683         seek bar menu items.  Remove pause and stop actions
9684         from the control menu.  Add a toolbar.
9686         * data/rhythmbox.schemas: Add toolbar_hidden
9687         song_position_slider_hidden keys.
9689         Patch by: James Livingston  <jrl@ids.org.au>
9690                   William Jon McCann  <mccann@jhu.edu>
9691         Fixes #316238.
9693 2005-12-05  James Livingston  <jrl@ids.org.au>
9695         * data/glade/library-prefs.glade:
9696         * data/rhythmbox.schemas:
9697         * lib/rb-preferences.h:
9698         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
9699         (rhythmdb_sync_library_location):
9700         * sources/rb-library-source.c: (rb_library_source_class_init),
9701         (rb_library_source_finalize), (rb_library_source_constructor),
9702         (impl_get_config_widget), (rb_library_source_preferences_sync),
9703         (rb_library_source_watch_toggled_cb): allow people to disable library
9704         monitoring, because with nothing set the file chooser button selects
9705         the Home folder (and hence that will get monitored).
9707 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
9709         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
9710         attempt to fix problem with RSS parsing showing invalid feed types.
9711         Fixes bug 323153
9713 2005-12-04  James Livingston  <jrl@ids.org.au>
9715         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
9716         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
9717         importing a remote directory not block the UI.
9719 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
9721         * data/glade/podcast-feed-properties.glade:
9722         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
9724 2005-12-04  James Livingston  <jrl@ids.org.au>
9726         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
9728         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
9729         to && to fix a mistake in the earlier podcast patch.
9731 2005-12-03  James Livingston  <jrl@ids.org.au>
9733         * data/glade/podcast-new.glade:
9734         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
9735         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
9737         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
9738         GValue, which stops occasional errors.
9740         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
9741         compile issue.
9743 2005-12-03  James Livingston  <jrl@ids.org.au>
9745         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
9747         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
9748         crasher with some podcasts feeds.
9750 2005-12-03  James Livingston  <jrl@ids.org.au>
9752         * data/rhythmbox.schemas: fix the gconf schema
9754 2005-12-03  James Livingston  <jrl@ids.org.au>
9756         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
9757         add a selection timeout to the sourcelist. This lets you hold a track
9758         over the playlist source, and then have the view switch so you can
9759         insert the track in the middle of the playlist. Closes bug 323044.
9761         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
9762         (select_on_drag_timeout), (remove_select_on_drag_timeout),
9763         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
9764         (rb_tree_dnd_add_drag_dest_support):
9765         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
9766         timeout.
9768         * sources/rb-sourcelist-model.c:
9769         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
9770         the source list.
9772 2005-12-02  Bastien Nocera  <hadess@hadess.net>
9774         * data/glade/audioscrobbler-prefs.glade: add a space before the web
9775         links, so that the text doesn't touch the button
9777 2005-12-02  James Livingston  <jrl@ids.org.au>
9779         Add full support for gnome-vfs remote files. Closes bug 140355.
9781         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
9782         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
9783         for authentication information from the user doesn't block the UI.
9785         (rhythmdb_entry_set_visibility): don't emit the signal twice.
9787         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
9788         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
9789         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
9790         (rhythmdb_process_stat_event), (emit_load_error_idle),
9791         (rhythmdb_process_metadata_load),
9792         (rhythmdb_process_queued_entry_set_event),
9793         (rhythmdb_process_file_created_or_modified),
9794         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
9795         (queue_stat_uri), (add_thread_main),
9796         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
9797         (rhythmdb_load), (rhythmdb_save_thread_main),
9798         (threadsafe_entry_set), (rhythmdb_query_internal),
9799         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
9800         (rhythmdb_do_full_query_internal),
9801         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
9802         (rhythmdb_volume_unmounted_cb),
9803         (rhythmdb_check_changed_file): trivial changes to support the
9804         asynchronous stats.
9806         * shell/main.c: (main): activate the authentication manager.
9808         * shell/rb-playlist-manager.c:
9809         (rb_playlist_manager_cmd_load_playlist),
9810         (rb_playlist_manager_cmd_save_playlist):
9811         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
9812         (rb_shell_cmd_add_file_to_library):
9813         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
9814         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
9815         remote files.
9817 2005-12-02  James Livingston  <jrl@ids.org.au>
9819         * shell/rb-playlist-manager.c: makes playlist menu items use the
9820         elipses correctly. Fixes bug 322283.
9822 2005-12-02  James Livingston  <jrl@ids.org.au>
9824         * shell/rb-playlist-manager.c:
9825         (rb_playlist_manager_load_playlists): fix silly mistake
9827 2005-12-02  James Livingston  <jrl@ids.org.au>
9829         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
9830         print out metadata-write unless --debug was passed.
9832         * rhythmdb/rhythmdb.c: (rhythmdb_load):
9833         * shell/rb-playlist-manager.c:
9834         (rb_playlist_manager_load_playlists): block writes to disk if they are
9835         still being loaded.
9837 2005-12-02  James Livingston  <jrl@ids.org.au>
9839         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
9840         ctrl-T, because Ctrl-D is used by "small mode"
9842 2005-12-02  James Livingston  <jrl@ids.org.au>
9844         * shell/rb-shell-preferences.c:
9845         (rb_shell_preferences_append_view_page):
9846         * sources/rb-library-source.c: (impl_get_config_widget):
9847         * sources/rb-podcast-source.c: (impl_get_config_widget):
9848         * sources/rb-source.c: (rb_source_get_config_widget):
9849         * sources/rb-source.h: Make the preference actually work.
9851         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
9852         if Rhythmbox is being run for the first time.
9854 2005-12-02  James Livingston  <jrl@ids.org.au>
9856         Add support for Rhythmbox to watch your library, and automatically add
9857         new tracks. Fixes bug 160159.
9859         * data/glade/library-prefs.glade: add "library location" preference
9860         * data/rhythmbox.schemas: add gconf key for the library location
9862         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
9863         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
9864         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
9865         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
9866         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
9867         (rhythmdb_load_thread_main), (rhythmdb_load),
9868         (monitor_subdirectory), (monitor_library_directory),
9869         (monitor_entry_file), (rhythmdb_sync_library_location),
9870         (library_location_changed_cb), (rhythmdb_check_changed_file),
9871         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
9872         specifiec in the gconf key for new additions. Also fix monitoring code
9873         so that it works properly, and notices deletions.
9875         * lib/rb-preferences.h:
9876         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
9877         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
9878         * shell/rb-audioscrobbler.h:
9879         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
9880         (rb_shell_preferences_append_view_page),
9881         (rb_shell_preferences_new):
9882         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
9883         it's preferences pane, so that we don't need #ifdef's through
9884         rb-shell-preferences.
9886         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
9887         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
9888         "preferences" property, so that sources can acccess it. This is needed
9889         because the library location pref needs to take effect when the window
9890         is closed.
9892         * sources/rb-library-source.c:
9893         (rb_library_source_library_location_changed),
9894         (rb_library_source_dispose), (rb_library_source_finalize),
9895         (rb_library_source_constructor), (impl_get_config_widget),
9896         (rb_library_source_preferences_sync),
9897         (rb_library_source_process_library_location_change),
9898         (rb_library_source_prefs_update),
9899         (rb_library_source_process_library_handle_selection),
9900         (rb_library_source_library_location_cb): set up and control the
9901         "library location" preference.
9903         * sources/rb-audiocd-source.c:(rb_source_class_init):
9904         * sources/rb-source.c: (rb_source_class_init): remove some pointless
9905         code.
9907 2005-12-01  William Jon McCann  <mccann@jhu.edu>
9909         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
9910         (rb_feed_podcast_properties_dialog_update_title): 
9911         * data/glade/podcast-feed-properties.glade:
9912         Make the feed properties dialog consistent with the podcast
9913         properties dialog.
9915 2005-12-01  William Jon McCann  <mccann@jhu.edu>
9917         * metadata/.cvsignore: 
9918         * po/.cvsignore: 
9919         * podcast/.cvsignore: Updated.
9921         * shell/main.c (main): Support DBus 0.6 flags.
9923 2005-11-30  Bastien Nocera  <hadess@hadess.net>
9925         * data/ui/rhythmbox-ui.xml:
9926         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
9927         (rhythmbd_entry_move_to_trash_set_error),
9928         (rhythmdb_entry_move_to_trash):
9929         * rhythmdb/rhythmdb.h:
9930         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
9931         (rb_shell_clipboard_cmd_delete),
9932         (rb_shell_clipboard_cmd_move_to_trash):
9933         * sources/rb-library-source.c: (rb_library_source_class_init),
9934         (impl_delete), (impl_move_to_trash):
9935         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
9936         (impl_delete), (impl_move_to_trash):
9937         * sources/rb-removable-media-source.c:
9938         (rb_removable_media_source_class_init):
9939         * sources/rb-source.c: (rb_source_class_init),
9940         (rb_source_can_move_to_trash), (rb_source_delete),
9941         (rb_source_move_to_trash):
9942         * sources/rb-source.h:
9943         Add move_to_trash member for the sources, implement move to trash for
9944         the library and playlists
9945         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
9946         local files to the trash, and deleting them from the database
9947         (Closes: #315389)
9949 2005-11-30  William Jon McCann  <mccann@jhu.edu>
9951         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
9952         (rb_tray_icon_init, rb_tray_icon_finalize): 
9953         * shell/rb-statusbar.c (rb_statusbar_class_init) 
9954         (rb_statusbar_init, rb_statusbar_finalize): 
9955         * shell/rb-source-header.c (rb_source_header_class_init) 
9956         (rb_source_header_init, rb_source_header_finalize): 
9957         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
9958         (rb_shell_finalize): 
9959         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
9960         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
9961         * shell/rb-shell-player.c (rb_shell_player_class_init) 
9962         (rb_shell_player_init, rb_shell_player_finalize): 
9963         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
9964         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
9965         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
9966         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
9967         * shell/rb-play-order.c (rb_play_order_class_init) 
9968         (rb_play_order_init, rb_play_order_finalize): 
9969         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
9970         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
9971         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
9972         (rb_random_play_order_init, rb_random_play_order_finalize): 
9973         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
9974         (rb_history_finalize): 
9975         * shell/rb-commander.c (rb_commander_class_init) 
9976         (rb_commander_init, rb_commander_finalize): 
9977         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
9978         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
9979         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
9980         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
9981         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
9982         (rb_podcast_properties_dialog_init) 
9983         (rb_podcast_properties_dialog_finalize): 
9984         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
9985         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
9986         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
9987         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
9988         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
9989         (rb_feed_podcast_properties_dialog_init) 
9990         (rb_feed_podcast_properties_dialog_finalize): 
9991         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
9992         (rb_metadata_init, rb_metadata_finalize): 
9993         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
9994         (rb_station_properties_dialog_init) 
9995         (rb_station_properties_dialog_finalize): 
9996         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
9997         (rb_daap_share_init, rb_daap_share_dispose): 
9999         Use g_type_class_add_private in all classes. Closes bug 313688.
10000         
10001 2005-11-30  James Livingston  <jrl@ids.org.au>
10003         patch by: William Jon McCann <mccann@jhu.edu> to use
10004         g_type_class_add_private in all classes. Closes bug 313688.
10006         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
10007         (rb_thread_finalize):
10008         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
10009         (rb_player_finalize):
10010         * rhythmdb/rhythmdb-property-model.c:
10011         (rhythmdb_property_model_class_init),
10012         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
10013         * rhythmdb/rhythmdb-query-model.c:
10014         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
10015         (rhythmdb_query_model_finalize):
10016         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
10017         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
10018         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
10019         (rhythmdb_finalize):
10020         * sources/rb-daap-source.c: (rb_daap_source_class_init),
10021         (rb_daap_source_init), (rb_daap_source_dispose):
10022         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
10023         (rb_iradio_source_init), (rb_iradio_source_finalize):
10024         * sources/rb-library-source.c: (rb_library_source_class_init),
10025         (rb_library_source_init), (rb_library_source_finalize):
10026         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
10027         (rb_playlist_source_init), (rb_playlist_source_dispose):
10028         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
10029         (rb_podcast_source_init), (rb_podcast_source_finalize):
10030         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
10031         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
10032         * sources/rb-sourcelist-model.h:
10033         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
10034         (rb_sourcelist_init), (rb_sourcelist_finalize):
10035         * sources/rb-sourcelist.h:
10036         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
10037         * widgets/rb-cell-renderer-rating.c:
10038         (rb_cell_renderer_rating_init),
10039         (rb_cell_renderer_rating_class_init),
10040         (rb_cell_renderer_rating_finalize):
10041         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
10042         (rb_druid_finalize):
10043         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
10044         (rb_entry_view_init), (rb_entry_view_finalize):
10045         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
10046         (rb_header_finalize):
10047         * widgets/rb-load-failure-dialog.c:
10048         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
10049         (rb_load_failure_dialog_finalize):
10050         * widgets/rb-property-view.c: (rb_property_view_class_init),
10051         (rb_property_view_init), (rb_property_view_finalize):
10052         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
10053         (rb_rating_finalize):
10054         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
10055         (rb_search_entry_init), (rb_search_entry_finalize):
10056         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
10057         (rb_simple_view_init), (rb_simple_view_finalize):
10058         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
10059         (rb_song_display_box_init), (rb_song_display_box_finalize):
10060         * widgets/rb-song-info.c: (rb_song_info_class_init),
10061         (rb_song_info_init), (rb_song_info_finalize):
10062         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
10063         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
10065 2005-11-30  James Livingston  <jrl@ids.org.au>
10067         * iradio/rb-station-properties-dialog.c:
10068         (rb_station_properties_dialog_init),
10069         (rb_station_properties_dialog_new):
10070         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
10071         * lib/rb-glade-helpers.h:
10072         * podcast/rb-feed-podcast-properties-dialog.c:
10073         (rb_feed_podcast_properties_dialog_init),
10074         (rb_feed_podcast_properties_dialog_new):
10075         * podcast/rb-podcast-properties-dialog.c:
10076         (rb_podcast_properties_dialog_init),
10077         (rb_podcast_properties_dialog_new):
10078         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
10079         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
10080         * sources/rb-library-source.c: (impl_get_config_widget):
10081         * sources/rb-playlist-source-recorder.c:
10082         (rb_playlist_source_recorder_init):
10083         * widgets/rb-song-info.c: (rb_song_info_construct_single),
10084         (rb_song_info_constructor): create a single rb_glade_boldify_label()
10085         in rb-glade-helpers, rather than having eight implementation
10086         throughout the code.
10088 2005-11-30  James Livingston  <jrl@ids.org.au>
10090         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
10091         * lib/rb-util.h:
10092         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
10093         move the duration->string function into rb-utils, as it gets used in a
10094         few places.
10096         patch by: William Jon McCann <mccann@jhu.edu>
10098         * data/glade/podcast-properties.glade:
10099         * podcast/rb-podcast-properties-dialog.c:
10100         (rb_podcast_properties_dialog_init),
10101         (rb_podcast_properties_dialog_update),
10102         (rb_podcast_properties_dialog_update_title),
10103         (rb_podcast_properties_dialog_update_feed),
10104         (rb_podcast_properties_dialog_update_duration),
10105         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
10106         info dialog look more like the song info dialog. Use the same "Feed"
10107         value that is displayed in the treeview (ie. the album field), displays
10108         the duration, uses units in the bitrate field, and sort the fields in
10109         the same order.
10111 2005-11-29  James Livingston  <jrl@ids.org.au>
10113         * rhythmdb/rhythmdb-marshal.list:
10114         * rhythmdb/rhythmdb.h:
10115         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
10116         (emit_load_error_idle), (rhythmdb_process_metadata_load),
10117         (entry_to_rb_metadata), (emit_save_error_idle),
10118         (action_thread_main): emit error signal when metadata write fails.
10120         * shell/rb-shell.c: (rb_shell_constructor),
10121         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
10122         "metadata save" error and display it to the user.
10124 2005-11-29  James Livingston  <jrl@ids.org.au>
10126         * data/ui/rhythmbox-ui.xml:
10127         * sources/rb-podcast-source.c:
10128         (rb_podcast_source_songs_show_popup_cb),
10129         (rb_podcast_source_cmd_download_post),
10130         (rb_podcast_source_cmd_cancel_download): split download and cancel
10131         download commands. Replace usage of "Post" with "Esisode". Fixes bug
10132         321653.
10134 2005-11-18  William Jon McCann  <mccann@jhu.edu>
10136         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
10137         title on alert dialogs per the HIG.
10139         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
10140         the term Burn.
10141         (free_song_list): Routine to free song list.
10142         (rb_playlist_source_recorder_finalize): Use free_song_list.
10143         (rb_playlist_source_recorder_add_from_model): Return FALSE
10144         if unable to add all songs.  Check that duration of all
10145         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
10146         Fixes #321753.
10148         * sources/rb-playlist-source-recorder.c (check_media_length)
10149         (rb_playlist_source_recorder_start): Only check the duration
10150         and current media if the playlist length is longer than a
10151         standard CD (74 min).  Otherwise, just let the Recorder do the
10152         check.
10153         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
10154         drive at init.
10155         (rb_recorder_set_device): Don't leak drives.
10156         (rb_recorder_get_media_length): Use drive that was already set.
10157         (rb_recorder_burn): Let the recorder handle checking media type/size.
10158         Fixes bug 321754.
10160 2005-11-29  James Livingston  <jrl@ids.org.au>
10162         * rhythmdb/rhythmdb-query-model.c:
10163         (rhythmdb_query_model_set_sort_order):
10164         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
10165         emitting the tree-model "resorted" signal.
10167         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
10168         (rb_entry_view_finalize), (rb_entry_view_set_property),
10169         (rb_entry_view_constructor), (rb_entry_view_resort_model):
10170         * widgets/rb-entry-view.h: add a function to resort the entry view,
10171         using the above function.
10173         * sources/rb-iradio-source.c:
10174         (rb_iradio_source_songs_view_sort_order_changed_cb):
10175         * sources/rb-library-source.c: (rb_library_source_finalize),
10176         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
10177         * sources/rb-playlist-source.c:
10178         (rb_playlist_source_songs_sort_order_changed_cb):
10179         * sources/rb-podcast-source.c:
10180         (rb_podcast_source_posts_view_sort_order_changed_cb),
10181         (rb_podcast_source_do_query): use the above function instead of
10182         re-creating the query model. This makes changing the sorting an order
10183         of magnitude faster, as it uses a single resorted signal rather than
10184         deleting and re-adding everything (which emits 2N signals). Closes bug
10185         315389.
10187 2005-11-29  James Livingston  <jrl@ids.org.au>
10189         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
10190         autosizing, which results in large speedups. Closes bug 312122.
10192         * po/ja.po: change the date format, so that it is a constant width
10194         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10195         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
10196         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
10197         (rb_entry_view_constructor): make columns use fixed widths,
10198         disable column autosizing, and enable fixed-height mode.
10200         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
10201         (rb_entry_view_get_time_date_column_sample):
10202         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
10203         and get the canonical date format for the locale.
10205 ============ Version 0.9.2
10207 2005-11-28  James Livingston  <jrl@ids.org.au>
10209         * configure.ac: bump version to 0.9.2
10210         * NEWS: update with changes for 0.9.2
10212 2005-11-28  James Livingston  <jrl@ids.org.au>
10214         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
10216         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
10217         Disable saving, renaming and delting for DAAP playlists.
10218         Fixes bug 322627.
10220 2005-11-28  James Livingston  <jrl@ids.org.au>
10222         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
10223         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
10224         prevent bug 322619.
10226         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
10227         * sources/rb-removable-media-source.c:
10228         (rb_removable_media_source_class_init): fix ipod browser visibility
10229         problem.
10231 2005-11-28  James Livingston  <jrl@ids.org.au>
10233         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
10234         Avahi 0.6 support actually work. Fixes bug 322519.
10236 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
10238         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
10239         avahi is specified in --with-mdns
10241 2005-11-27  James Livingston  <jrl@ids.org.au>
10243         patch by: Bastien Nocera <hadess@hadess.net>
10245         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
10246         not the private one. Fixes bug 322485.
10248 2005-11-26  James Livingston  <jrl@ids.org.au>
10250         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
10251         Avahi 0.6, as well as 0.5.
10253         * configure.ac:
10254         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
10255         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
10256         (add_service):
10258 2005-11-25  James Livingston  <jrl@ids.org.au>
10260         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
10261         321926.
10263 2005-11-25  James Livingston  <jrl@ids.org.au>
10265         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
10266         correct type for checking the date against 0. Stops a warning when
10267         saving metadata.
10269 2005-11-25  James Livingston  <jrl@ids.org.au>
10271         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
10272         adjustment to be inside the element's limits. Without this songs that
10273         have large ReplayGain values will recieve no increase because they are
10274         outside the acceptable range, causing them to remain quiet.
10276 2005-11-25  James Livingston  <jrl@ids.org.au>
10278         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
10279         * sources/rb-daap-source.c: (rb_daap_source_class_init):
10280         * sources/rb-ipod-source.c:
10281         * sources/rb-source.h:
10282         * sources/rb-library-source.h:
10283         * sources/rb-library-source.c: (rb_library_source_class_init),
10284         (rb_library_source_constructor),
10285         (rb_library_source_has_first_added_column),
10286         (rb_library_source_has_drop_support):
10287         * sources/rb-removable-media-source.c:
10288         (rb_removable_media_source_class_init): Make library-derived sources
10289         not show the Date Added column, as it doesn't make sense. Fixes bug
10290         322269.
10291         Move some of the feature funcs from the ipod and audio cd sources up to
10292         the removable media source.
10294 2005-11-24  James Livingston  <jrl@ids.org.au>
10296         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
10297         errors. oops.
10299 2005-11-24  James Livingston  <jrl@ids.org.au>
10301         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
10302         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
10303         (rb_iradio_source_constructor): Chain up dispose method and use
10304         G_DEFINE_TYPE
10306 2005-11-24  James Livingston  <jrl@ids.org.au>
10308         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
10309         mistake in the last commit that can cause crashes.
10311 2005-11-24  James Livingston  <jrl@ids.org.au>
10313         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
10314         instead of g_printerr.
10316         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
10317         rb_debug instead of g_warning. The message happens every time for
10318         removable media/daap shares, so it's not unusual.
10320 2005-11-24  James Livingston  <jrl@ids.org.au>
10322         patch by: Tom Parker <palfrey@tevp.net>
10324         * configure.ac: fix libsoup test for enabling daap
10326 2005-11-23  James Livingston  <jrl@ids.org.au>
10328         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
10329         (rb_query_creator_init), (rb_query_creator_constructor),
10330         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
10331         empty row to queries with no criteria. Fixes bug 322078. use
10332         G_DEFINE_TYPE.
10334 2005-11-23  James Livingston  <jrl@ids.org.au>
10336         patch by:  <baptiste.millemathias@gmail.com>
10338         * help/C/quick-reference.xml: update the quick reference to have the
10339         correct key bindings.
10341 2005-11-22  James Livingston  <jrl@ids.org.au>
10343         * sources/rb-library-source.c: (genres_selection_reset_cb),
10344         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
10345         reset the query when all browser selections are removed.
10347 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10349         * podcast/rb-podcast-manager.c:
10350         (rb_podcast_manager_db_entry_deleted_cb):
10351         Use a custom loop to remove podcast posts, rather than
10352         gtk_tree_model_foreach(), as deleting the entries within
10353         that loop causes the iterator to return the first entry
10354         twice.  Instead, we need to find the next entry before
10355         removing the current one. Fixes bug 321956.
10356         (rb_podcast_manager_entry_remove_cb): No longer needed.
10358 2005-11-22  James Livingston  <jrl@ids.org.au>
10360         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
10361         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
10362         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
10364 2005-11-22  James Livingston  <jrl@ids.org.au>
10366         * sources/rb-podcast-source.c:
10367         (rb_podcast_source_post_date_cell_sort_func),
10368         (rb_podcast_source_post_status_cell_sort_func),
10369         (rb_podcast_source_post_feed_cell_sort_func):
10370         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
10371         (rb_entry_view_album_sort_func),
10372         (rb_entry_view_double_ceiling_sort_func),
10373         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
10374         the entry's location as a last resort when sorting, so the sort order
10375         is stable. This will stop entries moving around when two entries have
10376         the same sorting, and one of them gets played.
10378 2005-11-22  James Livingston  <jrl@ids.org.au>
10380         * daapsharing/rb-daap-connection.c:
10381         (rb_daap_connection_class_init), (rb_daap_connection_init),
10382         (connection_get_password), (build_message),
10383         (http_response_handler), (http_get), (handle_server_info),
10384         (handle_login), (handle_update), (handle_database_info),
10385         (handle_song_listing), (handle_playlists),
10386         (handle_playlist_entries), (rb_daap_connection_new),
10387         (rb_daap_connection_constructor), (rb_daap_connection_logout),
10388         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
10389         (rb_daap_connection_get_headers),
10390         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
10391         (rb_daap_connection_set_property),
10392         (rb_daap_connection_get_property):
10393         * daapsharing/rb-daap-connection.h:
10394         * sources/rb-daap-source.c: (rb_daap_source_dispose),
10395         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
10396         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
10397         of destroying the object when it is going to be used by a callback and
10398         fixes a double-free. Fixes bugs 321930 and 322007.
10400 2005-11-22  James Livingston  <jrl@ids.org.au>
10402         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
10403         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
10404         notification if there aren't any. Fixes bug 321968.
10406 2005-11-22  James Livingston  <jrl@ids.org.au>
10408         * rhythmdb/rhythmdb-property-model.c:
10409         (rhythmdb_property_model_set_property),
10410         (rhythmdb_property_model_finalize),
10411         (rhythmdb_property_model_compare),
10412         (rhythmdb_property_model_insert),
10413         (rhythmdb_property_model_delete_prop): Fix property model sorting
10414         where the display and sort keys are different. Fixes bug 321980.
10416 2005-11-22  James Livingston  <jrl@ids.org.au>
10418         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
10419         when import as a file or passed on the command line, and load them as
10420         playlists.
10422 2005-11-22  James Livingston  <jrl@ids.org.au>
10424         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10426         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
10427         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
10428         a broken daap server. Fixes bug 321919.
10430 2005-11-22  James Livingston  <jrl@ids.org.au>
10432         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
10433         drag-and-drop for both the episodes and feeds list.
10434         
10435         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
10436         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
10437         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
10439         * widgets/rb-property-view.c: (rb_property_view_class_init),
10440         (rb_property_view_set_property), (rb_property_view_get_property),
10441         (rb_property_view_new), (rb_property_view_constructor):
10442         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
10443         (rb_simple_view_new), (rb_simple_view_constructor):
10444         * widgets/rb-simple-view.h: add a "draggable" property to property
10445         views and set it to false for the feed list. Fixes bug 321284.
10447 2005-11-22  James Livingston  <jrl@ids.org.au>
10449         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
10451         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
10452         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
10453         * sources/rb-ipod-source.c: (add_rb_playlist):
10454         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
10455         (rb_playlist_source_set_property),
10456         (rb_playlist_source_get_property), (rb_playlist_source_new),
10457         (impl_receive_drag), (rb_playlist_source_add_location),
10458         (rb_playlist_source_new_from_xml):
10459         * sources/rb-playlist-source.h: give playlists and (optional)
10460         entry-type, and reject entries that don't match. Fixes bug 322006.
10462 2005-11-21  James Livingston  <jrl@ids.org.au>
10464         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
10465         (rb_source_header_finalize): remove the weak references when the
10466         source header is finalised. Stops the callbacks being called after the
10467         object is destroyed.
10469 2005-11-21  James Livingston  <jrl@ids.org.au>
10471         * shell/main.c: (main): don't try to acquite bonobo/dbus when
10472         --no-registration was passed. It causes warnings that make it
10473         impossible to run with --no-registration --g-fatal-warnings
10475 2005-11-21  James Livingston  <jrl@ids.org.au>
10477         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
10478         of strings when they are still in use. Fixes bug 321547.
10480         (rb_daap_connection_destroy): fix memory leak
10482 2005-11-21  James Livingston  <jrl@ids.org.au>
10484         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
10485         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
10486         (rb_daap_mdns_resolve_cancel), (publish_cb),
10487         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
10488         support.
10490 2005-11-21  James Livingston  <jrl@ids.org.au>
10492         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
10493         sorting by genre
10495 2005-11-20  James Livingston  <jrl@ids.org.au>
10497         * podcast/rb-podcast-manager.c:
10498         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
10499         that we don't leak thread structures. Fixes bug 321636, and probably
10500         321775.
10502 2005-11-20  James Livingston  <jrl@ids.org.au>
10504         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
10505         (lookup_cd):
10506         * podcast/rb-podcast-manager.c: (start_job),
10507         (rb_podcast_manager_db_entry_deleted_cb),
10508         (rb_podcast_manager_entry_remove_cb):
10509         * podcast/rb-podcast-parse.c: (rb_insert_item),
10510         (rb_podcast_parse_load_feed):
10511         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
10512         * shell/rb-removable-media-manager.c:
10513         (rb_removable_media_manager_append_media_source):
10514         * shell/rb-shell.c: (add_to_library_response_cb):
10515         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
10516         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
10517         * sources/rb-iradio-source.c:
10518         (stations_view_drag_data_received_cb):
10519         * sources/rb-library-source.c: (string_list_equal),
10520         (impl_get_extra_views), (impl_receive_drag):
10521         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
10522         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
10523         (impl_receive_drag):
10524         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
10525         (rb_entry_view_append_column_custom), (harvest_entries):
10526         * widgets/rb-property-view.c:
10527         (rb_property_view_selection_changed_cb):
10528         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
10529         switch from using g_list_append to g_list_prepend. This changes
10530         operations from O(n^2) to O(n), which in cases like deleting a lot of
10531         tracks can give huge improvements in speed. Closes bug 321696.
10533 2005-11-20  James Livingston  <jrl@ids.org.au>
10535         * sources/rb-sourcelist.c: (rb_sourcelist_init),
10536         (rb_sourcelist_update_expander_visibility): fix indenting of child
10537         sources.
10539 2005-11-20  James Livingston  <jrl@ids.org.au>
10541         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
10542         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
10543         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
10544         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
10545         (add_service), (entry_group_cb): dynamically allocate memory, rather
10546         than using static variables.
10548         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
10549         re-enable the daap share if the name hasn't changed.
10550         * shell/rb-shell-preferences.c:
10551         (share_name_entry_focus_out_event_cb): don't ask the daap share to
10552         change it's name when the checkbox is disabled. Fixed bug 321748.
10554 2005-11-18  James Livingston  <jrl@ids.org.au>
10556         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
10557         as hidden if it is on the current workspace.
10559 2005-11-17  William Jon McCann  <mccann@jhu.edu>
10561         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
10562         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
10563         (rb_podcast_properties_dialog_parse_time): 
10564         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
10565         (rb_feed_podcast_properties_dialog_parse_time):
10566         Rework the way the last mod time strings are created.  It was using
10567         thread unsafe functions, not creating value UTF, and not not checking
10568         the value of the result before modifying it.  This new method fixes
10569         these problems.
10571 2005-11-18  James Livingston  <jrl@ids.org.au>
10573         Don't reset the search box when viewing a different source, because it
10574         will change what is being played. Closes 321593.
10576         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
10577         the search box
10579         * shell/rb-source-header.c: (rb_source_header_class_init),
10580         (rb_source_header_init), (rb_source_header_finalize): use
10581         G_DEFINE_TYPE.
10583         (rb_source_header_set_property),
10584         (rb_source_header_source_weak_destroy_cb),
10585         (rb_source_header_search_cb): store the search text when leaving a
10586         source and put it in the search box when viewing it again.
10588 2005-11-18  James Livingston  <jrl@ids.org.au>
10590         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
10591         (save_entry):
10592         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
10593         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
10594         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
10595         time stamp.
10597         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
10598         last-seen as the timestamp of the last update of the feed. Don't
10599         re-add episodes that have been deleted. Closes 319759.
10601 2005-11-18  James Livingston  <jrl@ids.org.au>
10603         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
10604         that don't have the day name at the start. Closes 321645.
10606 2005-11-18  James Livingston  <jrl@ids.org.au>
10608         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
10609         (rb_podcast_manager_copy_post),
10610         (rb_podcast_manager_get_podcast_dir):
10611         * podcast/rb-podcast-manager.h:
10612         * sources/rb-podcast-source.c: (impl_get_config_widget),
10613         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
10614         download location switching to / if the prefs were opened before
10615         downloading an episode. Closes 321611.
10617 2005-11-18  James Livingston  <jrl@ids.org.au>
10619         * data/glade/podcast-new.glade:
10620         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
10621         (rb_new_podcast_dialog_set_property),
10622         (rb_new_podcast_dialog_get_property),
10623         (rb_new_podcast_dialog_response_cb),
10624         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
10625         for entering new podcast urls in. Closes bug 321610.
10627 2005-11-18  James Livingston  <jrl@ids.org.au>
10629         * sources/rb-podcast-source.c: (construct_query_from_selection),
10630         (rb_podcast_source_do_query): allow podcast list to be re-sorted
10631         without restarting RB. Closes bug 321612.
10633 2005-11-18  James Livingston  <jrl@ids.org.au>
10635         * widgets/rb-entry-view.c: (set_column_visibility),
10636         (rb_entry_view_sync_columns_visible): when changing visibility of one
10637         column, don't hide and re-show all the others. Makes a show/hide
10638         column operation a lot faster.
10640 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
10642         Closes bug 321702.
10644         * iradio/rb-station-properties-dialog.c
10645          (rb_station_properties_dialog_update_bitrate):
10646         Mark the bitrate value as being kbps, using the same
10647         translatable format string as rb-song-info.c
10649         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
10650          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
10652         * shell/rb-shell-player.c (info_available_cb):
10653          Use RB_METADATA_FIELD_BITRATE to update the iradio
10654          station's bitrate value.
10656 2005-11-17  James Livingston  <jrl@ids.org.au>
10658         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
10660         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
10661         free a NULL date.
10663 2005-11-17  James Livingston  <jrl@ids.org.au>
10665         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
10667         * lib/rb-stock-icons.c: emit a single warning rather than multiple
10668         assertions. Lookup the icon size correctly.
10670 2005-11-16  William Jon McCann  <mccann@jhu.edu>
10672         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
10673         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
10674         Fix build errors.
10676 2005-11-16  James Livingston  <jrl@ids.org.au>
10678         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
10679         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
10680         (rb_shell_preferences_sync_column_button): block the toggle signal of
10681         the column checkboxes while setting their initial state. This stops
10682         the visibility being re-set, which causes a lot of time being spent
10683         measuring the columns aagin when opening the prefs window.
10685         Use G_DEFINE_TYPE.
10687 2005-11-16  James Livingston  <jrl@ids.org.au>
10689         * sources/rb-sourcelist.c: (rb_sourcelist_init),
10690         (rb_sourcelist_edit_source_name): don't assume that the editable
10691         source name is in the first column, because it isn't. Fixes bug
10692         320137.
10694 2005-11-16  James Livingston  <jrl@ids.org.au>
10696         * daapsharing/rb-daap-mdns.h:
10697         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
10698         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
10699         parts can know why operations failed. Avahi can report that the daemon
10700         was not running. Howl doesn't do this (yet).
10701         
10702         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
10703         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
10704         (browse_cb): don't display mdns errors to the user, if it wa because
10705         the daemon was not running.
10707 2005-11-16  James Livingston  <jrl@ids.org.au>
10709         * rhythmdb/rhythmdb-property-model.c:
10710         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
10711         (rhythmdb_property_model_compare),
10712         (rhythmdb_property_model_insert),
10713         (rhythmdb_property_model_insert_prop),
10714         (rhythmdb_property_model_delete),
10715         (rhythmdb_property_model_delete_prop),
10716         (rhythmdb_property_model_get_value): use RBRefStrings rather than
10717         copying the string and re-creating the sort key. Saves a little bit of
10718         memory and time.
10720         (rhythmdb_property_model_perform_sync),
10721         (rhythmdb_property_model_sync): perform the count sync in an idle
10722         callback, so that it doesn't have to be re-run once per value when
10723         loading.
10725 2005-11-16  James Livingston  <jrl@ids.org.au>
10727         * rhythmdb/rhythmdb-query-model.c:
10728         (rhythmdb_query_model_entry_deleted_cb),
10729         (rhythmdb_query_model_remove_entry): remove deleted entries from the
10730         limited list. Stops problems if they are deleted, and then things on
10731         the main list are
10733 2005-11-16  James Livingston  <jrl@ids.org.au>
10735         * NEWS: update NEWS
10737         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
10738         button's minimise-to-tray action
10740 2005-11-16  James Livingston  <jrl@ids.org.au>
10742         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
10743         leak. Disable adding newly created files for now, because it doesn't
10744         work properly.
10746         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
10747         (rb_sourcelist_model_finalize):
10748         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
10749         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
10751 2005-11-16  James Livingston  <jrl@ids.org.au>
10753         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
10754         problem where a GError* wasn't being set to NULL. Actually check the
10755         result.
10757 2005-11-16  James Livingston  <jrl@ids.org.au>
10759         * doc/reference/tmpl/rb-entry-view.sgml:
10760         * doc/reference/tmpl/rhythmbox-unused.sgml:
10761         * doc/reference/tmpl/rhythmdb-query-model.sgml:
10762         * doc/reference/tmpl/rhythmdb.sgml:
10763         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
10764         docs, including the patch that was on bug 
10766         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
10767         API, because it should only be used by RhythmDB itself.
10769 2005-11-16  James Livingston  <jrl@ids.org.au>
10771         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
10772         pausing by middle clicking on the tray icon.
10774 2005-11-15  James Livingston  <jrl@ids.org.au>
10776         * configure.ac: enable audioscrobbler support by default, if libsoup
10777         is present.
10779 2005-11-15  James Livingston  <jrl@ids.org.au>
10781         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
10782         Closes bug 321157.
10784         * configure.ac:
10785         * daapsharing/rb-daap-connection.c: (build_message),
10786         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
10787         support gzip encoded daap connections.
10789         (handle_song_listing): fix leak
10791 2005-11-15  James Livingston  <jrl@ids.org.au>
10793         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
10794         * sources/rb-podcast-source.c:
10795         (rb_podcast_source_post_date_cell_data_func): make the date format
10796         translatable again, so that translators can choose the best format for
10797         their locale (%x is huge in some locales)
10799 2005-11-15  James Livingston  <jrl@ids.org.au>
10801         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
10802         (end_job): mark podcast episodes as failed, if the metadata load
10803         fails. This will prevent people playing non-audio enclosures, helping
10804         stop bug 320366.
10806 2005-11-14  James Livingston  <jrl@ids.org.au>
10808         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
10809         video sink to fakesink. This will stop problems (potentially crashers)
10810         that will occur if the file contains a video stream.
10812         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
10813         rather than using magic numbers everywhere.
10815         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
10816         * sources/rb-podcast-source.c:
10817         (rb_podcast_source_songs_show_popup_cb),
10818         (rb_podcast_source_cmd_download_post),
10819         (rb_podcast_source_post_status_cell_data_func),
10820         (rb_podcast_source_entry_activated_cb): use the above constants.
10822         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
10823         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
10824         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
10825         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
10826         (cancel_job), (download_progress_cb),
10827         (rb_podcast_manager_cancel_download),
10828         (rb_podcast_manager_insert_feed): use the constants, and fix a
10829         trhead-safety issue.
10831 2005-11-14  Bastien Nocera  <hadess@hadess.net>
10833         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
10834         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
10835         entry-changed events after stats on startup, fixes entry deleted from
10836         filtered views not disappearing
10838 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10840         Fix rhythmdb query model refcount and polling problems. Closes bug
10841         321410.
10843         * rhythmdb/rhythmdb-property-model.c:
10844         (rhythmdb_property_model_finalize):
10845          Unref the query model if we have one.
10847         * rhythmdb/rhythmdb-query-model.h:
10848          Remove poll and cancel methods.  Query cancellation
10849          never did anything anyway.
10851         * rhythmdb/rhythmdb-query-model.c:
10852         (rhythmdb_query_model_init): Remove GAsyncQueues.
10853          Replace the GAsyncQueue-based update processing
10854          with a simpler g_idle_add approach; still has the
10855          same queueing properties, but now we don't poll the
10856          model forever and updates are processed immediately.
10858         (_unref_entry), (rhythmdb_query_model_finalize):
10859          Unref DB entries when finalized
10861         (rhythmdb_query_model_has_pending_changes):
10862          Use our own counter to decide if there are updates pending
10864         (rhythmdb_query_model_process_update), (idle_process_update):
10865          Process updates using g_idle_add, or directly if possible
10867         (rhythmdb_query_model_signal_complete),
10868         (rhythmdb_query_model_add_entries):
10869          Change to new update processing method
10871         (idle_poll_model), (rhythmdb_query_model_poll):
10872          Remove GAsyncQueue-based update processing.
10874         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
10875          No need to poll the model any more - updates are processed
10876          directly for synchronous queries.
10878         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
10879          Property model needs to be unref'd here
10881         * sources/rb-library-source.c: (rb_library_source_do_query):
10882          Don't try to cancel the active query (it never worked anyway),
10883          remove obsolete poll call, unref property models as required,
10884          and don't unref the cached 'all' query, since hold on to it.
10885          We unref it when the sort order changes, which forces the query
10886          to be rerun.
10888         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
10889          Unref the property model as required
10891         (rb_podcast_source_do_query):
10892          Treat any query with no selected feeds and no search text as
10893          an 'all' query.  Unref query models except for the cached
10894          'all' query, since we hold on to that.
10896         (rb_podcast_source_cmd_update_all):
10897          Unref the property model as required.
10899         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
10900          Don't try to cancel the query (it never worked anyway)
10902         (rb_entry_view_poll_model):
10903          No need for this any more.
10905         * widgets/rb-entry-view.h:
10906          Remove obsolete function rb_entry_view_poll_model
10908         * widgets/rb-property-view.c: (rb_property_view_set_property):
10909          Ref and unref the property model as required.
10911 2005-11-14  James Livingston  <jrl@ids.org.au>
10913         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
10915         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
10916         for error. Closes bug 321416.
10918 2005-11-14  James Livingston  <jrl@ids.org.au>
10920         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
10922         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
10923         a crasher if a feed's last-post value isn't set. Closes bug 321353.
10925 2005-11-14  James Livingston  <jrl@ids.org.au>
10927         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
10928         * shell/rb-removable-media-manager.c:
10929         (rb_removable_media_manager_set_uimanager):
10930         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
10931         translation domain for GTK action groups.
10933 2005-11-12  James Livingston  <jrl@ids.org.au>
10935         * po/POTFILES.in: remove the old station-new files
10937 2005-11-12  James Livingston  <jrl@ids.org.au>
10939         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
10940         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
10941         (save_entry): cause Rhythmbox to re-read the metadata from a file,
10942         when upgrading from a pre-Date-supporting version to a version that
10943         supports Date metadata. Closes bug 320760.
10945 2005-11-12  James Livingston  <jrl@ids.org.au>
10947         Add "update all podcast feeds" command. Closes bug 319954.
10949         * data/ui/rhythmbox-ui.xml: add to source context menu.
10951         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10952         (register_action_group), (rb_podcast_source_cmd_download_post),
10953         (rb_podcast_source_cmd_delete_feed),
10954         (rb_podcast_source_cmd_properties_feed),
10955         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
10956         rather than the shell.
10958         (rb_podcast_source_update_feed_func),
10959         (rb_podcast_source_cmd_update_all): update every feed.
10961 2005-11-11  James Livingston  <jrl@ids.org.au>
10963         * shell/rb-shell-player.c: (rb_shell_player_class_init),
10964         (rb_shell_player_constructor), (rb_shell_player_finalize):
10965         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
10966         others follow the HIG recommentations.
10968 2005-11-11  James Livingston  <jrl@ids.org.au>
10970         * podcast/rb-podcast-manager.c:
10971         (rb_podcast_manager_subscribe_feed): check that the url is valid,
10972         before trying to use it.
10974 2005-11-11  James Livingston  <jrl@ids.org.au>
10976         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
10977         (rb_entry_view_append_column): When sorting by year, sort by album
10978         within a particular year.
10980 2005-11-11  James Livingston  <jrl@ids.org.au>
10982         * NEWS: updates
10984 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
10985         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
10986         spelling of "Language."
10988 2005-11-11  James Livingston  <jrl@ids.org.au>
10990         * rhythmdb/rhythmdb-property-model.c:
10991         (rhythmdb_property_model_row_inserted_cb),
10992         (rhythmdb_property_model_prop_changed_cb),
10993         (rhythmdb_property_model_entry_removed_cb),
10994         (rhythmdb_property_model_insert_prop),
10995         (rhythmdb_property_model_sync): display the count after the "All"
10996         entry of a property model.
10998         * widgets/rb-property-view.c: (rb_property_view_class_init),
10999         (rb_property_view_finalize), (rb_property_view_constructor): use
11000         G_DEFINE_TYPE
11002 2005-11-10  James Livingston  <jrl@ids.org.au>
11004         * rhythmdb/rhythmdb-query-model.c:
11005         (rhythmdb_query_model_remove_entry):
11006         * rhythmdb/rhythmdb-query-model.h: make
11007         rhythmdb_query_model_remove_entry return whether the entry was in the
11008         model.
11010         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
11011         don't add non-SONG entries, as it doesn't really work and can cause
11012         crashes.
11014         (rb_playlist_source_remove_location): assert if the playlist and model
11015         differ on whether the entry is in the playlist
11017 2005-11-10  James Livingston  <jrl@ids.org.au>
11019         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
11020         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
11021         (rb_podcast_manager_thread_parse_feed),
11022         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
11023         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
11024         emulating one with a list and mutex. Fixes a couple of threading
11025         issues.
11026         
11027         (rb_podcast_manager_insert_feed): fix some problems with ignoring
11028         updated feeds.
11029         
11030         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
11031         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
11032         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
11033         * podcast/rb-podcast-parse.c: (rb_insert_item),
11034         (rb_podcast_parse_channel_free):
11035         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
11036         fix some typos, and make a bit of code clearer.
11038 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
11040         Make the "delete podcast" dialog better. Closes bug 320899.
11042         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
11043         Add PROP_WINDOW for rb_shell_get_property so we can access the
11044         GtkWindow widget of the main window. 
11045         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
11046         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
11047         podcast feed delete dialog less confusing as well.
11049 2005-11-09  James Livingston  <jrl@ids.org.au>
11051         * shell/rb-removable-media-manager.c:
11052         (rb_removable_media_manager_mount_volume),
11053         (rb_removable_media_manager_scan): Fix a crasher where we were getting
11054         NULL for a cd volume.
11056 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11058         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
11059         method return a gboolean indicating whether the changes
11060         to the entry have already been applied.
11062         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
11063         only modify the entry if impl_entry_set returns FALSE.
11065         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
11066         When setting the location of an entry, update the
11067         hash table mapping locations to entries.
11069 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11071         * data/glade/Makefile.am:
11072         * iradio/Makefile.am:
11073           Remove 'new station' dialog.
11075         * iradio/rb-station-properties-dialog.h:
11076         * sources/rb-iradio-source.c: (impl_song_properties):
11077         * shell/rb-shell.c: (rb_shell_cmd_new_station):
11078          Add 'new station' mode parameter to
11079          rb_station_properties_dialog_new.
11081         * (rb_station_properties_dialog_response_cb),
11082         (rb_station_properties_dialog_create_station):
11083          When in 'new station' mode, create the station
11084          when OK button is pressed.
11086         * iradio/rb-station-properties-dialog.c:
11087         (rb_station_properties_dialog_location_changed_cb):
11088          Only enable OK button if a location is specified
11089         (rb_station_properties_dialog_init),
11090         (rb_station_properties_dialog_new),
11091         (rb_station_properties_dialog_update),
11092         (rb_station_properties_dialog_update_title),
11093         (rb_station_properties_dialog_rated_cb),
11094         (rb_station_properties_dialog_update_play_count),
11095         (rb_station_properties_dialog_update_bitrate),
11096         (rb_station_properties_dialog_update_last_played),
11097         (rb_station_properties_dialog_update_rating),
11098         (rb_station_properties_dialog_update_playback_error),
11099         (rb_station_properties_dialog_show):
11100          Handle 'new station' mode, where there's no current
11101          station to edit.
11103 2005-11-08  James Livingston  <jrl@ids.org.au>
11105         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
11106         keybinding for track columns consistent between library and playlist
11107         sources.
11109 2005-11-07  James Livingston  <jrl@ids.org.au>
11111         * data/ui/rhythmbox-ui.xml:
11112         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
11113         "Edit" item to playlist menu. Closes bug 311470.
11115 2005-11-07  James Livingston  <jrl@ids.org.au>
11117         patch by: Jaap A. Haitsma <jaap@haitsma.org>
11119         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
11120         confirmation to save dialogs, with gtk 2.8 or higher.
11122 2005-11-07 James Livingston  <jrl@ids.org.au>
11123         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
11124         requirement to a general on, because people are going to have it for
11125         the other dependencies.
11127 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
11129         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
11130         delete dialog less confusing.  Use HIG recommended button order.
11131         Closes bug 320840.
11133 2005-11-06  James Livingston  <jrl@ids.org.au>
11135         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
11136         drag-and-drop error.
11137         
11138         * sources/rb-library-source.c: (rb_library_source_constructor): only
11139         add drag-and-drop for the Library itself, subclasses can add support
11140         themselves if they want it.
11142         * sources/rb-removable-media-source.c:
11143         (rb_removable_media_source_class_init): by default removable media
11144         sources do not support dnd
11146 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
11148         * data/glade/station-properties.glade:
11149          Add box containing error icon and error message label
11150         * iradio/rb-station-properties-dialog.c:
11151         (rb_station_properties_dialog_class_init),
11152         (rb_station_properties_dialog_finalize):
11153          Change this class to use G_DEFINE_TYPE
11154         (rb_station_properties_dialog_init),
11155         (rb_station_properties_dialog_update),
11156         (rb_station_properties_dialog_update_playback_error):
11157          Display error icon and message when there is one, and hide the error
11158          box otherwise.
11159         (rb_station_properties_dialog_show): Hack widget show
11160          method to update the visibility of the error info box when showing
11161          the widget.  Otherwise the icon is displayed all the time (same thing
11162          is done in rb-song-info). Closes bug 320749.
11164 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
11166         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
11167         parsing of the duration of podcast episodes from the feed. Closes bug
11168         320748.
11170 2005-11-05  James Livingston  <jrl@ids.org.au>
11172         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
11173         release date metadata ("Year"). Closes bug 166093.
11175         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
11176         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
11177         (rb_metadata_gst_add_tag_data):
11178         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
11179         (save_entry):
11180         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
11181         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
11182         (set_props_from_metadata), (rhythmdb_entry_set_internal),
11183         (rhythmdb_prop_get_type):
11184         * rhythmdb/rhythmdb.h: add support for "date" property
11185         
11186         * data/glade/general-prefs.glade:
11187         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
11188         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
11189         (rb_entry_view_append_column):
11190         * widgets/rb-entry-view.h:
11191         * sources/rb-library-source.c: (rb_library_source_constructor):
11192         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
11193         "Year" colums
11195         * data/glade/song-info.glade:
11196         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
11197         (rb_song_info_construct_single), (rb_song_info_constructor),
11198         (rb_song_info_populate_dialog), (rb_song_info_update_year),
11199         (rb_song_info_sync_entry_single): Add "Year" to song info window
11201         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
11202         sorted by year.
11204 2005-11-05  James Livingston  <jrl@ids.org.au>
11206         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
11207         description if it's very long.
11209 2005-11-05  James Livingston  <jrl@ids.org.au>
11211         pathc by: Artem Baguinski <femistofel@gmail.com>
11213         * help/C/Makefile.am:
11214         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
11215         Closes bug 320613.
11217 2005-11-05  James Livingston  <jrl@ids.org.au>
11219         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
11221         * daapsharing/rb-daap-share.c: (write_next_chunk),
11222         (message_finished), (databases_cb): Use chunked file loading and
11223         sending in the DAAP server. This should reduce the amount of memory
11224         required to send files to the client.
11226 2005-11-05  James Livingston  <jrl@ids.org.au>
11228         * configure.ac: make the nautilus_burn_drive_door_is_open detection
11229         work better on some systems. Closes 320622.
11231 2005-11-05  James Livingston  <jrl@ids.org.au>
11233         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
11234         homepage, so that users can find out what AudioScrobbler is. Add
11235         access keys.
11237         * data/glade/daap-prefs.glade:
11238         * data/glade/general-prefs.glade:
11239         * data/glade/library-prefs.glade: make the indent be more consistent
11241         * data/glade/podcast-prefs.glade: 
11242         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
11243         (impl_get_config_widget): move thing out of code into glade, where
11244         they belong
11246 2005-11-05  James Livingston  <jrl@ids.org.au>
11248         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
11249         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
11251 2005-11-04  James Livingston  <jrl@ids.org.au>
11253         * configure.ac: don't print DAAP configure info twice
11255 2005-11-04  James Livingston  <jrl@ids.org.au>
11257         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
11258         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
11259         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
11260         #ifdefs, since we removed the symbol. Oops
11262 2005-11-04  James Livingston  <jrl@ids.org.au>
11264         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
11265         after the connect line, not before. Oops.
11267 2005-11-04  James Livingston  <jrl@ids.org.au>
11269         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
11270         fix some warnings
11272 2005-11-03  James Livingston  <jrl@ids.org.au>
11274         * NEWS: update the news file
11276         * data/glade/general-prefs.glade: make the prefs refer to "time" not
11277         "duration" column.
11279         * data/ui/rhythmbox-ui.xml:
11280         * shell/rb-playlist-manager.c:
11281         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
11282         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
11283         and "delete" for feeds.
11285 2005-11-03  James Livingston  <jrl@ids.org.au>
11287         * sources/rb-podcast-source.c: (impl_delete),
11288         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
11289         feed. Closes 319760.
11291 2005-11-03  James Livingston  <jrl@ids.org.au>
11293         Don't start playing from the remote site when a un-downloaded podcast
11294         is activated. Closes 319983.
11295         
11297         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
11298         (write_job_data), (download_progress_cb): write the local location as
11299         soon as any data is recieved
11301         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
11302         the mountpoint to NULL for podcast episodes that haven't yet been
11303         downloaded.
11304         
11305         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
11306         start playing a podcast if it hasn't been downloaded.
11307         
11308         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
11309         (rb_podcast_source_entry_activated_cb): begin downloading when the
11310         podcast is activated.
11312 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
11314         * data/glade/general-prefs.glade:  Fix capitalization.
11315         * shell/rb-removable-media-manager.c:  Add a mnemonic.
11316         * sources/rb-podcast-source.c:
11317         (rb_podcast_source_songs_show_popup_cb),
11318         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
11320 2005-11-03  James Livingston  <jrl@ids.org.au>
11322         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
11324         * shell/rb-removable-media-manager.c:
11325         (rb_removable_media_manager_mount_volume): don't check network or
11326         autofs mounts, as they're not going to be removable media. Stops
11327         sending lots of warnings to syslog. Closes 320571.
11329         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
11330         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
11331         320570.
11333 2005-11-03  James Livingston  <jrl@ids.org.au>
11335         Add support for playing audio CDs. Metadata lookup is done using
11336         SoundJuicer's MusicBrainz lookup code, which can be switched to using
11337         the library when it gets broken out of S-J.
11338         
11339         Add a "rescan media" menu item, and commands for ejecting removable
11340         media.
11342         Move nautilus-cd-burner from optional to required depenency.
11344         * configure.ac:
11345         * data/ui/rhythmbox-ui.xml:
11346         * metadata/Makefile.am:
11347         + metadata/sj-error.c:
11348         + metadata/sj-error.h:
11349         + metadata/sj-metadata-marshal.list:
11350         + metadata/sj-metadata-musicbrainz.c:
11351         + metadata/sj-metadata-musicbrainz.h:
11352         + metadata/sj-metadata.c:
11353         + metadata/sj-metadata.h:
11354         + metadata/sj-structures.c:
11355         + metadata/sj-structures.h:
11356         * player/Makefile.am:
11357         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
11358         * po/POTFILES.in:
11359         * shell/Makefile.am:
11360         * shell/rb-removable-media-manager.c:
11361         (rb_removable_media_manager_dispose), (poll_tray_opened),
11362         (end_cd_drive_monitor), (begin_cd_drive_monitor),
11363         (rb_removable_media_manager_load_media),
11364         (rb_removable_media_manager_mount_volume),
11365         (rb_removable_media_manager_cmd_eject_medium),
11366         (rb_removable_media_manager_cmd_scan_media),
11367         (rb_removable_media_manager_check_volume),
11368         (rb_removable_media_manager_unmount_volume_swap),
11369         (rb_removable_media_manager_scan):
11370         * sources/Makefile.am:
11371         + sources/rb-audiocd-source.c:
11372         + sources/rb-audiocd-source.h:
11373         * tests/Makefile.am:
11375 2005-11-02  James Livingston  <jrl@ids.org.au>
11377         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
11379         * sources/rb-iradio-source.c:
11380         (stations_view_drag_data_received_cb):
11381         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
11382         don't crash when the second uri is missing frm the drop, which
11383         browsers sometimes do.
11385 2005-11-01  James Livingston  <jrl@ids.org.au>
11387         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
11388         (rb_podcast_manager_insert_feed):
11389         * podcast/rb-podcast-manager.h:
11390         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
11391         (rb_set_item_value), (rb_validate_item_propert),
11392         (rb_podcast_parse_date), (rb_podcast_parse_time):
11393         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
11394         from the feed.
11396 2005-10-31  James Livingston  <jrl@ids.org.au>
11398         * ChangeLog:
11399         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
11400         huge
11402 2005-10-31  James Livingston  <jrl@ids.org.au>
11404         * sources/rb-podcast-source.c:
11405         (rb_podcast_source_post_date_cell_data_func): generate the date string
11406         in a way that is correct in all locales.
11407         
11408         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
11409         (rhythmdb_entry_sync_mirrored): make the last played/date added
11410         columns use the same format.
11412 2005-10-30  James Livingston  <jrl@ids.org.au>
11415         * podcast/rb-podcast-manager.c:
11416         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
11417         
11418         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
11419         iradio errors better.
11421 2005-10-30  James Livingston  <jrl@ids.org.au>
11423         patch by: Artem Baguinski <femistofel@gmail.com>
11425         * metadata/rb-metadata-gst.c: (rb_metadata_init):
11427 2005-10-30  James Livingston  <jrl@ids.org.au>
11429         * podcast/rb-podcast-manager.c:
11430         (rb_podcast_manager_subscribe_feed),
11431         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
11432         already been added, usually as a radio station. Closes 319434.
11434 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
11436         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
11437         mnemonics & resize issues)
11438         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
11439         & mnemonics)
11440         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
11441         widget for the "download location" label.
11443         Closes bug 320184.
11445 2005-10-29  James Livingston  <jrl@ids.org.au>
11447         Allow the search box to match words from multiple properties. Closes
11448         bug 139196. Thanks to the person from IRC who did a lot of the initial
11449         work.
11452         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
11453         * lib/rb-util.h: Add functions to split a string into words, and one
11454         to perform "search folding" which is currently like casefolding but
11455         also strips punctuation
11456         
11457         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
11458         (rhythmdb_query_preprocess):
11459         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
11460         against title, artist, album and genre (for the search box)
11461         
11462         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
11463         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
11464         (save_entry), (search_match_properties),
11465         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
11466         splitting into words and matching across multiple properties.
11467         
11468         * sources/rb-library-source.c: (construct_query_from_selection): use
11469         the new SEARCH_MATCH property for the search box
11470         
11471         * widgets/rb-entry-view.c: (type_ahead_search_func):
11473 2005-10-29  James Livingston  <jrl@ids.org.au>
11475         * lib/rb-stock-icons.c: (rb_stock_icons_init):
11476         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
11477         
11478         * shell/rb-playlist-manager.c:
11479         * shell/rb-shell.c: use the above stock ids, so that the icons get set
11480         correctly.
11481         
11482         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
11483         initial state of the shuffle/repeat menu items correctly. Patch from
11484         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
11486 2005-10-29  James Livingston  <jrl@ids.org.au>
11488         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
11489         double-free.
11490         
11491         * widgets/rb-cell-renderer-pixbuf.c:
11492         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
11493         icon go black when row is not selected
11494         
11495         * doc/reference/tmpl/rb-daap-connection.sgml:
11496         * doc/reference/tmpl/rhythmdb.sgml: doc updates
11498 2005-10-29  James Livingston  <jrl@ids.org.au>
11500         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
11501         silly mistake, where it could think partial downloads has been
11502         completed.
11504 2005-10-29  James Livingston  <jrl@ids.org.au>
11506         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
11508         * data/glade/song-info.glade:
11509         * widgets/rb-song-info.c: (rb_song_info_construct_single),
11510         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
11511         (rb_song_info_sync_entry_single): show the disc number in the song
11512         info window. From bug 311199.
11514 2005-10-29  James Livingston  <jrl@ids.org.au>
11516         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
11517         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
11518         regularly. Closes 155306.
11520 2005-10-29  James Livingston  <jrl@ids.org.au>
11522         * podcast/rb-podcast-manager.c:
11523         (rb_podcast_manager_download_entry),
11524         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
11525         (rb_podcast_manager_insert_feed):
11526         * podcast/rb-podcast-manager.h:
11527         * podcast/rb-podcast-parse.c: (rb_set_item_value),
11528         (rb_podcast_parser_start_element):
11529         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
11530         don't download them again. However, it can't resume
11531         partially-downloaded ones.
11533 2005-10-28  James Livingston  <jrl@ids.org.au>
11535         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
11536         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
11537         work. Don't attempt to write duration as a tag.
11539         Thanks to Artem Baguinski <femistofel@gmail.com>
11541 2005-10-28  James Livingston  <jrl@ids.org.au>
11543         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
11544         don't disable the status-bar menu item when the current source doesn't
11545         use the search box.
11547 2005-10-28  James Livingston  <jrl@ids.org.au>
11549         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
11550         crash if the file has unknown length
11552 2005-10-27  James Livingston  <jrl@ids.org.au>
11554         * daapsharing/rb-daap-connection.c:
11555         (rb_daap_connection_state_done): don't assert when a daap server
11556         doesn't have any playlists
11558 2005-10-27  James Livingston  <jrl@ids.org.au>
11560         * sources/rb-sourcelist-model.c:
11561         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
11562         source for the sourcelist. Closes bug 319817.
11564 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
11566         Patch by: Renato Araujo <renatox@gmail.com>
11568         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11569           Fix for a crasher caused by previous patch.
11571 2005-10-26  James Livingston  <jrl@ids.org.au>
11573         * data/glade/podcast-prefs.glade:
11574         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
11575         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
11576         * sources/rb-podcast-source.c: (rb_podcast_source_new):
11577         * podcast/rb-podcast-manager.c:
11578         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
11579         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
11580         * shell/rb-shell.c: Change some strings to make them more consistent.
11581         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
11582         makes it clearer which is which. "Episode" may not be the best term,
11583         but it seems to be widely used.
11584         
11585         Also fix some strings that weren't marked as translatable.
11586         
11587         * podcast/rb-feed-podcast-properties-dialog.c:
11588         (rb_feed_podcast_properties_dialog_class_init),
11589         (rb_feed_podcast_properties_dialog_finalize):
11590         * podcast/rb-new-podcast-dialog.c:
11591         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
11592         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
11593         (rb_simple_view_finalize), (rb_simple_view_constructor):
11594         * podcast/rb-podcast-properties-dialog.c:
11595         (rb_podcast_properties_dialog_class_init),
11596         (rb_podcast_properties_dialog_finalize):
11597         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
11598         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
11599         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
11600         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
11601         use G_DEFINE_TYPE, instead of doing it manually.
11603 2005-10-26  James Livingston  <jrl@ids.org.au>
11605         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
11606         <jrl@ids.org.au>
11608         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
11609         (rb_metadata_init): Check that the necessary plugins are present to do
11610         id3 editing.
11611         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
11612         corrupted before replacing the original.
11614 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
11616         reviewed by: James Livingston <jrl@ids.org.au>
11618         Assign sequential IDs to playlists for DAAP rather than using the
11619         address of the playlist object.  Less flaky, and should work on 64bit
11620         platforms. Closes bug 319304.
11622         * daapsharing/rb-daap-share.c: 
11623         (rb_daap_share_set_property): watch for playlist creation
11624         (_find_by_id), (_find_by_source): playlist list search functions
11625         (rb_daap_share_playlist_created),
11626         (rb_daap_share_process_playlist),
11627         (rb_daap_share_playlist_destroyed):
11628          update playlist list as it changes, use weak refs on 
11629          playlists to get notified on destroy.
11630         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
11631          destroy playlist list on shutdown
11632         (add_playlist_to_mlcl): use playlist ID rather than pointer in
11633          DAAP response
11634         (databases_cb): search for playlist ID in list rather than just
11635          converting it to a pointer; return HTTP 404 if playlist not 
11636          found.
11637         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
11638          is already used for the main library
11640 2005-10-26  James Livingston  <jrl@ids.org.au>
11642         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
11644         * daapsharing/rb-daap-connection.c: (build_message),
11645         (http_response_handler), (http_get), (handle_server_info),
11646         (handle_login), (handle_update), (handle_database_info),
11647         (handle_song_listing), (handle_playlists),
11648         (handle_playlist_entries), (handle_logout),
11649         (rb_daap_connection_new), (rb_daap_connection_logout),
11650         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
11651         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
11652         * daapsharing/rb-daap-connection.h:
11653         * sources/rb-daap-source.c: (rb_daap_source_activate),
11654         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
11655         (rb_daap_source_disconnect): Make connecting to DAAP sources
11656         asynchronous, so that non-responsive servers don't hang the UI. Closes
11657         316225.
11659 2005-10-26  James Livingston  <jrl@ids.org.au>
11661         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
11663         * rhythmdb/rhythmdb-query-model.c:
11664         (rhythmdb_query_model_do_reorder): generate the row re-order map
11665         correctly.
11666         
11667         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
11668         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
11669         Update selection when rows get re-ordered. Closes 319718.
11671 2005-10-26  James Livingston  <jrl@ids.org.au>
11673         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
11675         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
11676         actually set the db pointer in play orders. Closes 319818.
11678 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
11680         Patch by: Renato Araujo <renatox@gmail.com>
11682         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
11683         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
11684         (rb_podcast_manager_update_synctime),
11685         (rb_podcast_manager_config_changed),
11686         (rb_podcast_manager_insert_feed):
11687         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
11688         (save_entry):
11689         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
11690         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
11691         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
11693 2005-10-25  James Livingston  <jrl@ids.org.au>
11695         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
11696         (db_entry_deleted_cb): don't share tracks that are hidden because the
11697         file is missing.
11699 2005-10-22  James Livingston  <jrl@ids.org.au>
11701         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
11702         crash if an entry couldn't be playerd, without streamer setting an
11703         error.
11705         
11706         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11708         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
11709         (rb_new_podcast_dialog_text_changed): enable the add button when a url
11710         is pasted into the dialog.
11711         
11712         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11713         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
11714         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
11715         (rb_podcast_parse_channel_free):
11716         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
11717         feeds
11719 2005-10-22  James Livingston  <jrl@ids.org.au>
11721         * sources/rb-iradio-source.c:
11722         (rb_iradio_source_first_time_changed): Make merging the default
11723         stations actually work.
11724         
11725         * sources/rb-podcast-source.c:
11726         (rb_podcast_source_post_status_cell_data_func): fix problem where some
11727         people weren't seing the percentages in the stats column.
11729 2005-10-21  James Livingston  <jrl@ids.org.au>
11731         Patch from Caio Marcelo <cmarcelo@gmail.com>
11733         * shell/rb-shell.c: (rb_shell_window_state_cb),
11734         (rb_shell_get_visibility), (idle_hide_mainwindow),
11735         (rb_shell_set_visibility): Make the "show window" item in the tray
11736         icon menu show the toggle state correctly. Use a better policy on
11737         deciding whether the window is "visible" or not. Closes bug 308053.
11739 2005-10-21  James Livingston  <jrl@ids.org.au>
11741         * doc/reference/tmpl/rb-shell-preferences.sgml:
11742         * shell/Makefile.am: fix building with gtk-doc
11744         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
11745         don't submit podcasts to audioscrobbler
11746         
11747         
11748         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11749         
11750         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
11751         (rb_set_item_value): strip spaces surrounding podcast urls
11752         
11754         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
11755         
11756         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
11758 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
11760         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
11761          Audioscrobbler/Last.fm support
11763         * configure.ac:
11764         * data/glade/Makefile.am:
11765         * data/glade/audioscrobbler-prefs.glade:
11766         * data/rhythmbox.schemas:
11767         * lib/Makefile.am:
11768         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
11769         * lib/md5.h:
11770         * lib/rb-preferences.h:
11771         * po/POTFILES.in:
11772         * shell/Makefile.am:
11773         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
11774         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
11775         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
11776         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
11777         (rb_audioscrobbler_timeout_cb), (mkmd5),
11778         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
11779         (rb_audioscrobbler_do_handshake),
11780         (rb_audioscrobbler_do_handshake_cb),
11781         (rb_audioscrobbler_submit_queue),
11782         (rb_audioscrobbler_submit_queue_cb),
11783         (rb_audioscrobbler_import_settings),
11784         (rb_audioscrobbler_preferences_sync),
11785         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
11786         (rb_audioscrobbler_gconf_changed_cb),
11787         (rb_audioscrobbler_song_changed_cb),
11788         (rb_audioscrobbler_username_entry_changed_cb),
11789         (rb_audioscrobbler_username_entry_activate_cb),
11790         (rb_audioscrobbler_password_entry_changed_cb),
11791         (rb_audioscrobbler_password_entry_activate_cb),
11792         (rb_audioscrobbler_enabled_check_changed_cb),
11793         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
11794         (rb_audioscrobbler_load_entry_from_string),
11795         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
11796         (rb_audioscrobbler_print_queue),
11797         (rb_audioscrobbler_free_queue_entries):
11798         * shell/rb-audioscrobbler.h:
11799         * shell/rb-shell-preferences.c:
11800         (rb_shell_preferences_append_audioscrobbler_config):
11801         * shell/rb-shell-preferences.h:
11802         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
11803         (rb_shell_select_source), (rb_shell_cmd_preferences):
11804         * sources/Makefile.am:
11806 2005-10-21  James Livingston  <jrl@ids.org.au>
11808         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
11810         * Makefile.am:
11811         * NEWS:
11812         * configure.ac:
11813         * data/art/Makefile.am:
11814         * data/glade/Makefile.am:
11815         * data/rhythmbox.schemas:
11816         * data/ui/rhythmbox-ui.xml:
11817         * doc/reference/Makefile.am:
11818         * doc/reference/tmpl/rhythmdb.sgml:
11819         * lib/rb-stock-icons.c: (rb_stock_icons_init):
11820         * lib/rb-stock-icons.h:
11821         * po/POTFILES.in:
11822         * podcast/Makefile.am:
11823         + podcast/rb-feed-podcast-properties-dialog.c:
11824         + podcast/rb-feed-podcast-properties-dialog.h:
11825         + podcast/rb-new-podcast-dialog.c:
11826         + podcast/rb-new-podcast-dialog.h:
11827         + podcast/rb-podcast-manager.c:
11828         + podcast/rb-podcast-manager.h:
11829         + podcast/rb-podcast-marshal.list:
11830         + podcast/rb-podcast-parse.c:
11831         + podcast/rb-podcast-parse.h:
11832         + podcast/rb-podcast-properties-dialog.c:
11833         + podcast/rb-podcast-properties-dialog.h:
11834         * rhythmdb/rhythmdb-property-model.c:
11835         (rhythmdb_property_model_set_property),
11836         (rhythmdb_property_model_enable_drag):
11837         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
11838         (rhythmdb_tree_parser_end_element), (save_entry),
11839         (rhythmdb_tree_save):
11840         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
11841         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
11842         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
11843         (rhythmdb_entry_podcast_feed_get_type):
11844         * rhythmdb/rhythmdb.h:
11845         * shell/Makefile.am:
11846         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
11847         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
11848         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
11849         (rb_shell_quit):
11850         * sources/Makefile.am:
11851         + sources/rb-podcast-source.c:
11852         + sources/rb-podcast-source.h:
11853         * widgets/Makefile.am:
11854         * widgets/rb-property-view.c: (rb_property_view_class_init),
11855         (rb_property_view_constructor),
11856         (rb_property_view_selection_changed_cb),
11857         (rb_property_view_get_treeview):
11858         * widgets/rb-property-view.h:
11859         + widgets/rb-simple-view.c:
11860         + widgets/rb-simple-view.h:
11862 2005-10-20  James Livingston  <jrl@ids.org.au>
11864         * NEWS: update with changes since 0.9.1
11866         * configure.ac: check whether collate_key_for_filename is available
11867         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
11868         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
11869         it if it isn't available in glib (i.e. building against 2.6)
11870         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
11871         collation to get "natural sorting". Closes bug 158599.
11873 2005-10-20  James Livingston  <jrl@ids.org.au>
11875         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
11877         * doc/reference/tmpl/rb-shell-player.sgml:
11878         * shell/rb-shell-player.c: (rb_shell_player_class_init),
11879         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
11880         (rb_shell_player_get_playing),
11881         (rb_shell_player_get_playing_time_string),
11882         (rb_shell_player_get_playing_time),
11883         (rb_shell_player_set_playing_time), (tick_cb),
11884         (rb_shell_player_get_playing_path), (filter_mmkeys):
11885         * shell/rb-shell-player.h:
11886         * shell/rb-shell-player.xml:
11887         * shell/rb-shell.c: (rb_shell_constructor),
11888         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
11889         (rb_shell_set_window_title), (rb_shell_playing_impl),
11890         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
11891         Merge the duration_changed and elapsed_changed DBUS signals into one
11892         elapsed_changed signal. Check that the output argument isn't NULL
11893         before trying to put things in it.
11895 2005-10-20  James Livingston  <jrl@ids.org.au>
11897         * rhythmdb/rhythmdb-query-model.c:
11898         (rhythmdb_query_model_entry_added_cb),
11899         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
11900         problem where hidden entries could be shown in playlists.
11901         
11902         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
11903         issues when switching in and out of small mode.
11905 2005-10-19  James Livingston  <jrl@ids.org.au>
11907         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
11908         (rb_shell_constructor), (rb_shell_window_state_cb),
11909         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
11910         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
11911         (rb_shell_view_smalldisplay_changed_cb),
11912         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
11913         (rb_shell_sync_paned): remove gconf window-state races, prevent
11914         changing small mode too often, fix window event races. Closes 122806.
11916         
11917         Patch from Caio Marcelo <cmarcelo@gmail.com>
11919         * data/rhythmbox.schemas:
11920         * shell/rb-shell.c: (rb_shell_window_state_cb),
11921         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
11922         Remember the position of the window. Closes 315289.
11924 2005-10-19  James Livingston  <jrl@ids.org.au>
11926         Patch from Christophe Fergeau  <teuf@gnome.org>
11928         * configure.ac: determine whether libgpod is present when neither
11929         --with-ipod nor --without-ipod is passed
11931 2005-10-19  James Livingston  <jrl@ids.org.au>
11933         Patch from Caio Marcelo <cmarcelo@gmail.com>
11935         * shell/rb-shell-player.c: (do_next_idle),
11936         (rb_shell_player_do_previous), (rb_shell_player_do_next),
11937         (rb_shell_player_do_previous_or_seek),
11938         (rb_shell_player_previous_button_cb),
11939         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
11940         (rb_shell_player_cmd_next), (eos_cb):
11941         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
11942         end of the playlist is reached.
11944 2005-10-19  Christopher Aillon  <caillon@redhat.com>
11946         * lib/rb-thread.c: fix a few GSource leaks
11948 2005-10-19  James Livingston  <jrl@ids.org.au>
11950         * doc/reference/tmpl/bacon-volume.sgml:
11951         * doc/reference/tmpl/disclosure-widget.sgml:
11952         * doc/reference/tmpl/eel-gconf-extensions.sgml:
11953         * doc/reference/tmpl/eggnotificationbubble.sgml:
11954         * doc/reference/tmpl/eggtrayicon.sgml:
11955         * doc/reference/tmpl/gsequence.sgml:
11956         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
11957         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
11958         * doc/reference/tmpl/rb-daap-connection.sgml:
11959         * doc/reference/tmpl/rb-daap-dialog.sgml:
11960         * doc/reference/tmpl/rb-daap-mdns.sgml:
11961         * doc/reference/tmpl/rb-daap-share.sgml:
11962         * doc/reference/tmpl/rb-daap-sharing.sgml:
11963         * doc/reference/tmpl/rb-daap-source.sgml:
11964         * doc/reference/tmpl/rb-daap-src.sgml:
11965         * doc/reference/tmpl/rb-daap-structure.sgml:
11966         * doc/reference/tmpl/rb-debug.sgml:
11967         * doc/reference/tmpl/rb-dialog.sgml:
11968         * doc/reference/tmpl/rb-druid.sgml:
11969         * doc/reference/tmpl/rb-entry-view.sgml:
11970         * doc/reference/tmpl/rb-enums.sgml:
11971         * doc/reference/tmpl/rb-file-helpers.sgml:
11972         * doc/reference/tmpl/rb-glade-helpers.sgml:
11973         * doc/reference/tmpl/rb-header.sgml:
11974         * doc/reference/tmpl/rb-history.sgml:
11975         * doc/reference/tmpl/rb-ipod-source.sgml:
11976         * doc/reference/tmpl/rb-iradio-source.sgml:
11977         * doc/reference/tmpl/rb-library-source.sgml:
11978         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
11979         * doc/reference/tmpl/rb-metadata.sgml:
11980         * doc/reference/tmpl/rb-new-station-dialog.sgml:
11981         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
11982         * doc/reference/tmpl/rb-play-order-linear.sgml:
11983         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
11984         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
11985         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
11986         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
11987         * doc/reference/tmpl/rb-play-order-random.sgml:
11988         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
11989         * doc/reference/tmpl/rb-play-order.sgml:
11990         * doc/reference/tmpl/rb-player.sgml:
11991         * doc/reference/tmpl/rb-playlist-manager.sgml:
11992         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
11993         * doc/reference/tmpl/rb-playlist-source.sgml:
11994         * doc/reference/tmpl/rb-preferences.sgml:
11995         * doc/reference/tmpl/rb-property-view.sgml:
11996         * doc/reference/tmpl/rb-query-creator-private.sgml:
11997         * doc/reference/tmpl/rb-query-creator.sgml:
11998         * doc/reference/tmpl/rb-rating-helper.sgml:
11999         * doc/reference/tmpl/rb-rating.sgml:
12000         * doc/reference/tmpl/rb-recorder.sgml:
12001         * doc/reference/tmpl/rb-refstring.sgml:
12002         * doc/reference/tmpl/rb-removable-media-manager.sgml:
12003         * doc/reference/tmpl/rb-removable-media-source.sgml:
12004         * doc/reference/tmpl/rb-search-entry.sgml:
12005         * doc/reference/tmpl/rb-shell-clipboard.sgml:
12006         * doc/reference/tmpl/rb-shell-glue.sgml:
12007         * doc/reference/tmpl/rb-shell-player-glue.sgml:
12008         * doc/reference/tmpl/rb-shell-player.sgml:
12009         * doc/reference/tmpl/rb-shell-preferences.sgml:
12010         * doc/reference/tmpl/rb-shell.sgml:
12011         * doc/reference/tmpl/rb-song-display-box.sgml:
12012         * doc/reference/tmpl/rb-song-info.sgml:
12013         * doc/reference/tmpl/rb-source-header.sgml:
12014         * doc/reference/tmpl/rb-source.sgml:
12015         * doc/reference/tmpl/rb-sourcelist-model.sgml:
12016         * doc/reference/tmpl/rb-sourcelist.sgml:
12017         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
12018         * doc/reference/tmpl/rb-statusbar.sgml:
12019         * doc/reference/tmpl/rb-stock-icons.sgml:
12020         * doc/reference/tmpl/rb-string-helpers.sgml:
12021         * doc/reference/tmpl/rb-thread.sgml:
12022         * doc/reference/tmpl/rb-tray-icon.sgml:
12023         * doc/reference/tmpl/rb-tree-dnd.sgml:
12024         * doc/reference/tmpl/rb-tree-model-sort.sgml:
12025         * doc/reference/tmpl/rb-util.sgml:
12026         * doc/reference/tmpl/rhythmbox-unused.sgml:
12027         * doc/reference/tmpl/rhythmdb-property-model.sgml:
12028         * doc/reference/tmpl/rhythmdb-query-model.sgml:
12029         * doc/reference/tmpl/rhythmdb-tree.sgml:
12030         * doc/reference/tmpl/rhythmdb.sgml: update for changes
12031         
12032         * doc/reference/Makefile.am: make docs build with changed ipod support
12033         
12034         * po/POTFILES.in: remove sources/itunesdb
12036 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
12038         * sources/itunesdb.c:
12039         * sources/itunesdb.h: removed now useless files
12041 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
12043         * configure.ac:
12044         * shell/Makefile.am:
12045         * sources/Makefile.am:
12046         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
12047         code
12048         [1]: http://www.gtkpod.org/libgpod.html
12051 2005-10-18  James Livingston  <jrl@ids.org.au>
12053         patch from Funda Wang <fundawang@linux.net.cn>
12055         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
12056         the notification bubble string translatable.
12058 ============ Version 0.9.1
12060 2005-10-16  James Livingston  <jrl@ids.org.au>
12062         * configure.ac: bump version to 0.9.1
12063         * NEWS: update translation credits
12065 2005-10-16  James Livingston  <jrl@ids.org.au>
12067         * rhythmdb/rhythmdb-query-model.c:
12068         (rhythmdb_query_model_class_init),
12069         (rhythmdb_query_model_drag_data_received): 
12070         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
12071         notified when things are dropped into the entry view.
12072         
12073         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
12074         (rb_playlist_source_add_location_swapped),
12075         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
12076         (rb_playlist_source_non_entry_dropped),
12077         (rb_playlist_source_row_inserted): Use the new signal so that dropping
12078         things onto a playlist's entry view work correctly, and doesn't cause
12079         crashes. Allow folders to be dropped as well. (Closes 318308)
12081 2005-10-16  James Livingston  <jrl@ids.org.au>
12083         * NEWS: Update some more
12085         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
12086         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
12087         with the paned size, so that it doesn't move when the window is
12088         maximised/restored. Closes bug 315852.
12090         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
12091         display the playcount column, as it's useless (it never get changed).
12093 2005-10-14  James Livingston  <jrl@ids.org.au>
12095         * Makefile.am:
12096         * data/Makefile.am:
12097         * doc/reference/Makefile.am: get "make distcheck" to pass again
12099 2005-10-11  James Livingston  <jrl@ids.org.au>
12101         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
12102         destroy the connection when retrieving the playlists fails, because
12103         tracks have already been added. Closes 318380.
12105 2005-10-11  James Livingston  <jrl@ids.org.au>
12107         * sources/rb-sourcelist.c: (rb_sourcelist_append),
12108         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
12109         (source_name_edited_cb): Ask for the columns to be resized when a
12110         source is added, deleted or changes name.
12112 2005-10-11  James Livingston  <jrl@ids.org.au>
12114         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
12115         create a thread when processing a directory. This stops up created one
12116         thread for each file in a playlist we're trying to load. Closes
12117         317850.
12119         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
12120         typo that made sort-by-artist not work correctly.
12122 2005-10-11  James Livingston  <jrl@ids.org.au>
12124         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
12125         support is enabled
12127 2005-10-11  James Livingston  <jrl@ids.org.au>
12129         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
12130         * lib/rb-file-helpers.h: add a function to turn uris into our
12131         canonical path-escaped form
12132         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
12133         above function when import playlists. This will fix the problem of
12134         duplicate entries due to different representations of the uri (bug
12135         158211).
12137 2005-10-11  James Livingston  <jrl@ids.org.au>
12139         * shell/rb-shell.c: (rb_shell_get_visibility),
12140         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
12141         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
12142         window hiding so that Alt-F4 works again.
12144         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
12145         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
12146         (rb_entry_view_string_sort_func): Stop some crashes where a string
12147         property was set to NULL.
12149 2005-10-10  James Livingston  <jrl@ids.org.au>
12151         * doc/reference/rhythmbox.types: fix gtk-doc generation
12153 2005-10-09  James Livingston  <jrl@ids.org.au>
12155         * sources/rb-sourcelist.c: (rb_sourcelist_init):
12156         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
12157         accelerators, so that we don't have as many conflicting keys.
12159 2005-10-08  James Livingston  <jrl@ids.org.au>
12161         * data/iradio-initial.pls: Update the list of radio stations. Thanks
12162         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
12163         bug 129285.
12165 2005-10-07  James Livingston  <jrl@ids.org.au>
12167         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
12168         local path names in the same way as every other URI. This should stop
12169         duplicates occurring due to different escapings. Closes bug 158211.
12171 2005-10-06  James Livingston  <jrl@ids.org.au>
12173         * NEWS: more updates
12174         
12175         patch from Jaap Haitsma <jaap@haitsma.org>:
12177         * configure.ac:
12178         * data/Makefile.am:
12179         * data/art/Makefile.am:
12180         - data/art/rhythmbox-paused.png:
12181         - data/art/rhythmbox-playback-error.png:
12182         - data/art/rhythmbox-playing.png:
12183         - data/art-clearlooks/:
12184         * lib/rb-file-helpers.c: (rb_file):
12185         * lib/rb-stock-icons.c: (rb_stock_icons_init):
12186         * lib/rb-stock-icons.h:
12187         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
12188         * widgets/rb-cell-renderer-pixbuf.c:
12189         (rb_cell_renderer_pixbuf_render):
12190         * widgets/rb-entry-view.c: (rb_entry_view_init),
12191         (rb_entry_view_set_playing):
12192         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
12193         stock icons instead of custom art. Drop remanents of art-clearlooks.
12195 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
12197         * configure.ac: Added ne in ALL_LINGUAS
12199 2005-10-02  James Livingston  <jrl@ids.org.au>
12201         * data/glade/Makefile.am: actually install the daap prefs glade file
12203 2005-09-30  James Livingston  <jrl@ids.org.au>
12205         * po/POTFILES.in: mremove rb-string-helper.c from the list of
12206         translatable files, so that make check works and we don't annoy the
12207         translators.
12208         
12209         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
12210         sanity checking, in case a db entry is missing some properties.
12212 2005-09-29  James Livingston  <jrl@ids.org.au>
12214         - lib/rb-string-helpers.c:
12215         - lib/rb-string-helpers.h:
12216         * lib/Makefile.am:
12217         * rhythmdb/rhythmdb-tree.c:
12218         * rhythmdb/rhythmdb.c:
12219         * shell/main.c: (main):
12220         * shell/rb-shell.c:
12221         * widgets/rb-entry-view.c:
12222         * widgets/rb-property-view.c: remove rb-string-helpers, as they
12223         utility functions haven't been used in a while.
12225 2005-09-27  James Livingston  <jrl@ids.org.au>
12227         * data/art-clearlooks/Makefile.am:
12228         - data/art-clearlooks/rhythmbox-album.png:
12229         - data/art-clearlooks/rhythmbox-audiocd.png:
12230         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
12231         - data/art-clearlooks/rhythmbox-dnd.png:
12232         - data/art-clearlooks/rhythmbox-ipod.png:
12233         - data/art-clearlooks/rhythmbox-iradio.png:
12234         - data/art-clearlooks/rhythmbox-library.png:
12235         - data/art-clearlooks/rhythmbox-next.png:
12236         - data/art-clearlooks/rhythmbox-pause.png:
12237         - data/art-clearlooks/rhythmbox-play.png:
12238         - data/art-clearlooks/rhythmbox-playlist-menu.png:
12239         - data/art-clearlooks/rhythmbox-playlist.png:
12240         - data/art-clearlooks/rhythmbox-previous.png:
12241         - data/art-clearlooks/rhythmbox-repeat.png:
12242         - data/art-clearlooks/rhythmbox-rewind.png:
12243         - data/art-clearlooks/rhythmbox-shuffle.png:
12244         - data/art-clearlooks/rhythmbox-stop.png:
12245         - data/art-clearlooks/rhythmbox-visuals.png:
12246         - data/art-clearlooks/rhythmbox-volume-max.png:
12247         - data/art-clearlooks/rhythmbox-volume-medium.png:
12248         - data/art-clearlooks/rhythmbox-volume-min.png:
12249         - data/art-clearlooks/rhythmbox-volume-mute.png:
12250         - data/art-clearlooks/rhythmbox-volume-zero.png:
12251         * data/art/Makefile.am:
12252         - data/art/rhythmbox-album.png:
12253         - data/art/rhythmbox-audiocd.png:
12254         - data/art/rhythmbox-automatic-playlist.png:
12255         - data/art/rhythmbox-dnd.png:
12256         - data/art/rhythmbox-ipod.png:
12257         - data/art/rhythmbox-iradio.png:
12258         - data/art/rhythmbox-library.png:
12259         - data/art/rhythmbox-next.png:
12260         - data/art/rhythmbox-pause.png:
12261         - data/art/rhythmbox-play.png:
12262         - data/art/rhythmbox-playlist-menu.png:
12263         - data/art/rhythmbox-playlist.png:
12264         - data/art/rhythmbox-previous.png:
12265         - data/art/rhythmbox-repeat.png:
12266         - data/art/rhythmbox-rewind.png:
12267         - data/art/rhythmbox-shuffle.png:
12268         - data/art/rhythmbox-stop.png:
12269         - data/art/rhythmbox-visuals.png:
12270         - data/art/rhythmbox-volume-max.png:
12271         - data/art/rhythmbox-volume-medium.png:
12272         - data/art/rhythmbox-volume-min.png:
12273         - data/art/rhythmbox-volume-mute.png:
12274         - data/art/rhythmbox-volume-zero.png:
12275         * lib/rb-stock-icons.c: (rb_stock_icons_init):
12276         * lib/rb-stock-icons.h:
12277         * shell/rb-playlist-manager.c:
12278         * shell/rb-shell-player.c:
12279         * sources/rb-daap-source.c: (rb_daap_get_icon):
12280         * sources/rb-ipod-source.c:
12281         * sources/rb-iradio-source.c: (rb_iradio_source_init):
12282         * sources/rb-library-source.c: (rb_library_source_new):
12283         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
12284         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
12285         that hasn't been used in a LONG time, and also remove art that are
12286         now stock icons.
12288 2005-09-27  James Livingston  <jrl@ids.org.au>
12290         * README: point to the gnome.org web sites, and update the example
12291         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
12292         
12293         * rhythmdb/rhythmdb-query-model.c:
12294         (rhythmdb_query_model_set_property),
12295         (rhythmdb_query_model_get_property),
12296         (rhythmdb_query_model_finalize):
12297         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
12298         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
12299         * rhythmdb/rhythmdb.h:
12300         * sources/rb-iradio-source.c: (impl_search):
12301         * sources/rb-library-source.c: (impl_search): Add query
12302         "preprocessing", which performs operations such as casefolding any
12303         strings that will be compared to any of the *_FOLDED properties.
12304         Closes bug 316039
12306 2005-09-27  James Livingston  <jrl@ids.org.au>
12308         * data/glade/daap-prefs.glade:
12309         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
12310         file for the daap preferences pane
12311         
12312         * sources/rb-sourcelist.c: (rb_sourcelist_init),
12313         (rb_sourcelist_append), (rb_sourcelist_remove),
12314         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
12315         don't display the column for source expanders unless there is an
12316         expandable source.
12318 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
12320         * .cvsignore:
12321         * Makefile.am:
12322         * configure.ac:
12323         * doc/.cvsignore:
12324         * doc/Makefile.am:
12325         * doc/reference/.cvsignore:
12326         * doc/reference/Makefile.am:
12327         * doc/reference/rhythmbox-docs.sgml:
12328         * doc/reference/rhythmbox-sections.txt:
12329         * doc/reference/rhythmbox.types:
12330         * doc/reference/tmpl/bacon-volume.sgml:
12331         * doc/reference/tmpl/disclosure-widget.sgml:
12332         * doc/reference/tmpl/eel-gconf-extensions.sgml:
12333         * doc/reference/tmpl/eggnotificationbubble.sgml:
12334         * doc/reference/tmpl/eggtrayicon.sgml:
12335         * doc/reference/tmpl/gsequence.sgml:
12336         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
12337         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
12338         * doc/reference/tmpl/rb-daap-connection.sgml:
12339         * doc/reference/tmpl/rb-daap-dialog.sgml:
12340         * doc/reference/tmpl/rb-daap-mdns.sgml:
12341         * doc/reference/tmpl/rb-daap-share.sgml:
12342         * doc/reference/tmpl/rb-daap-sharing.sgml:
12343         * doc/reference/tmpl/rb-daap-source.sgml:
12344         * doc/reference/tmpl/rb-daap-src.sgml:
12345         * doc/reference/tmpl/rb-daap-structure.sgml:
12346         * doc/reference/tmpl/rb-debug.sgml:
12347         * doc/reference/tmpl/rb-dialog.sgml:
12348         * doc/reference/tmpl/rb-druid.sgml:
12349         * doc/reference/tmpl/rb-entry-view.sgml:
12350         * doc/reference/tmpl/rb-enums.sgml:
12351         * doc/reference/tmpl/rb-file-helpers.sgml:
12352         * doc/reference/tmpl/rb-glade-helpers.sgml:
12353         * doc/reference/tmpl/rb-header.sgml:
12354         * doc/reference/tmpl/rb-history.sgml:
12355         * doc/reference/tmpl/rb-ipod-source.sgml:
12356         * doc/reference/tmpl/rb-iradio-source.sgml:
12357         * doc/reference/tmpl/rb-library-source.sgml:
12358         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
12359         * doc/reference/tmpl/rb-metadata.sgml:
12360         * doc/reference/tmpl/rb-new-station-dialog.sgml:
12361         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
12362         * doc/reference/tmpl/rb-play-order-linear.sgml:
12363         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
12364         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
12365         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
12366         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
12367         * doc/reference/tmpl/rb-play-order-random.sgml:
12368         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
12369         * doc/reference/tmpl/rb-play-order.sgml:
12370         * doc/reference/tmpl/rb-player.sgml:
12371         * doc/reference/tmpl/rb-playlist-manager.sgml:
12372         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
12373         * doc/reference/tmpl/rb-playlist-source.sgml:
12374         * doc/reference/tmpl/rb-preferences.sgml:
12375         * doc/reference/tmpl/rb-property-view.sgml:
12376         * doc/reference/tmpl/rb-query-creator-private.sgml:
12377         * doc/reference/tmpl/rb-query-creator.sgml:
12378         * doc/reference/tmpl/rb-rating-helper.sgml:
12379         * doc/reference/tmpl/rb-rating.sgml:
12380         * doc/reference/tmpl/rb-recorder.sgml:
12381         * doc/reference/tmpl/rb-refstring.sgml:
12382         * doc/reference/tmpl/rb-removable-media-manager.sgml:
12383         * doc/reference/tmpl/rb-removable-media-source.sgml:
12384         * doc/reference/tmpl/rb-search-entry.sgml:
12385         * doc/reference/tmpl/rb-shell-clipboard.sgml:
12386         * doc/reference/tmpl/rb-shell-glue.sgml:
12387         * doc/reference/tmpl/rb-shell-player-glue.sgml:
12388         * doc/reference/tmpl/rb-shell-player.sgml:
12389         * doc/reference/tmpl/rb-shell-preferences.sgml:
12390         * doc/reference/tmpl/rb-shell.sgml:
12391         * doc/reference/tmpl/rb-song-display-box.sgml:
12392         * doc/reference/tmpl/rb-song-info.sgml:
12393         * doc/reference/tmpl/rb-source-header.sgml:
12394         * doc/reference/tmpl/rb-source.sgml:
12395         * doc/reference/tmpl/rb-sourcelist-model.sgml:
12396         * doc/reference/tmpl/rb-sourcelist.sgml:
12397         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
12398         * doc/reference/tmpl/rb-statusbar.sgml:
12399         * doc/reference/tmpl/rb-stock-icons.sgml:
12400         * doc/reference/tmpl/rb-string-helpers.sgml:
12401         * doc/reference/tmpl/rb-thread.sgml:
12402         * doc/reference/tmpl/rb-tray-icon.sgml:
12403         * doc/reference/tmpl/rb-tree-dnd.sgml:
12404         * doc/reference/tmpl/rb-tree-model-sort.sgml:
12405         * doc/reference/tmpl/rb-util.sgml:
12406         * doc/reference/tmpl/rhythmdb-property-model.sgml:
12407         * doc/reference/tmpl/rhythmdb-query-model.sgml:
12408         * doc/reference/tmpl/rhythmdb-tree.sgml:
12409         * doc/reference/tmpl/rhythmdb.sgml:
12410         * macros/.cvsignore:
12411         * shell/Makefile.am:
12412         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
12413         (rb_source_finalize), (rb_source_set_property),
12414         (rb_source_get_property), (default_get_pixbuf),
12415         (_rb_source_show_popup):
12416         * sources/rb-source.h:
12417         Add support for gtk-doc in rhythmbox.
12418         Convert RBSource to use newer glib functions, such as add_private.
12419         Gives RBSource a default get_pixbuf implementation.
12421 2005-09-25  James Livingston  <jrl@ids.org.au>
12423         * NEWS: Update with about a months worth of changes
12425         * data/glade/song-info-multiple.glade:
12426         * data/glade/song-info.glade:
12427         * data/rhythmbox.schemas:
12428         * lib/rb-preferences.h:
12429         * rhythmdb/rhythmdb.h:
12430         * shell/rb-shell-player.c:
12431         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
12432         few remaining parts of autorating.
12434 2005-09-24  James Livingston  <jrl@ids.org.au>
12436         * shell/rb-shell.c: (rb_shell_constructor),
12437         (rb_shell_window_state_cb), (rb_shell_set_visibility),
12438         (rb_shell_window_configure_cb): store window state in the gconf keys,
12439         so that it gets used. Closes bugs 313893 and 137068.
12441 2005-09-20  James Livingston  <jrl@ids.org.au>
12443         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
12444         crash if the entry has a NULL string in a property
12445         
12446         * shell/rb-removable-media-manager.c:
12447         (rb_removable_media_manager_load_media): fix some memory leaks
12448         
12449         (rb_removable_media_manager_mount_volume),
12450         (rb_removable_media_manager_eject_medium_cb),
12451         (rb_removable_media_manager_cmd_eject_medium): use
12452         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
12453         
12454         * sources/rb-removable-media-source.c:
12455         (rb_removable_media_source_set_property),
12456         (rb_removable_media_source_get_property): use
12457         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
12459 2005-09-18  James Livingston  <jrl@ids.org.au>
12461         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
12462         column
12464         * data/glade/general-prefs.glade:
12465         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
12466         (rb_shell_preferences_column_check_changed_cb),
12467         (rb_shell_preferences_sync): add checkbox to control visibility
12468         of the column
12469         
12470         
12471         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
12472         (save_entry):
12473         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
12474         (rhythmdb_prop_get_type):
12475         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
12476         was as "last played" is handled
12477         
12478         * sources/rb-library-source.c: (rb_library_source_constructor):
12479         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
12480         Make the column show in the library and playlists
12481         
12482         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
12483         * widgets/rb-entry-view.h: add the column
12484         
12485         * widgets/rb-query-creator-properties.c: allow automatic playlists to
12486         be sorted by the column
12488 2005-09-16  James Livingston  <jrl@ids.org.au>
12490         * shell/rb-shell-player.c: (rb_shell_player_init),
12491         (rb_shell_player_do_previous_or_seek),
12492         (rb_shell_player_previous_button_cb),
12493         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
12494         (rb_shell_player_playpause_button_cb): Make the previous button act
12495         the same as the menu item. Fix an inversion of the "previous track or
12496         seek" logic.
12497         
12498         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
12499         
12500         (rb_shell_player_playpause): make --play-pause stop source that can't
12501         be paused
12503 2005-09-15  James Livingston  <jrl@ids.org.au>
12505         * configure.ac: increase totem-plparser requirements to 1.1.5
12507         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
12508         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
12509         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
12510         use the newer playlist APIs to save the name of the playlist, and use
12511         the name of a loaded playlist.
12513         Closes bug 309817.
12515 2005-09-15  James Livingston  <jrl@ids.org.au>
12517         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
12519         * shell/Makefile.am: stop some linker warnings
12521         * shell/main.c: (main): make --no-registration work with dbus
12523 2005-09-15  James Livingston  <jrl@ids.org.au>
12525         * daapsharing/rb-daap-sharing.c: (create_share):
12526         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
12527         reference sinking and counting issues that I caused.
12529 2005-09-15  James Livingston  <jrl@ids.org.au>
12531         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
12532         playing" icon in the "now playing" column header.
12534 2005-09-14  James Livingston  <jrl@ids.org.au>
12536         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
12537         daap shares, when sharing is turned off.
12539 2005-09-12  Bastien Nocera  <hadess@hadess.net>
12541         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
12542         the GConf value's default, especially for badly installed schema
12543         files
12545 2005-09-12  James Livingston  <jrl@ids.org.au>
12547         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
12549         Patch from Paolo Borelli <pborelli@katamail.com>
12551         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
12552         grip when maximised. Closes bug 316055.
12554 2005-09-11  James Livingston  <jrl@ids.org.au>
12556         Patch from William Jon McCann <mccann@jhu.edu>
12558         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
12559         subclass of GtkStatusbar instead of GtkHBox.
12560         (rb_statusbar_construct): Don't set border width.
12561         (rb_statusbar_init): Use resize grip.  Don't use
12562         markup.
12563         (set_statusbar_tooltip, unset_statusbar_tooltip) 
12564         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
12565         Connect tooltips for actions.
12566         (rb_statusbar_sync_status): Push new message to statusbar.
12567         (rb_statusbar_set_progress): Don't use markup.
12568         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
12569         flag here since it prevents actually showing or hiding.
12570         (rb_statusbar_sync_with_source): Push new message to statusbar.
12572 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
12574         * daapsharing/rb-daap-structure.c:
12575         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
12576         around debugging definition.
12578 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
12579         
12580         * daapsharing/rb-daap-structure.c:
12581         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
12582         type = version.
12584         * daapsharing/rb-daap-mdns.c/h:
12585         (resolve_cb): Updated mDNS resolve callback to send service-name &
12586         name (read from Machine Name in the TXT data or equal to service-name
12587         if not in TXT).
12589         * daapsharing/rb-daap-source.c:
12590         (rb_daap_source_class_init), (rb_daap_source_set_property), 
12591         (rb_daap_source_get_property), (rb_daap_source_new),
12592         (find_source_by_service_name), (resolve_cb), (browse_cb), 
12593         (stop_resolver), (start_browsing), (stop_browsing), 
12594         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
12595         and added 'host' and 'port' gobject properties.  Updated to use new
12596         mDNS resolve callback sending service-name & name arguments.
12598 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
12600         * daapsharing/rb-daap-mdns.c:
12601         (howl_strerror): New function to report errors from Howl
12602         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
12603         (get_sw_discovery), (get_avahi_client): Better error reporting from
12604         Howl & Avahi.
12606         * sources/rb-daap-source.:
12607         (start_browsing), (stop_browsing): Fixed a bug where browsing would
12608         not get started or stopped in some situations.
12609         
12610 2005-09-12  James Livingston  <jrl@ids.org.au>
12612         * shell/rb-removable-media-manager.c: add a missing include, that
12613         would stop compilation if ipod support wasn't turned on
12615 2005-09-11  James Livingston  <jrl@ids.org.au>
12617         * daapsharing/rb-daap-dialog.c: (encode_base64),
12618         (rb_daap_password_dialog_new_run),
12619         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
12620         it is no broken in to two pieces, and remove a use of a goto
12621         
12622         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
12623         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
12624         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
12625         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
12626         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
12627         memory leaks, and some code style things.
12628         
12629         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
12630         (rb_daap_share_init), (rb_daap_share_set_property),
12631         (rb_daap_share_dispose), (rb_daap_share_new),
12632         (rb_daap_share_get_property): make the DB and the playlist manager
12633         gobject properties.
12634         
12635         (message_add_standard_headers),
12636         (message_set_from_rb_daap_structure), (server_info_cb),
12637         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
12638         (server_cb), (add_db_entry), (db_entry_added_cb),
12639         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
12640         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
12641         style and use CONF_PREFIX in the gconf keys
12642         
12643         * daapsharing/rb-daap-sharing.c: (create_share),
12644         (enable_sharing_changed_cb), (share_name_changed_cb),
12645         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
12646         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
12647         (rb_daap_src_instance_init), (rb_daap_src_dispose),
12648         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
12649         (rb_daap_src_get_property), (rb_daap_src_getcaps),
12650         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
12651         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
12652         (rb_daap_src_get_time): Deal with gconf callbacks where the key
12653         hasn't actually changed, fix some memory leaks, code style and release
12654         gconf notifications when the object is destroyed.
12655         
12656         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
12657         (rb_daap_source_class_init), (rb_daap_source_init),
12658         (rb_daap_source_dispose), (rb_daap_source_set_property),
12659         (rb_daap_source_get_property), (rb_daap_source_new),
12660         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
12661         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
12662         (rb_daap_sources_init), (rb_daap_sources_shutdown),
12663         (rb_daap_source_activate), (rb_daap_source_disconnect),
12664         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
12665         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
12666         release gconf notifications, handle gconf callbacks where the key
12667         hasn't changed, make "real name" and "password protected" gobject
12668         properties, fix some code style and fix a memory leak.
12670 2005-09-11  James Livingston  <jrl@ids.org.au>
12672         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
12674         * shell/rb-playlist-manager.c:
12675         (rb_playlist_manager_save_playlists),
12676         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
12677         when we aren't supposed to. (Closes bug 315886)
12679 2005-09-11  James Livingston  <jrl@ids.org.au>
12681         * shell/rb-removable-media-manager.c:
12682         (rb_removable_media_manager_class_init),
12683         (rb_removable_media_manager_init),
12684         (rb_removable_media_manager_dispose),
12685         (rb_removable_media_manager_set_property),
12686         (rb_removable_media_manager_get_property),
12687         (rb_removable_media_manager_new),
12688         (rb_removable_media_manager_load_media),
12689         (rb_removable_media_manager_volume_mounted_cb),
12690         (rb_removable_media_manager_volume_unmounted_cb),
12691         (rb_removable_media_manager_mount_volume),
12692         (rb_removable_media_manager_unmount_volume),
12693         (rb_removable_media_manager_source_deleted_cb),
12694         (rb_removable_media_manager_append_media_source),
12695         (rb_removable_media_manager_set_uimanager),
12696         (rb_removable_media_manager_eject_medium_cb),
12697         (rb_removable_media_manager_cmd_eject_medium):
12698         * shell/rb-removable-media-manager.h:
12699         * sources/rb-removable-media-source.c:
12700         (rb_removable_media_source_class_init),
12701         (rb_removable_media_source_init),
12702         (rb_removable_media_source_dispose),
12703         (rb_removable_media_source_set_property),
12704         (rb_removable_media_source_get_property), (impl_get_pixbuf),
12705         (impl_delete_thyself):
12706         * sources/rb-removable-media-source.h: Add the four files that I
12707         somehow managed not to add to cvs in the last commit. Oops.
12709 2005-09-11  James Livingston  <jrl@ids.org.au>
12711         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
12712         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
12713         
12714         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
12715         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
12716         removable-media-manager on startup, and handle creation of sources.
12717         
12718         * sources/rb-ipod-source.h:
12719         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
12720         (rb_ipod_source_init), (rb_ipod_source_constructor),
12721         (rb_ipod_source_dispose), (rb_ipod_source_new),
12722         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
12723         the iPod source over to the removable media framework.
12724         
12725         * sources/rb-library-source.c: (paned_size_allocate_cb),
12726         (rb_library_source_get_paned_key): fix a potential bug is a
12727         library-derived source doesn't have a paned-key
12729 2005-09-11  Bastien Nocera  <hadess@hadess.net>
12731         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
12732         mp3 when we can't get the suffix of a file (Closes: #315941)
12734 2005-09-10  James Livingston  <jrl@ids.org.au>
12736         * configure.ac: fix the mdns tests, so that it doesn't complain about
12737         not finding one, if daap support isn't being compiled in
12739 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
12741         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
12743         * daapsharing/rb-daap-dialog.c:
12744         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
12745         HIG compliancy & images.
12747         * daapsharing/rb-daap-mdns.c:
12748         (browse_cb), (resolve_cb): Better detection of local services.  
12749         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
12750         Howl's limitations.  Fix the way collision handling is done under
12751         Avahi.
12753         * daapsharing/rb-daap-share.c:
12754         (publish_cb): Better name collision handling (at least for Avahi).
12756 2005-09-10  James Livingston  <jrl@ids.org.au>
12758         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
12759         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
12760         preferences more HIG compliant (Closes #315889)
12761         
12762         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
12763         list of files to be translated
12765 2005-09-10  James Livingston  <jrl@ids.org.au>
12767         * configure.ac: fix it so that --enable-daap=no works
12768         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
12769         uninstalled
12771 2005-09-10  James Livingston  <jrl@ids.org.au>
12773         Patch from Christophe Fergeau <teuf@gnome.org>
12775         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
12776         the ipod code.
12778 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
12779         * README.daap: Updating documentation
12781 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
12782         * AUTHORS: Added myself.
12784         * daapsharing/rb-daap-connection.c:
12785         (connection_login), (rb_connection_new): Reorganized password
12786         handling.
12788         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
12790         * shell/rb-shell.c:
12791         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
12793         * sources/rb-daap-source.c:
12794         (rb_daap_source_activate): Better error handling when we are unable to
12795         connect.
12796         
12797 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
12798         * README.daap: Fixed some terminology.
12800         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
12801         New --with-mdns=auto|howl|avahi flag to specify.
12803         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
12804         name collision dialogs.
12806         * daapsharing/rb-daap-connection.c:
12807         (connection_get_password), (build_message), (http_get)
12808         (connection_login): Ask for & use a password if the share demands it.
12810         * daapsharing/rb-daap-connection.h: Changed prototype of
12811         rb_daap_connection_new.
12812         
12813         * daapsharing/rb-daap-mdns.c: 
12814         (resolve_cb): Better detection of your own music share so it doesn't 
12815         appear in the sourcelist.
12817         * daapsharing/rb-daap-share.c:
12818         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
12819         that start on any available port.
12821         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
12823         * sources/rb-daap-source.c:
12824         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
12825         (browse_cb): Handle passworded shares. Resolve the host immediately
12826         instead of when activated.
12827         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
12828         (rb_daap_source_new): New GConf keys for UI state.
12829         (rb_daap_source_activate): Use RBPlaylistSource instead of
12830         RBDAAPPlaylistSource
12831         
12832         * sources/rb-daap-playlist-source.c/h: Removed
12834         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
12835         if the playlist is local (i.e. not DAAP or iPod).
12836         
12837         * shell/rb-playlist-manager.c:
12838         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
12839         wouldn't get saved if the last playlist hadn't changed.  Only save
12840         local playlists.
12841         
12842 2005-09-09  James Livingston  <jrl@ids.org.au>
12844         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
12845         iPod preferences pane, as it already uses the browser views as the
12846         library.
12848 2005-09-09  James Livingston  <jrl@ids.org.au>
12850         * sources/rb-library-source.c: (rb_library_source_finalize),
12851         (rb_library_source_constructor): fix gconf monitoring of library
12852         preference keys.
12853         * sources/rb-library-source.h: remove declaration of function that
12854         does not exist
12856 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
12858         * player/rb-player-gst.c:
12859         (rb_player_set_time): Fix seeking in daap streams.
12861 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
12863         * data/rhythmbox.schemas: Turn music share browsing on by default.
12865 2005-09-07  James Livingston  <jrl@ids.org.au>
12867         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
12869 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
12870         * player/rb-player-gst.c: 
12871         (rb_player_get_time): Fix for extra << & == that accidentally made
12872         it in.
12874         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
12875         
12876 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
12877         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
12878         it in last time.  Sorry.
12880 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
12881         
12882         * player/rb-player-gst.c:
12883         (rb_player_get_time): Fix a small crash appearing when
12884         the uri isn't set in the player, but rb_player_get_time() is
12885         still called.
12887         * configure.ac: Also check for libsoup 2.4, which is what ships with
12888         Gnome 2.12.
12890         * po/POTFILES.in: Added music sharing files that have translatable 
12891         strings.
12893         * README.daap: New file explaining "How Music Sharing Works"  
12895 2005-09-06  Bastien Nocera  <hadess@hadess.net>
12897         * daapsharing/.cvsignore: added
12899 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
12901         * daapsharing/*: Music sharing library.
12902         
12903         * sources/rb-daap-source.c/h: Music share RBSource.
12904         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
12906         * configure.ac: --enable-daap flag to turn on music sharing. Requires
12907         libsoup and a mutlicast DNS implementation (howl or avahi).
12909         * data/rhythmbox.schemas: New GConf keys for music sharing.
12911         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
12912         source right click menu.
12914         * player/rb-player-gst.c: Changes to properly play & seek in remote
12915         music share files.
12917         * shell/rb-playlist-manager.c/h:
12918         (rb_playlist_manager_get_playlists): New function to get a GList * of
12919         the playlists.
12920         (rb_playlist_manager_save_playlists): Don't save music share playlists
12921         and fixed a GObject reference leak.
12923         * shell/rb-shell.c/h:
12924         (rb_shell_append_source): No longer a local function.  Now takes a
12925         parent RBSource * argument, NULL to append a toplevel source.
12926         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
12927         source (useful for disconnecting from remote music share,
12928         specifically).
12929         (rb_shell_quit): Stop music sharing/browsing.
12930         (rb_shell_playlist_added_cb): Work with tree source structure.
12931         (rb_shell_get_property): "playlist-manager" property accessor.
12932         (rb_shell_class_init): New "playlist-manager" property.
12933         (rb_shell_construor): Append sources as toplevel sources.  Initialize
12934         daap sharing/browsing.
12935         (rb_shell_select_source): Notify source of activation/deactivation.
12937         * shell/rb-shell-prefernces.c: Music sharing preferences.
12939         * sources/rb-source.c/h: New activate, deactivate and disconnect
12940         class functions.  Activate & deactivate are notification style 
12941         functions that will tell a source when it is selected/unselected.
12942         Disconnect can be hooked up to a UI object to disconnect the source.
12944         * sources/rb-sourcelist-model.c:
12945         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
12946         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
12947         append a toplevel source.
12949 2005-09-05  James Livingston  <jrl@ids.org.au>
12951         * rhythmdb/rhythmdb-query-model.c:
12952         (rhythmdb_query_model_entry_changed_cb),
12953         (rhythmdb_query_model_do_reorder): Update the query model's totals if
12954         the duration of filesize of an entry changes.  Emit the row-changed
12955         signals that I forgot to put back in, when I was doing query sorting.
12957         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
12958         out "0 minutes" or "0 bytes".
12960 2005-09-04  James Livingston  <jrl@ids.org.au>
12962         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
12963         remove a leftover bit of the "internal-name" property of sources.
12965 2005-09-03  James Livingston  <jrl@ids.org.au>
12967         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
12968         extraneous debug message
12969         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
12970         crasher would affect any library-derived sources (which was also a
12971         memory leak).
12973 2005-09-02  Colin Walters  <walters@verbum.org>
12975         * configure.ac: Fix sytnax error.
12977         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
12978         code to disable minimization icons - need to figure out
12979         why it doesn't work...
12981 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
12983         * data/glade/song-info-multiple.glade:
12984         * data/glade/song-info.glade:
12985         * widgets/rb-song-info.c: (rb_song_info_constructor):
12986         Add a mnemonic to the newly added "Automatically rate" label
12987         in the properties dialog and use a bold typeface like all the 
12988         other labels in the dialog. (Closes bug 315089)
12990 2005-09-03  James Livingston  <jrl@ids.org.au>
12992         * sources/rb-library-source.c: (rb_library_source_class_init),
12993         (rb_library_source_finalize), (rb_library_source_constructor),
12994         (rb_library_source_set_property), (rb_library_source_get_property),
12995         (impl_get_paned_key), (paned_size_allocate_cb),
12996         (rb_library_source_state_prefs_sync), (impl_show_popup),
12997         (rb_library_source_get_paned_key):
12998         * sources/rb-library-source.h: Allow sources derived from
12999         RBLibrarySource to use different gconf keys for sort order, browser
13000         visibility and browser pane position. Fix a crasher if a derived
13001         source overrides _get_pixbuf.
13003 2005-09-02  Colin Walters  <walters@verbum.org>
13005         * shell/rb-shell.c (rb_shell_set_visibility): Move
13006         hint setting which seems to avoid races more.
13007         
13008 2005-09-03  James Livingston  <jrl@ids.org.au>
13010         * shell/rb-shell.c: fix compilation with iPod support enabled
13011         
13012 2005-09-02  Colin Walters  <walters@verbum.org>
13014         * shell/rb-shell.c (struct RBShellPrivate): Add
13015         idle_hide_mainwindow_id.
13016         (rb_shell_constructor): Move taskbar skipping hint into
13017         rb_shell_set_visibility.
13018         (idle_hide_mainwindow): New function.
13019         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
13020         racy hack to avoid rb appearing in taskbar when minimized.
13022 2005-09-01  Colin Walters  <walters@verbum.org>
13024         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
13026         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
13027         from gtkstatusicion.c.
13029         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
13031         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
13032         TrayShowWindow entry.
13033         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
13034         (rb_tray_icon_constructor): Create action group here.
13035         (rb_tray_icon_finalize): Destroy action group.
13036         (rb_tray_icon_set_property): Don't take an action group.
13037         (rb_tray_icon_new): Ditto.
13038         (tray_popup_position_menu): Some mostly boilerplate code
13039         to position menu.
13040         (rb_tray_icon_button_press_event_cb): Position menu.
13041         (rb_tray_icon_get_geom): New function used for the shell
13042         to set minimization hints.
13044         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
13046         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
13047         (struct RBShellPrivate): Change visible to iconified.
13048         (set_icon_geometry): New function from Søren Sandmann to
13049         tell Metacity where to draw the minimization animiation.
13050         (rb_shell_window_state_cb): Update iconified.
13051         (rb_shell_get_visibility): New function to say whether
13052         or not we're currently visible.
13053         (rb_shell_set_visibility): Update to minimize to
13054         tray or present as appropriate.
13055         (rb_shell_window_delete_cb): On window close, just
13056         minimize to tray if we're deleted.
13057         (rb_shell_set_window_title): Kill old notification code.
13058         (rb_shell_toggle_visibility): Nwe function.
13059         (rb_shell_cmd_toggle_visibility): Call it.
13060         (rb_shell_constructor): Skip the taskbar.
13061         (tray_destroy_cb): Better debugging.
13062         
13063 2005-09-01  Colin Walters  <walters@verbum.org>
13065         * data/ui/rhythmbox-ui.xml: Add MusicClose.
13067         * configure.ac: Enable bonobo by default.
13068         
13069 2005-09-01  Colin Walters  <walters@verbum.org>
13071         * configure.ac: Default to old art.  Add macros subdir.
13073         * Makefile.am (SUBDIRS): Add macros.
13075         * macros/Makefile.am: New.
13076         
13077 2005-09-01  Colin Walters  <walters@verbum.org>
13079         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
13080         rb-shell-player.xml.
13082         * remote/dbus/rb-remote-dbus.h: Deleted.
13083         
13084         * remote/dbus/Makefile.am: Delete all the junk, just dist
13085         rb-print-playing.py and rb-set-rating.py.
13087         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
13089         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
13091 2005-09-02  James Livingston  <jrl@ids.org.au>
13093         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
13094         file from cvs
13096         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
13097         (rb_shell_constructor): Patches from Jonathan Matthew
13098         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
13099         a crash when using "browse this artist".
13101 2005-08-31  Colin Walters  <walters@verbum.org>
13103         * configure.ac: Add --with-old-art configure switch.  Also
13104         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
13105         but it doesn't work.
13107         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
13108         Don't use eel_create_colorized_pixbuf for new art.
13109         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
13111         * data/art-clearlooks: New artwork.
13112         
13113 2005-08-31  Colin Walters  <walters@verbum.org>
13115         * shell/main.c (main): Fix Bastien's commit to continue to focus
13116         the window with GTK+ 2.8 at least.
13117         
13118 2005-08-31  Colin Walters  <walters@verbum.org>
13120         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
13121         is already loaded.
13123         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
13125 2005-08-31  Bastien Nocera  <hadess@hadess.net>
13127         * README: remove mentions of the xine-lib backend
13128         * shell/main.c: (main): make it compilable with gtk+ < 2.8
13130 2005-08-30  Colin Walters  <walters@verbum.org>
13132         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
13133         Make non-visible sources insensitive.
13134         
13135 2005-08-30  Colin Walters  <walters@verbum.org>
13137         * shell/rb-shell.c: Don't use GConf for selected source; it's
13138         confusing to have the selected source change after startup,
13139         and since we don't save other things it's not worth saving this.
13141         * sources/rb-playlist-source.c:
13142         * sources/rb-library-source.c:
13143         * sources/rb-iradio-source.c:
13144         * sources/rb-ipod-source.c: Delete internal-name property usage.
13145         * sources/rb-source.c: Delete internal-name property.
13147         * data/rhythmbox.schemas: Delete selected_source.
13148         
13149 2005-08-30  Colin Walters  <walters@verbum.org>
13151         * sources/rb-sourcelist.c: Make playing source bold instead of
13152         displaying a pixbuf; it's much less ugly.
13153         
13154 2005-08-30  Colin Walters  <walters@verbum.org>
13156         * sources/rb-source.c:
13157         * sources/rb-source.h: New virtual method try_playlist.
13159         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
13160         impl_try_playlist.
13161         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
13162         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
13163         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
13164         need to.
13165         (stations_view_drag_data_received_cb): Don't check for iradio uris;
13166         in theory we should though...
13168         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
13169         list in rb_shell_construct now.
13170         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
13171         RBiPodSource.
13172         (rb_shell_constructor): Create library, iradio, ipod here.
13173         (rb_shell_source_deleted_cb): Use source directly instead of
13174         indirecting through type.
13175         (rb_shell_sync_selected_source): Ditto.
13176         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
13177         from the type instead of special-casing.
13178         (rb_shell_guess_type_for_uri) 
13179         (rb_shell_add_uri)
13180         (handle_one_uri_with_possible_metadata): New functions.
13181         (rb_shell_load_uri): Refactor to allow loading playlists again,
13182         also use other URI infrastructure.
13184         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
13185         (rb_shell_player_error): Always set entry error on error, instead
13186         of depending on EOF behavior.
13188         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
13189         to just invoke rb_shell_add_uri.
13190         (rb_playlist_manager_parse_file): Return error instead of tossing
13191         up dialog box directly.
13192         (load_playlist_response_cb): Display error here.
13193         (add_uri_to_playlist): Delete.
13194         (handle_playlist_entry_into_playlist_cb): Renamed to
13195         handle_playlist_entry_cb.
13197         * shell/rb-playlist-manager.h: Add error, update prototype.
13199         * lib/rb-file-helpers.c:
13200         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
13202 2005-08-29  Colin Walters  <walters@verbum.org>
13204         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
13205         if entry already exists.  Use rhythmdb_entry_set_uninserted.
13207         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
13208         needlessly duping string, and use rhythmdb_entry_set_uninserted.
13209         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
13211         * shell/rb-shell.h (enum RBShellError): Add some more errors.
13212         Prototype rb_shell_set_song_property.
13214         * shell/rb-shell.xml: Export setSongProperty.
13216         * shell/rb-shell.c (rb_shell_set_song_property): New function.
13217         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
13218         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
13220         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
13221         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
13222         want to notify of the change.
13223         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
13225         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
13226         logic error; idle functions would be enqueued for each set.
13227         (rhythmdb_entry_set): Fix assertion logic error.
13229         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
13230         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
13231         Return if the entry already exists.
13232         
13233 2005-08-29  Colin Walters  <walters@verbum.org>
13235         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
13236         "inserted" member which we use to keep track of
13237         whether or not an entry is in the DB.  Prototype
13238         rhythmdb_entry_set_uninserted.
13240         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
13241         flag.
13242         (rhythmdb_entry_insert): Assert entry is not already inserted.
13243         (rhythmdb_process_metadata_load): Update to call _set_uninserted
13244         just after creating entry.
13245         (rhythmdb_entry_set): Document, and fail on uninserted entries.
13246         (rhythmdb_entry_set_nonotify): Ditto.
13247         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
13248         entries.
13249         (rhythmdb_entry_set_internal): Change notify flag to
13250         notify_if_inserted.  Also move notification after assertions.
13252         Update all existing callers of rhythmdb_entry_set_internal
13253         to give TRUE for notify_if_inserted; this should be what
13254         we want but may be an efficiency hit.
13255         
13256 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
13258         * shell/rb-shell-player.c: (rb_shell_player_init),
13259         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
13260         (rb_shell_player_set_playing_source_internal),
13261         (rb_shell_player_sync_with_selected_source): Notify the player when an
13262         entry has updated the title, album or artist field, and resync the big
13263         display.
13264         
13265         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
13266         * sources/rb-library-source.c: (rb_library_source_class_init),
13267         (impl_get_config_widget):
13268         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
13269         * sources/rb-source.c:
13270         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
13271         get_album functions in rb-source and adapted other sources accordingly.
13272         
13273 2005-08-29  Colin Walters  <walters@verbum.org>
13275         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
13276         signal_change member.
13277         (threadsafe_entry_set): New function.
13278         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
13279         (rhythmdb_entry_set_nonotify): New function; just call
13280         threadsafe_entry_set with FALSE.
13281         (rhythmdb_entry_set_internal): Take a notify flag; if true
13282         add the change to our pending set.
13284         Also update all internal callers of rhythmdb_entry_set_internal
13285         to pass FALSE.  Some of these may be bugs however and need to
13286         pass TRUE...
13288         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
13289         rhythmdb_entry_set, and rename rhythmdb_entry_set to
13290         rhythmdb_entry_set_nonotify.
13292         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
13293         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
13295         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
13297         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
13298         * sources/rb-source.c (rb_source_update_play_statistics): 
13299         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
13300         * sources/rb-ipod-source.c (entry_set_string_prop) 
13301         (load_ipod_db_idle_cb): 
13302         * shell/rb-shell.c (rb_shell_set_rating_impl): 
13303         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
13304         (info_available_cb): 
13305         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
13306         (rb_station_properties_dialog_sync_entries): 
13307         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
13309         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
13310         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
13311         
13312 2005-08-29  Colin Walters  <walters@verbum.org>
13314         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
13316         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
13317         linking insanity.
13319         * widgets/rb-header.c (sanitize_string): New function, extracted
13320         from old info_url.  Be sure to always strip the string.
13321         (info_url): Rewrite to take artist/album, and generate a sane
13322         URL for them from last.fm, which is better than allmusic.com in
13323         that they support Rhythmbox, and have a *SANE* URL scheme.
13324         (artist_info_url, album_info_url): Delete.
13325         (rb_header_sync): Use info_url.
13327 2005-08-29  James Livingston  <jrl@ids.org.au>
13329         * sources/rb-source.c: (rb_source_search): Check to ensure that this
13330         is implemented before calling it. Many sources don't implement the
13331         method.
13333 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
13335         * data/glade/create-playlist.glade:  Cleanup the layout,
13336         and add a few more mnemonics.
13337         * shell/rb-playlist-manager.c:
13338         (rb_playlist_manager_cmd_load_playlist),
13339         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
13340         capitalization for window titles.
13341         * widgets/rb-query-creator-properties.c: Add mnemonics
13342         to checkbutton labels.
13343         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
13344         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
13346 2005-08-28  Colin Walters  <walters@verbum.org>
13348         * data/rhythmbox.schemas: Delete search_text for library
13349         and iradio; this isn't a persistent value anymore.
13350         Closes #313757.
13351         
13352         * sources/rb-source.h:
13353         * sources/rb-source.c: Delete impl_can_search.
13355         * sources/rb-iradio-source.c: Delete search_text usage.
13356         * sources/rb-library-source.c: Ditto.
13358         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
13359         search when source is set, and just do rb_source_search in
13360         rb_source_header_search_cb.
13362         * shell/rb-shell.c (rb_shell_append_source): Don't
13363         initiate search.
13365         * shell/Makefile.am: Don't dist dashboard.c.
13367 2005-08-28  Colin Walters  <walters@verbum.org>
13369         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
13370         
13371 2005-08-28  Colin Walters  <walters@verbum.org>
13373         * data/org.gnome.Rhythmbox.service.in: New.
13375         * data/Makefile.am: Install service file.
13377         * configure.ac: Define DBUS_SERVICES_DIR.
13379         * autogen.sh: Set ACLOCAL_FLAGS.
13381         * macros/acinclude.m4: New.
13382         
13383 2005-08-28  Colin Walters  <walters@verbum.org>
13385         Initial patch from Jonathan Matthew; closes 313684.
13387         * rhythmdb/rhythmdb-tree.c:
13388         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
13389         (save_entry): Return on error.
13390         (rhythmdb_tree_save): Handle error when saving the
13391         db; additionally, handle errors from fclose and unlink,
13392         and print error too.
13394 2005-08-28  Colin Walters  <walters@verbum.org>
13396         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
13397         extra _.
13398         
13399 2005-08-28  Colin Walters  <walters@verbum.org>
13401         * configure.ac: Change iPod support to --with-ipod;
13402           automatically enable it if we have HAL.  Try to
13403           support both HAL 0.5 and HAL 0.2.  Break out
13404           totem-plparser into its own check so later we
13405           can do version tests there too.
13406           Kill dashboard support.
13407         
13408         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
13409         to support HAL > 0.5, but preserve the old code for HAL < 0.5
13410         Closes #310017.
13411         
13412         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
13413         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
13415         * sources/Makefile.am: Also handle
13416         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
13418         * shell/dashboard.c: Delete; someone should just write a little
13419         python shim which lists on the D-BUS interface and writes the
13420         stuff to Dashboard.  Even better Dashboard should be ported
13421         to D-BUS and do the listening itself, perhaps on an abstract
13422         "org.gnome.MusicPlayer" interface or something.
13424         * shell/rb-shell.c: Kill dashboard support.
13426 2005-08-28  Colin Walters  <walters@verbum.org>
13428         * remote/dbus/rb-print-playing.py: New file.
13430 2005-08-28  Colin Walters  <walters@verbum.org>
13432         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
13433         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
13435         * shell/rb-shell-player.h:
13436         * shell/rb-shell-player.c: Add playing-uri-changed signal.
13437         * shell/rb-shell-player.xml: Export it.
13439         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
13440         (rb_shell_error_quark): New.
13442         * shell/rb-shell.h: Prototype.  Also add RBShellError.
13443         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
13444         
13445 2005-08-28  Colin Walters  <walters@verbum.org>
13447         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
13448         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
13449         bonobo_unlock.
13450         (rb_remote_bonobo_preinit): Lock setting moved here.
13451         (rb_remote_bonobo_init): From here.
13453         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
13454         Also invoke handle_cmdline in the right place.
13455         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
13456         GFunc.
13458 2005-08-28  James Livingston  <jrl@ids.org.au>
13460         * NEWS: keep the NEWS file up to date, so we don't have to do it all
13461         when 0.9.1 comes around.
13463 2005-08-28  James Livingston  <jrl@ids.org.au>
13465         * iradio/rb-new-station-dialog.c:
13466         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
13467         bug 314477.
13469 2005-08-28  James Livingston  <jrl@ids.org.au>
13471         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
13473         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
13474         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
13475         is a song is longer than 60 minutes. Closes bug 313311.
13477 2005-08-27  James Livingston  <jrl@ids.org.au>
13479         * data/glade/create-playlist.glade:
13480         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
13481         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
13482         "minutes" as an option in the playlist limit menu.
13484         * rhythmdb/rhythmdb-query-model.c:
13485         (rhythmdb_query_model_class_init),
13486         (rhythmdb_query_model_set_property),
13487         (rhythmdb_query_model_get_property),
13488         (rhythmdb_query_model_update_limited_entries): Allow query models to
13489         have a time limit
13490         
13491         * shell/rb-playlist-manager.c:
13492         (rb_playlist_manager_set_automatic_playlist),
13493         (rb_playlist_manager_cmd_edit_automatic_playlist):
13494         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
13495         (rb_playlist_source_get_query), (impl_receive_drag),
13496         (rb_playlist_source_new_from_xml),
13497         (rb_playlist_source_save_to_xml),
13498         (rb_playlist_source_songs_sort_order_changed_cb),
13499         (rb_playlist_source_do_query):
13500         * sources/rb-playlist-source.h:
13501         * widgets/rb-query-creator.h: Allow playlists to be limited by time
13503 2005-08-27  James Livingston  <jrl@ids.org.au>
13505         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
13507         * configure.ac:
13508         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
13509         non-standard location. Closes bug 314640.
13511 2005-08-26  Colin Walters  <walters@verbum.org>
13512         
13513         Patch from Olivier Blin <oblin@mandriva.com>
13515         * widgets/eggnotificationbubble.c (draw_bubble): 
13516         Handle extreme-left case as well.
13517         
13518 2005-08-26  Colin Walters  <walters@verbum.org>
13520         * shell/rb-shell.c (idle_save_state): Don't do this.
13521         (rb_shell_construct): Remove idle calls to idle_save_state.
13522         We should save the playlists automatically when they're
13523         modified.
13524         (rb_shell_load_uri): Don't try to re-stat entry if it already
13525         exists.
13527         * shell/rb-shell-player.c: Keep track of entry we are attempting
13528         to play.
13529         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
13530         Don't double-free error.
13531         (rb_shell_player_play_entry): Signal errors.
13532         (rb_shell_player_entry_activated_cb): Ditto.
13533         (rb_shell_player_property_row_activated_cb): Ditto.
13534         (rb_shell_player_set_playing_source_internal): Unset attempted
13535         playing entry.
13536         (rb_shell_player_error): Refactor to be usable both sync and
13537         async.  Handle case where displayed entry differs from entry.
13538         (error_cb): Move GDK locking here.
13540         * shell/main.c (main): Drop most commandline arguments for D-BUS;
13541         people can just use dbus-send or python.  We only support focusing
13542         and loading files.
13543         (load_uri_args): New function, extracted from handle_cmdline.
13544         (dbus_load_uri, bonobo_load_uri): New functions.
13546         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
13547         appropriate.
13549         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
13550         * remote/dbus/rb-remote-dbus.c: Deleted.
13552         * player/rb-player-gst.c: Clear any pending idle handlers when we
13553         close the player.  Signal errors generated during open/play etc
13554         as synchronous errors.
13556         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
13557         
13558 2005-08-26  Colin Walters  <walters@verbum.org>
13560         * shell/rb-shell.c (rb_shell_present): Try harder.
13562 2005-08-26  Colin Walters  <walters@verbum.org>
13564         * shell/rb-shell.c (rb_shell_present): Try to handle
13565         GTK_MINOR_VERSION < 8.
13567 2005-08-26  James Livingston  <jrl@ids.org.au>
13569         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
13570         <pbrobinson@gmail.com>
13572 2005-08-26  Colin Walters  <walters@verbum.org>
13574         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
13576 2005-08-25  Colin Walters  <walters@verbum.org>
13578         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
13579         Delete.
13580         (rb_shell_player_do_next_with_rating): Move back into
13581         rb_shell_player_do_next.
13582         (rb_shell_player_entry_activated_cb): Remove call to
13583         rb_shell_player_auto_adjust_rating.
13584         (do_next_idle): Just call rb_shell_player_do_next.
13586         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
13588 2005-08-25  Colin Walters  <walters@verbum.org>
13590         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
13591         before gtk_window_present_with_time.
13592         
13593 2005-08-25  Colin Walters  <walters@verbum.org>
13595         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
13596         default.
13598         * shell/rb-shell.c (rb_shell_constructor): Adapted from
13599         rb_shell_construct.  This is so we only have to do g_object_new.
13600         (rb_shell_get_player): New function.
13601         (rb_shell_get_player_path): Ditto.
13602         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
13603         
13604         * shell/rb-shell.h: Prototype them.
13606         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
13607         export over D-BUS.
13608         (reemit_playing_signal): New function.
13609         (rb_shell_player_open_playlist_location): Use return values from
13610         rb_player_open, rb_player_close, etc. instead of checking "error".
13611         Return a gboolean on failure.
13612         (rb_shell_player_open_entry): Just open entry location, don't
13613         print to stderr.
13614         (rb_shell_player_play): Handle retval from rb_player_play.  Return
13615         a gboolean.
13616         (do_next_idle): Move logic for handling of end of playlist here.
13617         (rb_shell_player_set_playing_entry): Take a GError, return a
13618         gboolean.  Update to use gboolean return values.
13619         (rb_shell_player_do_previous): Delete lots of crazy duplicate
13620         logic.  Signal an error on end of playlist.  Also signal error if
13621         we're not playing.  Move heuristic for replaying the song into
13622         rb_shell_player_cmd_previous.
13623         (rb_shell_player_do_next_with_rating): Signal error on end of
13624         playlist.
13625         (rb_shell_player_do_next): Return errors.
13626         (rb_shell_player_cmd_previous): Heuristic for restarting song
13627         moved here; the idea is you generally only want that from the GUI.
13628         (rb_shell_player_cmd_play): Handle error.
13629         (rb_shell_player_playpause): Signal errors.
13630         (filter_mmkeys): Use rb_shell_player_cmd_previous and
13631         rb_shell_player_cmd_next in favor of the internal _do functions.
13632         
13633         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
13634         errors.  Update prototypes for above changes.
13636         * shell/main.c: More tightly integrate D-BUS; register various
13637         major singleton objects here.  Fix handle_cmdline so we only
13638         process extra arguments, not every argument.
13640         * shell/Makefile.am: Generate D-BUS glue headers.
13642         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
13643         into shell/main.c.  Now this file just acts as a client library.
13644         Not heavily tested.
13646         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
13647         Moved here.
13648         (rb_remote_bonobo_init): Move long CORBA rant here along with
13649         setting of lock functions.
13651         * player/rb-player-gst.c (rb_player_construct)
13652         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
13653         on error.
13655         * player/rb-player.h: Update prototypes.
13657         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
13658         rb-remote-bonobo.c.
13659         (rb_threads_init): Don't set gdk lock functions here.
13661 2005-08-25  James Livingston  <jrl@ids.org.au>
13663         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
13665         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
13666         * lib/rb-tree-dnd.h:
13667         * rhythmdb/rhythmdb-property-model.c:
13668         (rhythmdb_property_model_class_init),
13669         (rhythmdb_property_model_drag_source_init),
13670         (rhythmdb_property_model_iter_parent),
13671         (rhythmdb_property_model_row_draggable),
13672         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
13673         (rhythmdb_property_model_drag_data_get),
13674         (rhythmdb_property_model_enable_drag):
13675         * rhythmdb/rhythmdb-property-model.h:
13676         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
13677         (rb_playlist_manager_set_property), (append_new_playlist_source),
13678         (rb_playlist_manager_save_playlists):
13679         * shell/rb-shell.c: (rb_shell_construct),
13680         (sourcelist_drag_received_cb):
13681         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
13682         * sources/rb-playlist-source.c: (impl_receive_drag):
13683         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
13684         (rb_sourcelist_model_drag_dest_init),
13685         (rb_sourcelist_model_set_dnd_targets),
13686         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
13687         (rb_sourcelist_model_row_drop_position),
13688         (rb_sourcelist_model_get_drag_target),
13689         (rb_sourcelist_model_drag_data_get):
13690         * sources/rb-sourcelist-model.h:
13691         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
13692         (rb_sourcelist_init), (rb_sourcelist_get_property),
13693         (rb_sourcelist_selection_changed_cb):
13694         * sources/rb-sourcelist.h:
13695         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
13696         improve drag-n-drop support. Allow dragging of item from property
13697         views to the source list, to create new automatic playlists. Allow
13698         playlist re-ordering. Fix dragging from Rhythmbox to other
13699         applications. (Closes bug 147337)
13701 2005-08-24  Colin Walters  <walters@verbum.org>
13703         Patch from Olivier Blin <oblin@mandriva.com>
13705         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
13706         correctly in the case where the window is next to monitor edge.
13708 2005-08-24  James Livingston  <jrl@ids.org.au>
13710         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13711         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
13712         a gobject property to get the query model that backs the playlist.
13714 2005-08-24  James Livingston  <jrl@ids.org.au>
13716         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
13717         (handle_playlist_entry_into_playlist_cb),
13718         (rb_playlist_manager_playlist_entries_changed): Disable the "create
13719         audio cd" menu item when a non-playlist source is selected, or the
13720         playlist is empty. (Closes Bug 313253)
13722 2005-08-24  James Livingston  <jrl@ids.org.au>
13724         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
13725         Fix the playlist length checkso it doesn't report 0 for automatic
13726         playlists. This was stopping automati playlists being burnt to cd.
13728 2005-08-24  James Livingston  <jrl@ids.org.au>
13730         * configure.ac:
13731         * sources/rb-playlist-source-recorder.c: (burn_cd):
13732         * sources/rb-playlist-source.c:
13733         (rb_playlist_source_songs_sort_order_changed_cb):
13734         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
13735         more warnings that occur when compiling RPMs on Fedora.
13737 2005-08-24  James Livingston  <jrl@ids.org.au>
13739         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
13740         was stopping some distros gcc version compiling.
13742 2005-08-24  James Livingston  <jrl@ids.org.au>
13744         * NEWS:
13745         * data/glade/create-playlist.glade:
13746         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
13747         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
13748         (rhythmdb_query_free), (rhythmdb_query_serialize),
13749         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
13750         * rhythmdb/rhythmdb.h:
13751         * shell/rb-playlist-manager.c:
13752         (rb_playlist_manager_set_automatic_playlist),
13753         (rb_playlist_manager_cmd_edit_automatic_playlist):
13754         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
13755         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
13756         (impl_receive_drag), (rb_playlist_source_new_from_xml),
13757         (rb_playlist_source_save_to_xml),
13758         (rb_playlist_source_songs_sort_order_changed_cb),
13759         (rb_playlist_source_do_query):
13760         * sources/rb-playlist-source.h:
13761         * widgets/Makefile.am:
13762         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
13763         (rb_entry_view_set_sorting_order):
13764         * widgets/rb-query-creator-private.h:
13765         * widgets/rb-query-creator-properties.c:
13766         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
13767         (stringCriteriaGetWidgetData),
13768         (escapedStringCriteriaSetWidgetData),
13769         (escapedStringCriteriaGetWidgetData), (set_rating_score),
13770         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
13771         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
13772         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
13773         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
13774         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
13775         (relativeTimeCriteriaCreateWidget),
13776         (relativeTimeCriteriaSetWidgetData),
13777         (relativeTimeCriteriaGetWidgetData):
13778         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
13779         (rb_query_creator_class_init), (rb_query_creator_constructor),
13780         (rb_query_creator_dispose), (rb_query_creator_set_property),
13781         (rb_query_creator_get_property), (rb_query_creator_load_query),
13782         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
13783         (get_entry_for_property), (rb_query_creator_get_query),
13784         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
13785         (limit_toggled_cb), (lookup_row_by_widget),
13786         (remove_button_click_cb), (append_row),
13787         (get_property_index_from_proptype), (select_criteria_from_value),
13788         (property_option_menu_changed), (create_property_option_menu),
13789         (create_criteria_option_menu), (sort_option_menu_changed),
13790         (setup_sort_option_menu):
13791         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
13792         playlists. The two most notable improvements are 1) adding more
13793         properties to the query creator, making it much easier to add more in
13794         the future, and 2) allow playlists to be sorted, from the query editor
13795         if they gave limits, and by clicking on column headers if they don't.
13797         Files added: widgets/rb-query-creator-private.h,
13798         sources/rb-query-creator-properties.c
13800 2005-08-21  James Livingston  <jrl@ids.org.au>
13802         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
13803         error=NULL. This stops some crashes.
13805 2005-08-19  Colin Walters  <walters@verbum.org>
13807         Patch from Olivier Blin <oblin@mandriva.com>
13809         * widgets/eggnotificationbubble.c (force_window): Support top
13810         orientation.
13811         * widgets/eggnotificationbubble.h: Remove
13812         egg_notification_bubble_force_window from header.
13813         
13814 2005-08-18  James Livingston  <jrl@ids.org.au>
13816         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
13817         with the changes since then.
13819 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
13821         * shell/rb-shell-player.c: (rb_shell_player_init),
13822         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
13823         (rb_shell_player_volume_widget_changed_cb):
13824         * sources/rb-iradio-source.c:
13825         * sources/rb-library-source.c:
13826         * sources/rb-playlist-source.c:
13827         * widgets/Makefile.am:
13828         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
13829         (bacon_volume_button_class_init), (bacon_volume_button_init),
13830         (bacon_volume_button_dispose), (bacon_volume_button_new),
13831         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
13832         (bacon_volume_button_scroll), (bacon_volume_button_press),
13833         (cb_button_timeout), (cb_button_press), (cb_button_release),
13834         (bacon_volume_release_grab), (cb_dock_press),
13835         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
13836         (bacon_volume_scale_new), (bacon_volume_scale_press),
13837         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
13838         * widgets/bacon-volume.h:
13839         * widgets/rb-volume.c:
13840         * widgets/rb-volume.h:
13841           Use BaconVolumeButton (#300867).
13843 2005-08-17  James Livingston  <jrl@ids.org.au>
13845         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
13846         (rhythmdb_process_metadata_load): don't reset the First Seen time
13847         whenever we recheck the metadata.
13849 2005-08-17  James Livingston  <jrl@ids.org.au>
13851         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
13852         temporary workaround to stop crashes when trying to burn an empty
13853         playlist. Doesn't disable the menu item which is the better solution
13854         (Bug 313253).
13856 2005-08-15  James Livingston  <jrl@ids.org.au>
13858         * shell/rb-source-header.c: (rb_source_header_init),
13859         (rb_source_header_sync_control_state),
13860         (rb_source_header_search_activate_cb):
13861         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
13862         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
13863         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
13864         (rb_search_entry_init), (rb_search_entry_searching),
13865         (rb_search_entry_activate_cb):
13866         * widgets/rb-search-entry.h: Move focus to the entry view when user
13867         presses enter in the search box. Patch from Paolo Borelli
13868         <pborelli@katamail.com> (Closes bug 128110)
13870 2005-08-15  James Livingston  <jrl@ids.org.au>
13872         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
13873         (rb_playlist_manager_new_playlist):
13874         * shell/rb-playlist-manager.h:
13875         * shell/rb-shell.c: (rb_shell_construct),
13876         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
13877         the source list to be shown when a new playlist is created. (Closes
13878         bug 161935)
13880 2005-08-15  James Livingston  <jrl@ids.org.au>
13882         * widgets/rb-header.c: (rb_header_init),
13883         (rb_header_set_show_timeline): disable the seek slider, rather than
13884         hiding it, which more closely follows the HIG. (Closes bug 139102)
13886 2005-08-13  Colin Walters  <walters@verbum.org>
13888         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
13889         rb_shell_hidden_notify.
13890         (rb_shell_hidden_notify): Notify if the shell is hidden.
13891         (rb_shell_set_visibility_impl): Debug goo.
13893         * shell/rb-shell.h: Export rb_shell_hidden_notify.
13895         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
13896         when the user clicks on notification.
13898         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
13899         CD burn is complete.
13900         (rb_playlist_source_recorder_finalize): Unref shell.
13901         (rb_playlist_source_recorder_new): Take shell.
13903         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
13904         Pass shell to RBPlaylistSourceRecorder.
13905         
13906 2005-08-13  Colin Walters  <walters@verbum.org>
13908         * lib/rb-thread.c:
13909         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
13910           time to convert.
13912 2005-08-13  Colin Walters  <walters@verbum.org>
13914         * widgets/eggnotificationbubble.h:
13915         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
13916         * widgets/eggtrayicon.c:
13917         * widgets/eggtrayicon.h: Add notification API.
13918         * shell/rb-tray-icon.c:
13919         * shell/rb-tray-icon.h: Add notification API.
13920         * shell/rb-shell.c: Notify on song change.
13922 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
13924         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
13925         Correct an inversion of two lines causing NULL to be unreffed
13927 ============ Version 0.9.0
13929 2005-08-10  Bastien Nocera  <hadess@hadess.net>
13931         * configure.ac: 0.9.0, whee!
13932         * NEWS: badly updated
13933         * remote/bonobo/Makefile.am:
13934         * remote/bonobo/rb-remote-bonobo.h:
13935         * shell/Makefile.am:
13936         * shell/main.c: make distcheck fixes