2006-07-07 James Livingston <doclivingston@gmail.com>
[rhythmbox.git] / ChangeLog
blobd76d9fffd590fb38c5d14c08a6dda21bd83ea033
1 2006-07-07  James Livingston  <doclivingston@gmail.com>
3         * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
4         remove an extraneous !, which caused it not to monitor folders in the
5         library with no tracks in them. Fixes #346759.
7 2006-07-07  James Livingston  <doclivingston@gmail.com>
9         * rhythmdb/rhythmdb-private.h:
10         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
11         (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
12         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
13         (rhythmdb_entry_get_string):
14         * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
15         flags for the affected properties. _sync_mirrored will get run
16         automatically when a dirty property is accessed, which improves
17         performance a bit (especially during startup) as we don't need to sync
18         every time they change. From #325215.
20         * tests/bench-rhythmdb-load.c
21         * tests/Makefile.am: add a RhythmDB loading benchmark.
23 2006-07-06  James Livingston  <doclivingston@gmail.com>
25         * bindings/python/rb.defs:
26         * bindings/python/rb.override: some more fixes, so that
27         python classes derived from RBSource work correctly.
29 2006-07-06  James Livingston  <doclivingston@gmail.com>
31         * configure.ac: bump pygtk requirements to 2.8, since we're already
32         using some features of it, and weird things will happen if people are
33         actually trying to use pygtk 2.6.
35         * bindings/python/rb.override:
36         * bindings/python/rhythmdb.defs:
37         * bindings/python/rhythmdb.override: allow python to set
38         RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
40         * sources/rb-browser-source.c: remove some left over member variables
42 2006-07-06  James Livingston  <doclivingston@gmail.com>
44         * rhythmdb/rhythmdb.c:
45         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
46         (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
47         rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
48         former is pointless (as rhythmdb already knows which it should use)
49         and the latter doesn't seem useful at all, and possibly bad. From
50         #330226.
52         * bindings/python/rhythmdb.defs:
53         * bindings/python/rhythmdb.override:
54         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
55         (handle_song_listing):
56         * podcast/rb-podcast-manager.c:
57         (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
58         (rb_podcast_manager_insert_feed):
59         * sources/rb-audiocd-source.c: (entry_set_string_prop),
60         (rb_audiocd_create_track_entry):
61         * sources/rb-ipod-source.c: (entry_set_string_prop),
62         (add_ipod_song_to_db):
63         * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
64         * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
66 2006-07-05  James Livingston  <doclivingston@gmail.com>
68         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
69         (playlist_load_end_cb), (rb_playlist_manager_parse_file),
70         (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
71         totem-plparser gives us, or the file name if it doesn't give us
72         anything. Set the default file name when saving too. Fixes #345261
74 2006-07-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
76         patch by: Ed Catmur  <ed@catmur.co.uk>
78         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
79         Skip all hidden directories, not just trash, and skip unreadable
80         files.  Fixes #346322.
82 2006-07-04  James Livingston  <doclivingston@gmail.com>
84         * plugins/rb-module.h:
85         * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
86         (rb_module_new):
87         * plugins/rb-plugin.h:
88         * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
89         (rb_plugin_finalise), (rb_plugin_set_property),
90         (rb_plugin_get_property), (rb_plugin_activate),
91         (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
92         (rb_plugin_find_file):
93         * plugins/rb-plugins-engine.c: (load_plugin_module):
94         * plugins/rb-python-module.c: (rb_python_module_new_object),
95         (rb_python_module_new):
96         * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
97         rb_plugin_find_file method for locating plugin-specific data. Fixes
98         346473.
100         * bindings/python/rb.defs:
101         * plugins/Makefile.am:
102         * plugins/generic-player/rb-generic-player-plugin.c:
103         (create_source_cb):
104         * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
106 2006-07-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
108         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
109         (rb_metadata_can_save), (rb_metadata_save):
110         Protect the dbus connection with a mutex.
112 2006-07-03  James Livingston  <doclivingston@gmail.com>
114         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
115         case of the parser/tagger not being able to be created.
117 2006-07-03  James Livingston  <doclivingston@gmail.com>
119         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
121         * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
122         window resizable, as it used to be. Fixes #345940.
124 2006-07-01  James Livingston  <doclivingston@gmail.com>
126         Patch from Ståle Lyngaas  <staale@lyngaas.com>
128         * rhythmdb/rhythmdb.h:
129         * rhythmdb/rhythmdb-private.h:
130         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
131         (rhythmdb_tree_parser_end_element), (save_entry):
132         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
133         (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
134         (set_props_from_metadata), (rhythmdb_entry_set_internal),
135         (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
136         MusicBrainz track IDs in the database, and bump the on-disk version
137         number to trigger a metadata reload.
139         * backends/gstreamer/rb-player-gst.c: (process_tag):
140         * metadata/rb-metadata-common.c:
141         * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
142         (rb_metadata_gst_field_to_gst_tag):
143         * metadata/rb-metadata.h: grab MB track IDs and use them.
145         * plugins/audioscrobbler/rb-audioscrobbler.c:
146         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
147         (rb_audioscrobbler_timeout_cb),
148         (rb_audioscrobbler_song_changed_cb): send the MB track id along with
149         the other metadata. Fixes #343491.
151 2006-06-30  James Livingston  <doclivingston@gmail.com>
153         * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
154         method.
156 2006-06-30  James Livingston  <doclivingston@gmail.com>
158         * bindings/python/rb.defs:
159         * sources/rb-browser-source.c: (rb_browser_source_class_init),
160         (rb_browser_source_songs_show_popup_cb),
161         (default_show_entry_popup):
162         * sources/rb-browser-source.h:
163         * sources/rb-library-source.c: (rb_library_source_class_init),
164         (rb_library_source_constructor), (impl_show_popup): allow
165         RBBrowserSource-derived sources to override the entry context menu
166         properly - by making it a virtual function, rather than relying on
167         signal handler order (which doesn't really work).
169 2006-06-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
171         * rhythmdb/rhythmdb-query-model.c:
172         (rhythmdb_query_model_reapply_query_cb):
173         Use the original query, not the preprocessed query, when redoing
174         the query to pick up entries that previously didn't match.
175         Preprocessing the query twice is bad.  Fixes #346186.
177 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
179         * plugins/audioscrobbler/rb-audioscrobbler.c:
180         (rb_audioscrobbler_song_changed_cb):
181         Just check if the elapsed time has been reset, rather
182         than checking if it's a different track.  Fixes #344827.
184 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
186         * backends/gstreamer/rb-player-gst.c:
187         Set cdda source read-speed to 1.  Fixes gaps in playback while the
188         drive spins up, #344576.
190 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
192         * plugins/audioscrobbler/rb-audioscrobbler.c:
193         (rb_audioscrobbler_perform):
194         Use HTTP/1.1.  Fixes #345895.
196 2006-06-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
198         * lib/rb-preferences.h:
199         * lib/rb-proxy-config.c: (rb_proxy_config_init),
200         (check_auto_proxy_config), (get_proxy_config):
201         Don't try to use a HTTP proxy if no proxy host is specified.
202         Alert the user to the fact that we don't support automatic proxy
203         configuration as infrequently as possible.  From #345712.
205 2006-06-25  James Livingston  <doclivingston@gmail.com>
207         * rhythmdb/rhythmdb-property-model.c:
208         (rhythmdb_property_model_set_property): connect to the
209         "post-entry-delete" signal, rather than "entry-deleted". This ensures
210         things get removed correctly, fixes #338183.
212 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
214         * rhythmdb/rhythmdb-query-model.c:
215         (rhythmdb_query_model_drag_data_received):
216         Fix build break.
218 2006-06-25  James Livingston  <doclivingston@gmail.com>
220         patch by Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
222         * widgets/rb-search-entry.c: (rb_search_entry_init),
223         (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
224         search box have a pale yellow background when it's in use, except for
225         when the user has an "accessability" theme. Code based heavily on
226         Epiphany's. Fixes #344416.
228 2006-06-25  James Livingston  <doclivingston@gmail.com>
230         * plugins/lyrics/lyrics.py:
231         * plugins/pythonconsole/pythonconsole.py:
232         * plugins/sample-python/sample-python.py: don't import gettext stuff
233         as _, as the C code does this for us. Fixes i18n for python plugins,
234         #343081
236 2006-06-25  James Livingston  <doclivingston@gmail.com>
238         * rhythmdb/rhythmdb-query-model.c:
239         (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
240         a model use a reorder rather then deleting and re-adding the entry.
241         This means it does do weird things like stop playback of a track that
242         is dragged, fixing #337657.
244 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
246         * metadata/rb-metadata-dbus-service.c:
247         Add missing #include <glib/gi18n.h> from previous commit.
249 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
251         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
253         * metadata/rb-metadata-dbus-service.c: (main):
254         Initialize gettext in the metadata helper.
255         * metadata/rb-metadata-gst.c:
256         Make some strings translatable.  Fixes #345286.
258 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
260         * configure.ac:
261         * lib/Makefile.am:
262         * lib/rb-stock-icons.c: (rb_stock_icons_init):
263         Inline the custom icons so they can always be loaded, but are still
264         themable.  Fixes #345796.
266 2006-06-23  James Livingston  <doclivingston@gmail.com>
268         * sources/rb-auto-playlist-source.c:
269         (rb_auto_playlist_source_do_query): stop the search box being applied
270         for limits in auto playlists. Fixes #345307.
272 2006-06-23  James Livingston  <doclivingston@gmail.com>
274         * shell/rb-shell-clipboard.c:
275         (rb_shell_clipboard_set_source_internal),
276         (rb_shell_clipboard_sync), (add_playlist_to_menu),
277         (rebuild_playlist_menu): don't use the add-to-playlist menu for
278         non-library tracks, as we don't supprot it yet. From #345248.
280 2006-06-23  James Livingston  <doclivingston@gmail.com>
282         patch by: Brian Cameron  <brian.cameron@sun.com>
284         * plugins/generic-player/rb-generic-player-plugin.c:
285         * plugins/generic-player/rb-generic-player-source.c:
286         * plugins/generic-player/rb-nokia770-source.c:
287         * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
288         Fixes 345673.
290 2006-06-22  James Livingston  <doclivingston@gmail.com>
292         * backends/rb-player.c: (rb_player_interface_init):
293         * lib/rb-marshal.list:
294         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
295         * rhythmdb/rhythmdb-query-model.c:
296         (rhythmdb_query_model_class_init):
297         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
298         * shell/rb-shell-player.c: (rb_shell_player_class_init):
299         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
300         * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
301         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
302         * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
303         marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
304         possible not.
306 2006-06-20  James Livingston  <doclivingston@gmail.com>
308         patch by Alex Lancaster  <alexl@users.sourceforge.net>
310         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
311         metadata to clients. Fixes #345276.
313 2006-06-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
315         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
316         (rb_add_id3_tagger):
317         Fix plugin/element version detection for id3v2mux.
319 2006-06-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
321         * sources/rb-source.c: (rb_source_finalize),
322         (rb_source_set_property), (rb_source_post_entry_deleted_cb),
323         (_autohide_update_visibility),
324         (_rb_autohide_source_post_entry_deleted_cb),
325         (_rb_autohide_source_row_inserted_cb),
326         (_rb_source_hide_when_empty):
327         Use post-entry-delete signal to update status and autohide sources.
329 2006-06-20  James Livingston  <doclivingston@gmail.com>
331         * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
332         "selection changed" idle callback, if present.
334 2006-06-19  James Livingston  <doclivingston@gmail.com>
336         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
338         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
339         don't try to translate the empty string. Fixes #345285.
341 2006-06-19  James Livingston  <doclivingston@gmail.com>
343         * bindings/python/rhythmdb.override: more python binding fixes
345 2006-06-19  James Livingston  <doclivingston@gmail.com>
347         * lib/rb-util.c: (rb_copy_function):
348         * lib/rb-util.h: add a function that returns the same pointer it was
349         passed.
351         * rhythmdb/rhythmdb.h:
352         * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
353         (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
354         "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
355         and RhythmDBEntryType into boxed types. This allows them to be used
356         from python. Note that entry-types aren't actually reference counted
357         (yet).
359         * bindings/python/rb.defs:
360         * bindings/python/rhythmdb.defs:
361         * bindings/python/rhythmdb.override: Adapt to the above, and fix the
362         return types of some bindings.
364         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
365         (process_added_entries_cb), (rhythmdb_entry_finalize),
366         (rhythmdb_entry_delete):
367         * daapsharing/rb-daap-connection.c:
368         (rb_daap_connection_class_init), (rb_daap_connection_set_property),
369         (rb_daap_connection_get_property):
370         * plugins/generic-player/rb-generic-player-source.c:
371         (rb_generic_player_source_load_songs), (load_playlist_file):
372         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
373         * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
374         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
375         (idle_process_update), (rhythmdb_query_model_add_entry),
376         (rhythmdb_query_model_insert_into_main_list),
377         (rhythmdb_query_model_insert_into_limited_list),
378         (rhythmdb_query_model_remove_from_main_list),
379         (rhythmdb_query_model_remove_from_limited_list),
380         (rhythmdb_query_model_drag_data_received),
381         (rhythmdb_query_model_add_results),
382         (rhythmdb_query_model_get_column_type),
383         (rhythmdb_query_model_get_value):
384         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
385         (rhythmdb_tree_entry_delete), (remove_one_song):
386         * shell/rb-play-order-linear-loop.c:
387         (rb_linear_play_order_loop_get_next),
388         (rb_linear_play_order_loop_get_previous):
389         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
390         (rb_linear_play_order_get_previous):
391         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
392         (rb_queue_play_order_get_previous):
393         * shell/rb-play-order-random.c: (rb_random_play_order_init),
394         (rb_random_filter_history), (rb_random_play_order_get_next),
395         (rb_random_play_order_go_next), (rb_random_db_changed),
396         (rb_random_playing_entry_changed):
397         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
398         (remove_from_history), (add_randomly_to_history),
399         (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
400         * shell/rb-play-order.c: (rb_play_order_class_init),
401         (rb_play_order_set_property), (rb_play_order_get_property),
402         (rb_play_order_update_have_next_previous):
403         * shell/rb-play-order.h:
404         * shell/rb-shell-clipboard.c:
405         (rb_shell_clipboard_process_deletions),
406         (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
407         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
408         * sources/rb-auto-playlist-source.c:
409         (rb_auto_playlist_source_constructor):
410         * sources/rb-browser-source.c: (rb_browser_source_class_init),
411         (rb_browser_source_set_property), (rb_browser_source_get_property),
412         (rb_browser_source_do_query):
413         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
414         * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
415         * sources/rb-ipod-source.c: (add_rb_playlist),
416         (add_ipod_song_to_db), (impl_paste):
417         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
418         (rb_iradio_source_set_property), (rb_iradio_source_get_property):
419         * sources/rb-library-source.c: (layout_example_label_update):
420         * sources/rb-missing-files-source.c:
421         (rb_missing_files_source_class_init),
422         (rb_missing_files_source_set_property),
423         (rb_missing_files_source_get_property),
424         (rb_missing_files_source_new):
425         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
426         (rb_playlist_source_set_property),
427         (rb_playlist_source_get_property):
428         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
429         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
430         (construct_query_from_selection):
431         * sources/rb-removable-media-source.c: (impl_delete_thyself):
432         * sources/rb-static-playlist-source.c:
433         (rb_static_playlist_source_constructor),
434         (rb_static_playlist_source_add_location_internal):
435         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
436         * widgets/rb-header.c: (rb_header_class_init),
437         (rb_header_set_property), (rb_header_get_property):
438         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
439         (rb_library_browser_set_property),
440         (rb_library_browser_get_property):
441         * widgets/rb-song-info.c: (rb_song_info_class_init),
442         (rb_song_info_get_property): Adjust for the _ref/_unref prototype
443         change, do s/pointer/boxed/ in many places and free entry-types
444         properly.
446 2006-06-18  James Livingston  <doclivingston@gmail.com>
448         * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
449         unushed GThreadPool non-exclusive threads every now and then.
451         * rhythmdb/rhythmdb-private.h:
452         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
453         (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
454         threads. Fixes #341593
456 2006-06-19  James Livingston  <doclivingston@gmail.com>
458         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
459         the "Track number" checkbox actually work for playlists. From #329986.
461 2006-06-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
463         * plugins/generic-player/rb-generic-player-source.c:
464         Get playlist and audio folder information from HAL.  Fixes #333845.
466 2006-06-18  James Livingston  <doclivingston@gmail.com>
468         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
470         * widgets/rb-entry-view.h:
471         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
472         (rb_entry_view_append_column_custom),
473         (rb_entry_view_insert_column_custom): add support for inserting custom
474         columns at arbitrary locations, rather than just appending to the end.
476         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
477         the playlists "track number" column go at the start, and add a normal
478         track number column. Fixes #329986.
480 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
482         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
483         a mnemonic conflict.  Add ellipses to the edit button.
484         * sources/rb-library-source.c:
485         (rb_library_source_edit_profile_clicked_cb),
486         (impl_get_config_widget):  Hide dialog separator.  Assign a 
487         mnemonic widget to the labels. Fixes #344114.
489 2006-06-18  James Livingston  <doclivingston@gmail.com>
491         * configure.ac: bump version
492         * NEWS: add NEWS for 0.9.5
494 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
496         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
497         (rb_uri_handle_recursively):
498         Don't attempt to recurse into directories we can't open.  
499         Fixes #341485.
501 2006-06-18  James Livingston  <doclivingston@gmail.com>
503         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
505         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
506         #344610.
508 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
510         * bindings/python/rb.defs:
511         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
512         * shell/rb-shell-player.h:
513         * shell/rb-shell.c: (rb_shell_play_entry):
514         Add source parameter to rb_shell_player_play_entry, using the selected
515         source if not specified.
517         * shell/rb-play-order.c: (rb_play_order_class_init),
518         (rb_play_order_finalize), (rb_play_order_query_model_changed),
519         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
520         (default_playing_entry_removed):
521         * shell/rb-play-order.h:
522         Move entry removal handling back to the row-deleted signal, as we need
523         the entry to be present in the model.  When changing to the next entry
524         after the playing entry is deleted, set the new entry as the playing
525         entry and then sync it to the player in an idle handler, so we don't
526         end up playing it if it was removed too.
527         * shell/rb-play-order-queue.c:
528         (rb_queue_play_order_playing_entry_changed),
529         (rb_queue_play_order_playing_entry_removed):
530         Use the playing-entry-removed handler from the play order class,
531         setting a flag so we don't try to remove the already-removed entry
532         from the model.
534         This makes removal of the playing entry from playlists etc. work more
535         or less correctly for all play orders.  Fixes #344627.
537 2006-06-17  James Livingston  <doclivingston@gmail.com>
539         patch by: Elijah Newren  <newren@gmail.com>
541         * tests/test-rhythmdb.c: fix the build with older versions of check
542         (again). Fixes #343718.
544 2006-06-17  James Livingston  <doclivingston@gmail.com>
546         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
547         name for capsfilter's "caps" property. Fixes #344968.
549 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
551         * shell/rb-shell-player.c: (rb_shell_player_playpause):
552         Don't leak the selected entry list when finding an entry to play.
554 2006-06-17  James Livingston  <doclivingston@gmail.com>
556         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
557         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
558         as a O(1) one works fine, and it will get called often when the user
559         deleted multiple tracks. Part of #344922.
561 2006-06-17  James Livingston  <doclivingston@gmail.com>
563         * shell/rb-shell-player.c: (rb_shell_player_stop): make
564         rb_shell_player_stop and rb_shell_player_playpause not mutually
565         recursive. Fixed #336912.
567 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
569         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
570         Treat nested elements inside properties as unknown.  Fixes parsing of
571         podcast feeds with unescaped HTML in description tags, bug #344532.
573 2006-06-15  William Jon McCann  <mccann@jhu.edu>
575         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
576         when quitting.  Fixes #344875.
578 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
580         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
581         Move the playing-entry-removed handling to after the normal entry
582         delete handling, since we're called after the entry has been removed
583         from the query model now.  Fixes crashes described in #344627.
585 2006-06-13  William Jon McCann  <mccann@jhu.edu>
587         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
588         (rb_rating_get_rating_from_widget):
589         * widgets/rb-rating.c: (rb_rating_class_init),
590         (rb_rating_finalize), (rb_rating_get_property),
591         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
592         (rb_rating_button_press_cb):
593         Don't crash when ratings icons can't be found.  Fixes #344533.
595 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
597         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
599 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
601         * Makefile.am:
602         * configure.ac:
603         * remote/Makefile.am:
604         * remote/dbus/Makefile.am:
605         * remote/dbus/rb-client.c:
606         * shell/Makefile.am:
607         New dbus client program providing --play/--next etc. arguments.
608         Fixes #340863, #155763.
610 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
612         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
613         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
615 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
617         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
619         * rhythmdb/rhythmdb-query-model.c:
620         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
621         to Library incorrectly
623 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
625         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
626         Return input string untouched if gnome_vfs_uri_new returns NULL.
627         * sources/rb-static-playlist-source.c: (impl_receive_drag),
628         (rb_static_playlist_source_add_list_uri):
629         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
630         URIs don't break it.  Fixes #339033.
632 2006-06-08  James Livingston  <doclivingston@gmail.com>
634         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
635         for sources on the edge (i.e. the queue). Fixes #328409.
637         * sources/rb-ipod-source.c: fix typo
639 2006-06-08  James Livingston  <doclivingston@gmail.com>
641         * configure.ac:
642         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
643         --enable-ipod-writing to enable the ipod syncing code.
645 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
647         * sources/rb-library-source.c: (layout_example_label_update):
648         add missing comma so we don't generate broken markup.
650 2006-06-08  James Livingston  <doclivingston@gmail.com>
652         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
653         tag-merging with id3v2mux as well as id3mux. From #342330.
655 2006-06-07  James Livingston  <doclivingston@gmail.com>
657         * tests/test-rhythmdb.c: #define fail_if for old version of check
658         which don't have it. Hopefully fixes #343718.
660 2006-06-07  James Livingston  <doclivingston@gmail.com>
662         * shell/rb-playlist-manager.c:
663         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
664         g_value_array_free with NULL. Fixes #341053.
666 2006-06-07  James Livingston  <doclivingston@gmail.com>
668         * shell/rb-playlist-manager.c:
669         (rb_playlist_manager_playlist_entries_changed),
670         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
671         instead of "row-removed", which fixes updating "burn playlist"
672         sensitivity. Fixes #331119.
674 2006-06-07  James Livingston  <doclivingston@gmail.com>
676         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
677         rather than restarting if the source uses _RETRY and there is an
678         actual error (like an undecodable stream) rather than it just dropping
679         out and causing EOS.
681 2006-06-07  James Livingston  <doclivingston@gmail.com>
683         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
684         free the pixbufs if they couldn't be loaded. Fixed #343852.
686 2006-06-07  James Livingston  <doclivingston@gmail.com>
688         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
689         the close button on the dialog work. Fixes #335346.
691 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
693         * sources/rb-sourcelist-model.c: (path_is_droppable),
694         (path_is_reorderable):
695         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
696         (row_activated_cb), (emit_show_popup), (key_release_cb),
697         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
698         Ignore group marker rows in the source list.  Fixes #344089, a couple
699         of other crashers, and some weird UI glitches too.
701 2006-06-07  James Livingston  <doclivingston@gmail.com>
703         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
704         the seeking query fails. This is needed because many gst elements
705         don't implement the seeking query yet. Should fix 329977.
707 2006-06-06  James Livingston  <doclivingston@gmail.com>
709         * configure.ac: bump version for a prerelease, turn on track transfer
710         by default.
712         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
713         ipod transfer stuff, since it has big issues and we'll hopefully land
714         real support (bug 310774) after 0.9.5
716 2006-06-06  James Livingston  <doclivingston@gmail.com>
718         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
719         id3v2mux once we've detected it.
721 2006-06-06  James Livingston  <doclivingston@gmail.com>
723         * lib/Makefile.am:
724         * tests/test-rhythmdb.c: undo accidental commit which caused
725         rb-thread.c to be built (which it isn't normally)
727 2006-06-06  James Livingston  <doclivingston@gmail.com>
729         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
730         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
731         fail_{if/unless} calls, as some versions of check need them (they are
732         optional in others). Should fix bug 343718.
734 2006-06-06  James Livingston  <doclivingston@gmail.com>
736         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
737         343836.
738         
739         * lib/Makefile.am:
740         * lib/rb-thread.c: (process_actions):
741         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
742         tests that don't pass.
744 2006-06-05  James Livingston  <doclivingston@gmail.com>
746         * data/glade/Makefile.am:
747         * data/glade/load-failure.glade:
748         * data/rhythmbox.schemas: remove the remainder of the old load-failure
749         dialog.
751 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
753         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
754         checked in.
756 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
758         * bindings/python/rb.defs:
759         * sources/rb-source.h:
760         * sources/rb-source.c: (rb_source_class_init),
761         (rb_source_set_property), (rb_source_get_property),
762         (rb_sourcelist_group_get_type):
763         Add 'sourcelist-group' property on the RBSource class, describing how
764         sources should be grouped in the source list.
766         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
767         (rb_sourcelist_model_new), (real_row_is_separator),
768         (rb_sourcelist_model_is_row_visible),
769         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
770         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
771         (rb_sourcelist_model_row_draggable),
772         (rb_sourcelist_model_row_inserted_cb),
773         (rb_sourcelist_model_row_deleted_cb),
774         (rb_sourcelist_model_get_group_path):
775         * sources/rb-sourcelist-model.h:
776         * sources/rb-sourcelist.c: (rb_sourcelist_init),
777         (rb_sourcelist_append):
778         Add group marker rows for each sourcelist group, and use these to
779         insert sources in the right place.  Sort transient sources (DAAP
780         shares) by name.  Show the group marker rows as separators when the
781         next visible row is a source.  Make persistant sources (playlists) and
782         removable sources reorderable using drag and drop, restricting them
783         within the source groups.
784         
785         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
786         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
787         * sources/rb-daap-source.c: (rb_daap_source_new):
788         * sources/rb-ipod-source.c: (rb_ipod_source_new):
789         * sources/rb-static-playlist-source.c:
790         (rb_static_playlist_source_new):
791         * plugins/generic-player/rb-generic-player-source.c:
792         (rb_generic_player_source_new):
793         * plugins/generic-player/rb-nokia770-source.c:
794         (rb_nokia770_source_new):
795         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
796         Add source list group information to existing source classes.
798         Fixes #318754 and #336492.
800 2006-06-04  James Livingston  <doclivingston@gmail.com>
802         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
803         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
804         win32 build fixes.
806 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
808         * rhythmdb/rhythmdb-query-model.c:
809         (rhythmdb_query_model_class_init),
810         (rhythmdb_query_model_remove_from_main_list):
811         * rhythmdb/rhythmdb-query-model.h:
812         Add a new 'post-entry-delete' signal, emitted when the entry has been
813         removed from the model's data structures.
815         * shell/rb-play-order.c: (rb_play_order_finalize),
816         (rb_play_order_query_model_changed),
817         (rb_play_order_post_entry_delete_cb):
818         Use the new signal to update the play order, so the queue play order
819         doesn't try to scroll to entries that don't exist in a way that causes
820         the tree view to crash.  Fixes #340216.
822 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
824         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
825         Fix rb_debug call I missed previously.
827 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
829         * metadata/rb-metadata-gst.c:
830         Don't use NULL as the error message for ignored files, as it crashes
831         with some C libraries.  Fixes #343713.
833 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
835         * widgets/rb-dialog.c: (rb_error_dialog):
836         * widgets/rb-dialog.h:
837         Mark rb_error_dialog as taking printf-like arguments, and use a format
838         string for the primary message rather than passing in the message
839         directly.
841         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
842         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
843         (info_available_cb):
844         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
845         * shell/rb-removable-media-manager.c:
846         (rb_removable_media_manager_eject_medium_cb):
847         Make sure all calls to rb_error_dialog use string constants for the
848         format string rather than passing the error message directly.  Remove
849         an extra %s from the message used when playback fails.  Fixes #343562.
851         * lib/rb-debug.h:
852         * sources/rb-audiocd-source.c:
853         * plugins/audioscrobbler/rb-audioscrobbler.c:
854         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
855         Mark rb_debug as taking printf-like arguments and fix a few resulting
856         warnings.
858 2006-06-02  James Livingston  <doclivingston@gmail.com>
860         * configure.ac:
861         + macros/check.m4: add support for using check for unit tests, the .m4
862         files is so autogen can run without check being installed
864         * tests/Makefile.am:
865         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
866         some of the old tests, and add some new ones. Currently
867         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
868         yet (the query doesn't return any entries).
870         - tests/deserialization-test1.xml:
871         - tests/deserialization-test2.xml:
872         - tests/deserialization-test3.xml:
873         - tests/test-rhythmdb-indexing.c:
874         - tests/test-rhythmdb-simple.c:
875         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
876         have been ported
878         - tests/test-cd.c:
879         - tests/test-cmdline.c: remove obsolete tests
881 2006-06-02  James Livingston  <doclivingston@gmail.com>
883         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
884         (rb_add_id3_tagger), (rb_metadata_init): add support for using
885         id3v2mux, and check whether we are using a version of id3mux that has
886         the correct merge-mode behaviour.
888         * plugins/sample-python/Makefile.am: fix distcheck.
890         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
891         the changed-files source was added before trying to remove it.
893         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
894         *old* bug which would crash if a query with top-level disjunctions
895         tried to check later disjunctive parts. Hooray for unit-testing.
897 2006-06-02  William Jon McCann  <mccann@jhu.edu>
899         * player/rb-recorder-gst.c (rb_recorder_set_device):
900         Check for a null drive.
902 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
904         * lib/Makefile.am:
905         * lib/rb-stock-icons.c: (rb_stock_icons_init):
906         Register the app icon as a builtin if the icon theme can't find it.
908 2006-05-31  James Livingston  <doclivingston@gmail.com>
910         * player/rb-recorder-gst.c: add missing include.
912 2006-05-30  William Jon McCann  <mccann@jhu.edu>
914         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
915         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
916         (tick_timeout_cb), (rb_recorder_sync_pipeline),
917         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
918         (rb_recorder_set_device), (rb_recorder_get_default_device):
919         * shell/main.c: (main):
920         * shell/rb-removable-media-manager.c:
921         (rb_removable_media_manager_finalize),
922         (get_nautilus_burn_drive_for_path),
923         (rb_removable_media_manager_playing_uri_changed_cb),
924         (rb_removable_media_manager_load_media),
925         (nautilus_burn_drive_get_device),
926         (rb_removable_media_manager_scan):
927         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
929         Update for libnautilus-burn 2.15.3 API changes.
930         Fixes #342604
932 2006-05-30  James Livingston  <doclivingston@gmail.com>
934         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
935         "return" to that it asks for the password again if it was wrong.
937 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
939         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
940         typefind element.
942 2006-05-30  James Livingston  <doclivingston@gmail.com>
944         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
945         (download_progress_cb): don't do wonky things if the transfer
946         "suceeds" without transferring any data.
948 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
950         * sources/rb-library-source.c: (layout_example_label_update),
951         (build_filename):  Fix crash when no audio profile is selected.
952         Fixes #341447.
954 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
956         * shell/rb-shell.c: (rb_shell_clear_queue):
957         * shell/rb-shell.h:
958         * shell/rb-shell.xml:
959         * sources/rb-play-queue-source.c:
960         (rb_play_queue_source_clear_queue),
961         (rb_play_queue_source_cmd_clear):
962         * sources/rb-play-queue-source.h:
963         Add clearQueue dbus method.
965 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
967         * shell/main.c: (main):  Implement --quit option.
969 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
971         * rhythmdb/rhythmdb-private.h:
972         * rhythmdb/rhythmdb-tree.h:
973         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
974         (rhythmdb_entry_insert), (rhythmdb_entry_set),
975         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
976         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
977         (rhythmdb_entry_get_boolean):
978         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
979         bitmask, giving the db backend anything past the first 16 bits for 
980         its own private use.
982         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
983         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
984         Add a 'loading' flag to indicate that an entry is being loaded from
985         disk, and use that to ignore entry_set operations on such entries
986         rather than the 'inserted' flag, which doesn't quite mean the same
987         thing.  Fixes #342694.
989 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
991         * shell/rb-shell.xml: Remove visibility property, since it causes
992         crashes (dbus bug 7057) and doesn't do much else.
994 2006-05-28  James Livingston  <doclivingston@gmail.com>
996         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
998         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
999         * po/POTFILES.in: fix some more i18n issues.
1001 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1003         * bindings/python/rb.defs:
1004         * shell/rb-shell-player.c: (rb_shell_player_playpause),
1005         (filter_mmkeys):
1006         * shell/rb-shell-player.h:
1007         Deprecate the useless 'ignore_stop' parameter to
1008         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
1009         API.  From bug #334829.
1011 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1013         * plugins/generic-player/rb-generic-player-source.c:
1014         (visit_playlist_dirs), (default_transform_playlist_uri):
1015         When playlist parsing fails, unref the playlist, not the parent
1016         source.  Fix memory leak in playlist uri transform.
1017         * plugins/generic-player/rb-nokia770-source.c:
1018         (impl_transform_playlist_uri):
1019         Fix memory leak in playlist uri transform.
1021 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
1023         * doc/reference/Makefile.am: fix grk-doc build
1025 2006-05-27  James Livingston  <doclivingston@gmail.com>
1027         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
1029         * plugins/lyrics/lyrics.py:
1030         * po/POTFILES.in: Make strings in plugins translatable. From bug
1031         343081.
1033 2006-05-27  James Livingston  <doclivingston@gmail.com>
1035         * backends/Makefile.am:
1036         * backends/gstreamer/Makefile.am:
1037         * lib/Makefile.am:
1038         * plugins/audioscrobbler/Makefile.am:
1039         * plugins/generic-player/Makefile.am:
1040         * po/POTFILES.in:
1041         * rhythmdb/rhythmdb-monitor.c:
1042         * rhythmdb/rhythmdb.c:
1043         * sources/Makefile.am:
1044         * widgets/Makefile.am: fix compilation after some CVS surgery was
1045         done.
1047 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1049         * bindings/python/rhythmdb.defs:
1050         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
1051         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
1052         (rhythmdb_query_deserialize):
1053         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
1054         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
1055         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
1056         (rhythmdb_entry_register_type_alias),
1057         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
1058         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
1059         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
1060         (rhythmdb_entry_podcast_feed_get_type),
1061         (rhythmdb_entry_import_error_get_type),
1062         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
1063         * rhythmdb/rhythmdb.h:
1064         Allocate a specified amount of extra memory for each db entry, to be
1065         used to store fields specific to the entry type.  Optionally associate
1066         a name with each entry type, to be used when saving entries and
1067         auto playlists to disk.  Allow entry types to have multiple names
1068         to handle older playlist files that used '0' to represent 'song'.
1069         Use private data to store podcast fields.
1071         * rhythmdb/rhythmdb-private.h:
1072         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
1073         (rhythmdb_tree_parser_end_element), (save_entry),
1074         (rhythmdb_tree_entry_set):
1075         Simplify property handling by using existing code to convert
1076         properties from strings to GValues and to set properties on entries.
1077         Other assorted changes due to the above.
1079         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
1080         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
1081         * sources/rb-generic-player-source.c:
1082         (rb_generic_player_source_new):
1083         * sources/rb-ipod-source.c: (rb_ipod_source_new):
1084         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
1085         * sources/rb-psp-source.c: (rb_psp_source_new):
1086         Update for changes to rhythmdb_entry_register_type.  None of these
1087         entry types need names or use private data.
1089         Fixes #337429.
1091 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1093         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
1094         Fix creation of ignored-file db entries - need to check for
1095         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
1097 2006-05-25  James Livingston  <doclivingston@gmail.com>
1099         * AUTHORS:
1100         * MAINTAINERS: update my email address
1102 2006-05-25  James Livingston  <doclivingston@gmail.com>
1104         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
1105         "(... mix)" when searching for lyrics. Cache the lyrics under
1106         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
1108 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1110         * sources/rb-import-errors-source.c:
1111         (rb_import_errors_source_class_init):
1112         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
1113         * sources/rb-browser-source.c: (rb_browser_source_class_init):
1114         * sources/rb-source.c: (rb_source_class_init),
1115         (default_move_to_trash):
1116         Implement the basic move-to-trash operation once in rb-source.c, 
1117         rather than in each source type that supports it.
1119         * plugins/ipod/rb-ipod-plugin.c:
1120         * shell/rb-removable-media-manager.c:
1121         * shell/rb-shell.c: (rb_shell_constructor):
1122         Only scan removable media once after loading plugins.  Add a flag
1123         plugins can use to check if the initial scan has been done.
1125         * data/rhythmbox.schemas:
1126         Enable ipod and generic-player plugins by default.
1127         
1128         * configure.ac:
1129         * data/ui/Makefile.am:
1130         * data/ui/generic-player-ui.xml:
1131         * data/ui/rhythmbox-ui.xml:
1132         * plugins/Makefile.am:
1133         * plugins/generic-player/Makefile.am:
1134         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
1135         * plugins/generic-player/rb-generic-player-plugin.c:
1136         * sources/Makefile.am:
1137         * sources/rb-generic-player-source.c:
1138         * sources/rb-generic-player-source.h:
1139         * sources/rb-nokia770-source.c:
1140         * sources/rb-nokia770-source.h:
1141         * sources/rb-psp-source.c: (visit_playlist_dirs):
1142         * sources/rb-psp-source.h:
1143         Pluginise generic player (and nokia770 and PSP) support and add
1144         move-to-trash for players not mounted read-only.
1145         Fixes #342868.
1147 2006-05-24  William Jon McCann  <mccann@jhu.edu>
1149         * daapsharing/rb-daap-connection.c (handle_song_listing):
1150         Lower bound check for batch commit.  Fixes #342848
1152         * sources/rb-daap-source.c (rb_daap_source_get_status):
1153         Always set output variables if provided.
1155 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1157         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
1158         (rhythmdb_tree_entry_delete), (remove_one_song):
1159         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
1160         Fix two db entry reference counting problems.
1161         The initial reference on the entry is held by the db backend, but it
1162         was never being dropped.  The reference count was incremented when
1163         adding an entry to the deleted_entries map and to the
1164         deleted_entries_to_emit list, but only decremented for one of those.
1166 2006-05-24  William Jon McCann  <mccann@jhu.edu>
1168         * daapsharing/rb-daap-connection.c (http_response_handler) 
1169         (rb_daap_connection_dispose):
1170         Call soup_session_abort to make sure there are no outstanding
1171         requests when we dispose of the connection.  Ignore cancelled
1172         messages in the callback.
1174 2006-05-24  William Jon McCann  <mccann@jhu.edu>
1176         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
1177         (rb_daap_source_disconnect): Set a flag when disconnecting
1178         the source.  Check this flag in connection callback
1179         to see if we should release the connection.
1181 2006-05-24  William Jon McCann  <mccann@jhu.edu>
1183         * daapsharing/Makefile.am:
1184         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
1185         (rb_daap_connection_class_init), (connection_connected),
1186         (connection_disconnected), (connection_operation_done),
1187         (build_message), (connection_set_error_message),
1188         (actual_http_response_handler), (http_get),
1189         (entry_set_string_prop), (emit_progress_idle),
1190         (handle_server_info), (handle_login), (handle_update),
1191         (handle_database_info), (handle_song_listing), (handle_playlists),
1192         (handle_playlist_entries), (handle_logout),
1193         (rb_daap_connection_new), (rb_daap_connection_is_connected),
1194         (connection_response_data_free), (connected_cb),
1195         (rb_daap_connection_connect), (disconnected_cb),
1196         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
1197         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
1198         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
1199         (rb_daap_connection_get_property):
1200         * daapsharing/rb-daap-connection.h:
1201         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
1202         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
1203         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
1204         (rb_daap_hash_generate):
1205         * daapsharing/rb-daap-hash.h:
1206         * sources/rb-daap-source.c: (rb_daap_source_class_init),
1207         (rb_daap_get_icon), (remove_source), (stop_browsing),
1208         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
1209         (connection_connecting_cb), (connection_disconnected_cb),
1210         (release_connection), (rb_daap_source_connection_cb),
1211         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
1212         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
1214         Adds a better async API for connect and disconnect.  Doesn't share
1215         callback data for every async call.  Adds a connect signal.  Uses
1216         an operation-done signal to trigger the callbacks.  Displays an
1217         error when connections fail.  A few refcounting fixes to fix
1218         crashes.  Uses a weak pointer to set the connection to NULL so we
1219         don't clobber references.  Wait for each disconnect when shutting
1220         down sources.  Split out DAAP hash stuff into its own file.  Fix
1221         typo in header.
1223         Fixes #342643
1224         
1225 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1227         * sources/rb-auto-playlist-source.c:
1228         (rb_auto_playlist_source_new_from_xml):
1229         Initialize the gvalue used to hold the size limit correctly.
1230         Fixes #342744.
1232 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1234         * shell/rb-shell.c: (rb_shell_window_delete_cb),
1235         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
1236         * shell/rb-shell.h:
1237         * shell/rb-shell.xml:
1238         Convert rb_shell_quit into a dbus method, and add visibility dbus
1239         property.
1241 2006-05-22  James Livingston  <doclivingston@gmail.com>
1243         * rhythmdb/rhythmdb.h:
1244         * rhythmdb/rhythmdb.c: (sync_entry_changed),
1245         (rhythmdb_entry_is_editable), (action_thread_main),
1246         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
1247         vfuncs for can_sync_metadata, and sync_metadata. The default is always
1248         false, and syncing into the file.
1250         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
1251         (rhythmdb_entry_iradio_get_type),
1252         (rhythmdb_entry_import_error_get_type):
1253         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
1254         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
1255         change the DB.
1257 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1259         * rhythmdb/Makefile.am:
1260         * rhythmdb/rhythmdb-monitor.c:
1261         * rhythmdb/rhythmdb-private.h:
1262         * rhythmdb/rhythmdb-query.c:
1263         * rhythmdb/rhythmdb.c:
1264         Split up rhythmdb.c a bit.
1266 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1268         * data/glade/audioscrobbler-prefs.glade:
1269         Add a link to the last.fm server status page.
1271 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
1273         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
1274         Capitalization fix.
1275         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
1276         (impl_create_configure_dialog):  UI layout fixes, remove
1277         dialog separator, and capitalization fix for window title.
1278         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
1279         and remove dialog separator.
1280         * data/glade/plugins.glade:  UI layout fixes.
1281         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
1282         and capitalization fix.  Fixes #342438.
1284 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
1286         * data/glade/podcast-properties.glade:  Fix layout of the download 
1287         location.  Fixes #342431.
1289 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1291         * data/ui/rhythmbox-ui.xml:
1292         We only need one copy of the 'add to queue' action in the edit menu.
1294 2006-05-20  James Livingston  <doclivingston@gmail.com>
1296         * data/ui/rhythmbox-ui.xml:
1297         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
1298         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
1299         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
1300         (rb_shell_clipboard_sync),
1301         (rb_shell_clipboard_cmd_add_to_playlist_new),
1302         (rb_shell_clipboard_cmd_queue_song_info),
1303         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
1304         (rb_shell_clipboard_playlist_deleted_cb),
1305         (rb_shell_clipboard_playlist_renamed_cb),
1306         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
1307         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
1308         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
1309         dynamically generated with all the static playlists. Fixes bug 323364.
1311         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
1312         right child, so it doesn't go weird when art appears and disappears.
1314 2006-05-20  James Livingston  <doclivingston@gmail.com>
1316         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
1318         * rhythmdb/rhythmdb-query-model.c:
1319         (rhythmdb_query_model_set_property),
1320         (rhythmdb_query_model_finalize),
1321         (rhythmdb_query_model_reapply_query_cb):
1322         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
1323         (rhythmdb_query_append_prop_multiple),
1324         (rhythmdb_query_is_time_relative):
1325         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
1326         time-based criteria, fixes bug 341131.
1328 2006-05-20  James Livingston  <doclivingston@gmail.com>
1330         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
1331         we have already changed playing entries. Interpolate the art size so
1332         it doesn't jump when the old and new images have different aspect
1333         ratios.
1335 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1337         * rhythmdb/rhythmdb-private.h:
1338         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
1339         (save_entry):
1340         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
1341         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
1342         (rhythmdb_entry_get_ulong):
1343         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
1344         and elsewhere, use them on the stack rather than allocating on 
1345         the heap.  From bug #342333.
1347 2006-05-19  William Jon McCann  <mccann@jhu.edu>
1349         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
1350         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
1351         (add_track), (eos_cb), (error_signal_idle),
1352         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
1353         (rb_recorder_construct), (recorder_track_free),
1354         (rb_recorder_finalize):
1355         * sources/rb-playlist-source-recorder.c:
1356         Support libnautilus-burn size -> capacity API change.  Add
1357         some braces to blocks.
1359 2006-05-19  William Jon McCann  <mccann@jhu.edu>
1361         * metadata/sj-metadata-musicbrainz.c:
1362         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
1363         Sync with sound-juicer in CVS.  Fixes #342177
1364         * sources/rb-audiocd-source.c: Don't declare variables
1365         in the middle of a block (c99ism).  Fix order of #includes.
1366         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
1367         one variable per line.  Update copyright date.
1369 2006-05-19  James Livingston  <doclivingston@gmail.com>
1371         patch by: Hendrik Richter  <hendi@gnome-de.org>
1373         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
1374         "translator_credits" to a hyphen, so it doesn't cause problems for
1375         tools that check access keys. Fixes bug 341832.
1377 2006-05-19  James Livingston  <doclivingston@gmail.com>
1379         * po/POTFILES.in: remove references to files that don't exist any more
1380         (fixes make distcheck).
1382 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
1384         * plugins/lyrics/lyrics.py:  Fix layout close button in 
1385         Song Lyrics dialog. Fixes bug 342322.
1387 2006-05-19  James Livingston  <doclivingston@gmail.com>
1389         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
1391         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
1392         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
1393         version checks not break when libnotify goes to 1.0.0. Fixes bug
1394         342244.
1396 2006-05-18  James Livingston  <doclivingston@gmail.com>
1398         * shell/rb-shell-clipboard.c:
1399         * shell/rb-shell.c:
1400         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
1402 2006-05-17  William Jon McCann  <mccann@jhu.edu>
1404         * sources/rb-playlist-source-recorder.c (get_song_description):
1405         Reverse artist and title in song description.  This
1406         is useful because at least the title will be visible
1407         when there is limited space.
1409 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1411         * daapsharing/rb-daap-connection.c: (connection_get_password):
1412         Take gdk lock before emitting authenticate signal.
1413         * sources/rb-daap-source.c: (connection_connecting_cb):
1414         Get rid of the unnecessary idle handler (it's already called from one)
1415         Fixes #342047 once more.
1417 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1419         * shell/rb-shell.c: (rb_shell_class_init):
1420         * shell/rb-shell.h:
1421         * widgets/rb-song-info.c: (rb_song_info_class_init),
1422         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
1423         (rb_song_info_constructor), (rb_song_info_get_property),
1424         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
1425         (rb_song_info_forward_clicked_cb):
1426         * widgets/rb-song-info.h:
1427         * data/glade/song-info-multiple.glade:
1428         * lib/rb-marshal.list:
1429         * bindings/python/Makefile.am:
1430         * bindings/python/rb.defs:
1431         * bindings/python/rb.override:
1432         Allow plugins to add pages to the notebooks used in song info windows,
1433         and to track the current song displayed in single-entry windows.
1434         
1435         * configure.ac:
1436         * plugins/Makefile.am:
1437         * plugins/lyrics/Loader.py:
1438         * plugins/lyrics/Makefile.am:
1439         * plugins/lyrics/lyrics.py:
1440         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
1441         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
1442         as a separate window (for the playing song) or as a page in the song
1443         info window.  A few TODO items left, but this fixes #319320.
1445 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1447         Patch by:  Roozbeh Pournader
1449         * configure.ac:
1450         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
1451         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
1453 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1454         
1455         * sources/rb-daap-source.c: (update_connection_status):
1456         Correct return value.  Fixes #342047 again.
1458 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1460         * sources/rb-daap-source.c: (update_connection_status),
1461         (connection_connecting_cb):
1462         Update status in an idle handler so we don't rely on the gdk lock
1463         being recursive (because it isn't any more).  Fixes #342047.
1465 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1467         * lib/rb-util.c: (rb_make_duration_string),
1468         (rb_make_elapsed_time_string):
1469         * lib/rb-util.h:
1470         Add a function for formatting an elapsed time string.
1472         * shell/rb-shell-player.c: (rb_shell_player_init),
1473         (rb_shell_player_sync_with_source),
1474         (rb_shell_player_get_playing_time_string), (tick_cb):
1475         Store elapsed time in the private data structure, and use the above
1476         function.
1477         
1478         * widgets/rb-header.c:
1479         * widgets/rb-header.h:
1480         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
1481         object, so everything has the same idea of the elapsed time.
1482         Fixes #339693.
1484 2006-05-16  James Livingston  <doclivingston@gmail.com>
1486         * bindings/python/rhythmdb.defs:
1487         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
1488         some parametre defaults, so you don't have to pass None, False for the
1489         sorting order.
1491 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1493         * bindings/python/rhythmdb.defs:
1494         * rhythmdb/rhythmdb-query-model.c:
1495         (rhythmdb_query_model_compute_status_normal):
1496         * rhythmdb/rhythmdb-query-model.h:
1497         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
1498         * rhythmdb/rhythmdb.h:
1499         Change the various compute_status methods to accept a singular/plural
1500         pair to use in the status string.
1501         
1502         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
1503         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
1504         * sources/rb-source.c: (default_get_status):
1505         Call entries 'songs' by default, and 'episodes' in the podcast source.
1506         Fixes #340227.
1508 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1510         patch by:  Paul Drain
1512         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
1513         Fixes #341817.
1515 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1517         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
1518         Generate reorder maps correctly.
1519         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
1520         Scroll to the first entry from the old selection.
1521         Fixes #322992.
1523 2006-05-15  William Jon McCann  <mccann@jhu.edu>
1525         * data/ui/rhythmbox-ui.xml:
1526         * lib/rb-preferences.h:
1527         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
1528         (rb_shell_playlist_created_cb),
1529         (rb_shell_view_sidepane_changed_cb),
1530         (rb_shell_sync_sidepane_visibility),
1531         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
1532         (sidepane_visibility_changed_cb):
1533         * sources/rb-podcast-source.c:
1534         Convert sourcelist visibility to side-pane visbility.
1535         Fixes #339733
1537 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1539         * widgets/rb-header.c:
1540         * widgets/rb-header.h: Stop RBHeader from referring to itself as
1541         'player', and make it use the private data structure allocated for it.
1543 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1545         * configure.ac: enable metadata helper with dbus < 0.35.
1547 2006-05-15  James Livingston  <doclivingston@gmail.com>
1549         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
1551         * data/glade/song-info.glade:
1552         * widgets/rb-song-info.c: (rb_song_info_construct_single),
1553         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
1554         (rb_song_info_update_filesize): Add the file size into the song info
1555         window. Fixes bug 340861.
1557 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1559         * bindings/python/rhythmdb.defs:
1560         * rhythmdb/rhythmdb-query-model.c:
1561         (rhythmdb_query_model_set_property),
1562         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
1563         * rhythmdb/rhythmdb-query-model.h:
1564         Add a new method to chain query models without importing entries from
1565         the parent into the child.  This is useful when the subset of entries
1566         in the child can be more easily determined by running a query than by
1567         filtering entries from the parent.
1569         * bindings/python/rb.defs:
1570         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
1571         (rb_library_browser_set_property),
1572         (rb_library_browser_get_property), (rb_library_browser_new),
1573         (rebuild_child_model):
1574         * widgets/rb-library-browser.h:
1575         * sources/rb-auto-playlist-source.c:
1576         (rb_auto_playlist_source_constructor):
1577         * sources/rb-static-playlist-source.c:
1578         (rb_static_playlist_source_constructor):
1579         * sources/rb-browser-source.c: (rb_browser_source_constructor):
1580         Use more efficient queries for constructing the browser query model
1581         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
1582         backend to optimise the query) and run new queries rather than
1583         filtering entries from the parent.  Fixes #341402.
1585         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
1587 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1589         * configure.ac:
1590         * shell/Makefile.am:
1591         * shell/main.c: (main), (load_uri_args), (send_present_message),
1592         (unregister_dbus_handler), (handle_dbus_message),
1593         (register_dbus_handler):
1594         Add minimal support for dbus 0.31 - 0.35.
1596         * doc/reference/Makefile.am:
1597         * doc/reference/rhythmbox.types:
1598         * data/Makefile.am:
1599         * data/GNOME_Rhythmbox.server.in:
1600         * data/rhythmbox.pc.in:
1601         * remote/*:
1602         * remote/bonobo/*:
1603         Remove remaining bonobo and generic remote interface files.
1605 2006-05-14  James Livingston  <doclivingston@gmail.com>
1607         * shell/rb-shell.c: (construct_widgets):
1608         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
1609         resize the browser and queue-sidebar section of their panes, unless
1610         the other section is below the minimum size. Fixes bug 331927.
1612 2006-05-13  James Livingston  <doclivingston@gmail.com>
1614         * rhythmdb/rhythmdb-query-model.c:
1615         (rhythmdb_query_model_class_init),
1616         (rhythmdb_query_model_set_property),
1617         (rhythmdb_query_model_get_property),
1618         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
1619         (rhythmdb_query_model_insert_into_main_list),
1620         (rhythmdb_query_model_insert_into_limited_list),
1621         (rhythmdb_query_model_do_reorder),
1622         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
1623         (rhythmdb_query_model_location_sort_func),
1624         (rhythmdb_query_model_title_sort_func),
1625         (rhythmdb_query_model_album_sort_func),
1626         (rhythmdb_query_model_artist_sort_func),
1627         (rhythmdb_query_model_genre_sort_func),
1628         (rhythmdb_query_model_track_sort_func),
1629         (rhythmdb_query_model_double_ceiling_sort_func),
1630         (rhythmdb_query_model_ulong_sort_func),
1631         (rhythmdb_query_model_date_sort_func),
1632         (rhythmdb_query_model_string_sort_func):
1633         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
1634         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
1635         "data destroy" property. Fixed bug 341543.
1637         * bindings/python/rhythmdb.defs:
1638         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
1639         rhythmdb_query_model_set_sorting_order
1641         * rhythmdb/rhythmdb-property-model.c:
1642         (rhythmdb_property_model_drag_data_get):
1643         * sources/rb-import-errors-source.c:
1644         (rb_import_errors_source_constructor):
1645         * sources/rb-missing-files-source.c:
1646         (rb_missing_files_source_constructor):
1647         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
1648         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
1649         * widgets/rb-entry-view.h: adapt to the above change.
1651 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1653         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
1654         (rhythmdb_tree_load):
1655         Commit loaded entries in batches, rather than individually.  
1656         More startup time reduction.
1658 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
1660         * doc/reference/Makefile.am: fix gtk-doc compilation
1662 2006-05-12  William Jon McCann  <mccann@jhu.edu>
1664         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
1665         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
1666         * plugins/artdisplay/artdisplay/Loader.py:
1667         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
1668         Only call the first artist the best match when album==Unknown.
1669         Don't perform each query twice if album doesn't include "Vol N".
1670         Fix searching for compilations.  Fix blacklisting.
1671         Part of bug #307848
1673 2006-05-12  William Jon McCann  <mccann@jhu.edu>
1675         * Makefile.am:
1676         * bindings/python/Makefile.am:
1677         * bindings/python/rb.defs:
1678         * bindings/python/rb.override:
1679         * configure.ac:
1680         * doc/reference/Makefile.am:
1681         * plugins/Makefile.am:
1682         * plugins/audioscrobbler/Makefile.am:
1683         * plugins/ipod/Makefile.am:
1684         * plugins/lirc/Makefile.am:
1685         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
1686         (impl_activate), (impl_deactivate):
1687         * plugins/sample/Makefile.am:
1688         * remote/Makefile.am:
1689         * shell/Makefile.am:
1690         * shell/main.c: (main), (main_shell_weak_ref_cb):
1691         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
1692         (rb_shell_get_property), (rb_shell_window_state_cb),
1693         (idle_hide_mainwindow), (rb_shell_set_visibility),
1694         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
1695         (rb_shell_set_song_property):
1696         * shell/rb-shell.h:
1697         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
1698         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
1699         (rb_tray_icon_get_property), (rb_tray_icon_new),
1700         (rb_tray_icon_button_press_event_cb),
1701         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
1702         (rb_tray_icon_show_window_changed_cb):
1703         * shell/rb-tray-icon.h:
1705         Remove bonobo, require DBUS.
1706         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
1707         Fixes #339720
1709 2006-05-13  James Livingston  <doclivingston@gmail.com>
1711         * bindings/python/rb.override: fix some pointer-type warnings
1713 2006-05-12  James Livingston  <doclivingston@gmail.com>
1715         * lib/rb-util.c: (rb_value_free):
1716         * lib/rb-util.h: Add function to unset and free a GValue* that was
1717         allocated in the heap.
1719         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
1720         the metadata hastable values
1721         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
1722         leak the metadata hashtable structure
1723         * metadata/rb-metadata-dbus.c:
1724         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
1725         using g_strdup and then _take_string
1727         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
1728         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
1729         stat something.
1731         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
1732         leak the encoded string
1734         * widgets/rb-property-view.c:
1735         (rb_property_view_selection_changed_cb): set some variables to have
1736         inital values, because some code paths may not set them before we use
1737         them.
1739         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
1740         don't have python warning into a debug message".
1742 2006-05-10  William Jon McCann  <mccann@jhu.edu>
1744         * data/rhythmbox.schemas: Use zero instead of null for
1745         default burn speed.  Fixes #341283.
1747 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1749         * bindings/python/rb.defs:
1750         * widgets/rb-library-browser.c:
1751         (rb_library_browser_get_property_view):
1752         * widgets/rb-library-browser.h:
1753         Add a method to get the property view for a given property.
1755         * sources/rb-browser-source.c:
1756         (rb_browser_source_cmd_choose_genre),
1757         (rb_browser_source_cmd_choose_artist),
1758         (rb_browser_source_cmd_choose_album):
1759         Change the browser selection by changing the property view selection. 
1760         Makes the selection change visible, fixing #331740.
1762 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1764         * bindings/python/rb.defs:
1765         * bindings/python/rb.override:
1766         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
1767         * shell/rb-statusbar.c: (*),
1768         * sources/rb-import-errors-source.c: (impl_get_status):
1769         * sources/rb-iradio-source.c: (impl_get_status):
1770         * sources/rb-missing-files-source.c: (impl_get_status):
1771         * sources/rb-source.c: (default_get_status),
1772         (rb_source_get_status):
1773         * sources/rb-source.h:
1774         Allow sources to provide a progress value for the status bar.
1775         Simplify status bar processing (much less polling).
1776         Consider rhythmdb busy while it's still loading the database.
1778         * daapsharing/rb-daap-connection.c: (*)
1779         * daapsharing/rb-daap-connection.h:
1780         * lib/rb-marshal.list:
1781         * sources/rb-daap-source.c: (rb_daap_source_class_init),
1782         (rb_daap_source_init), (connection_connecting_cb),
1783         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
1784         (rb_daap_source_get_status):
1785         Provide status information for DAAP connections, and move processing
1786         of large responses into a separate thread.
1787         Fixes bugs #322020 and #338978.
1789 2006-05-09  James Livingston  <doclivingston@gmail.com>
1791         Split the artdisplay plugin into several files.
1792         Fix loader and amazon-search re-use issues.
1793         Add some better search heuristics.
1795         * configure.ac:
1796         * plugins/artdisplay/Makefile.am:
1797         * plugins/artdisplay/artdisplay.py:
1798         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
1799         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
1800         * plugins/artdisplay/artdisplay/Loader.py:
1801         * plugins/artdisplay/artdisplay/Makefile.am:
1802         * plugins/artdisplay/artdisplay/__init__.py:
1804 2006-05-09  James Livingston  <doclivingston@gmail.com>
1806         * sources/rb-browser-source.h: remove the _has_first_added_column
1807         stuff since it isn't actually used anywhere. Sources that want it
1808         should just add it themselves, as the library already does
1810         * bindings/python/rb.defs:
1811         * sources/rb-daap-source.c: (rb_daap_source_class_init):
1812         * sources/rb-library-source.c: (rb_library_source_class_init):
1813         * sources/rb-removable-media-source.c:
1814         (rb_removable_media_source_class_init): Remove the remanants of the
1815         above.
1817 2006-05-09  James Livingston  <doclivingston@gmail.com>
1819         * bindings/python/rb.defs:
1820         * sources/rb-browser-source.h: remove a function that was declared in
1821         the header, but not defined anywhere.
1823 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1825         * plugins/artdisplay/.cvsignore:
1826         * plugins/ipod/.cvsignore: Added.
1828 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1830         * sources/rb-auto-playlist-source.c:
1831         (rb_auto_playlist_source_new_from_xml):
1832         Fix reading of older playlist files where all three limits were
1833         specified so we take the first nonzero limit.  From #341053.
1835 2006-05-09  James Livingston  <doclivingston@gmail.com>
1837         * bindings/python/Makefile.am:
1838         * bindings/python/rb.defs:
1839         * bindings/python/rb.override: bind RBBrowserSource,
1840         RBRemovableMediaSource and RBRemovableMediamanager.
1842 2006-05-09  James Livingston  <doclivingston@gmail.com>
1844         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
1846         * data/glade/plugins.glade: make the plugin dialog look a bit better.
1847         Fixes bug 339221.
1849 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1851         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
1852         Don't explode when trying to edit a query with no limit set.
1854 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1856         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
1857         Clear the should_queue flag when switching to a non-submittable entry,
1858         so we don't submit songs that played for three seconds before
1859         switching to a podcast episode.
1861         * rhythmdb/rhythmdb-query-model.c
1862         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
1863         in the drag data list.
1865 2006-05-08  James Livingston  <doclivingston@gmail.com>
1867         * lib/rb-util.c: (rb_value_array_append_data):
1868         * lib/rb-util.h: add function which is basically a combination of
1869         G_VALUE_COLLECT and g_value_array_append.
1871         * rhythmdb/rhythmdb-query-model.h:
1872         * rhythmdb/rhythmdb-query-model.c:
1873         (rhythmdb_query_model_class_init),
1874         (rhythmdb_query_model_set_property),
1875         (rhythmdb_query_model_get_property),
1876         (rhythmdb_query_model_finalize),
1877         (rhythmdb_query_model_update_limited_entries),
1878         (rhythmdb_query_model_set_sort_order),
1879         (rhythmdb_query_model_within_limit),
1880         (rhythmdb_query_model_limit_type_get_type): Make query model limits
1881         saner. Rather than having <count=N, time=N, size=N> we now have a
1882         <type, value> pair. This will also make it much easier to add new
1883         limit types in the future.
1885         * shell/rb-playlist-manager.c:
1886         (rb_playlist_manager_set_automatic_playlist),
1887         (rb_playlist_manager_cmd_edit_automatic_playlist):
1888         * sources/rb-auto-playlist-source.c:
1889         (rb_auto_playlist_source_finalize),
1890         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
1891         (_save_write_ulong), (_save_write_uint64),
1892         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
1893         (rb_auto_playlist_source_set_query),
1894         (rb_auto_playlist_source_get_query):
1895         * sources/rb-auto-playlist-source.h:
1896         * sources/rb-library-source.c:
1897         (rb_library_source_add_child_source):
1898         * sources/rb-psp-source.c: (visit_playlist_dirs):
1899         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
1900         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
1901         * widgets/rb-query-creator.h: Adapt to the above change.
1903 2006-05-08  James Livingston  <doclivingston@gmail.com>
1905         * shell/rb-playlist-manager.c:
1906         (rb_playlist_manager_cmd_edit_automatic_playlist):
1907         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
1908         (rb_auto_playlist_source_set_query),
1909         (rb_auto_playlist_source_get_query): copy the query in the _get method
1910         and free it in things calling that. Fixes a crasher.
1912 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1914         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
1915         Make entries on newly mounted volumes visible immediately, hiding them
1916         later if they turn out to be missing.  Fixes #340068.
1918 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1920         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
1921         Ignore zip files and ignore errors for files we've decided to ignore.
1923 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1925         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
1926         Add missing }, should fix #340844.
1928 2006-05-06  James Livingston  <doclivingston@gmail.com>
1930         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
1931         typo.
1933 2006-05-06  James Livingston  <doclivingston@gmail.com>
1935         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
1936         that we work with libnotify >= 0.4
1938 2006-05-06  James Livingston  <doclivingston@gmail.com>
1940         patch by: Joe Barnett  <thejoe@gmail.com>
1942         * configure.ac: check if we're using a version of libgpod that
1943         supports the Motorola ROKR
1945         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
1946         for the db path, if we using the newer version.
1948         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
1950 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1952         * rhythmdb/rhythmdb-query-model.c:
1953         (rhythmdb_query_model_drag_data_get):
1954         Use playback URI, not location, for drag data.  Fixes #322597.
1956 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
1958         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
1960 2006-05-03  James Livingston  <doclivingston@gmail.com>
1962         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
1963         (rb_add_id3_tagger), (rb_metadata_save):
1964         Set the tags on the tagging element when it is
1965         created, not during pipeline creation - which is required for
1966         dynamically created elements.
1968         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
1969         support for using the "vorbistag" element to re-tag ogg vorbis files.
1970         Fixes bug 339878.
1972 2006-05-03  James Livingston  <doclivingston@gmail.com>
1974         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
1976         * plugins/artdisplay/artdisplay.py:
1977         - Fix small bug callback of data loader getting overwritten on fast
1978         connections.
1979         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
1980         Jonathan Matthew)
1981         - Fix Rhythmbox UI blocking while loading/searching cover art
1982         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
1983         - Initial approach to allow additional "art search engines"
1984         - Further modularization in a couple of places
1985         - Minor fixes for empty entries (iradio, album, artist etc.)
1987 2006-05-03  James Livingston  <doclivingston@gmail.com>
1989         * shell/rb-playlist-manager.c:
1990         (rb_playlist_manager_playlist_entries_changed),
1991         (rb_playlist_manager_set_source): don't show the edit/delete/rename
1992         options for non-local sources, rather than showing disabled ones.
1994         * sources/rb-library-source.c: (add_child_sources_idle),
1995         (rb_library_source_constructor), (rb_library_source_new),
1996         (rb_library_source_library_location_changed),
1997         (rb_library_source_add_child_source),
1998         (rb_library_source_sync_child_sources): Create "child library" sources
1999         when the user has multiple library locations set. Fixes bug 100552.
2001 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2003         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
2004         * plugins/sample/sample.rb-plugin.desktop.in:
2005         Finish changing 'Author' to 'Authors'
2006         
2007         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
2008         (rhythmdb_entry_import_error_get_type):
2009         Implement get_playback_uri for import errors (returns NULL)
2011         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
2012         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
2013         entry, rather than doing entry type checks.
2015 2006-05-02  James Livingston  <doclivingston@gmail.com>
2017         patch from Alessandro Decina  <alessandro@nnva.org>
2019         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
2020         the signal emission in the case of fatal-on-init errors. From bug
2021         322268.
2023 2006-05-02  James Livingston  <doclivingston@gmail.com>
2025         * rhythmdb/rhythmdb.h:
2026         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
2027         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
2028         (rhythmdb_entry_podcast_post_get_type),
2029         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
2030         virtual function to entry-types for getting the playback URI. From bug
2031         330226.
2033         * backends/gstreamer/rb-encoder-gst.c:
2034         (create_pipeline_and_source), (extract_track):
2035         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
2036         to get the URI.
2038 2006-05-02  James Livingston  <doclivingston@gmail.com>
2040         patch by: Brian Cameron  <brian.cameron@sun.com>
2042         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
2043         340337.
2045 2006-05-01  William Jon McCann  <mccann@jhu.edu>
2047         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
2048         instead of clear.  Use regex matching to strip "disc N"
2049         from album.  Match titles in ProductName.  Perform
2050         fallback queries including various artist compilations.
2051         Include "us" locale.  Improve queries when artist or album
2052         is unknown.  Use medium size image if large is unavailable.
2054         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
2055         William Jon McCann  <mccann@jhu.edu>
2056         
2057 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2059         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
2060         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
2061         (conjunctive_query): Sanity check.
2062         (evaluate_conjunctive_subquery): 
2063         Don't return TRUE immediately when a relative-time query criterion
2064         matches.  Fixes #339972.
2066 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2068         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
2069         Don't crash if primary or secondary are NULL.
2071 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2073         * doc/reference/Makefile.am: fix gtk-doc build yet again
2075 2006-04-28  James Livingston  <doclivingston@gmail.com>
2077         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
2078         python console. Fixes bug 339934.
2080 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2082         * rhythmdb/rhythmdb-property-model.c:
2083         (rhythmdb_property_model_drag_data_get):
2084         When creating uri list drag data, create a new query model based on
2085         the query model the property model is attached to.  Makes the
2086         resulting query use the right entry type and include the upstream
2087         query criteria.  Fixes half of #327540.
2089 2006-04-27  James Livingston  <doclivingston@gmail.com>
2091         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
2092         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
2093         build fixes.
2095 2006-04-27  James Livingston  <doclivingston@gmail.com>
2097         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
2099 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2101         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
2102         (rb_playlist_manager_save_data),
2103         (rb_playlist_manager_save_playlists):
2104         * shell/rb-playlist-manager.h:
2105         * shell/rb-shell.c: (rb_shell_sync_state),
2106         (idle_save_playlist_manager):
2107         Remove a bit more threading insanity from the playlist manager.
2109 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2111         * shell/rb-playlist-manager.c: 
2112         * shell/rb-playlist-manager.h:
2113         Remove dead code, add gtk-doc, remove threading insanity (mostly).
2114         
2115         * shell/rb-shell.c: (rb_shell_sync_state),
2116         (idle_save_playlist_manager), (construct_sources),
2117         (rb_shell_select_source), (rb_shell_sync_party_mode):
2118         Adjustments for above changes.
2120 2006-04-26  William Jon McCann  <mccann@jhu.edu>
2122         * sources/rb-browser-source.c (impl_browser_toggled):
2123         Reset browser when hidden.  Fixes #339617.
2125 2006-04-26  James Livingston  <doclivingston@gmail.com>
2127         * backends/Makefile.am:
2128         * backends/gstreamer/Makefile.am: work again with separated
2129         built-roots
2131 2006-04-26  James Livingston  <doclivingston@gmail.com>
2133         * shell/rb-removable-media-manager.c:
2134         (rb_removable_media_manager_set_uimanager): fix compilation with
2135         -Werror and --enable-track-transfer.
2137 2006-04-26  James Livingston  <doclivingston@gmail.com>
2139         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
2140         implementing class. In theory allows alternate player implementations
2141         to be selected at run-time rather than compile-time. Fixes bug 338667.
2143         * Makefile.am:
2144         * backends/Makefile.am:
2145         * backends/gstreamer/Makefile.am:
2146         * backends/gstreamer/rb-player-gst.h:
2147         * backends/rb-player.c: (rb_player_interface_init),
2148         (rb_player_get_type), (rb_player_open), (rb_player_opened),
2149         (rb_player_close), (rb_player_play), (rb_player_pause),
2150         (rb_player_playing), (rb_player_set_volume),
2151         (rb_player_get_volume), (rb_player_set_replaygain),
2152         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
2153         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
2154         (_rb_player_emit_buffering), (_rb_player_emit_error),
2155         (_rb_player_emit_tick), (rb_player_error_quark):
2156         * player/Makefile.am:
2157         * player/rb-player-gst.c: (rb_player_gst_class_init),
2158         (rb_player_init), (tick_timeout), (rb_player_gst_init),
2159         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
2160         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
2161         (process_tag), (found_tag_cb), (buffering_cb),
2162         (rb_player_gst_bus_cb), (rb_player_gst_construct),
2163         (rb_player_gst_new):
2164         * player/rb-player.h:
2165         * shell/Makefile.am:
2166         * sources/rb-audiocd-source.c:
2167         * widgets/Makefile.am:
2168         * widgets/rb-header.c: (rb_header_class_init):
2170 2006-04-26  James Livingston  <doclivingston@gmail.com>
2172         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
2173         don't try to download an episode if it couldn't be parsed. Fixes bug
2174         339712.
2176         * shell/rb-removable-media-manager.c:
2177         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
2178         Library" option when track transfer is disabled. Fixes bug 339728.
2180 2006-04-26  James Livingston  <doclivingston@gmail.com>
2182         * data/ui/Makefile.am:
2183         * data/ui/daap-ui.xml:
2184         * data/ui/rhythmbox-ui.xml:
2185         * sources/rb-daap-source.c: (rb_daap_sources_init),
2186         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
2187         way that the ipod ui is. Fixes bug 339743.
2189 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2191         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
2192         (process_added_entries_cb), (process_deleted_entries_cb),
2193         (rhythmdb_commit_internal): 
2194         Combine the idle functions to emit entry-added and entry-deleted,
2195         and combine as many invocations of same as possible.  Another
2196         significant reduction in startup time.
2197         
2198         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
2199         Delay the next call to rhythmdb_process_events if the queue is
2200         empty or if we can't process any of the events in the queue because
2201         the database is read only.
2203         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
2205 2006-04-25  William Jon McCann  <mccann@jhu.edu>
2207         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
2209         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
2210         Don't special case errors quite so much.
2212 2006-04-25  William Jon McCann  <mccann@jhu.edu>
2214         * data/rhythmbox.schemas: Remove default speed.
2216         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
2217         Add n-c-b 2.15 support.  Make the default speed to slowest since
2218         that is all that works reliably.
2220 2006-04-25  William Jon McCann  <mccann@jhu.edu>
2222         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
2223         Fix compiler error from last commit.
2225 2006-04-25  James Livingston  <doclivingston@gmail.com>
2227         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
2228         transcoding-related issues. From bug 322268.
2230         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
2231         don't emit the signal, since the object is being finalised, which os a
2232         Bad Thing To Do.
2234         (profile_bin_find_encoder), (get_profile_from_mime_type),
2235         (transcode_track): find the encoding element by iterating looking for
2236         element in the class Codec/Encoder/Audio rather than the one named
2237         "enc".
2239 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2241         * shell/rb-shell-player.xml:
2242         * shell/rb-shell.xml:
2243         Add signal argument information.  
2244         Patch by Tim Moloney  <t.moloney@verizon.net>
2246         * shell/rb-shell.c: (rb_shell_window_state_cb):
2247         Use the right value for the visibility_changed signal.  Most of the
2248         time, anyway.
2250 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2252         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
2253         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
2254         (impl_create_configure_dialog):
2255         * data/glade/audioscrobbler-prefs.glade:
2256         * shell/rb-audioscrobbler.c (*):
2257         * lib/rb-preferences.h:
2258         * data/rhythmbox.schemas:
2259         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
2260         Add status information (# tracks submitted, # queued, last submit
2261         time, result of last submission) to the plugin config window.
2262         Remove 'enabled' setting, since it's easier to just disable the
2263         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
2264         nonexistant (so far) 'last.fm streaming' plugin.
2265         
2266         * help/C/rhythmbox.xml: Update documentation for last.fm profile
2267         plugin
2269         Fixes some of #325848.  We still don't provide a way to view the
2270         submission queue.
2272 2006-04-25  James Livingston  <doclivingston@gmail.com>
2274         patch by: Anders Petersson  <demitar@worldforge.org>
2276         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
2277         the YY-MM-DD format.
2279 2006-04-23  James Livingston  <doclivingston@gmail.com>
2281         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
2282         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
2283         * bindings/python/override_common.h:
2284         * bindings/python/rb.override: python binding fixes
2286 2006-04-23  James Livingston  <doclivingston@gmail.com>
2288         * shell/rb-statusbar.c: (rb_statusbar_finalize),
2289         (rb_statusbar_sync_with_source),
2290         (rb_statusbar_source_status_changed_cb): do the sync in an idle
2291         callback, rather than immediately every time. Takes ~5% off my warm-cache
2292         startup time.
2294         * bindings/python/rhythmdb.defs: fix the types using for
2295         RhythmDBEntryTypes.
2297 2006-04-22  James Livingston  <doclivingston@gmail.com>
2299         * data/ui/rhythmbox-ui.xml:
2300         * shell/rb-shell.c:
2301         * sources/rb-daap-source.c: (rb_daap_source_class_init),
2302         (remove_source), (rb_daap_sources_init),
2303         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
2304         (rb_daap_source_disconnect):
2305         * sources/rb-source.c: (rb_source_class_init),
2306         (rb_source_deactivate):
2307         * sources/rb-source.h: move the "disconnect" functionality from into
2308         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
2310 2006-04-22  James Livingston  <doclivingston@gmail.com>
2312         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
2313         actually get the translated strings for browser headers (they were
2314         already marked as translatable). Fixes bug 339380.
2316 2006-04-22  James Livingston  <doclivingston@gmail.com>
2318         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
2319         submission timeout when the object is finalised.
2321         * bindings/python/Makefile.am:
2322         * bindings/python/rb.defs:
2323         * bindings/python/rb.override:
2324         * bindings/python/rhythmdb.defs: fix some python binding stuff.
2326         * widgets/rb-library-browser.c:
2327         (rb_library_browser_construct_query), (rebuild_output_model),
2328         (rebuild_child_model):
2329         * widgets/rb-library-browser.h: change from GPtrArray to
2330         RhythmDBQuery (which in C is the same thing).
2332 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2334         * shell/rb-shell.c: (rb_shell_get_song_properties):
2335         Don't try to include entry-type (or anything else not easily
2336         marshallable) in the song properties hash table.
2338         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
2340         * sources/rb-playlist-source.c: (rb_playlist_source_init),
2341         (rb_playlist_source_constructor): Fix entry-type initialization as
2342         with previous commit.
2344 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2346         * sources/rb-iradio-source.c: (rb_iradio_source_init),
2347         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
2348         * sources/rb-podcast-source.c: (rb_podcast_source_init),
2349         (rb_podcast_source_constructor):
2350         Set default values for entry-type after base class construction,
2351         rather than in _init, because gobject will set the entry-type property
2352         to NULL after _init if no value is provided.  Fixes #339206.
2354 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
2356         patch by: Gunnar Steinn Magnusson
2358         * COPYING:
2359         * backends/gstreamer/rb-encoder-gst.c:
2360         * backends/gstreamer/rb-encoder-gst.h:
2361         * backends/rb-encoder.c:
2362         * backends/rb-encoder.h:
2363         * bindings/python/override_common.c:
2364         * bindings/python/override_common.h:
2365         * daapsharing/rb-daap-connection.c:
2366         * daapsharing/rb-daap-connection.h:
2367         * daapsharing/rb-daap-dialog.c:
2368         * daapsharing/rb-daap-dialog.h:
2369         * daapsharing/rb-daap-mdns-browser-avahi.c:
2370         * daapsharing/rb-daap-mdns-browser-howl.c:
2371         * daapsharing/rb-daap-mdns-browser.h:
2372         * daapsharing/rb-daap-mdns-publisher-avahi.c:
2373         * daapsharing/rb-daap-mdns-publisher-howl.c:
2374         * daapsharing/rb-daap-mdns-publisher.h:
2375         * daapsharing/rb-daap-share.c:
2376         * daapsharing/rb-daap-share.h:
2377         * daapsharing/rb-daap-sharing.c:
2378         * daapsharing/rb-daap-sharing.h:
2379         * daapsharing/rb-daap-src.c:
2380         * daapsharing/rb-daap-src.h:
2381         * daapsharing/rb-daap-structure.c:
2382         * daapsharing/rb-daap-structure.h:
2383         * help/C/fdl-appendix.xml:
2384         * help/es/es.po:
2385         * help/ja/fdl-appendix.xml:
2386         * iradio/rb-new-station-dialog.c:
2387         * iradio/rb-new-station-dialog.h:
2388         * iradio/rb-station-properties-dialog.c:
2389         * iradio/rb-station-properties-dialog.h:
2390         * lib/mkdtemp.c:
2391         * lib/mkdtemp.h:
2392         * lib/rb-cut-and-paste-code.c:
2393         * lib/rb-cut-and-paste-code.h:
2394         * lib/rb-debug.c:
2395         * lib/rb-debug.h:
2396         * lib/rb-file-helpers.c:
2397         * lib/rb-file-helpers.h:
2398         * lib/rb-glade-helpers.c:
2399         * lib/rb-glade-helpers.h:
2400         * lib/rb-preferences.h:
2401         * lib/rb-proxy-config.c:
2402         * lib/rb-stock-icons.c:
2403         * lib/rb-stock-icons.h:
2404         * lib/rb-thread.c:
2405         * lib/rb-thread.h:
2406         * lib/rb-tree-dnd.c:
2407         * lib/rb-tree-dnd.h:
2408         * lib/rb-util.c:
2409         * lib/rb-util.h:
2410         * metadata/rb-metadata-common.c:
2411         * metadata/rb-metadata-dbus-client.c:
2412         * metadata/rb-metadata-dbus-service.c:
2413         * metadata/rb-metadata-dbus.c:
2414         * metadata/rb-metadata-dbus.h:
2415         * metadata/rb-metadata-gst.c:
2416         * metadata/rb-metadata.h:
2417         * metadata/sj-error.c:
2418         * metadata/sj-error.h:
2419         * metadata/sj-metadata-musicbrainz.c:
2420         * metadata/sj-metadata-musicbrainz.h:
2421         * metadata/sj-metadata.c:
2422         * metadata/sj-metadata.h:
2423         * metadata/sj-structures.c:
2424         * metadata/sj-structures.h:
2425         * metadata/test-metadata.c:
2426         * player/rb-player-gst.c:
2427         * player/rb-player.h:
2428         * player/rb-recorder-gst.c:
2429         * player/rb-recorder.h:
2430         * plugins/artdisplay/artdisplay.py:
2431         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
2432         * plugins/ipod/rb-ipod-plugin.c:
2433         * plugins/lirc/rb-lirc-plugin.c:
2434         * plugins/pythonconsole/pythonconsole.py:
2435         * plugins/rb-module.c:
2436         * plugins/rb-module.h:
2437         * plugins/rb-plugin-manager.c:
2438         * plugins/rb-plugin-manager.h:
2439         * plugins/rb-plugin.c:
2440         * plugins/rb-plugin.h:
2441         * plugins/rb-plugins-engine.c:
2442         * plugins/rb-plugins-engine.h:
2443         * plugins/rb-python-module.c:
2444         * plugins/rb-python-module.h:
2445         * plugins/rb-python-plugin.c:
2446         * plugins/rb-python-plugin.h:
2447         * plugins/sample/rb-sample-plugin.c:
2448         * po/de.po:
2449         * po/el.po:
2450         * po/en_CA.po:
2451         * po/eu.po:
2452         * po/fi.po:
2453         * po/fr.po:
2454         * po/it.po:
2455         * po/ja.po:
2456         * po/mk.po:
2457         * po/pt_BR.po:
2458         * po/ru.po:
2459         * podcast/rb-feed-podcast-properties-dialog.c:
2460         * podcast/rb-feed-podcast-properties-dialog.h:
2461         * podcast/rb-new-podcast-dialog.c:
2462         * podcast/rb-new-podcast-dialog.h:
2463         * podcast/rb-podcast-manager.c:
2464         * podcast/rb-podcast-manager.h:
2465         * podcast/rb-podcast-parse.c:
2466         * podcast/rb-podcast-parse.h:
2467         * podcast/rb-podcast-properties-dialog.c:
2468         * podcast/rb-podcast-properties-dialog.h:
2469         * remote/bonobo/libmain.c:
2470         * remote/bonobo/rb-nautilus-context-menu.c:
2471         * remote/bonobo/rb-nautilus-context-menu.h:
2472         * remote/bonobo/rb-remote-bonobo.c:
2473         * remote/bonobo/rb-remote-bonobo.h:
2474         * remote/rb-remote-client-proxy.c:
2475         * remote/rb-remote-client-proxy.h:
2476         * remote/rb-remote-common.c:
2477         * remote/rb-remote-common.h:
2478         * remote/rb-remote-proxy.c:
2479         * remote/rb-remote-proxy.h:
2480         * rhythmdb/gsequence.c:
2481         * rhythmdb/gsequence.h:
2482         * rhythmdb/rb-refstring.c:
2483         * rhythmdb/rb-refstring.h:
2484         * rhythmdb/rhythmdb-gda.c:
2485         * rhythmdb/rhythmdb-gda.h:
2486         * rhythmdb/rhythmdb-private.h:
2487         * rhythmdb/rhythmdb-property-model.c:
2488         * rhythmdb/rhythmdb-property-model.h:
2489         * rhythmdb/rhythmdb-query-model.c:
2490         * rhythmdb/rhythmdb-query-model.h:
2491         * rhythmdb/rhythmdb-query-results.c:
2492         * rhythmdb/rhythmdb-query-results.h:
2493         * rhythmdb/rhythmdb-tree.c:
2494         * rhythmdb/rhythmdb-tree.h:
2495         * rhythmdb/rhythmdb.c:
2496         * rhythmdb/rhythmdb.h:
2497         * shell/main.c:
2498         * shell/rb-audioscrobbler.c:
2499         * shell/rb-audioscrobbler.h:
2500         * shell/rb-history.c:
2501         * shell/rb-history.h:
2502         * shell/rb-play-order-linear-loop.c:
2503         * shell/rb-play-order-linear-loop.h:
2504         * shell/rb-play-order-linear.c:
2505         * shell/rb-play-order-linear.h:
2506         * shell/rb-play-order-queue.c:
2507         * shell/rb-play-order-queue.h:
2508         * shell/rb-play-order-random-by-age-and-rating.c:
2509         * shell/rb-play-order-random-by-age-and-rating.h:
2510         * shell/rb-play-order-random-by-age.c:
2511         * shell/rb-play-order-random-by-age.h:
2512         * shell/rb-play-order-random-by-rating.c:
2513         * shell/rb-play-order-random-by-rating.h:
2514         * shell/rb-play-order-random-equal-weights.c:
2515         * shell/rb-play-order-random-equal-weights.h:
2516         * shell/rb-play-order-random.c:
2517         * shell/rb-play-order-random.h:
2518         * shell/rb-play-order-shuffle.c:
2519         * shell/rb-play-order-shuffle.h:
2520         * shell/rb-play-order.c:
2521         * shell/rb-play-order.h:
2522         * shell/rb-playlist-manager.c:
2523         * shell/rb-playlist-manager.h:
2524         * shell/rb-removable-media-manager.c:
2525         * shell/rb-removable-media-manager.h:
2526         * shell/rb-shell-clipboard.c:
2527         * shell/rb-shell-clipboard.h:
2528         * shell/rb-shell-player.c:
2529         * shell/rb-shell-player.h:
2530         * shell/rb-shell-preferences.c:
2531         * shell/rb-shell-preferences.h:
2532         * shell/rb-shell.c:
2533         * shell/rb-shell.h:
2534         * shell/rb-source-header.c:
2535         * shell/rb-source-header.h:
2536         * shell/rb-statusbar.c:
2537         * shell/rb-statusbar.h:
2538         * shell/rb-tray-icon.c:
2539         * shell/rb-tray-icon.h:
2540         * sources/rb-audiocd-source.c:
2541         * sources/rb-audiocd-source.h:
2542         * sources/rb-auto-playlist-source.c:
2543         * sources/rb-auto-playlist-source.h:
2544         * sources/rb-browser-source.c:
2545         * sources/rb-browser-source.h:
2546         * sources/rb-daap-source.c:
2547         * sources/rb-daap-source.h:
2548         * sources/rb-generic-player-source.c:
2549         * sources/rb-generic-player-source.h:
2550         * sources/rb-import-errors-source.c:
2551         * sources/rb-import-errors-source.h:
2552         * sources/rb-ipod-source.c:
2553         * sources/rb-ipod-source.h:
2554         * sources/rb-iradio-source.c:
2555         * sources/rb-iradio-source.h:
2556         * sources/rb-library-source.c:
2557         * sources/rb-library-source.h:
2558         * sources/rb-missing-files-source.c:
2559         * sources/rb-missing-files-source.h:
2560         * sources/rb-nokia770-source.c:
2561         * sources/rb-nokia770-source.h:
2562         * sources/rb-play-queue-source.c:
2563         * sources/rb-play-queue-source.h:
2564         * sources/rb-playlist-source-recorder.c:
2565         * sources/rb-playlist-source-recorder.h:
2566         * sources/rb-playlist-source.c:
2567         * sources/rb-playlist-source.h:
2568         * sources/rb-playlist-xml.h:
2569         * sources/rb-podcast-source.c:
2570         * sources/rb-podcast-source.h:
2571         * sources/rb-psp-source.c:
2572         * sources/rb-psp-source.h:
2573         * sources/rb-removable-media-source.c:
2574         * sources/rb-removable-media-source.h:
2575         * sources/rb-source.c:
2576         * sources/rb-source.h:
2577         * sources/rb-sourcelist-model.c:
2578         * sources/rb-sourcelist-model.h:
2579         * sources/rb-sourcelist.c:
2580         * sources/rb-sourcelist.h:
2581         * sources/rb-static-playlist-source.c:
2582         * sources/rb-static-playlist-source.h:
2583         * tests/test-cd.c:
2584         * tests/test-cmdline.c:
2585         * tests/test-rhythmdb-indexing.c:
2586         * tests/test-rhythmdb-query.c:
2587         * tests/test-rhythmdb-simple.c:
2588         * tests/test-rhythmdb-tree-deserialization.c:
2589         * tests/test-rhythmdb-tree-serialization.c:
2590         * tests/test-rhythmdb-view.c:
2591         * widgets/bacon-volume.c:
2592         * widgets/bacon-volume.h:
2593         * widgets/disclosure-widget.c:
2594         * widgets/disclosure-widget.h:
2595         * widgets/eel-gconf-extensions.c:
2596         * widgets/eel-gconf-extensions.h:
2597         * widgets/eggtrayicon.c:
2598         * widgets/eggtrayicon.h:
2599         * widgets/libsexy/sexy-icon-entry.c:
2600         * widgets/libsexy/sexy-icon-entry.h:
2601         * widgets/rb-cell-renderer-pixbuf.c:
2602         * widgets/rb-cell-renderer-pixbuf.h:
2603         * widgets/rb-cell-renderer-rating.c:
2604         * widgets/rb-cell-renderer-rating.h:
2605         * widgets/rb-dialog.c:
2606         * widgets/rb-dialog.h:
2607         * widgets/rb-druid.c:
2608         * widgets/rb-druid.h:
2609         * widgets/rb-entry-view.c:
2610         * widgets/rb-entry-view.h:
2611         * widgets/rb-header.c:
2612         * widgets/rb-header.h:
2613         * widgets/rb-library-browser.c:
2614         * widgets/rb-library-browser.h:
2615         * widgets/rb-property-view.c:
2616         * widgets/rb-property-view.h:
2617         * widgets/rb-query-creator-private.h:
2618         * widgets/rb-query-creator-properties.c:
2619         * widgets/rb-query-creator.c:
2620         * widgets/rb-query-creator.h:
2621         * widgets/rb-rating-helper.c:
2622         * widgets/rb-rating-helper.h:
2623         * widgets/rb-rating.c:
2624         * widgets/rb-rating.h:
2625         * widgets/rb-search-entry.c:
2626         * widgets/rb-search-entry.h:
2627         * widgets/rb-song-display-box.c:
2628         * widgets/rb-song-display-box.h:
2629         * widgets/rb-song-info.c:
2630         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
2632 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
2634         patch by: Gareth Murphy, James Livingston
2636         * bindings/python/rb.defs:
2637         * configure.ac:
2638         * plugins/Makefile.am:
2639         * plugins/artdisplay/Makefile.am:
2640         * plugins/artdisplay/artdisplay.py:
2641         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
2642         * plugins/rb-python-module.c: (rb_python_module_init_python):
2643         * shell/rb-shell.c: (construct_widgets),
2644         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
2645         (rb_shell_add_widget), (rb_shell_remove_widget),
2646         (rb_shell_ui_location_get_type):
2647         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
2649 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2651         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
2652         Fix build failure caused by the combination of the previous two
2653         commits.
2655 2006-04-20  James Livingston  <doclivingston@gmail.com>
2657         patch by: Christophe Fergeau  <teuf@gnome.org> to make
2658         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
2659         table to the entry types, which will allow us to get rid of some of
2660         the "if entry type == WHATEVER" code everywhere. From bug 
2662         * bindings/python/rb.defs:
2663         * bindings/python/rb.override:
2664         * bindings/python/rhythmdb.defs:
2665         * bindings/python/rhythmdb.override:
2666         * daapsharing/rb-daap-connection.c:
2667         (rb_daap_connection_class_init), (rb_daap_connection_init),
2668         (rb_daap_connection_set_property),
2669         (rb_daap_connection_get_property):
2670         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
2671         * podcast/rb-podcast-manager.c:
2672         (rb_podcast_manager_entry_downloaded),
2673         (rb_podcast_manager_subscribe_feed),
2674         (rb_podcast_manager_db_entry_added_cb),
2675         (rb_podcast_manager_db_entry_deleted_cb),
2676         (rb_podcast_manager_insert_feed):
2677         * rhythmdb/rhythmdb-private.h:
2678         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
2679         (conjunctive_query):
2680         * rhythmdb/rhythmdb.c: (sync_entry_changed),
2681         (process_added_entries_cb), (rhythmdb_entry_allocate),
2682         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
2683         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2684         (rhythmdb_process_metadata_load),
2685         (rhythmdb_process_file_created_or_modified), (action_thread_main),
2686         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
2687         (write_encoded_gvalue), (read_encoded_property),
2688         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
2689         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
2690         (rhythmdb_entry_iradio_get_type),
2691         (rhythmdb_entry_podcast_post_get_type),
2692         (rhythmdb_entry_podcast_feed_get_type),
2693         (rhythmdb_entry_import_error_get_type),
2694         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
2695         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
2696         (rhythmdb_entry_type_get_type):
2697         * rhythmdb/rhythmdb.h:
2698         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
2699         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
2700         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
2701         (rb_shell_player_entry_activated_cb), (info_available_cb):
2702         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
2703         (rb_shell_register_entry_type_for_source),
2704         (rb_shell_playing_from_queue_cb),
2705         (rb_shell_playing_entry_changed_cb),
2706         (rb_shell_player_stream_song_changed_cb),
2707         (rb_shell_jump_to_entry_with_source),
2708         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
2709         (handle_playlist_entry_cb), (rb_shell_load_uri):
2710         * shell/rb-shell.h:
2711         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
2712         * sources/rb-browser-source.c: (rb_browser_source_class_init),
2713         (rb_browser_source_init), (rb_browser_source_set_property),
2714         (rb_browser_source_get_property):
2715         * sources/rb-ipod-source.c: (impl_paste):
2716         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
2717         (rb_iradio_source_init), (rb_iradio_source_set_property),
2718         (rb_iradio_source_get_property):
2719         * sources/rb-library-source.c: (impl_paste):
2720         * sources/rb-missing-files-source.c:
2721         (rb_missing_files_source_class_init),
2722         (rb_missing_files_source_init),
2723         (rb_missing_files_source_set_property),
2724         (rb_missing_files_source_get_property):
2725         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
2726         (rb_playlist_source_init), (rb_playlist_source_set_property),
2727         (rb_playlist_source_get_property):
2728         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
2729         (rb_podcast_source_init), (rb_podcast_source_set_property),
2730         (rb_podcast_source_get_property):
2731         * sources/rb-static-playlist-source.c:
2732         (rb_static_playlist_source_add_location_internal):
2734 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2736         * rhythmdb/rhythmdb.c: (rhythmdb_init),
2737         (rhythmdb_add_import_error_entry),
2738         (entry_volume_mounted_or_unmounted),
2739         (rhythmdb_volume_unmounted_cb):
2740         When a volume is unmounted, delete import errors for files stored on
2741         it.  When a volume is mounted, stat all tracks stored on it, rather
2742         than assuming they're present.  Fixes #339023.
2744 2006-04-20  James Livingston  <doclivingston@gmail.com>
2746         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
2747         browser visibility for non-gconf-using sources (like playlists). Part
2748         of bug 118862.
2750         * shell/rb-source-header.c: (sourcestate_free),
2751         (rb_source_header_init), (rb_source_header_finalize),
2752         (rb_source_header_source_weak_destroy_cb): switch from storing the
2753         search string to storing a "source state" structure
2755         (rb_source_header_set_source_internal),  (rb_source_state_sync),
2756         (rb_source_header_search_cb), (rb_source_header_clear_search),
2757         (rb_source_header_disclosure_toggled_cb): as well as storing the
2758         string, stop the visibility of the source's browser.
2760 2006-04-20  James Livingston  <doclivingston@gmail.com>
2762         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
2763         library entries back into the library. Fixes bug 339065.
2765 2006-04-20  James Livingston  <doclivingston@gmail.com>
2767         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
2768         only exists in glib 2.10.
2770 2006-04-20  James Livingston  <doclivingston@gmail.com>
2772         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
2773         Solaris. From bug 335318.
2775         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
2776         * shell/rb-audioscrobbler.c:
2777         * sources/rb-psp-source.c:
2779 2006-04-20  James Livingston  <doclivingston@gmail.com>
2781         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
2782         issues for some people.
2784         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
2785         accidental s/suffix/prefix/
2787         * sources/rb-auto-playlist-source.c:
2788         (rb_auto_playlist_source_set_query): fix the invered logic preventing
2789         you from sorting playlists which aren't limited by time.
2791 2006-04-19  James Livingston  <doclivingston@gmail.com>
2793         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
2794         duration or bitrate back to the file, since they are properties of the
2795         audio data, not tags we can set.
2797 2006-04-19  James Livingston  <doclivingston@gmail.com>
2799         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
2800         of libtool, to fix builds which are using a different version. Fixes
2801         bug 338996.
2803         * shell/Makefile.am:
2805 2006-04-19  James Livingston  <doclivingston@gmail.com>
2807         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
2808         to sync data to a file which is uneditable.
2810 2006-04-19  James Livingston  <doclivingston@gmail.com>
2812         patch by: Gavin Stewart  <gavin@brokentrain.net>
2814         * data/glade/playlist-save.glade:
2815         * data/glade/Makefile.am:
2816         * po/POTFILES.in: add the playlist saving dialog.
2818         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
2819         (export_set_extension_cb), (filter_get_export_filter_label),
2820         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
2821         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
2822         formats (PLS and M3U at the moment). Fixes bug 316295.
2824 2006-04-19  James Livingston  <doclivingston@gmail.com>
2826         * shell/rb-playlist-manager.c:
2827         (rb_playlist_manager_set_source_internal): don't let you edit remove
2828         auto playlists.
2830         * sources/rb-auto-playlist-source.c:
2831         (rb_auto_playlist_source_set_query): correctly handle time-limited
2832         playlists.
2834 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2836         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
2838         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
2839         Don't crash if the queue file contains no newlines.
2840         Fixes #338924.
2842 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
2844         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
2845         condition
2847 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
2849         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
2850         case. Moreover, they may not exist yet, so take that into account when
2851         generating the iPod filename.
2853 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
2855         * sources/rb-ipod-source.c: added support for drag and drop from the
2856         library to the iPod (only enabled if --enable-track-transfer was
2857         passed to configure)
2859 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
2861         * configure.ac:
2862         * lib/rb-marshal.list:
2863         * lib/rb-util.c: 
2864         * lib/rb-util.h:
2865         * plugins/Makefile.am:
2866         * plugins/ipod/Makefile.am:
2867         * plugins/ipod/ipod.rb-plugin.desktop.in:
2868         * plugins/ipod/rb-ipod-plugin.c: 
2869         * plugins/rb-plugin.h:
2870         * shell/Makefile.am:
2871         * shell/rb-removable-media-manager.c:
2872         * shell/rb-removable-media-manager.h:
2873         * shell/rb-shell.c: 
2874         * sources/Makefile.am:
2875         * sources/rb-ipod-source.c: 
2876         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
2877         various iPod related files should be moved to plugins/ipod/ now...
2879 2006-04-17  James Livingston  <doclivingston@gmail.com>
2881         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
2882         and "vic".
2884         * help/C/figures/rb-iradio-main.png:
2885         * help/C/figures/rb-notification-area-menu.png:
2886         * help/C/figures/rb-notification-window.png:
2887         * help/C/figures/rb-notification-zone.png:
2888         * help/C/figures/rb-podcast-main.png:
2889         * help/C/figures/rb-statusbar.png:
2890         * help/C/figures/rb-volume-changer.png:
2891         * help/C/figures/rb-window-small.png:
2892         * help/C/figures/rb-window.png:
2893         * help/C/rhythmbox.xml:
2895 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2897         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
2898         more obviously.
2900         * metadata/rb-metadata-gst.c: (rb_metadata_init),
2901         (make_undecodable_error), (rb_metadata_gst_error_cb),
2902         (rb_metadata_gst_new_decoded_pad_cb),
2903         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
2904         Ignore really small files (<4kB) for which typefinding fails.
2905         Always link decoded pads from decodebin to fakesink.
2906         Shut the pipeline down by posting an error on the bus when decodebin
2907         emits unknown-type signals.  Fixes bug #338062.
2909 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2911         * shell/rb-shell.c: (rb_shell_load_uri):
2912         Fix glaring mistakes in previous commit: actually pass arguments to
2913         rb_debug, and specify the right entry type when adding a new iradio
2914         station so we don't try to add local playlist files to the library.
2916 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2918         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
2919         before trying to add them, as iradio streams often fail rb_uri_exists().
2921         * shell/rb-shell-player.c: (notify_playing_idle),
2922         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
2923         (open_location_thread), (rb_shell_player_open_location),
2924         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
2925         (eos_cb):  When playing an iradio stream using a playlist, keep a list
2926         of all the stream URLs, and try them in turn.  If we get through the
2927         whole playlist too quickly, error out.  Various other fixes that make
2928         iradio work a lot better.
2930         * shell/rb-shell.c: (add_to_library_response_cb),
2931         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
2932         (handle_playlist_entry_cb), (rb_shell_load_uri):
2933         Add playlists containing streams as iradio stations.  If the playlist
2934         is local, add each stream URL, but if the playlist is remote, just add
2935         the playlist URL.
2936         
2937         * sources/rb-iradio-source.c: (new_station_location_added):
2938         Add new station URLs as-is, rather than parsing the playlist and
2939         adding the streams.
2940         
2941         * rhythmdb/rhythmdb-query-model.c:
2942         (rhythmdb_query_model_entry_changed_cb),
2943         (rhythmdb_query_model_emit_reorder),
2944         (rhythmdb_query_model_do_reorder):
2945         Emit row-changed notifications when an entry changes but is not
2946         reordered.
2948         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
2949         Display the playback error icon when the entry has an error and
2950         there's nothing else to display.
2951         
2952         Fixes bug #320336 and some of #324402.
2953         
2954 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
2956         * sources/rb-ipod-source.c: use a GHashTable for the
2957         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
2958         time, this fixes compilation breakage for people not having libgpod
2959         CVS HEAD
2961 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
2963         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2965         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
2966         (rb_podcast_manager_insert_feed):
2967         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
2968         fixes bug 321945
2970 2006-04-16  James Livingston  <doclivingston@gmail.com>
2972         * sources/rb-library-source.c:
2973         (rb_library_source_library_location_cb): return FALSE like we are
2974         supposed to, not void.
2976         patch by: FreeBSD GNOME Project
2977         * configure.ac: fix some bash-isms.
2979         patch by: Pawel Worach  <pawel.worach@gmail.com>
2980         * metadata/rb-metadata-dbus-client.c:
2981         * rhythmdb/rhythmdb-query-model.c:
2982         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
2985 2006-04-16  James Livingston  <doclivingston@gmail.com>
2987         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
2988         for transcoding to RBEncoderGst.
2990         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
2991         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
2992         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
2993         (add_decoding_pipeline), (encoder_match_mime),
2994         (get_profile_from_mime_type), (extract_track), (transcode_track),
2995         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
2997 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
2999         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
3000         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
3001         load_ipod_db_idle_cb to a new separate function
3003 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
3005         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
3006         source
3008 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
3010         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
3011         variables
3013 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
3015         * data/ui/Makefile.am:
3016         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
3017         menu
3018         * lib/rb-util.c: check if the widget we got from the UI manager isn't
3019         NULL before using it as a popup menu
3020         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
3021         'eject' an iPod
3023 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
3025         * sources/rb-ipod-source.c: when hal tells us a partition is on an
3026         iPod, check if it contains an iPod database before using it (in case
3027         the iPod was repartitionned somehow). Should fix bug #325034
3029 2006-04-16  Steve Frécinaux  <steve@istique.net>
3031         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
3033         * data/Makefile.am: install application icon into the default theme.
3035         * data/rhythmbox.desktop.in: don't specify icon file extension.
3036         
3037         * shell/main.c: (main): set default window icon from theme.
3038         
3039         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
3040         code concerning window icon, and fix leak by unreferencing the about
3041         logo pixbuf once it's not used anymore.
3043 2006-04-16  James Livingston  <doclivingston@gmail.com>
3045         * configure.ac: bump version to 0.9.4
3046         * NEWS: update NEWS and 0.9.4 insert translations
3048 2006-04-16  James Livingston  <doclivingston@gmail.com>
3050         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
3051         namespace automatically.
3053 2006-04-16  James Livingston  <doclivingston@gmail.com>
3055         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
3057         * doc/reference/Makefile.am:
3058         * doc/reference/rhythmbox.types: make distcheck work again
3060         * doc/reference/tmpl/eggnotificationbubble.sgml:
3061         * doc/reference/tmpl/eggtrayicon.sgml:
3062         * doc/reference/tmpl/rb-debug.sgml:
3063         * doc/reference/tmpl/rb-entry-view.sgml:
3064         * doc/reference/tmpl/rb-enums.sgml:
3065         * doc/reference/tmpl/rb-metadata.sgml:
3066         * doc/reference/tmpl/rb-new-station-dialog.sgml:
3067         * doc/reference/tmpl/rb-playlist-manager.sgml:
3068         * doc/reference/tmpl/rb-refstring.sgml:
3069         * doc/reference/tmpl/rb-shell-player.sgml:
3070         * doc/reference/tmpl/rb-shell-preferences.sgml:
3071         * doc/reference/tmpl/rb-shell.sgml:
3072         * doc/reference/tmpl/rb-song-info.sgml:
3073         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
3074         * doc/reference/tmpl/rb-statusbar.sgml:
3075         * doc/reference/tmpl/rhythmbox-unused.sgml:
3076         * doc/reference/tmpl/rhythmdb-query-model.sgml:
3077         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
3079 2006-04-16  James Livingston  <doclivingston@gmail.com>
3081         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
3083         * po/LINGUAS: don't split the variable across two lines, as it breaks
3084         the build. Fixes bug 338625.
3086 2006-04-15  James Livingston  <doclivingston@gmail.com>
3088         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
3089         add a "sourcelist-model" gobject property.
3091 2006-04-14  William Jon McCann  <mccann@jhu.edu>
3093         * .cvsignore:
3094         * backends/.cvsignore:
3095         * backends/gstreamer/.cvsignore:
3096         * bindings/.cvsignore:
3097         * bindings/python/.cvsignore:
3098         * help/es/.cvsignore:
3099         * metadata/.cvsignore:
3100         * plugins/.cvsignore:
3101         * plugins/audioscrobbler/.cvsignore:
3102         * plugins/lirc/.cvsignore:
3103         * plugins/pythonconsole/.cvsignore:
3104         * plugins/sample-python/.cvsignore:
3105         * plugins/sample/.cvsignore:
3106         * shell/.cvsignore:
3107         * widgets/libsexy/.cvsignore:
3108         Make CVS ignore files.
3110 2006-04-14  James Livingston  <doclivingston@gmail.com>
3112         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
3113         the track-loading thread hold a reference on the source, so it doesn't
3114         explode if the cd is removed before it is done. Fixes bug 337237.
3116 2006-04-14  James Livingston  <doclivingston@gmail.com>
3118         * bindings/python/override_common.c:
3119         (_helper_unwrap_pointer_pylist):
3120         * bindings/python/override_common.h:
3121         * bindings/python/rb.override:
3122         * bindings/python/rhythmdb.override: Bind some more functions and
3123         virtual functions.
3125         * shell/rb-shell.c: (rb_shell_select_source):
3126         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
3127         * sources/rb-audiocd-source.c:
3128         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
3129         * sources/rb-browser-source.c: (impl_get_search_actions):
3130         * sources/rb-iradio-source.c: (impl_get_ui_actions):
3131         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
3132         * sources/rb-playlist-source.c: (impl_get_ui_actions):
3133         * sources/rb-podcast-source.c: (impl_get_ui_actions),
3134         (impl_get_search_actions):
3135         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
3136         the impl_get_ui_actions and impl_get_search_actions functions return
3137         lists that contain copies of the strings, instead of constant ones.
3138         Needed to bindings
3140 2006-04-14  James Livingston  <doclivingston@gmail.com>
3142         * bindings/python/rhythmdb.defs:
3143         * bindings/python/rhythmdb.override: fix the method argument format
3144         specifiers.
3146 2006-04-14  James Livingston  <doclivingston@gmail.com>
3148         * bindings/python/rhythmdb.defs:
3149         * bindings/python/rhythmdb.override:
3150         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
3151         (entry_to_rb_metadata), (record_entry_change),
3152         (rhythmdb_entry_set_visibility):
3153         * rhythmdb/rhythmdb.h:
3154         * shell/rb-shell.c: (rb_shell_get_song_properties): change
3155         rhythmdb_entry_get to take the db as the first parameter. Fixes the
3156         python bindings of it. The rhythmdb_entry_get_* ones are left the same
3157         since they are used in too many places, and not in the Python
3158         bindings.
3160 2006-04-13  William Jon McCann  <mccann@jhu.edu>
3162         * lib/rb-debug.c: (_rb_profile_log):
3163         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
3164         * rhythmdb/rhythmdb.c: (rhythmdb_load):
3165         * shell/main.c: (main):
3166         * shell/rb-shell.c: (rb_shell_constructor),
3167         (rb_shell_set_visibility), (rb_shell_sync_window_state),
3168         (rb_shell_present):
3169         Fix profile output indentation.  Add more profiling points.
3170         Fixes part of #338114
3172 2006-04-13  James Livingston  <doclivingston@gmail.com>
3174         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
3175         library source being deleted, by setting the active source to NULL.
3176         From bug 338116.
3178 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3180         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
3181         Update the last-seen string when hiddenness changes.
3183 2006-04-12  James Livingston  <doclivingston@gmail.com>
3185         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
3186         which caused the first-seen time to be reset when a metadata load was
3187         done. Fixes bug 336874.
3189         * shell/rb-shell.h: remove old function declaration.
3191         * bindings/python/rhythmdb.defs:
3192         * bindings/python/rhythmdb.override: Fix some python binding stuff.
3194 2006-04-11  James Livingston  <doclivingston@gmail.com>
3196         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
3197         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
3198         interaction. Fixes bug 337999.
3200 2006-04-11  James Livingston  <doclivingston@gmail.com>
3202         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
3203         track transfer. Fixes bug 338056.
3205         * shell/Makefile.am:
3207 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3209         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
3211 2006-04-10  William Jon McCann  <mccann@jhu.edu>
3213         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
3214         (_rb_profile_log):
3215         * lib/rb-debug.h:
3216         * shell/rb-shell.c: (construct_db), (construct_widgets),
3217         (construct_sources), (construct_load_ui), (rb_shell_constructor):
3218         Add profiling.  Fixes #337387
3220 2006-04-10  William Jon McCann  <mccann@jhu.edu>
3222         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
3223         * widgets/rb-header.c:
3224         Use italics for artist and album. Fixes #336748
3226 2006-04-10  James Livingston  <doclivingston@gmail.com>
3228         * Makefile.am:
3229         * backends/gstreamer/Makefile.am:
3230         * configure.ac:
3231         * data/glade/library-prefs.glade:
3232         * shell/Makefile.am:
3233         * shell/rb-removable-media-manager.c:
3234         * shell/rb-removable-media-manager.h:
3235         * sources/Makefile.am:
3236         * sources/rb-audiocd-source.c:
3237         * sources/rb-library-source.c: (rb_library_source_class_init),
3238         (rb_library_source_finalize), (impl_get_config_widget),
3239         (rb_library_source_preferences_sync), (impl_can_paste): add a
3240         --enable-track-transfer configure option, abd make cd ripping disabled
3241         by default.
3243         * shell/rb-source-header.c:
3244         * sources/rb-source.c: (rb_source_class_init),
3245         (rb_source_delete_thyself), (default_get_entry_view):
3246         * lib/rb-glade-helpers.c:
3247         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
3248         some compiler warnings, and also bug 337427.
3250 2006-04-10  James Livingston  <doclivingston@gmail.com>
3252         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
3253         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
3254         if the gconf key is missing. Fixes bug 337742.
3256 2006-04-10  James Livingston  <doclivingston@gmail.com>
3258         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
3259         to fix build problems I caused with a commit yesterday. Fixed bug
3260         337806.
3262         * daapsharing/rb-daap-mdns-browser-howl.c:
3263         (rb_daap_mdns_browser_class_init):
3264         * podcast/Makefile.am:
3265         * rhythmdb/Makefile.am:
3266         * widgets/eggtrayicon.h:
3268 2006-04-09  Steve Frécinaux  <steve@istique.net>
3270         * configure.ac:
3271         * po/LINGUAS:
3272         
3273         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
3274         translators' life easier.
3276 2006-04-09  James Livingston  <doclivingston@gmail.com>
3278         * bindings/python/rb.defs:
3279         * bindings/python/rb.override: add bindings for most RBSource virtual
3280         functions.
3282         * sources/rb-source.h:
3283         * sources/rb-source.c: (rb_source_class_init): make
3284         impl_get_browser_key return a non-consht string, since Python can't
3285         really give us constant strings.
3287         * shell/rb-source-header.c: (rb_source_header_finalize),
3288         (rb_source_header_set_source_internal):
3289         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
3290         * sources/rb-iradio-source.c: (impl_get_browser_key):
3291         * sources/rb-library-source.c: (impl_get_browser_key):
3292         * sources/rb-playlist-source.c:
3293         * sources/rb-browser-source.c: (rb_browser_source_constructor),
3294         (rb_browser_source_state_prefs_sync):
3295         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
3296         above change.
3298         * plugins/sample-python/sample-python.py: show how to add a new
3299         source.
3301 2006-04-09  James Livingston  <doclivingston@gmail.com>
3303         * daapsharing/Makefile.am:
3304         * daapsharing/rb-daap-connection.c:
3305         (rb_daap_connection_class_init):
3306         * daapsharing/rb-daap-marshal.list:
3307         * daapsharing/rb-daap-mdns-browser-avahi.c:
3308         (rb_daap_mdns_browser_class_init):
3309         * lib/rb-marshal.list:
3310         * player/Makefile.am:
3311         * player/rb-recorder-gst.c: (rb_recorder_class_init):
3312         * player/rb-recorder-marshal.list:
3313         * podcast/Makefile.am:
3314         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3315         * podcast/rb-podcast-marshal.list:
3316         * rhythmdb/Makefile.am:
3317         * rhythmdb/rhythmdb-marshal.list:
3318         * rhythmdb/rhythmdb-query-model.c:
3319         (rhythmdb_query_model_class_init):
3320         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
3321         into one file, as there is no point having several of them.
3323 2006-04-09  James Livingston  <doclivingston@gmail.com>
3325         * lib/Makefile.am:
3326         * lib/rb-enums.h:
3327         * widgets/Makefile.am:
3328         * widgets/eggnotificationbubble.c:
3329         * widgets/eggnotificationbubble.h:
3330         * widgets/rb-song-info.c: remove lib/rb-enums.h and
3331         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
3333         * rhythmdb/rhythmdb-property-model.h:
3334         * rhythmdb/rhythmdb-query-model.h:
3335         * rhythmdb/rhythmdb.h:
3336         * shell/rb-playlist-manager.h:
3337         * widgets/rb-cell-renderer-pixbuf.h:
3338         * widgets/rb-cell-renderer-rating.h:
3339         * widgets/rb-rating.h: fix the prototypes of various class-closures.
3341 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3343         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
3344         so we can build without a system-wide installed copy.
3346 2006-04-09  James Livingston  <doclivingston@gmail.com>
3348         * data/glade/general-prefs.glade:
3349         * data/rhythmbox.schemas:
3350         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
3351         (rb_combo_box_hyphen_separator_func):
3352         * lib/rb-glade-helpers.h:
3353         * lib/rb-preferences.h:
3354         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
3355         (rb_shell_preferences_sync),
3356         (rb_shell_preferences_toolbar_style_cb),
3357         (rb_shell_preferences_browser_views_activated_cb):
3358         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
3359         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
3360         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
3362 2006-04-09  James Livingston  <doclivingston@gmail.com>
3364         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
3365         data that MusicBrainz returns to us. Last part of bug 334167.
3367 2006-04-09  James Livingston  <doclivingston@gmail.com>
3369         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
3370         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
3372 2006-04-09  James Livingston  <doclivingston@gmail.com>
3374         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
3375         the entry view properly when the rows are reordered. Fixes bug 337019.
3377 2006-04-09  James Livingston  <doclivingston@gmail.com>
3379         * configure.ac:
3380         * widgets/Makefile.am:
3381         * widgets/libsexy/Makefile.am:
3382         * widgets/libsexy/sexy-icon-entry.c:
3383         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
3384         libsexy, and allow building against it or a system-wide installed
3385         copy.
3388         * widgets/rb-search-entry.c: (rb_search_entry_init),
3389         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
3390         search box. Fixes bug 128109.
3392 2006-04-09  James Livingston  <doclivingston@gmail.com>
3394         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
3396         * widgets/rb-entry-view.c: (rb_entry_view_init),
3397         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
3398         and Pause icons rather than the volume ones in the Now Playing column.
3399         Closes bug 336482.
3401 2006-04-08  James Livingston  <doclivingston@gmail.com>
3403         * bindings/python/override_common.h:
3404         * bindings/python/rb.override:
3405         * bindings/python/rhythmdb.override: bind some more functions 
3407 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3409         * metadata/rb-metadata-dbus-service.c: (_send_error):
3410         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
3411         are sent properly and we don't get 'method doesn't exist' messages
3412         from dbus instead.
3414 2006-04-08  James Livingston  <doclivingston@gmail.com>
3416         * bindings/python/override_common.h:
3417         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
3418         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
3419         more utility functions for C<->Python conversions
3421         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
3422         (rb_entry_view_state_get_type):
3423         * widgets/rb-entry-view.h: make the colume type and entry view state
3424         GTypes
3426         * bindings/python/Makefile.am:
3427         * bindings/python/rb.defs:
3428         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
3429         RBSource.
3431 2006-04-08  James Livingston  <doclivingston@gmail.com>
3433         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
3434         initialiser for a GError
3436         * sources/rb-source.c: (rb_source_eof_type_get_type):
3437         * sources/rb-source.h: add a GType for RBSourceEOFType
3439         * bindings/python/Makefile.am:
3440         * bindings/python/rb.defs:
3441         * bindings/python/rb.override: bind RBSource and RBSourceList
3443 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3445         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3446         (rb_shell_player_get_property),
3447         (rb_shell_player_get_active_source),
3448         (rb_shell_player_set_playing_source_internal):
3449         * shell/rb-shell-player.h:
3450         Change 'playing-from-queue' from being a signal to being a property.
3452         * shell/rb-shell.c: (rb_shell_constructor),
3453         (rb_shell_playing_from_queue_cb),
3454         (rb_shell_view_queue_as_sidebar_changed_cb),
3455         (rb_shell_jump_to_entry_with_source):
3456         When the queue side pane is used, make 'jump to current' jump to the
3457         entry in the registered source for its type, rather than in the queue,
3458         and show it as playing in that source.
3459         
3460         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
3461         * sources/rb-sourcelist.h:
3462         Remove the 'preempted source' stuff, since it wasn't doing anything
3463         anyway.
3465 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3467         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
3468         (download_progress_cb): Canonicalise downloaded file location before
3469         setting the mountpoint property of the corresponding entry.
3470         Fixes #337287 and a couple of memory leaks.
3472 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3474         * metadata/rb-metadata-dbus-service.c: (test_can_save),
3475         (test_load), (main): Call g_set_prgname, report errors more
3476         usefully in test mode.
3477         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
3478         (rb_metadata_load): Don't ignore the have-type signal for non-audio
3479         files.  Run the event loop when the state change fails so we get the
3480         error messages from the bus.  Fixes #336921.
3482 2006-04-05  William Jon McCann  <mccann@jhu.edu>
3484         * data/art/Makefile.am: Install media-eject.
3486         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
3487         return value of rb_file.
3489         Fixes #337209
3491 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3493         Patch by: William Jon McCann  <mccann@jhu.edu>
3495         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
3496         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
3497         Fix GError leak.
3499 2006-04-04  William Jon McCann  <mccann@jhu.edu>
3501         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
3502         Don't try to add a date when we don't have one.  Fixes #336741.
3504         Also fix variable declaration in middle of block.
3506 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3508         * shell/rb-shell-player.c: (rb_shell_player_playpause):
3509         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
3511 2006-04-02  James Livingston  <doclivingston@gmail.com>
3513         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
3514         inverted logic causing imports to fail.
3516 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3518         * shell/main.c: (main): Fix dbusless build.
3520 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
3522         * player/rb-recorder-gst.c: fix packing of the C struct holding a
3523         wav header for non-gcc compilers (not tested much, was only written
3524         according to docs)
3526 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3528         * shell/main.c: (main): Check if we got a dbus connection before
3529         trying to create a proxy for the shell object.  Fixes #336634.
3531 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3533         * doc/reference/Makefile.am:
3534         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
3535         * shell/rb-source-header.c:
3536         * sources/rb-generic-player-source.c:
3537         (default_transform_playlist_uri):
3538         Fix various build issues.  Patch approximately 50% by Alex Lancaster
3539         <alexl@users.sourceforge.net>
3541 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3543         * configure.ac: Detect LIRC.
3544         
3545         * plugins/Makefile.am:
3546         * plugins/lirc/Makefile.am:
3547         * plugins/lirc/lirc.rb-plugin.desktop.in:
3548         * plugins/lirc/rb-lirc-plugin.c:
3549         LIRC plugin.
3551         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
3552         Remove obsolete files.
3554 2006-04-02  James Livingston  <doclivingston@gmail.com>
3556         * sources/rb-generic-player-source.c:
3557         (default_transform_playlist_uri): consider playlist paths as relative
3558         to the volume root by default, since that is what most players use.
3560 2006-04-02  James Livingston  <doclivingston@gmail.com>
3562         * lib/rb-util.c: (rb_mime_get_friendly_name):
3563         * lib/rb-util.h: add helper function to get the "friendly" name for a
3564         mime-type
3566         * metadata/rb-metadata-gst.c: (rb_metadata_init),
3567         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
3568         the user better error messages about undecodable streams, using the
3569         "friendly" name if possible. Fixes bug 128109.
3571 2006-04-02  James Livingston  <doclivingston@gmail.com>
3573         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
3574         (start_pipeline): fix building with gstreamer 0.8
3576 2006-04-02  James Livingston  <doclivingston@gmail.com>
3578         * sources/rb-podcast-source.c: (impl_delete),
3579         (rb_podcast_source_cmd_delete_feed),
3580         (rb_podcast_source_cmd_update_feed): copy the list before traversing
3581         it, since it may change during traversal. Fixes bug 336204.
3583 2006-04-01  James Livingston  <doclivingston@gmail.com>
3585         * data/art/media-eject.png: add the media-eject icon from Banshee
3586         (BSD-licensed), for use when the user's icon theme doesn't have one.
3588         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
3589         bug 334897.
3591 2006-04-01  James Livingston  <doclivingston@gmail.com>
3593         * shell/rb-shell-player.h:
3594         * shell/rb-shell-player.c: (rb_shell_player_play),
3595         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
3596         new rb_shell_player_{play,pause} functions, so everyone doesn't have
3597         to do rb_shell_player_playing followed by rb_shell_player_playpause.
3599         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
3600         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
3601         * shell/rb-shell.h: add rb_shell_get_ui_manager.
3603         * bindings/python/rb.defs: bind the above to Python, and remove some
3604         useless stuff from the bindings.
3606 2006-04-01  James Livingston  <doclivingston@gmail.com>
3608         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
3609         number tag.
3611         * shell/rb-shell.c:
3612         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
3614         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
3615         to true.
3617         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
3618         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
3619         method assigning, so it's understandable
3621         * sources/rb-library-source.c: (rb_library_source_class_init),
3622         (impl_paste): rather than hard-coding the types to ignore, use
3623         rb_source_can_copy.
3625 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3627         * sources/rb-library-source.c:
3628         (rb_library_source_preferences_sync):
3629         Don't crash if no audio profile is selected and the gconf schemas are 
3630         not installed.
3632 2006-03-31  James Livingston  <doclivingston@gmail.com>
3634         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
3635         "*" which caused compilation to fail
3637 2006-03-31  James Livingston  <doclivingston@gmail.com>
3639         * configure.ac:
3640         * Makefile.am:
3641         * backends/Makefile.am:
3642         * backends/gstreamer/Makefile.am:
3643         * backends/gstreamer/rb-encoder-gst.c:
3644         * backends/gstreamer/rb-encoder-gst.h:
3645         * backends/rb-encoder.c:
3646         * backends/rb-encoder.h: add a interface for transcoding, and a
3647         GStreamer implementation of it (based on Sound-Juicer's code).
3649         * shell/Makefile.am:
3650         * shell/rb-removable-media-manager.c:
3651         (rb_removable_media_manager_class_init),
3652         (rb_removable_media_manager_init),
3653         (rb_removable_media_manager_dispose),
3654         (rb_removable_media_manager_finalize),
3655         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
3656         (progress_cb), (completed_cb), (do_transfer),
3657         (rb_removable_media_manager_queue_transfer), (copy_entry),
3658         (rb_removable_media_manager_cmd_copy_tracks):
3659         * shell/rb-removable-media-manager.h: use the encoder interface to
3660         perform transfers of entries to other locations
3662         * shell/rb-shell-player.c: (open_location_thread):
3663         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
3664         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
3665         (rb_shell_quit):
3666         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
3667         progress in the status bar.
3669         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
3670         (rb_shell_preferences_sync),
3671         (rb_shell_preferences_browser_views_activated_cb):
3672         * data/glade/general-prefs.glade: move the browser views setting from
3673         the library tab to the general one.
3675         * data/glade/library-prefs.glade: add settings for the layout of the
3676         user's library, and their preferred encoding format (e.g. for CD
3677         ripping).
3679         * lib/rb-preferences.h:
3680         * data/rhythmbox.schemas: add keys for the above options (and a few
3681         other minor ones)
3683         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
3684         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
3685         entry, that isn't inserted into the database.
3687         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
3688         (rb_audiocd_create_track_entry):
3689         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
3690         cds, and set the mime-type of audio cd tracks correctly.
3692         * sources/rb-library-source.c: (rb_library_source_class_init),
3693         (rb_library_source_finalize),
3694         (rb_library_source_edit_profile_clicked_cb),
3695         (impl_get_config_widget), (rb_library_source_preferences_sync),
3696         (impl_receive_drag), (rb_library_source_path_changed_cb),
3697         (rb_library_source_filename_changed_cb),
3698         (rb_library_source_format_changed_cb), (sanitize_path),
3699         (filepath_parse_pattern), (layout_example_label_update),
3700         (rb_library_source_layout_path_changed),
3701         (rb_library_source_layout_filename_changed), (build_filename),
3702         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
3703         entries to the library. Large chunks of code for determining the
3704         destination file name stolen from Sound-Juicer.
3706         * sources/rb-sourcelist-model.c: (path_is_droppable):
3707         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
3708         * sources/rb-static-playlist-source.c:
3709         (rb_static_playlist_source_class_init):
3710         * sources/rb-removable-media-source.c:
3711         (rb_removable_media_source_class_init):
3712         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
3713         (rb_source_can_paste):
3714         * sources/rb-source.h: add a new _can_paste method, and use it (rather
3715         than _can_copy) to determine whether we can paste into the source.
3718 2006-03-31  Steve Frécinaux  <steve@istique.net>
3720         * plugins/rb-python-module.c: allow import of python modules with a '.'
3721         (gedit's bug 336403). Patch by Johan Dahlin.
3723 2006-03-31  James Livingston  <doclivingston@gmail.com>
3725         * sources/rb-library-source.c: 
3726         * sources/rb-library-source.h:
3727         * sources/rb-browser-source.c:
3728         * sources/rb-browser-source.h: Split RBLibrarySource into two.
3729         RBBrowserSource now contains all the stuff for having a source which
3730         views a particular entry type (including browsers and searching).
3731         RBLibrarySource derives from this, and includes the library-specific
3732         stuff, like importing and library watching. Fixes some issues where
3733         library-derived sources were doing things that should be
3734         library-specific. Fixes bug 335185.
3736         * data/ui/rhythmbox-ui.xml:
3737         * sources/Makefile.am: modifications for the above
3739         * sources/rb-daap-source.c: (rb_daap_source_class_init),
3740         (rb_daap_source_get_paned_key):
3741         * sources/rb-daap-source.h:
3742         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
3743         * sources/rb-removable-media-source.c:
3744         (rb_removable_media_source_class_init):
3745         * sources/rb-removable-media-source.h: derive from RBBrowserSource
3746         instead of RBLibrarySource.
3748 2006-03-31  James Livingston  <doclivingston@gmail.com>
3750         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
3751         I buggered up when changing from GnomeVFSFileSize.
3753 2006-03-30  James Livingston  <doclivingston@gmail.com>
3755         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
3756         for "-Wno-error".
3758         * bindings/python/rb.override:
3759         * bindings/python/Makefile.am: make the RB python bindings depend on
3760         the RhythmDB ones, and use "-Wno-error" since the machine-generated
3761         code sometimes emits warnings.
3763         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3764         (rb_shell_player_error_get_type):
3765         * shell/rb-shell-player.h:
3766         * bindings/python/rb.defs: add bindings for RBShellPlayer
3768         * rhythmdb/rhythmdb.c: (rhythmdb_init),
3769         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
3770         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
3771         * rhythmdb/rhythmdb.h:
3772         * shell/rb-shell.c: (rb_shell_get_song_properties):
3773         * widgets/rb-entry-view.c: (propid_from_name):
3774         * widgets/rb-property-view.c: (rb_property_view_class_init):
3775         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
3776         than just plain GPtrArray, and add bindings for it.
3778         * bindings/python/rhythmdb.override: wrap some functions that use
3779         GValues
3781 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3783         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
3784         Only watch directories from which entries of type SONG have been
3785         added.
3787 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3789         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
3790         No need to restore the selection after rebuilding the child model,
3791         since that can't have changed the selection.
3793 2006-03-29  James Livingston  <doclivingston@gmail.com>
3795         * bindings/python/override_common.c:
3796         * bindings/python/override_common.h: add some for missing files to
3797         cvs.
3799 2006-03-29  James Livingston  <doclivingston@gmail.com>
3801         * configure.ac:
3802         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
3803         copied from gedit's autofoo and we don't need it
3805         * bindings/python/rhythmdb.defs:
3806         * bindings/python/rhythmdb.override: add missing files to cvs
3808 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3810         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
3811         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
3812         before running any of the debug/test modes.
3813         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
3814         Make plugin loading work when running uninstalled from the shell/
3815         directory.
3817 2006-03-29  James Livingston  <doclivingston@gmail.com>
3819         * rhythmdb/rhythmdb-property-model.c:
3820         (rhythmdb_property_model_sync),
3821         (rhythmdb_property_model_column_get_type):
3822         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
3824         * rhythmdb/rhythmdb-private.h:
3825         * rhythmdb/rhythmdb-query-model.c:
3826         (rhythmdb_query_model_class_init):
3827         * rhythmdb/rhythmdb-query-model.h:
3828         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
3829         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
3830         (rhythmdb_entry_get_type):
3831         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
3833         * widgets/rb-query-creator-properties.c:
3834         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
3835         was missing.
3837         * bindings/python/Makefile.am:
3838         * bindings/python/rb.defs:
3839         * bindings/python/rb.override:
3840         * plugins/rb-python-module.c: (rb_python_module_init_python): add
3841         Python bindings for RhythmDB.
3843 2006-03-29  James Livingston  <doclivingston@gmail.com>
3845         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
3846         sharing when using --no-registration
3848 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3850         * rhythmdb/rhythmdb-query-model.c:
3851         (rhythmdb_query_model_reapply_query):
3852         Don't remove entries while iterating, as it breaks the sequence
3853         nodes.  Instead, collect a list of removed entries and process it
3854         after iterating the sequence.  Fixes #334642.
3856 2006-03-29  James Livingston  <doclivingston@gmail.com>
3858         * plugins/rb-plugin-manager.c: (active_toggled_cb),
3859         (row_activated_cb), (plugin_manager_toggle_all):
3860         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
3861         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
3862         (button_press_cb), (source_name_edited_cb):
3863         * widgets/rb-property-view.c: (rb_property_view_set_property),
3864         (rb_property_view_post_row_deleted_cb),
3865         (rb_property_view_row_activated_cb),
3866         (rb_property_view_selection_changed_cb),
3867         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
3868         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
3870 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3872         * rhythmdb/rhythmdb-query-model.c:
3873         (rhythmdb_query_model_drag_data_received):
3874         Increment the reference count for entries added by drag and drop.
3875         Fixes #336045.
3877 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3879         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
3880         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
3881         Ignore invalid UTF-8 strings.  Fixes most of #334167.
3883 2006-03-27  James Livingston  <doclivingston@gmail.com>
3885         * shell/rb-shell.c: (rb_shell_constructor),
3886         (rb_shell_sync_window_state): fix a maximise-realise race that would
3887         cause some widgets to be resized after we had explicity set theri
3888         size. Hopefully fixes bug 331927.
3890 2006-03-27  James Livingston  <doclivingston@gmail.com>
3892         * plugins/rb-plugin-manager.c: (active_toggled_cb),
3893         (row_activated_cb), (plugin_manager_set_active),
3894         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
3895         configure button sensitivity when a plugin is enabled/disabled.
3897 2006-03-27  James Livingston  <doclivingston@gmail.com>
3899         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
3900         stop warnings, only the vbos is used anyway
3902         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
3903         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
3904         collection every now an then.
3906         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
3907         if we are finalising because the python object couldn't be created.
3909         * plugins/rb-python-module.c: (rb_python_module_new_object): return
3910         NULL if the python-side object couldn't be created. Stops crashes when
3911         the object is later used when it doesn't exist in Python.
3913         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
3914         (rb_python_shutdown): do better garbage collection when shutting down.
3915         Fixes the problem where Python was holding a reference to the shell,
3916         causing RB not to exit.
3918 2006-03-27  James Livingston  <doclivingston@gmail.com>
3920         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
3921         336131.
3923 2006-03-27  James Livingston  <doclivingston@gmail.com>
3925         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
3926         From bug 334829.
3928 2006-03-26  James Livingston  <doclivingston@gmail.com>
3930         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
3931         library location list to NULL after we free it. Fixes bug 336047.
3933 2006-03-26  James Livingston  <doclivingston@gmail.com>
3935         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
3937         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
3938         supplies. Fixes bug 335947.
3940 2006-03-25  James Livingston  <doclivingston@gmail.com>
3942         * data/glade/audioscrobbler-prefs.glade:
3943         * shell/rb-audioscrobbler.c:
3944         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
3945         "submit songs" checkbox, and make it not disable username/password
3946         entry. This will be needed when we support other last.fm stuff
3947         (profile access, radio, etc).
3949 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
3951         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
3952         Volume should not display stock_volume-0 for volume > 0. Fixes bug
3953         335777.
3955 2006-03-24  James Livingston  <doclivingston@gmail.com>
3957         * shell/rb-shell-player.c: (rb_shell_player_set_property),
3958         (rb_shell_player_sync_play_order),
3959         (rb_shell_player_play_order_update_cb),
3960         (actually_set_playing_source): update the next/previous availablility
3961         in places where it was missing. Fixes bug 335490.
3963 2006-03-24  James Livingston  <doclivingston@gmail.com>
3965         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
3966         can't find the widget
3968         * lib/rb-util.c: (rb_uri_list_parse):
3969         * lib/rb-util.h: add function for parsing a URI list into strings.
3971         * metadata/Makefile.am: make the metdata helper build when linking
3972         with --as-needed
3974         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
3975         g_mkdir_with_parents instead of coding our own.
3977         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
3978         <itunes:author> over <generator>, instead of using whichever comes
3979         last.
3981         * rhythmdb/rhythmdb-private.h:
3982         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
3983         field, as we don't ever check it (to detect corruption). Saves a bit
3984         of memory.
3986 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3988         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
3989         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
3990         Escape '&' and '=' in the paths we get back from
3991         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
3993 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3995         * shell/rb-shell.c: (rb_shell_constructor):
3996         Issue startup notification after creating the main window, so
3997         notification is issued whether the window is visible or not.
3998         Fixes #335086.
4000 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4002         * sources/rb-auto-playlist-source.c: (impl_search),
4003         (rb_auto_playlist_source_query_complete_cb),
4004         (rb_auto_playlist_source_do_query):
4005         * sources/rb-library-source.c: (impl_search),
4006         (rb_library_source_query_complete_cb),
4007         (rb_library_source_do_query):
4008         Defer subset searches (where text is appended to an existing search)
4009         until the original query is complete.
4011 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
4013         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
4015         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
4016         (rb_refstring_get_sort_key): fixes for strict-aliasing
4018 2006-03-21  James Livingston  <jrl@ids.org.au>
4020         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
4021         importing a single file. Fixes bug 335307.
4023 2006-03-21  James Livingston  <jrl@ids.org.au>
4025         * shell/Makefile.am: remove the reference to backends/ that I
4026         accidently included.
4028 2006-03-21  James Livingston  <jrl@ids.org.au>
4030         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
4031         with Forte (on Solaris). Closes bug 335318.
4033         * configure.ac:
4034         * lib/Makefile.am:
4035         * player/rb-recorder-gst.c:
4036         * podcast/rb-podcast-parse.c:
4037         * remote/bonobo/Makefile.am:
4038         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
4039         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
4040         (rhythmdb_query_model_add_entry),
4041         (rhythmdb_query_model_add_results):
4042         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
4043         * rhythmdb/rhythmdb.h:
4044         * shell/Makefile.am:
4045         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
4046         (update_speed_combobox):
4047         * sources/rb-sourcelist-model.c:
4049 2006-03-21  James Livingston  <jrl@ids.org.au>
4051         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
4053         * player/Makefile.am:
4054         * shell/Makefile.am: work correctly with a separate build root.
4056 2006-03-21  James Livingston  <jrl@ids.org.au>
4058         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
4059         get handed NULL.
4061 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4063         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
4064         Only create ignore entries when importing into the library.  
4065         Ignore entries for files in removable media sources don't help.
4067 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4069         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
4070         * shell/rb-source-header.h:
4071         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
4072         * widgets/rb-search-entry.h:
4073         Add functions to make the search box grab focus.
4075         * shell/rb-shell.c: (rb_shell_cmd_view_all):
4076         Focus the search box after handling the 'view all' action.
4078 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4080         * rhythmdb/rhythmdb.h:
4081         * rhythmdb/rhythmdb.c: (rhythmdb_init),
4082         (rhythmdb_execute_multi_stat_info_cb),
4083         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
4084         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
4085         (action_thread_main):
4086         Collect all the get_file_info requests on startup into one gnome-vfs
4087         job to reduce overhead and avoid contention for the rhythmdb lock.
4088         Add a new method to call when all initial query models are set up.
4089         
4090         * shell/rb-shell.c: (idle_handle_load_complete):
4091         Call rhythmdb startup complete function when we've loaded all the
4092         playlists.  Fixes #334106.
4094 2006-03-20  James Livingston  <jrl@ids.org.au>
4096         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
4097         (rb_entry_view_selection_changed_cb),
4098         (rb_entry_view_have_complete_selection): make has_complete_selection
4099         not slow. Fixes a performance issue I added a week or so ago.
4101 2006-03-20  James Livingston  <jrl@ids.org.au>
4103         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
4104         before passing to strcmp. From bug 334559.
4106 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4108         * configure.ac:
4109         * lib/Makefile.am:
4110         * lib/rb-proxy-config.c:
4111         * lib/rb-proxy-config.h:
4112         Add a new object to watch the HTTP proxy configuration and emit
4113         signals when it changes.
4115         * shell/rb-audioscrobbler.c:
4116         * shell/rb-audioscrobbler.h:
4117         Use rb-proxy-config to watch HTTP proxy configuration.
4119         * shell/rb-shell.c:
4120         Construct rb-proxy-config object on startup, and remove all
4121         audioscrobbler references.
4123         * shell/Makefile.am:
4124         * plugins/audioscrobbler/Makefile.am:
4125         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
4126         Move all audioscrobbler code into the plugin.  We should move
4127         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
4128         point.  Don't use a private data structure in the plugin, since the
4129         class definition isn't in a header file.  Fixes #335091.
4131 2006-03-20  James Livingston  <jrl@ids.org.au>
4133         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
4134         don't enable Next if the source has an EOS type other than
4135         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
4137 2006-03-20  James Livingston  <jrl@ids.org.au>
4139         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
4140         (rb_song_info_forward_clicked_cb): deal with there being no
4141         next/previous entry.
4143         (rb_song_info_query_model_inserted_cb),
4144         (rb_song_info_query_model_deleted_cb),
4145         (rb_song_info_query_model_reordered_cb),
4146         (rb_song_info_query_model_changed_cb): monitor the query for changes,
4147         to update the button status. Fixes bug 333293.
4149 2006-03-20  James Livingston  <jrl@ids.org.au>
4151         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
4152         caused by my last commit
4154 2006-03-20  James Livingston  <jrl@ids.org.au>
4156         * bindings/python/Makefile.am:
4157         * bindings/python/rb.defs:
4158         * bindings/python/rb.override: add python bindings of RBRemoteProxy
4160         * shell/rb-shell.c: (rb_shell_constructor),
4161         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
4162         tray-icon detection slightly
4164 2006-03-19  Steve Frécinaux  <steve@istique.net>
4166         * data/ui/rhythmbox-ui.xml:
4167         * shell/rb-shell.c:
4169         Add an empty Tool Menu (hidden by default) containing placeholders for
4170         plugins.
4172         * configure.ac:
4173         * plugins/Makefile.am:
4174         * plugins/pythonconsole/Makefile.am:
4175         * plugins/pythonconsole/pythonconsole.py:
4176         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
4177         
4178         Python Console plugin
4180 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4182         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
4183         Extra step to encode '&' and '=' to match what gnome-vfs does
4184         internally.
4185         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4186         (rhythmdb_tree_save):
4187         Increment rhythmdb xml version to 1.2, and force another uri
4188         re-canonicalisation when loading v1.1 databases.
4189         Fixes bug #333998.
4191 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4193         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
4194         (avahi_client_init), (browse_cb):
4195         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
4196         (avahi_client_init):
4197         Fix compilation with Avahi 0.5.x (bug #334551).
4199 2006-03-19  James Livingston  <jrl@ids.org.au>
4201         Add Increase/Decrease Volume menu items and keybindings. From bug
4202         123383.
4204         * data/ui/rhythmbox-ui.xml:
4205         * shell/rb-shell-player.c: (rb_shell_player_constructor),
4206         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
4207         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
4209 2006-03-19  James Livingston  <jrl@ids.org.au>
4211         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
4213         * shell/Makefile.am: fix the link order, so that we compile with
4214         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
4216 2006-03-19  James Livingston  <jrl@ids.org.au>
4218         patch by: Adam Petaccia  <adam@tpetaccia.com>
4220         * data/ui/rhythmbox-ui.xml: move preferences below "configure
4221         plugins". Fixes bug 335037.
4223 2006-03-18  James Livingston  <jrl@ids.org.au>
4225         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
4226         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
4227         332992.
4229         * widgets/rb-header.c: don't make artist/album info in the header the
4230         small size, since it's hard to read.
4232 2006-03-16  William Jon McCann  <mccann@jhu.edu>
4234         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
4235         (rhythmdb_finalize): Don't leak the hash tables.
4236         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
4237         (rhythmdb_commit_internal): Make sure to process the deletions.
4238         (rhythmdb_entry_delete): Use a hash.
4240         * podcast/rb-podcast-manager.c: Random analness about char*
4241         (rb_podcast_manager_remove_feed): Add debugging.
4242         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
4243         the result of gnome_vfs_unlink.  Don't leak a uri.
4245         Fixes #334786
4247 2006-03-18  James Livingston  <jrl@ids.org.au>
4249         * NEWS: update NEWS file
4251 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4253         * rhythmdb/rhythmdb-property-model.c:
4254         (rhythmdb_property_model_prop_changed_cb):
4255         Remove entries from the hash table after processing visible->hidden
4256         changes.
4258 2006-03-16  William Jon McCann  <mccann@jhu.edu>
4260         * sources/rb-daap-source.c (connection_connected_cb) 
4261         (connection_disconnected_cb): Add debug.
4262         (rb_daap_source_get_headers): Check for NULL connection.
4264         * daapsharing/rb-daap-src.c (rb_daap_src_open):
4265         Check return value of rb_daap_source_get_headers.
4267         Fixes #332089
4269 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4271         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
4272         Restore the selection after rebuilding the child model, so the
4273         selection is shown correctly after using the 'browse this
4274         album/artist/genre' menu items.
4276 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4278         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
4279         Clear the selection before changing the active model.
4280         Fixes crash reported in bug 334549.
4282 2006-03-15  James Livingston  <jrl@ids.org.au>
4284         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
4285         (rb_tray_icon_sync_action):
4286         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
4287         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
4288         for non-libnotify notification bubbles. Fixes bug 331721.
4290 2006-03-15  James Livingston  <jrl@ids.org.au>
4292         Add search-bar options to playlists. Fixes bug 334407.
4294         * sources/rb-auto-playlist-source.c:
4295         (rb_auto_playlist_source_class_init),
4296         (rb_auto_playlist_source_constructor),
4297         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
4298         (search_action_to_prop), (search_action_changed):
4299         * sources/rb-static-playlist-source.c:
4300         (rb_static_playlist_source_class_init),
4301         (rb_static_playlist_source_constructor),
4302         (construct_query_from_selection), (impl_get_search_actions),
4303         (search_action_to_prop), (search_action_changed):
4305 2006-03-14  William Jon McCann  <mccann@jhu.edu>
4307         * shell/rb-source-header.c (rb_source_header_set_source_internal):
4308         Remove broken attempt at making the search bar buttons not
4309         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
4311 2006-03-14  William Jon McCann  <mccann@jhu.edu>
4313         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
4314         Chain up to parent's dispose instead of finalize.  Fixes #334479.
4316 2006-03-14  William Jon McCann  <mccann@jhu.edu>
4318         * widgets/rb-header.c (rb_header_sync): Escape album and
4319         artist before adding to markup.
4321 2006-03-14  William Jon McCann  <mccann@jhu.edu>
4323         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
4324         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
4325         (rb_header_set_property), (rb_header_get_property),
4326         (rb_header_sync):
4327         Remove the GnomeUrl song links until we can do it properly.
4328         Fixes #334453.
4330 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4332         * shell/rb-source-header.c: (rb_source_header_clear_search):
4333         Remove the stored search text from the hash table, so it doesn't
4334         reappear after switching to another source and back.
4336         * sources/rb-auto-playlist-source.c: (impl_search):
4337         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
4338         * sources/rb-static-playlist-source.c: (impl_search):
4339         Make sure all sources treat impl_search(NULL) and impl_search("") the
4340         same.  Fixes #334525.
4342 2006-03-14  James Livingston  <jrl@ids.org.au>
4344         Store which thread created new entries, and make rhythmdb_commit only
4345         insert the entries for the thread that calls it. This stops one thread
4346         calling rhythmdb_commit inserting entries that are half-way through
4347         construction by another thread (as happens with audio cds). From bug
4348         330226.
4350         * rhythmdb/rhythmdb.c: (rhythmdb_init),
4351         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
4352         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
4353         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
4354         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
4355         (rhythmdb_process_metadata_load),
4356         (rhythmdb_process_queued_entry_set_event),
4357         (rhythmdb_prop_get_type):
4359 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4361         * rhythmdb/rhythmdb-query-model.c:
4362         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
4363         (rhythmdb_query_model_finalize):
4364         Move object unrefs from _finalize into _dispose.
4365         
4366         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
4367         Remove extra g_object_ref that was causing query model leaks.
4368         
4369         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
4370         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
4371         (genre_selection_reset_cb), (rb_iradio_source_do_query):
4372         Remove the cached 'all' query, since it doesn't really help and it
4373         makes the code more complicated.  Attach the genre property view to
4374         the query model build from the search text, so only genres for
4375         stations matching the search terms are displayed.  Preserve the genre
4376         selection across searches.
4378         * widgets/rb-library-browser.c: 
4379         (rb_library_browser_class_init), (rb_library_browser_get_property):
4380         Add properties for the input and output models for the browser, and
4381         remove the 'changed' signal as we can just use notify::output-model.
4382         (ignore_selection_changes),
4383         (selection_restore_data_destroy), (query_complete_cb),
4384         (restore_selection): Helper functions for preserving selections across
4385         query model rebuilds.
4386         (rebuild_output_model):  New function for creating a query model to
4387         use as the display model for a source using the browser.
4388         (rebuild_child_model): Add a call to rebuild_output_model, add missing
4389         g_object_unrefs, reuse the parent's query model when there's no
4390         selection, and use ignore_selection_changes and restore_selection.
4391         (rb_library_browser_set_selection): rebuild_child_model emits the
4392         changed signal, so no need to do it here.
4393         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
4394         ignore_selection_changes and restore_selection. 
4395         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
4396         flag to rb_library_browser_set_model indicating whether the query is
4397         asynchronous.
4399         * sources/rb-static-playlist-source.c:
4400         (rb_static_playlist_source_class_init),
4401         (rb_static_playlist_source_dispose):
4402         (rb_static_playlist_source_constructor):  Add an extra reference on
4403         the base model, so it doesn't vanish when we set a new display model
4404         based on a search or browser selection.
4405         (impl_search): Ensure the search_text field in the source is NULL if
4406         the search box is empty.
4407         (construct_query_from_selection),
4408         (rb_static_playlist_source_do_query): Use the query model constructed
4409         from the search as the input model for the browser.
4410         (rb_static_playlist_source_browser_changed_cb): Use the browser's
4411         output model as the query model for the source.
4413         * sources/rb-auto-playlist-source.c:
4414         (rb_auto_playlist_source_finalize): Free more stuff.
4415         (rb_auto_playlist_source_constructor),
4416         (rb_auto_playlist_source_browser_changed_cb):
4417         Update for rb-library-browser changes, use the browser's output query
4418         model as the query model for the source.
4419         (impl_reset_filters), (impl_search), 
4420         (rb_auto_playlist_source_do_query),
4421         (rb_auto_playlist_source_set_query):
4422         Use the query model constructed from the search text as the input to
4423         the library browser, and when adding text to an existing search, apply
4424         the new query to the existing query model.
4425         
4426         * sources/rb-library-source.c: (rb_library_source_dispose):
4427         (rb_library_source_finalize): Chain dispose up to the parent class.
4428         (rb_library_source_constructor): Update for rb-library-browser
4429         changes. 
4430         (impl_search): Ensure search_text is NULL if the search box is empty,
4431         and use the subset flag to _do_query if text has been appended to an
4432         existing search.
4433         (search_action_changed), (impl_reset_filters):
4434         (rb_library_source_browser_changed_cb),
4435         (rb_library_source_do_query): Use the browser's output model as the
4436         query model for the source.
4438         Rework library and playlist sources to use a single query chain,
4439         and to limit the entries shown in property views based on the search
4440         terms.  Fixes bug #322787.
4442 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4444         * configure.ac:  Enable metadata helper by default, and fix a typo.
4446 2006-03-13  James Livingston  <jrl@ids.org.au>
4448         Make RBRefStrings lazily create the folded and sort-key strings when
4449         they are first used. This will same some memory by not creating ones
4450         that are never used, and delaying some of the others to when the user
4451         resorts or performs a similar action. Fixes bug 332992.
4453         * rhythmdb/rb-refstring.c: (rb_refstring_free),
4454         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
4455         (rb_refstring_get), (rb_refstring_get_folded),
4456         (rb_refstring_get_sort_key), (rb_refstring_hash),
4457         (rb_refstring_equal):
4458         * rhythmdb/rb-refstring.h:
4459         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
4461 2006-03-12  William Jon McCann  <mccann@jhu.edu>
4463         * data/ui/rhythmbox-ui.xml:
4464         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4465         * lib/rb-stock-icons.h:
4466         * shell/rb-shell-player.c:
4467         * shell/rb-shell.c: (rb_shell_constructor):
4468         * shell/rb-source-header.c: (force_no_shadow),
4469         (ui_manager_add_widget_cb), (rb_source_header_constructor),
4470         (rb_source_header_class_init), (rb_source_header_init),
4471         (merge_source_ui_cb), (toolbar_set_homogeneous),
4472         (rb_source_header_set_source_internal),
4473         (rb_source_header_set_property), (rb_source_header_get_property),
4474         (rb_source_header_set_source), (rb_source_header_new),
4475         (rb_source_header_filter_changed_cb):
4476         * shell/rb-source-header.h:
4477         * sources/rb-library-source.c: (rb_library_source_class_init),
4478         (rb_library_source_init), (search_action_to_prop),
4479         (search_action_changed), (rb_library_source_constructor),
4480         (impl_search), (impl_reset_filters), (impl_get_search_actions),
4481         (construct_query_from_selection):
4482         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
4483         (rb_podcast_source_init), (search_action_to_prop),
4484         (search_action_changed), (rb_podcast_source_constructor),
4485         (construct_query_from_selection), (impl_get_ui_actions),
4486         (impl_get_search_actions):
4487         * sources/rb-source.c: (rb_source_class_init),
4488         (rb_source_get_ui_actions), (default_get_search_actions),
4489         (rb_source_get_search_actions):
4490         * sources/rb-source.h:
4492         Add a search bar.  Fixes #328618
4494 2006-03-12  James Livingston  <jrl@ids.org.au>
4496         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
4497         * shell/main.c: (main): make --no-update not stat files checking for
4498         changes, instead of doing nothing. Fixes bug 125177.
4500 2006-03-12  James Livingston  <jrl@ids.org.au>
4502         * podcast/rb-podcast-manager.c:
4503         (rb_podcast_manager_thread_parse_feed):
4504         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
4505         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
4506         having an invalid mime-type. Fixed bug 329813.
4508 2006-03-12  James Livingston  <jrl@ids.org.au>
4510         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
4511         Finally lets us close bug 309609.
4513         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
4514         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
4515         0.10
4517         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
4518         inverted logic of the editable check.
4520 2006-03-12  James Livingston  <jrl@ids.org.au>
4522         Make API doc generation work again. Fixes bug 334276.
4524         * doc/reference/Makefile.am:
4525         * doc/reference/tmpl/rb-debug.sgml:
4526         * doc/reference/tmpl/rb-druid.sgml:
4527         * doc/reference/tmpl/rb-entry-view.sgml:
4528         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
4529         * doc/reference/tmpl/rb-metadata.sgml:
4530         * doc/reference/tmpl/rb-shell.sgml:
4531         * doc/reference/tmpl/rhythmbox-unused.sgml:
4532         * doc/reference/tmpl/rhythmdb.sgml:
4534 2006-03-12  James Livingston  <jrl@ids.org.au>
4536         * shell/rb-shell-clipboard.c:
4537         (rb_shell_clipboard_set_source_internal),
4538         (rb_shell_clipboard_sync): don't try to use the source's entry view if
4539         it doesn't have one. Fixes bug 331673.
4541         * sources/rb-source.c: (rb_source_class_init): provide a default
4542         have_url implementation that returns FALSE.
4544 2006-03-12  James Livingston  <jrl@ids.org.au>
4546         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
4547         doing a distclean. Fixes bug 334221.
4550         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
4552         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
4554 2006-03-11  James Livingston  <jrl@ids.org.au>
4556         * shell/rb-shell.c: (rb_shell_window_state_cb),
4557         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
4558         update the window width/height when iconified. Stops the window
4559         changing size when it is restored from the tray, fixing bug 333824. 
4561 2006-03-11  James Livingston  <jrl@ids.org.au>
4563         Try to get cvs to actually add the necessary files for plugin support
4565 2006-03-11  James Livingston  <jrl@ids.org.au>
4567         Add a plugin framework, with basic support for Python plugins (based
4568         on gedit's). Closes bug 330523.
4570         * Makefile.am:
4571         * shell/Makefile.am:
4572         * configure.ac: necessary autofoo.
4574         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
4576         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
4577         * lib/rb-file-helpers.h:
4579         * data/glade/plugins/glade:
4580         * lib/rb-preferences.h:
4581         * plugins/*:
4582         * bindings/*: plugin framework
4584         * plugins/sample/*:
4585         * plugins/sample-python/*: sample plugins
4587         * plugins/audioscrobbler/*:
4588         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
4589         (rb_audioscrobbler_set_property),
4590         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
4591         submission into a plugin. shell/audioscrobbler.* should really be
4592         moved, but that sucks with cvs.
4594         * shell/rb-shell.h:
4595         * shell/rb-shell.c: (rb_shell_constructor),
4596         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
4597         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
4598         (rb_shell_quit): start and stop plugin framework.
4600 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4602         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
4603         (rhythmdb_entry_delete):
4604         Emit entry-deleted signals when rhythmdb_commit is called, rather than
4605         immediately, so we can't get change notifications afterwards.  
4606         Fixes #331732.
4607         (rhythmdb_process_metadata_load): Add a commit after removing an
4608         entry so we can recreate it with a different type without getting
4609         confused.
4611 2006-03-11  James Livingston  <jrl@ids.org.au>
4613         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
4614         use the drive name for audio CDs, use "Unknown CD".
4616 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4618         patch by:  James Henstridge  <james@jamesh.id.au>
4620         * sources/rb-removable-media-source.c:
4621         (rb_removable_media_source_constructor):
4622         Get the device name from the GnomeVFSDrive if possible,
4623         since this is usually a more descriptive name.  Fixes #333080.
4625 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4627         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
4629         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
4630         Don't automatically download episodes when configured for manual
4631         updating.  Fixes #331564.
4633 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4635         * rhythmdb/rhythmdb-property-model.c:
4636         (rhythmdb_property_model_iter_from_string):
4637         Return an iterator for the 'all' property when name == NULL,
4638         and don't write to *iter if iter == NULL.
4640 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4642         * shell/rb-shell-player.c: (rb_shell_player_do_next):
4643         When switching to the play queue, still call _go_next on the normal
4644         play order, so self-emptying auto playlists ("play count = 0" etc.)
4645         don't restart once the queue is empty.
4647         * shell/rb-tray-icon.c:
4648         Change shortcut for 'show notifications' to 'o' so it doesn't clash
4649         with 'next'.
4651 2006-03-05  James Livingston  <jrl@ids.org.au>
4653         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
4654         don't submit tracks which could not be played. Fixed bug 333013.
4656         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
4657         tracks which could not be played.
4659 2006-03-05  James Livingston  <jrl@ids.org.au>
4661         Sync musicbrainz lookup code from Sound-Juicer cvs.
4663         * metadata/sj-metadata-musicbrainz.c:
4664         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
4665         (get_offline_track_listing), (artist_and_title_from_title),
4666         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
4667         (mb_list_albums), (mb_get_submit_url):
4668         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
4669         * metadata/sj-metadata.h:
4670         * metadata/sj-structures.c: (track_details_free),
4671         (album_details_free):
4672         * metadata/sj-structures.h:
4674 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4676         * lib/rb-debug.h:
4677         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
4678         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
4679         (rb_profiler_reset), (rb_profiler_free):
4680         Filter debug output by matching the file and function names against a
4681         match string.
4683         * shell/main.c: (main):
4684         Add -D command line option to specify the debug match string.
4686         * shell/rb-removable-media-manager.c:
4687         (rb_removable_media_manager_mount_volume):
4688         Fix some typos in debug output.
4690 2006-03-03  James Livingston  <jrl@ids.org.au>
4692         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
4693         * shell/rb-shell.c: (rb_shell_load_uri):
4694         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
4695         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
4696         use the new "recurse" property from totem-plparser, if present. Stop
4697         RB hanging for new users who don't have a 'net connection. From bug
4698         331508.
4700 2006-03-02  Bastien Nocera  <hadess@hadess.net>
4702         * shell/rb-removable-media-manager.c:
4703         (rb_removable_media_manager_mount_volume):
4704         * sources/Makefile.am:
4705         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
4706         Fix missing files on make dist (conditional files), only build the
4707         N770 support if there's HAL support, as we have no other ways of
4708         detecting it
4710 2006-03-03  James Livingston  <jrl@ids.org.au>
4712         * shell/rb-shell-clipboard.c:
4713         (rb_shell_clipboard_set_source_internal): really fix it this time.
4714         hopefully.
4716 2006-03-03  James Livingston  <jrl@ids.org.au>
4718         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
4719         with the idle function not being removed.
4721 2006-03-02  James Livingston  <jrl@ids.org.au>
4723         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
4724         * widgets/rb-entry-view.h: add function for determining whether all
4725         entries are selected.
4727         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
4728         (rb_shell_clipboard_set_source_internal),
4729         (rb_shell_clipboard_finalize),
4730         (rb_shell_clipboard_idle_poll_deletions),
4731         (rb_shell_clipboard_entryview_changed_cb),
4732         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
4733         removals, to update things.
4735         (rb_shell_clipboard_sync): update the Select All and Select None
4736         sensitivity, based on what is selected. Fixed bug 172220.
4738 2006-03-02  James Livingston  <jrl@ids.org.au>
4740         * widgets/rb-library-browser.c: (rebuild_child_model): save and
4741         restore the selections of later models. This means that selecting the
4742         artist for the selected album does not reset the album selection.
4744 2006-03-02  James Livingston  <jrl@ids.org.au>
4746         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
4747         Stops it emitting critical warnings.
4749 2006-03-02  James Livingston  <jrl@ids.org.au>
4751         * lib/rb-file-helpers.c: (rb_uri_append_uri):
4752         * lib/rb-file-helpers.h: Add uri concatenation function for when the
4753         second fragment is already escaped.
4755         * sources/rb-generic-player-source.c:
4756         (rb_generic_player_source_class_init),
4757         (rb_generic_player_source_constructor), (impl_show_popup),
4758         (rb_generic_player_source_load_playlists),
4759         (rb_generic_player_source_transform_playlist_uri),
4760         (handle_playlist_entry_cb), (visit_playlist_dirs),
4761         (default_load_playlists), (default_transform_playlist_uri):
4762         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
4763         the device. Allow subclasses to override the playlist loading, and
4764         (playlist uri)->(actual uri) mapping. A lot of devices which have
4765         playlists won't work right now, but people will see them and hopefully
4766         file bugs.
4768         * sources/rb-psp-source.c: (rb_psp_source_class_init),
4769         (rb_psp_source_create_playlists): Adapt the PSP for the above change
4770         
4771         * sources/Makefile.am:
4772         + sources/rb-nokia770-source.{c,h}:
4773         * shell/rb-removable-media-manager.c:
4774         (rb_removable_media_manager_mount_volume): Add support for reading
4775         playlists of Nokia 770s.
4777 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4779         * data/glade/podcast-properties.glade:
4780         * podcast/rb-podcast-properties-dialog.c:
4781         (rb_podcast_properties_dialog_init),
4782         (rb_podcast_properties_dialog_update),
4783         (rb_podcast_properties_dialog_update_location),
4784         (rb_podcast_properties_dialog_update_download_location):
4785         Add 'download location' field showing the path to the downloaded copy.
4786         Fixes #330696.
4788 2006-03-01  Bastien Nocera  <hadess@hadess.net>
4790         * configure.ac: simplify HAVE_HAL define
4792 2006-03-01  Bastien Nocera  <hadess@hadess.net>
4794         * configure.ac:
4795         * lib/rb-file-helpers.c: (rb_uri_append_path):
4796         * lib/rb-file-helpers.h:
4797         * shell/rb-removable-media-manager.c:
4798         (rb_removable_media_manager_mount_volume):
4799         * sources/Makefile.am:
4800         * sources/rb-ipod-source.c:
4801         * sources/rb-psp-source.*:
4802         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
4803         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
4805 2006-03-02  James Livingston  <jrl@ids.org.au>
4807         * shell/rb-shell-player.c: (rb_shell_player_set_property),
4808         (rb_shell_player_play), (rb_shell_player_jump_to_current),
4809         (swap_playing_source), (rb_shell_player_playpause),
4810         (rb_shell_player_sync_buttons), (actually_set_playing_source),
4811         (rb_shell_player_set_playing_source_internal): check for the entry
4812         view being NULL before trying to use it. Lets us support sources which
4813         don't have an entry view. From bug 331673.
4815 2006-03-01  Bastien Nocera  <hadess@hadess.net>
4817         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
4818         use gnome_vfs_read_entire_file with a URI, not a local filename
4820 2006-03-01  James Livingston  <jrl@ids.org.au>
4822         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
4823         first-seen and last-seen when merging duplicate entries.
4825 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4827         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
4828         * widgets/rb-property-view.h:  New function, allowing custom 
4829         interactive search functions for property views.
4830         
4831         * sources/rb-podcast-source.c: 
4832         (feed_select_change_cb): Only do a new query when the selection
4833         actually changes.
4834         (rb_podcast_source_constructor),
4835         (rb_podcast_source_feed_title_search_func):
4836         Interactive search function for podcast feed titles.  Fixes #327451.
4838 2006-03-01  James Livingston  <jrl@ids.org.au>
4840         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
4841         the uri in the callback, since it causes symbols to not be escaped.
4842         Fixes bug 332976.
4844         * data/ui/rhythmbox-ui.xml:
4845         * sources/rb-import-errors-source.c:
4846         (rb_import_errors_source_class_init),
4847         (rb_import_errors_source_constructor), (impl_get_status),
4848         (impl_move_to_trash),
4849         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
4850         import errors source
4851         
4852         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
4853         (rb_entry_view_append_column): unescape the URI for display.
4855 2006-03-01  James Livingston  <jrl@ids.org.au>
4857         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
4858         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
4859         function fails.
4861 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
4863         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
4864         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
4865         * sources/rb-play-queue-source.c:
4866         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
4867         (rb_play_queue_source_update_count):  Use "Play Queue" instead
4868         of "Queued Songs".
4870         Fixes #331637.
4872 2006-03-01  James Livingston  <jrl@ids.org.au>
4874         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
4875         Fixes bug 332913.
4877 2006-03-01  James Livingston  <jrl@ids.org.au>
4879         * daapsharing/rb-daap-mdns-browser-howl.c:
4880         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
4881         * daapsharing/rb-daap-mdns-publisher-avahi.c:
4882         (rb_daap_mdns_publisher_class_init),
4883         (rb_daap_mdns_publisher_finalize):
4884         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
4885         * player/rb-recorder-gst.c: (rb_recorder_class_init),
4886         (rb_recorder_finalize):
4887         * rhythmdb/rhythmdb-query-model.c:
4888         (rhythmdb_query_model_constructor):
4889         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
4890         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
4891         * sources/rb-playlist-source-recorder.c:
4892         (rb_playlist_source_recorder_style_set),
4893         (rb_playlist_source_recorder_class_init),
4894         (rb_playlist_source_recorder_finalize):
4895         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
4896         other classes in the same way, so they don't break when derived from.
4898 2006-03-01  James Livingston  <jrl@ids.org.au>
4900         * sources/rb-generic-player-source.c:
4901         (rb_generic_player_source_constructor): don't get the parent class in
4902         a dumb way, and it breaks when the class is derived from.
4904 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
4906         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
4908 2006-03-01  James Livingston  <jrl@ids.org.au>
4910         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
4911         not work in glib 2.8 systems.
4913 2006-03-01  James Livingston  <jrl@ids.org.au>
4915         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
4916         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
4917         say it is crap.
4919         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
4920         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
4921         podcasts on ion-local places
4923         * rhythmdb/gsequence.c: (g_sequence_node_new),
4924         (g_sequence_node_free): use gslice if we are building against glib
4925         2.10.
4927         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
4928         local files too, so it doesn't block.
4930 2006-02-28  James Livingston  <jrl@ids.org.au>
4932         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
4933         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
4934         stats the file. Stops the UI blocking while stats are done.
4936 2006-02-28  James Livingston  <jrl@ids.org.au>
4938         * sources/rb-static-playlist-source.c:
4939         (rb_static_playlist_source_class_init),
4940         (rb_static_playlist_source_constructor), (impl_reset_filters),
4941         (impl_get_property_views), (impl_browser_toggled),
4942         (rb_static_playlist_source_do_query),
4943         (rb_static_playlist_source_browser_changed_cb): add browsers to static
4944         playlists. From bug 118862.
4946         * sources/rb-play-queue-source.c:
4947         (rb_play_queue_source_class_init): disable them for the play queue.
4949 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
4951         * data/glade/library-prefs.glade:  Add a mnemonic.
4952         * sources/rb-library-source.c:
4953         (rb_library_source_location_button_clicked_cb):  Use title
4954         capitalization for window title.
4956 2006-02-28  James Livingston  <jrl@ids.org.au>
4958         * sources/rb-auto-playlist-source.c:
4959         (construct_query_from_selection): don't create a subquery for only one
4960         criteria, as it's a silly effifiency degredation.
4962 2006-02-28  James Livingston  <jrl@ids.org.au>
4964         * rhythmdb/rhythmdb.h:
4965         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4966         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
4967         saved to disk
4969         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
4970         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
4971         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
4972         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
4973         IGNORE (e.g. known video stream) create an entry of the Ignore type.
4974         This will make importing files quicker as we don't need to try files
4975         that we know are not going to be interesting - especially useful when
4976         using the library watching facility.
4978         Fixes bug 323179.
4980 2006-02-28  James Livingston  <jrl@ids.org.au>
4982         * shell/rb-shell.c: (rb_shell_constructor),
4983         (rb_shell_set_visibility): fix browser and source-list pane
4984         positioning, that I broke with the "remember visibility" patch.
4986 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4988         * metadata/rb-metadata-dbus-service.c: (main):
4989         Change argument handling so you can use --debug with the --load and
4990         --can-save test modes.
4991         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
4992         Use a separate GMainContext, not the default one.  Probably fixes
4993         #332344.
4995 2006-02-27  James Livingston  <jrl@ids.org.au>
4997         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
4998         first starting up. Fixes bug 330342.
5000 2006-02-27  James Livingston  <jrl@ids.org.au>
5002         * sources/rb-sourcelist-model.c:
5003         (rb_sourcelist_model_set_dnd_targets):
5004         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
5005         COPY action for draging sources and tracks, not MOVE as well. Stops
5006         Nautilus moving file away, and fixes bug 332488.
5008 2006-02-27  James Livingston  <jrl@ids.org.au>
5010         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
5012         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
5013         and Last Played metadata off iPods. Closes bug 324648.
5015 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5017         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
5018         Disable audioscrobbler when run with the --no-registration flag, since
5019         last.fm doesn't allow multiple concurrent clients per user.
5021 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5023         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
5024         Rename renamable sources when F2 is pressed when the sourcelist has
5025         focus.  Fixes #330700.
5027 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5029         * shell/rb-playlist-manager.c: (cleanup_edit_data),
5030         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
5031         (rb_playlist_manager_cmd_edit_automatic_playlist):
5032         Fix various crashes when deleting auto playlists previously edited
5033         by disconnecting signal handlers when the query editor is closed or
5034         the playlist is deleted.
5036 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5038         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
5039         removed load failure dialog, and actually use the friendly file type
5040         name in error messages.
5042 2006-02-24  James Livingston  <jrl@ids.org.au>
5044         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
5046         * sources/rb-library-source.c:
5047         (rb_library_source_location_button_clicked_cb),
5048         (rb_library_source_preferences_sync),
5049         (rb_library_source_library_location_cb): convert the library URI to
5050         for display, and back again. Fixes bug 332356.
5052 2006-02-23  James Livingston  <jrl@ids.org.au>
5054         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
5055         (rhythmdb_process_metadata_load), (monitor_subdirectory),
5056         (rhythmdb_sync_library_location): don't monitor files at all if
5057         watching is turned off. From bug 323096.
5059 2006-02-23  James Livingston  <jrl@ids.org.au>
5061         * data/rhythmbox.schemas:
5062         * lib/rb-preferences.h:
5063         * shell/rb-shell.c: (rb_shell_constructor),
5064         (rb_shell_set_visibility): remember main window visibility between
5065         sessions. Fixes bug 127320.
5067 2006-02-23  James Livingston  <jrl@ids.org.au>
5069         * data/glade/library-prefs.glade:
5070         * sources/rb-library-source.c: (impl_get_config_widget),
5071         (rb_library_source_location_button_clicked_cb),
5072         (rb_library_source_preferences_sync),
5073         (rb_library_source_library_location_cb),
5074         (rb_library_source_watch_toggled_cb): change the library-location
5075         widgets from the file-chooser drop menu to a text entry and Browse
5076         button. This is needed to prevent the location from chaning if the
5077         directory cannot be found. Fixes bug 328414.
5079 2006-02-23  James Livingston  <jrl@ids.org.au>
5081         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
5082         item. Fixes bug 329042.
5084 2006-02-23  James Livingston  <jrl@ids.org.au>
5086         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
5088         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
5089         comma in some podcast feeds. Fixes bug 332194.
5091 2006-02-23  James Livingston  <jrl@ids.org.au>
5093         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
5094         lower priority.
5096         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
5097         the internal audio cd URIs from "cdda://device:track" to
5098         "cdda://track#device" as it makes processing much easier.
5100         * shell/rb-shell-player.c: (rb_shell_player_open_location):
5101         * player/rb-player-gst.c: don't have the shell close the player
5102         between songs, as doing that should be backend-specific. Make the
5103         gstreamer backend close before starting a new track, unless the old
5104         and new ones are both tracks on the same audio cd. Just seek in that
5105         case.
5107 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5109         * doc/reference/rhythmbox.types: Fix doc build a bit more.
5111 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5113         * configure.ac: Enable more warnings in my stupid setup too.
5114         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
5115         #332210.
5117 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5119         * sources/rb-missing-files-source.h,
5120         * sources/rb-missing-files-source.c,
5121         * sources/rb-import-errors-source.h,
5122         * sources/rb-import-errors-source.c:
5123         Add library meta-sources, showing missing files and import errors.
5124         Fixes #167763, #142322.
5126         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
5127         * sources/rb-sourcelist-model.h:
5128         * sources/rb-sourcelist.c: (rb_sourcelist_append),
5129         (match_source_to_iter), (rb_sourcelist_source_to_iter),
5130         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
5131         (visibility_notify_cb):
5132         Store source visibility in the sourcelist model, so we can determine
5133         child source counts correctly and get the sourcelist expander column
5134         right.
5135         
5136         * widgets/rb-entry-view.h:
5137         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
5138         (rb_entry_view_append_column), (set_column_visibility):
5139         Allow the creator of the entry view to specify which columns are
5140         always visible.
5142         * sources/rb-source.h:
5143         * sources/rb-source.c: (_autohide_update_visibility),
5144         (_rb_autohide_source_row_deleted_cb),
5145         (_rb_autohide_source_row_inserted_cb),
5146         (_rb_source_hide_when_empty):
5147         Allow sources to automatically hide themselves when empty.
5148         
5149         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
5150         * sources/rb-library-source.c: (rb_library_source_constructor):
5151         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
5152         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
5153         Explicitly specify which columns are always visible.
5154         
5155         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
5156         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
5157         Remove load error signal handling and load failure dialog.
5158         Create missing files and import errors sources for the library.
5160         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
5161         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
5162         Create DB entries for import errors rather than emitting the 'load
5163         error' signal; mark loaded entries visible.
5164         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
5165         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
5166         (rhythmdb_prop_get_type): Store string form of last seen time for
5167         hidden entries, since it's used in the missing files source.
5168         (rhythmdb_entry_import_error_get_type): 
5169         Add entry type for import errors.
5170         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
5171         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
5172         (rhythmdb_entry_move_to_trash_set_error),
5173         (rhythmdb_entry_move_to_trash):  
5174         Correct spelling, add missing rhythmdb_commit.
5175         * rhythmdb/rhythmdb.h:  
5176         Add import error entry type and last seen string property.
5177         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
5178         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5179         (save_entry):  Ignore string form of 'last seen' property.
5181         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
5182         Don't try to play hidden entries or import error entries.
5184         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
5185         * sources/Makefile.am: Add meta-source files
5186         * widgets/Makefile.am: Remove load failure dialog files
5188 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5190         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
5191         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
5192         few bits and pieces.
5194 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5196         * metadata/test-metadata.c: (load_metadata_cb):
5197         Fix compile warning for ignoring return value from getcwd, #332064.
5199 2006-02-21  James Livingston  <jrl@ids.org.au>
5201         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
5202         (edit_auto_playlist_deleted_cb),
5203         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
5204         playlist editor non-modal. Fixes bug 320030.
5206 2006-02-21  James Livingston  <jrl@ids.org.au>
5208         * shell/rb-shell.c: (rb_shell_constructor):
5209         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
5210         (rb_header_set_show_artist_album):
5211         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
5212         (rb_song_display_box_sync): make the queue sidebar and song display
5213         not get affected by gtk_widget_show_all. Fixes bug 332001.
5215 2006-02-21  James Livingston  <jrl@ids.org.au>
5217         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
5219         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
5220         feeds which use timezone names instead of offsets. Doesn't actually
5221         parse the timezone name since they are not standardised. Fixes bug
5222         331691.
5224 2006-02-21  James Livingston  <jrl@ids.org.au>
5226         * help/C/figures/rb-notification-area.png:
5227         * help/C/figures/rb-sidebar.png:
5228         * help/C/quick-reference.xml: remove obsolete files from CVS.
5230         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
5231         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
5232         (rhythmdb_query_free), (rhythmdb_query_serialize),
5233         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
5234         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
5236         * widgets/rb-query-creator-properties.c: add prefix and suffix
5237         (escapedStringCriteriaGetWidgetData): use better escaping, so it
5238         doesn't escape the ':' separator in uris.
5240 2006-02-21  James Livingston  <jrl@ids.org.au>
5242         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
5243         on startup.
5245 2006-02-21  James Livingston  <jrl@ids.org.au>
5247         * NEWS: update with recent changes
5249 2006-02-21  James Livingston  <jrl@ids.org.au>
5251         * shell/rb-shell.c: (rb_shell_constructor),
5252         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
5253         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
5254         (rb_druid_browse_clicked_cb), (do_response):
5255         * widgets/rb-druid.h: Make running the druid not block RBShell
5256         starting up. This is required so that bonobo registration doesn't time
5257         out. Fixed bug 318766.
5259 2006-02-21  James Livingston  <jrl@ids.org.au>
5261         * rhythmdb/rhythmdb-property-model.c:
5262         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
5263         hash table after using it, not before. Fixed bug 331922.
5265 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5267         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
5268         (rb_shell_view_queue_as_sidebar_changed_cb):
5269         When playing from the queue, only attempt to highlight the queue
5270         source in the source list if it's actually visible there.  Otherwise,
5271         leave the preempted source highlighted.  Mostly fixes #330819.
5273 2006-02-20  James Livingston  <jrl@ids.org.au>
5275         * rhythmdb/rhythmdb-property-model.c:
5276         (rhythmdb_property_model_row_inserted_cb),
5277         (rhythmdb_property_model_prop_changed_cb),
5278         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
5279         store the roperty value in the entry-mapping table, so that receiving
5280         the remove signal from a query model before we get notified of a
5281         change doesn't cause a crash. Fixes bug 331770.
5283 2006-02-20  James Livingston  <jrl@ids.org.au>
5285         * data/ui/rhythmbox-ui.xml:
5286         * sources/rb-play-queue-source.c:
5287         (rb_play_queue_source_class_init),
5288         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
5289         playlist things in the queue popup source. From 330490.
5291         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
5292         previous commit
5294 2006-02-20  James Livingston  <jrl@ids.org.au>
5296         * widgets/rb-song-info.c: (rb_song_info_response_cb),
5297         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
5298         attempt to sync data for non-editable entries when using
5299         next/previous. Don't write our Year if it wasn't changed. Fixes bug
5300         331762.
5302 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
5304         * .cvsignore:
5305         * Makefile.am:
5306         * autogen.sh:
5307         * configure.ac:
5308         * help/.cvsignore:
5309         * help/Makefile.am: ported to gnome-doc-utils
5310         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
5311         * help/ChangeLog: added, for translators
5312         * help/C/rhytmbox-C.omf: removed, no longer used
5313         Know issue: figures are installed, but some are not showed; manual
5314         description added, but not showed in Yelp while browsing. I'll
5315         investigate, maybe are needed some little changes to
5316         help/C/rhythmbox.xml.
5318 2006-02-20  James Livingston  <jrl@ids.org.au>
5320         * data/ui/rhythmbox-ui.xml:
5321         * help/C/figures/rb-adv.png:
5322         * help/C/figures/rb-asst-finish.png:
5323         * help/C/figures/rb-asst-library.png:
5324         * help/C/figures/rb-asst-start.png:
5325         * help/C/figures/rb-basic.png:
5326         * help/C/figures/rb-browser.png:
5327         * help/C/figures/rb-context-menu.png:
5328         * help/C/figures/rb-empty.png:
5329         * help/C/figures/rb-full-play.png:
5330         * help/C/figures/rb-group-auto.png:
5331         * help/C/figures/rb-group-create.png:
5332         * help/C/figures/rb-group.png:
5333         * help/C/figures/rb-imported.png:
5334         * help/C/figures/rb-iradio-add.png:
5335         * help/C/figures/rb-iradio.png:
5336         * help/C/figures/rb-nextprev.png:
5337         * help/C/figures/rb-nobrowse-play.png:
5338         * help/C/figures/rb-notification-area-menu.png:
5339         * help/C/figures/rb-player.png:
5340         * help/C/figures/rb-prefs-general.png:
5341         * help/C/figures/rb-prefs-ipod.png:
5342         * help/C/figures/rb-prefs-library.png:
5343         * help/C/figures/rb-prefs.png:
5344         * help/C/figures/rb-repeat.png:
5345         * help/C/figures/rb-search.png:
5346         * help/C/figures/rb-shuffle.png:
5347         * help/C/figures/rb-stats.png:
5348         * help/C/figures/rb-toolbar-editor.png:
5349         * help/C/figures/rb-volume-mute.png:
5350         * help/C/figures/rhythmbox-group.png:
5351         * help/C/figures/rhythmbox-tray-icon.png:
5352         * help/C/user-guide.xml: remove old stuff from cvs
5354 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5356         * metadata/rb-metadata-dbus-client.c: 
5357         * metadata/rb-metadata-dbus-service.c:
5358         * metadata/rb-metadata-dbus.c:
5359         * metadata/rb-metadata-dbus.h:
5360         New files, adding an external service for reading and writing
5361         metadata, and an implementation of the RBMetaData interface that uses
5362         dbus to communicate with it.
5363         
5364         * metadata/rb-metadata.h,
5365         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
5366         (rb_metadata_get_field_name): Put metadata details in a static array
5367         instead of using a hash table, and add a field for language code (not
5368         used for anything)
5369         * metadata/rb-metadata-gst.c: Updates for changes in
5370         rb-metadata-common.c, fix signal handler closure leak for the typefind
5371         element's have-type signal, and add XML to the list of types we ignore.
5372         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
5373         Update for changes to rb_metadata_get_field_type
5374         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
5375         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
5376         here and there.
5377         
5378         * configure.ac: Add --enable-metadata-helper option (not enabled by
5379         default) to use the external metadata service
5380         * metadata/Makefile.am: Add new files
5381         * metadata/test-metadata.c:  Test program for the metadata service
5383         Fixes #329597. 
5385 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5387         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
5388         * sources/rb-podcast-source.c: (impl_get_ui_actions),
5389         (rb_podcast_source_cmd_new_podcast):
5390         Move 'new podcast' action to the podcast source, and add it to the
5391         toolbar.  Fixes #331562.
5393 2006-02-19  James Livingston  <jrl@ids.org.au>
5395         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
5396         menus, and away from move-to-trash. Fixes bug 331013.
5398 2006-02-19  James Livingston  <jrl@ids.org.au>
5400         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
5401         when deleting last entry. Fixes bug 331712.
5403 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5405         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
5406         (rb_entry_view_button_press_cb):
5407         * widgets/rb-entry-view.h: Emit show-popup when right clicked
5408         anywhere, and include a flag indicating whether the click was over an
5409         entry or not.
5410         
5411         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
5412         (rb_playlist_source_songs_show_popup_cb):
5413         * sources/rb-playlist-source.h:
5414         Add the 'over entry' flag to the class show popup method, and in the
5415         default handler, ignore right clicks when not over an entry.
5416         
5417         * sources/rb-iradio-source.c:
5418         (rb_iradio_source_songs_show_popup_cb):
5419         * sources/rb-library-source.c:
5420         (rb_library_source_songs_show_popup_cb):
5421         * sources/rb-podcast-source.c:
5422         (rb_podcast_source_songs_show_popup_cb):
5423         Show the source list popup menu when right clicked while not over an
5424         entry.
5426         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
5427         For the queue sidebar, always display the popup so the 'clear queue'
5428         action is available regardless of where you click.  For the queue
5429         source, only display the popup when right clicked over an entry.
5430         Fixes #331392.
5432 2006-02-19  James Livingston  <jrl@ids.org.au>
5434         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
5435         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
5436         entry view, when we're not even using it
5438         * rhythmdb/rhythmdb-property-model.c:
5439         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
5440         function, rather than a copy of the code.
5442         * shell/rb-playlist-manager.c:
5443         (rb_playlist_manager_playlist_row_inserted_cb),
5444         (rb_playlist_manager_set_source_internal),
5445         (rb_playlist_manager_playlist_entries_changed): use the query-model
5446         directly, rather than the source's entry view.
5448         * shell/rb-source-header.c: don't use the entry view, just select the
5449         source widget.
5451 2006-02-18  James Livingston  <jrl@ids.org.au>
5453         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
5455         * help/C/figures/rb-iradio-main.png:
5456         * help/C/figures/rb-notification-area-menu.png:
5457         * help/C/figures/rb-notification-window.png:
5458         * help/C/figures/rb-notification-zone.png:
5459         * help/C/figures/rb-podcast-main.png:
5460         * help/C/figures/rb-statusbar.png:
5461         * help/C/figures/rb-toolbar-prevplaynext.png:
5462         * help/C/figures/rb-toolbar-repeat.png:
5463         * help/C/figures/rb-toolbar-shuffle.png:
5464         * help/C/figures/rb-toolbar.png:
5465         * help/C/figures/rb-volume-changer.png:
5466         * help/C/figures/rb-window-small.png:
5467         * help/C/figures/rb-window.png:
5468         * help/C/rhythmbox.xml: Update user guide with some of the changes
5469         that have occurred after 0.8.8. From bug 314001.
5471 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5473         * rhythmdb/rhythmdb-query-results.h,
5474           rhythmdb/rhythmdb-query-results.c:
5475         New interface for objects that accept query results from RhythmDB.
5477         * rhythmdb/rhythmdb-query-model.c:
5478         (rhythmdb_query_model_query_results_init),
5479         (rhythmdb_query_model_set_query),
5480         (rhythmdb_query_model_add_results),
5481         (rhythmdb_query_model_query_complete):
5482         * rhythmdb/rhythmdb-query-model.h:
5483         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
5485         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
5486         (rhythmdb_tree_do_full_query):
5487         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
5488         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
5489         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
5490         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
5491         * rhythmdb/rhythmdb.h:
5492         Pass query results through the RhythmDBQueryResults interface, rather
5493         than directly to a RhythmDBQueryModel.
5495         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
5496         (rb_podcast_manager_db_entry_deleted_cb):
5497         * sources/rb-auto-playlist-source.c:
5498         (rb_auto_playlist_source_do_query),
5499         (rb_auto_playlist_source_set_query):
5500         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
5501         * sources/rb-library-source.c: (rb_library_source_constructor),
5502         (rb_library_source_do_query):
5503         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5504         (rb_podcast_source_do_query):
5505         * rhythmdb/rhythmdb-property-model.c:
5506         (rhythmdb_property_model_drag_data_get):
5507         Cast the query model to RhythmDBQueryResults when passing to one of
5508         the RhythmDB query methods.
5510         * rhythmdb/Makefile.am: Add new files.
5512 2006-02-18  James Livingston  <jrl@ids.org.au>
5514         * data/ui/rhythmbox-ui.xml:
5515         * shell/rb-playlist-manager.c:
5516         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
5517         "queue playlist" item to source context menu. Fixes bug 330490.
5519 2006-02-18  James Livingston  <jrl@ids.org.au>
5521         * data/glade/general-prefs.glade:
5522         * shell/rb-shell-preferences.c:
5523         (rb_shell_preferences_column_check_changed_cb),
5524         (rb_shell_preferences_sync):
5525         * sources/rb-library-source.c: (rb_library_source_constructor):
5526         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
5527         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
5528         (rb_entry_view_append_column): Add a "quality" colume which indicates
5529         the bitrate of media. Part of bug 167659.
5531 2006-02-18  James Livingston  <jrl@ids.org.au>
5533         * shell/rb-play-order.c: (do_next_idle_cb),
5534         (default_playing_entry_removed): move to next track when playing entry
5535         is deleted. Fixes bug 131150.
5537         * shell/rb-shell-player.h: remove ancient stuff
5539 2006-02-17  William Jon McCann  <mccann@jhu.edu>
5541         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
5542         (rb_shell_clipboard_set_property): 
5543         * shell/rb-shell.c (rb_shell_sync_party_mode):
5544         Trigger a resync of the clipboard properties when changing party mode.
5546 2006-02-17  William Jon McCann  <mccann@jhu.edu>
5548         * sources/rb-static-playlist-source.c: Fix includes.
5550         * sources/rb-source.c (rb_source_can_rename) 
5551         (rb_source_can_delete, rb_source_can_move_to_trash):
5552         Return FALSE if in party mode.
5554         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
5555         Replace fullscreen with party mode.
5556         (rb_shell_window_delete_cb): Don't quit if in party mode.
5557         (rb_shell_view_party_mode_changed_cb): Setup party mode.
5558         (window_state_event_cb): Try to deiconify shell when iconified
5559         in party mode.
5560         (rb_shell_sync_party_mode): Sync party mode properties.
5561         Currently, that means [de]sensitizing close, quit, and small-display,
5562         going into fullscreen mode with window stuck and kept above, and
5563         toggling queue-only for the shell player.
5564         (rb_shell_sync_smalldisplay): Sensitive party mode.
5565         (rb_shell_get_party_mode): Get party mode setting.
5567         * shell/rb-shell-player.c (rb_shell_player_class_init) 
5568         (rb_shell_player_set_property, rb_shell_player_get_property):
5569         Add queue-only property.
5570         (rb_shell_player_entry_activated_cb): If in party mode
5571         only queue the entry on activation.
5573         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
5574         Break out from set_properties.  Desensitize some actions when
5575         in party mode.
5576         (rb_playlist_manager_set_property): Break out set_source_internal.
5578         * data/rhythmbox.schemas: Remove fullscreen mode.
5580         * data/ui/rhythmbox-ui.xml: Replace fullscreen
5581         action with party mode.
5583         Partial fix for #323933
5585 2006-02-17  James Livingston  <jrl@ids.org.au>
5587         * configure.ac:
5588         * shell/rb-removable-media-manager.c:
5589         (get_nautilus_burn_drive_for_path),
5590         (rb_removable_media_manager_playing_uri_changed_cb): only use
5591         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
5592         over the list when it doesn't.
5594 2006-02-17  James Livingston  <jrl@ids.org.au>
5596         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
5597         (rb_iradio_source_first_time_changed): Only do the import on the
5598         first change from FALSE to TRUE.
5600         * sources/rb-library-source.c:
5601         (rb_library_source_preferences_sync),
5602         (rb_library_source_library_location_cb): set the first-run done flag
5603         if the user presses close and then sets their watches library
5604         location. Fixes bug 325997.
5606 2006-02-17  James Livingston  <jrl@ids.org.au>
5608         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
5609         removable media manager gobject properties
5611         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
5612         (split_drive_from_cdda_uri),
5613         (rb_removable_media_manager_playing_uri_changed_cb),
5614         (rb_removable_media_manager_load_media): stop polling a cd drive
5615         when we are playing from it. Part of bug 330716.
5617 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5619         * rhythmdb/rhythmdb-query-model.c:
5620         (rhythmdb_query_model_set_property),
5621         (rhythmdb_query_model_finalize),
5622         (rhythmdb_query_model_base_entry_removed):
5623         Propagate entry removal from base models out to attached property
5624         models.  Fixes the rest of #331165.
5626 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5628         * rhythmdb/rhythmdb-property-model.c:
5629         (rhythmdb_property_model_row_inserted_cb),
5630         (rhythmdb_property_model_prop_changed_cb),
5631         (rhythmdb_property_model_insert):
5632         Don't store NULL as a hash table value if we want to use
5633         g_hash_table_lookup to check if a key exists, and get the checks for
5634         how and whether to handle entry changes the right way around.
5635         Fixes #331211 and half of #331165.
5637 2006-02-16  James Livingston  <jrl@ids.org.au>
5639         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
5640         the audio cd's TOC in a separate thread, so it doesn't block the UI.
5641         Fixes bug 329942.
5643 2006-02-16  James Livingston  <jrl@ids.org.au>
5645         * widgets/rb-library-browser.c: (reset_view_cb): make View All
5646         actually reset the browsers.
5648 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5650         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
5651         Escape the strings we pass into libnotify so we don't get blank
5652         notifications when the song name contains '&' etc.  Fixes #330784.
5654 2006-02-16  James Livingston  <jrl@ids.org.au>
5656         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
5657         enable "View All" when there is only a search box and no browser.
5658         Fixes bug 331395.
5660 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5662         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
5663         popup menu, which I forgot to commit with the patch for bug #330014.
5665 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5667         * shell/rb-shell-player.c: (open_location_thread):
5668         Sync button and entry view state once we've started the player, so the
5669         entry view gets into the playing state for iradio.
5671 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5673         * shell/rb-shell-player.c: (open_location_thread):
5674         Take GDK lock before doing anything UI-related.
5676 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5678         * shell/rb-shell.c: Move 'new iradio station' action to
5679         iradio source.
5681         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
5682         (rb_iradio_source_init), (rb_iradio_source_finalize),
5683         (rb_iradio_source_constructor):
5684         Remove some unused stuff.
5686         (guess_uri_scheme), (rb_iradio_source_add_station),
5687         (rb_iradio_source_add_from_playlist),
5688         (impl_get_ui_actions), (new_station_location_added),
5689         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
5690         action, include it in the toolbar, and make sure the URI we add has a
5691         scheme.  Fixes #327059, more or less.
5693 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5695         * sources/rb-play-queue-source.c:
5696         (rb_play_queue_source_class_init),
5697         (rb_play_queue_source_constructor),
5698         (rb_play_queue_source_update_count),
5699         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
5700         Add a toolbar button to clear the play queue, and make it sensitive
5701         only when there are entries in the queue.  Fixes #330014.
5703         * sources/rb-source.c: (_rb_source_register_action_group):
5704         * sources/rb-source.h:  Add helper function to register an
5705         action group for a source.
5707         * sources/rb-library-source.c: (rb_library_source_constructor):
5708         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5709         (register_action_group):  Use _rb_source_register_action_group.
5711 2006-02-15  James Livingston  <jrl@ids.org.au>
5713         * widgets/rb-song-info.c: (rb_song_info_add_completion),
5714         (rb_song_info_constructor), (rb_song_info_set_property): make
5715         tag-editing completion work for albums too.
5717 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5719         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
5720         Check the 'limit' checkbox for time-limited playlists.
5722 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
5724         * widgets/rb-song-info.c: Prove text-completion when editing title,
5725         artist or album
5727 2006-02-14  James Livingston  <jrl@ids.org.au>
5729         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
5730         tray icon popup menu. Fixes bug 331026.
5732 2006-02-14  James Livingston  <jrl@ids.org.au>
5734         * data/iradio-initial.pls: update the Virgin Radio stations to use the
5735         Ogg Vorbis streams, instead of the MP3 ones.
5737 2006-02-14  James Livingston  <jrl@ids.org.au>
5739         * rhythmdb/rhythmdb-property-model.c:
5740         (rhythmdb_property_model_class_init),
5741         (rhythmdb_property_model_drag_data_get):
5742         * rhythmdb/rhythmdb-query-model.c:
5743         (rhythmdb_query_model_title_sort_func):
5744         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
5745         LOCATION as the key. Fixes bug 330601.
5747 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5749         * sources/rb-playlist-source.c: (playlist_iter_func):
5750         Make it compile with older versions of totem-plparser too.      
5752 2006-02-13  James Livingston  <jrl@ids.org.au>
5754         * rhythmdb/rhythmdb.h:
5755         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
5756         structure private, since things should use the accessor functions
5757         rather than manipulating it directly - Only RhythmDB and the
5758         implementation classes should access it directly. Part of the RhythmDB
5759         cleanup of bug 330226.
5761         * iradio/rb-station-properties-dialog.c:
5762         (rb_station_properties_dialog_update_title),
5763         (rb_station_properties_dialog_update_title_entry),
5764         (rb_station_properties_dialog_update_genre),
5765         (rb_station_properties_dialog_update_location),
5766         (rb_station_properties_dialog_update_play_count),
5767         (rb_station_properties_dialog_update_bitrate),
5768         (rb_station_properties_dialog_update_last_played),
5769         (rb_station_properties_dialog_update_rating),
5770         (rb_station_properties_dialog_update_playback_error),
5771         (rb_station_properties_dialog_sync_entries):
5772         * podcast/rb-feed-podcast-properties-dialog.c:
5773         (rb_feed_podcast_properties_dialog_update_title),
5774         (rb_feed_podcast_properties_dialog_update_title_label),
5775         (rb_feed_podcast_properties_dialog_update_author),
5776         (rb_feed_podcast_properties_dialog_update_location),
5777         (rb_feed_podcast_properties_dialog_update_copyright),
5778         (rb_feed_podcast_properties_dialog_update_language),
5779         (rb_feed_podcast_properties_dialog_update_summary):
5780         * podcast/rb-podcast-manager.c:
5781         (rb_podcast_manager_entry_downloaded),
5782         (rb_podcast_manager_db_entry_added_cb),
5783         (download_progress_update_cb),
5784         (rb_podcast_manager_db_entry_deleted_cb):
5785         * podcast/rb-podcast-properties-dialog.c:
5786         (rb_podcast_properties_dialog_update_title),
5787         (rb_podcast_properties_dialog_update_title_label),
5788         (rb_podcast_properties_dialog_update_feed),
5789         (rb_podcast_properties_dialog_update_location),
5790         (rb_podcast_properties_dialog_update_play_count),
5791         (rb_podcast_properties_dialog_update_bitrate),
5792         (rb_podcast_properties_dialog_update_last_played),
5793         (rb_podcast_properties_dialog_update_rating),
5794         (rb_podcast_properties_dialog_update_date),
5795         (rb_podcast_properties_dialog_update_description):
5796         * rhythmdb/rhythmdb-query-model.c:
5797         (rhythmdb_query_model_entry_changed_cb),
5798         (rhythmdb_query_model_remove_from_main_list),
5799         (rhythmdb_query_model_update_limited_entries),
5800         (rhythmdb_query_model_drag_data_get),
5801         (rhythmdb_query_model_album_sort_func):
5802         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5803         (save_entry):
5804         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
5805         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
5806         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
5807         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
5808         (rhythmdb_entry_get_double):
5809         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5810         * shell/rb-play-order-random-by-age-and-rating.c:
5811         (rb_random_by_age_and_rating_get_entry_weight):
5812         * shell/rb-play-order-random-by-age.c:
5813         (rb_random_by_age_get_entry_weight):
5814         * shell/rb-play-order-random-by-rating.c:
5815         (rb_random_by_rating_get_entry_weight):
5816         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
5817         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
5818         (rb_shell_player_set_playing_entry),
5819         (rb_shell_player_sync_replaygain),
5820         (rb_shell_player_sync_with_source),
5821         (rb_shell_player_get_playing_song_duration), (info_available_cb):
5822         * sources/rb-playlist-source.c: (playlist_iter_func),
5823         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
5824         (rb_playlist_source_entry_added_cb):
5825         * sources/rb-podcast-source.c:
5826         (rb_podcast_source_post_status_cell_data_func):
5827         * sources/rb-source.c: (rb_source_update_play_statistics):
5828         * sources/rb-sourcelist-model.c:
5829         (rb_sourcelist_model_drag_data_get):
5830         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
5831         (rb_static_playlist_source_add_entry),
5832         (rb_static_playlist_source_remove_entry):
5833         * widgets/rb-entry-view.c: (type_ahead_search_func),
5834         (rb_entry_view_playing_cell_data_func),
5835         (rb_entry_view_rating_cell_data_func),
5836         (rb_entry_view_pixbuf_clicked_cb):
5837         * widgets/rb-header.c: (rb_header_get_duration):
5838         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
5839         (rb_song_info_populate_dialog),
5840         (rb_song_info_update_playback_error),
5841         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
5842         (rb_song_info_update_location), (rb_song_info_update_play_count),
5843         (rb_song_info_update_last_played), (rb_song_info_update_rating),
5844         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
5845         (rb_song_info_sync_entry_single): fix the huge number of times that
5846         the internals got accessed directly.
5848 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5850         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
5851         trash' are grouped together.
5852         * shell/main.c: (main): Pass no-registration flag in to RBShell
5853         constructor, rather than mysteriously always passing TRUE.
5854         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
5855         Set dirty flag when entries are removed from the model, so the play
5856         queue is marked dirty appropriately.
5857         * AUTHORS: update my email address
5859 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5861         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
5863         * widgets/rb-druid.c: (path_dialog_response_cb):
5864         If the URI is local, don't display the 'file://' prefix.  
5865         Fixes #330919.
5867 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5869         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
5870         Attach the notification to the tray icon widget, so libnotify
5871         positions it less badly.  Fixes #330876.
5873 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5875         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
5876         Reverse the selection list before returning it, so we get it in the
5877         right order.  Fixes #330283 and some other weirdness.
5879 2006-02-11  James Livingston  <jrl@ids.org.au>
5881         * shell/rb-shell.c: (rb_shell_constructor),
5882         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
5883         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
5884         make small-mode and fullscreen mutually exclusive, since they don't
5885         work together
5887         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
5888         Mode.
5890 2006-02-10  James Livingston  <jrl@ids.org.au>
5892         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
5893         since it can cause it to be slower than real-time. Should fix bug
5894         322270.
5896 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5898         * rhythmdb/rhythmdb-query-model.c:
5899         (rhythmdb_query_model_set_property):
5900         Think just a little bit harder about that last commit.
5902 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5904         * rhythmdb/rhythmdb-query-model.c:
5905         (rhythmdb_query_model_set_property):
5906         Get the check for hidden entries the right way around.
5907         Fixes #330527, #330514.
5909         (rhythmdb_query_model_set_sort_order):
5910         Ignore no-op sort order changes, so we don't get critical
5911         messages when selecting 'all' in auto playlist browsers.
5913 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5915         Patch by: Christophe Fergeau  <teuf@gnome.org>
5917         * sources/rb-removable-media-source.c:
5918         (rb_removable_media_source_init),
5919         (rb_removable_media_source_constructor):
5920         Move icon setup code to the constructor, as the volume property
5921         haven't been set yet when _init is called.
5923 2006-02-09  William Jon McCann  <mccann@jhu.edu>
5925         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
5926         Make the source pixbuf a dynamic property.
5928         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
5929         (rb_source_set_pixbuf, rb_source_set_property) 
5930         (rb_source_get_property): Add icon property.
5932         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
5933         (rb_auto_playlist_source_init):
5934         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
5935         (rb_static_playlist_source_init):
5936         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
5937         (rb_removable_media_source_init): 
5938         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
5939         (rb_podcast_source_init): 
5940         * sources/rb-library-source.c (rb_library_source_class_init) 
5941         (rb_library_source_set_property, rb_library_source_get_property): 
5942         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
5943         (rb_iradio_source_init): Remove impl_get_pixbuf and
5944         set icon property on source base class.
5946         * sources/rb-daap-source.c (rb_daap_get_icon): Get
5947         a different icon for when the share is password protected
5948         and locked.
5949         (rb_daap_source_new): Set icon property.
5950         (composite_icons): Composite an emblem on a pixbuf.
5951         (create_pixbufs): Load global pixbufs.
5952         (destroy_pixbufs): unref global pixbufs.
5953         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
5954         (connection_auth_cb, connection_connected_cb) 
5955         (connection_disconnected_cb): Update icon when connection
5956         status changes.
5957         (rb_daap_source_activate): Connect signals.
5959         * daapsharing/rb-daap-share.c (name_collision_cb): Run
5960         dialog with parent.
5962         * daapsharing/rb-daap-marshal.list: Add new signal.
5964         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
5965         (rb_daap_collision_dialog_new_run): Set parent of dialog.
5967         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
5968         Add authenticate, connected, and disconnected signals.
5969         (connection_get_password): emit authenticate signal instead
5970         of running dialog directly.
5971         (connection_connected, connection_disconnected): Emit signals.
5972         (handle_login): Emit connected signal.
5973         (handle_logout): Emit disconnected signal.
5974         (rb_daap_connection_do_something): Fix leak.
5976         Fixes #330291
5978 2006-02-09  James Livingston  <jrl@ids.org.au>
5980         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
5981         entries from the base model if we don't have show-hidden set. Fixes
5982         bug 330514.
5984 2006-02-08  William Jon McCann  <mccann@jhu.edu>
5986         * daapsharing/rb-daap-share.c (message_get_session_id):
5987         Ugh. Use strtoul instead of atoi.
5988         (session_id_validate): Add debug statements.
5990 2006-02-08  William Jon McCann  <mccann@jhu.edu>
5992         * daapsharing/rb-daap-connection.c (http_response_handler):
5993         Report the actual uri from the message in debug statements.
5995 2006-02-08  William Jon McCann  <mccann@jhu.edu>
5997         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
5998         Add context argument.
5999         (message_get_session_id): New function to parse session id from
6000         the message.
6001         (message_get_revision_number): Break out function to parse
6002         revision number from the message.
6003         (session_id_validate): New function to validate given session id
6004         is valid for given context (ie. client address).
6005         (session_id_generate): Generate a random session id.
6006         (session_id_create): Create a unique session id and store it.
6007         (session_id_remove): Remove a session id from the store.
6008         (login_cb): Create a session id instead of using a constant one.
6009         (logout_cb): Validate session id.
6010         (update_cb): Use new message_get_revision_number function.
6011         (databases_cb): Validate session id.
6012         (server_cb): Add server context to argument list for callbacks.  It
6013         is needed to look up the remote host.
6014         (db_entry_changed_cb): Use braces.
6015         (soup_auth_callback): Remove FIXME.
6016         (rb_daap_share_server_start): Create session id store.
6017         (rb_daap_share_server_stop): Destroy session id store.
6019         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
6020         Don't base64-encode password here since it needs to be
6021         combined with the username first.
6023         * daapsharing/rb-daap-connection.c (build_message):
6024         Add username to Authorization token.
6025         (handle_login, handle_song_listing) 
6026         (rb_daap_connection_do_something): Session id
6027         must be an unsigned int.
6029         Fixes #329814
6031 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6033         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
6034         Don't check if we've got a playing entry, ask the player object (duh).
6035         Might actually fix #329993.     
6037 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6039         * sources/rb-static-playlist-source.c:
6040         (rb_static_playlist_source_add_list_uri):
6041         Canonicalise URIs before trying to add them to the playlist, and 
6042         don't try to add files to the database for which there is 
6043         already an entry.
6045 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6047         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
6048         Don't ask the entry view if we're playing, just check if we've got a
6049         playing entry.  Fixes #329993.
6051 2006-02-08  James Livingston  <jrl@ids.org.au>
6053         * rhythmdb/rhythmdb-query-model.c:
6054         (rhythmdb_query_model_set_property),
6055         (rhythmdb_query_model_finalize),
6056         (rhythmdb_query_model_base_complete): remove
6057         rhythmdb_query_model_base_entry_prop_changed, so that two signals
6058         don't get emitted for entry changes. Fixes bug 330301.
6060         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
6061         (rb_library_browser_init), (rb_library_browser_constructor),
6062         (rb_library_browser_new): do stuff in the constructor, not the init
6063         function, so that the db property gets set on RBPropertyViews
6064         correctly. Fixes a crash when dragging properties to a playlist.
6066 2006-02-07  William Jon McCann  <mccann@jhu.edu>
6068         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
6069         Actually stop soup server.  Fixes #329816.
6071 2006-02-07  James Livingston  <jrl@ids.org.au>
6073         * lib/rb-util.h:
6074         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
6075         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
6076         (collate_values_cb), (rb_collate_hash_table_keys),
6077         (rb_collate_hash_table_values): add functions to compare, copy and
6078         free string-lists. add functions to collate the keys or values of a
6079         hash table into a list.
6081         * rhythmdb/rhythmdb-property-model.c:
6082         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
6083         (_remove_entry_cb), (_add_entry_cb),
6084         (rhythmdb_property_model_set_property),
6085         (rhythmdb_property_model_get_property),
6086         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
6087         (rhythmdb_property_model_row_inserted_cb),
6088         (rhythmdb_property_model_prop_changed_cb),
6089         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
6090         that are hidden, storing those that we have counted in a hash-table.
6092         * shell/Makefile.am: fix build order issue
6094         * shell/rb-shell-player.c: (rb_shell_player_set_property):
6095         * sources/rb-source.h:
6096         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
6097         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
6098         * sources/rb-podcast-source.c: (feed_select_change_cb): add
6099         browser-toggled method, rename _get_exta_views to _get_property_views,
6100         since several things depend on returning only that.
6102         * sources/rb-source.c: (rb_source_class_init),
6103         (rb_source_browser_toggled), (default_get_property_views),
6104         (rb_source_get_property_views), (rb_source_row_deleted_cb),
6105         (rb_source_gather_hash_keys),
6106         (rb_source_gather_selected_properties): above changes, and move some
6107         utility functions up from RBLibraryView
6109         * widgets/rb-property-view.c:
6110         (rb_property_view_selection_changed_cb): fix leak.
6112         * rhythmdb/rhythmdb-query-model.c:
6113         (rhythmdb_query_model_set_property),
6114         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
6115         (rhythmdb_query_model_set_sort_order),
6116         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
6117         query model being resorted.
6119         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
6120         NULL query.
6122         * rhythmdb/rhythmdb.h:
6123         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
6124         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
6125         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
6126         two queries. Add a function to append "property={X,Y,Z,...}" to a
6127         query.
6129         * sources/rb-library-source.c: (rb_library_source_class_init),
6130         (rb_library_source_finalize), (rb_library_source_constructor),
6131         (rb_library_source_cmd_choose_genre),
6132         (rb_library_source_cmd_choose_artist),
6133         (rb_library_source_cmd_choose_album), (impl_search),
6134         (impl_get_property_views), (impl_reset_filters),
6135         (rb_library_source_preferences_sync),
6136         (rb_library_source_browser_views_activated_cb),
6137         (rb_library_source_state_prefs_sync),
6138         (construct_query_from_selection), (rb_library_source_do_query),
6139         (rb_library_source_browser_changed_cb):
6140         * widgets/Makefile.am:
6141         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
6142         browser" widgets, which contains several property views, based on the
6143         code from RBLibrarySource. Make RBLibrarySource use it.
6145         * sources/rb-auto-playlist-source.c:
6146         (rb_auto_playlist_source_class_init),
6147         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
6148         (rb_auto_playlist_source_constructor), (impl_reset_filters),
6149         (impl_get_property_views), (impl_browser_toggled),
6150         (construct_query_from_selection),
6151         (rb_auto_playlist_source_do_query),
6152         (rb_auto_playlist_source_set_query),
6153         (rb_auto_playlist_source_browser_changed_cb): Use the new
6154         library-browser widget to add browsers to automatic playlists.
6156 2006-02-07  James Livingston  <jrl@ids.org.au>
6158         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
6159         properly.
6160         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
6161         type of the source is taken into account. Fixes bug 329621.
6163 2006-02-07  James Livingston  <jrl@ids.org.au>
6165         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
6166         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
6167         1.1, and perform URI canonicalistion when first upgrading. This should
6168         fix our remaining canonicalisation issues, such as bug 329988.
6170 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
6172         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
6173         Track the playing entry when the entry view isn't in the playing
6174         state, so we don't have to get the state changes exactly right.
6175         Fixes #330135.
6177 2006-02-06  James Livingston  <jrl@ids.org.au>
6179         * shell/rb-shell-player.c: (open_location_thread),
6180         (rb_shell_player_open_location): fix several iradio issues: having to
6181         press play after double-clicking on a station, not working correctly
6182         without a http:// prefix, and ignoring totem-plparser results other
6183         than success or error (e.g. IGNORE).
6185 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
6187         Addition of dbus methods for dealing with static playlists and the
6188         play queue.  Fixes #329958.
6190         * shell/Makefile.am:
6191         * shell/rb-playlist-manager.h:
6192         * shell/rb-playlist-manager.xml:
6193         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
6194         (rb_playlist_manager_get_playlists),
6195         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
6196         (rb_playlist_manager_create_static_playlist),
6197         (rb_playlist_manager_delete_playlist),
6198         (rb_playlist_manager_add_to_playlist),
6199         (rb_playlist_manager_remove_from_playlist),
6200         (rb_playlist_manager_export_playlist):
6201         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
6202         to create, delete, list, modify, export, and import  static playlists.
6203         
6204         * shell/main.c: (main): Register playlist manager object with dbus.
6206         * shell/rb-shell.h:
6207         * shell/rb-shell.xml:
6208         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
6209         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
6210         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
6211         object, and implement the addToQueue and removeFromQueue methods.
6212         
6213         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
6214         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
6215         formats.
6217 2006-02-05  James Livingston  <jrl@ids.org.au>
6219         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
6220         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
6221         (save_entry): allow storage of booleans in the on-disk db, and
6222         save/load the HIDDEN property.
6224         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
6225         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
6226         to the state it was when RB shutdown. This makes RB appear to start
6227         faster, as tracks can appear before the stat is done. Remote files
6228         still start hidden. From bug 325215.
6230 2006-02-05  James Livingston  <jrl@ids.org.au>
6232         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
6233         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
6234         really cares about the difference from "entry-added", and it isn't
6235         emitted by the tree backend anyway.
6237         * rhythmdb/rhythmdb-query-model.c:
6238         (rhythmdb_query_model_constructor):
6239         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
6240         remove the references to the entry-restored signal.
6242 2006-02-05  James Livingston  <jrl@ids.org.au>
6244         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
6245         issue.
6247 2006-02-05  James Livingston  <jrl@ids.org.au>
6249         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
6250         things are NULL before using g_object_unref. Fixes bug 327452.
6252         * player/rb-recorder-gst.c: (rb_recorder_construct):
6253         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
6254         rather than assertion.
6256         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
6257         emit a warning, rather than asserting if an unknown playlist type is
6258         encountered.
6260 2006-02-05  James Livingston  <jrl@ids.org.au>
6262         * widgets/Makefile.am:
6263         * widgets/rb-simple-view.c:
6264         * widgets/rb-simple-view.h: Move the two features that this class
6265         provides into RBPropertyView, and remove this class. Closes bug
6266         327500.
6268         * podcast/rb-feed-podcast-properties-dialog.c:
6269         * podcast/rb-feed-podcast-properties-dialog.h:
6270         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
6271         (rb_podcast_source_feeds_show_popup_cb):
6272         * sources/rb-podcast-source.h:
6273         * widgets/rb-property-view.c: (rb_property_view_class_init),
6274         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
6275         (rb_property_view_append_column_custom),
6276         (rb_property_view_button_press_cb):
6277         * widgets/rb-property-view.h: Updated for the above change.
6279 2006-02-04  James Livingston  <jrl@ids.org.au>
6281         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
6282         too close to Move to Trash and people aren't likely to use it often.
6284 2006-02-04  James Livingston  <jrl@ids.org.au>
6286         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
6288 2006-02-04  James Livingston  <jrl@ids.org.au>
6290         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
6291         passed a path instead of a URI.
6293         * sources/rb-generic-player-source.c: (default_get_mount_path):
6294         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
6295         the path. This fixes bug 329723.
6297 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
6299         * daapsharing/rb-daap-structure.c:
6300         (rb_daap_content_code_string_as_int32):
6301         Use network byte order.
6303 2006-02-03  William Jon McCann  <mccann@jhu.edu>
6305         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
6306         Use a hash for source lookup.
6307         (mdns_service_added, mdns_service_removed): Handle
6308         service-added and service-removed signals from RBDaapMdnsBrowser.
6309         (remove_source): GDestroyNotify function for when sources
6310         are removed from the hash.
6311         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
6312         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
6313         (rb_daap_sources_shutdown): Update.
6314         (source_host_find): GHRFunc for finding a source by ip.
6315         (rb_daap_source_find_for_uri): Use the hash source lookup.
6317         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
6318         Namespace keys.
6319         (password_check_button_toggled_cb): Handle password enabled.
6320         (share_name_entry_focus_out_event_cb): Namespace keys.
6321         Handle changes more robustly.
6322         (share_password_entry_focus_out_event_cb): Handle password entry.
6323         (add_daap_preferences): Connect to password signals.
6325         * lib/rb-preferences.h: Add DAAP keys.
6327         * data/glade/daap-prefs.glade: Add password UI.
6329         * data/rhythmbox.schemas: Add password keys.
6331         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
6332         assert with warning.
6334         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
6335         gconf keys to lib/rb-preferences.h.  Namespace
6336         the gconf keys.
6337         (create_share): Add password support.
6338         (enable_sharing_changed_cb): Namespaced keys.
6339         (require_password_changed_cb): Handle key change.
6340         (share_name_changed_cb): Namespaced keys.
6341         (share_password_changed_cb): Handle key change.
6342         (rb_daap_sharing_init): Namespaced keys.
6343         (rb_daap_sharing_shutdown): Ditto.
6345         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
6346         Add password property.
6347         (rb_daap_share_set_name): Break out prop set function.
6348         (published_cb): New RBDaapMdnsPublisher signal handler.
6349         (name_collision_cb): Ditto.
6350         (rb_daap_share_init): Create publisher object and
6351         connect to signals.
6352         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
6353         (rb_daap_share_set_property): Break out prop set functions.
6354         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
6355         Unref publisher.
6356         (rb_daap_share_new): Add password argument.  Start
6357         publishing and DAAP server.
6358         (message_set_from_rb_daap_structure): Change print to debug.
6359         (server_info_cb): Set auth method to publish.
6360         (logout_cb): Handle DAAP client logout.
6361         (update_cb): Remove C++ comments.
6362         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
6363         (server_cb): Add debug.
6364         (soup_auth_callback): Handle auth requests.
6365         (rb_daap_share_server_start): Split up functions for starting
6366         server and publishing.  Add auth handling to server.
6367         (rb_daap_share_server_stop): Split stop server and publish.
6368         No C++ comments.
6369         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
6370         Start and stop publishing.
6371         (rb_daap_share_restart): Restart server and publishing.
6372         (rb_daap_share_maybe_restart): Conditionally restart.
6374         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
6375         (rb_daap_collision_dialog_new_run): Don't use
6376         separators in dialogs.
6378         * daapsharing/rb-daap-connection.h: Add private
6379         data to class structure.
6381         * daapsharing/rb-daap-connection.c: Move
6382         some includes to top of file.  Make private
6383         data struct name consistent with others.
6384         (rb_daap_connection_class_init): Rename
6385         private.
6386         (rb_daap_connection_init): Get and store the pointer
6387         to the private data once instead of in every
6388         function.  Create a username value "Rhythmbox_VERSION".
6389         (connection_get_password): Don't get private.
6390         (build_message): Ditto.
6391         (http_response_handler): Don't init variables in
6392         declaration.  Add debug.  Spacing.
6393         (http_get, entry_set_string_prop, handle_server_info) 
6394         (handle_login, handle_update, handle_database_info) 
6395         (handle_song_listing, handle_playlists, handle_playlist_entries) 
6396         (rb_daap_connection_constructor, rb_daap_connection_logout) 
6397         (rb_daap_connection_state_done): Don't get private.
6398         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
6399         spacing.  Correctly base64 encode the Authentication token.
6400         Add username to auth token.
6401         (rb_daap_connection_get_playlists): Don't get private.
6402         (rb_daap_connection_dispose): Ditto.  Free username.
6403         (rb_daap_connection_set_property) 
6404         (rb_daap_connection_get_property): Don't get private.
6406         * daapsharing/Makefile.am: Conditionally
6407         compile MDNS backends.  Add marshall stuff.
6409         * daapsharing/.cvsignore: Update.
6411         * configure.ac: Add conditional to see which
6412         MDNS backend we should use.
6414         * daapsharing/rb-daap-mdns.[ch]: Removed files.
6416         * daapsharing/rb-daap-marshal.list:
6417         * daapsharing/rb-daap-mdns-browser-avahi.c:
6418         * daapsharing/rb-daap-mdns-browser-howl.c:
6419         * daapsharing/rb-daap-mdns-browser.h:
6420         * daapsharing/rb-daap-mdns-publisher-avahi.c:
6421         * daapsharing/rb-daap-mdns-publisher-howl.c:
6422         * daapsharing/rb-daap-mdns-publisher.h:
6423         Split rb-daap-mdns.c into two classes.  One for
6424         publishing and one for browsing.  Split out
6425         the avahi and howl backends into different files.
6427         Fixes #322966
6428         
6429 2006-02-04  James Livingston  <jrl@ids.org.au>
6431         patch by: Jan Schmidt <thaytan@mad.scientist.com>
6433         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
6434         crash if metadata reader gives us NULL for strings.
6436 2006-02-03  James Livingston  <jrl@ids.org.au>
6438         * shell/rb-shell-player.c: (open_location_thread),
6439         (rb_shell_player_open_location):
6440         retrieve iradio playlists files in a thread, so that with GStreamer
6441         0.10 the UI doesn't block while connecting to stations. The streamer
6442         connection is synchronous with 0.8, so that will still block (a bit).
6443         Fixed bug 128106.
6445         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
6446         because _open_entry does that automatically when it is ready to.
6448 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
6450         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
6451         (rb_podcast_source_post_status_cell_data_func):
6452         Leave the podcast status column blank for episodes that have not been
6453         downloaded.
6455 2006-02-03  James Livingston  <jrl@ids.org.au>
6457         Add support for source-specific toolbar items, and make the Burn
6458         Playlist item only available for playlists. Also add Update All
6459         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
6461         * data/ui/rhythmbox-ui.xml:
6462         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
6463         (impl_get_ui_actions): make the Burn CD toolbar item only for
6464         playlists
6466         * lib/rb-stock-icons.c: (rb_stock_icons_init):
6467         * lib/rb-stock-icons.h: load the Eject icon as stock.
6469         * shell/rb-removable-media-manager.c: use the eject icon for the eject
6470         action
6472         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
6473         (rb_shell_select_source):
6474         * sources/rb-source.c: (rb_source_class_init),
6475         (rb_source_disconnect), (default_get_ui_actions),
6476         (rb_source_get_ui_actions):
6477         * sources/rb-source.h: add support for source-specific toolbar items
6479         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
6480         Eject and Rip toolbar items
6482         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
6483         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
6484         item.
6486 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
6488         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
6489         * shell/main.c: (main):
6490         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
6491         Replace all g_critical calls with g_warning, since none of them are
6492         the sort of thing the process should die over.  Fixes #329398.
6494 2006-02-03  James Livingston  <jrl@ids.org.au>
6496         * configure.ac: mention gst-plugins-base in the error message for not
6497         finding GStreamer 0.10, since not having that will cause it to fail.
6499 2006-02-03  James Livingston  <jrl@ids.org.au>
6501         * configure.ac: fix typo that means you get the wrong error message if
6502         you explicity request a particular playback engine, and it can't be
6503         found.
6505 2006-02-03  James Livingston  <jrl@ids.org.au>
6507         * data/glade/library-prefs.glade: allow the watched library location
6508         to be a non-local place.
6510 ============ Version 0.9.3
6513 2006-02-02  James Livingston  <jrl@ids.org.au>
6515         * NEWS: update NEWS
6516         * configure.ac: bump version to 0.9.3
6518         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
6519         <caillon@redhat.com>, fixed bug 329517. 
6521 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
6523         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
6525         * widgets/rb-song-info.c: (rb_song_info_constructor):
6526         Make year and disc number fields non-editable if tag editing
6527         is disabled.  Fixes #329463.
6529 2006-02-01  James Livingston  <jrl@ids.org.au>
6531         * rhythmdb/rhythmdb-property-model.c:
6532         (rhythmdb_property_model_row_inserted_cb),
6533         (rhythmdb_property_model_prop_changed_cb),
6534         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
6535         correctly. Fixes bug 327061.
6537         * rhythmdb/rhythmdb-query-model.c:
6538         (rhythmdb_query_model_entry_changed_cb): emit change notification of
6539         the HIDDEN property when an entry is removed for being hidden.
6541         * rhythmdb/rhythmdb-query-model.h:
6542         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
6543         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
6544         models's "connected" property. Whatever it was needed for seems to
6545         have gone.
6547 2006-02-01  James Livingston  <jrl@ids.org.au>
6549         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
6551         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
6552         (rb_shell_player_playing_changed_cb): block the signal to prevent
6553         re-entrancy. Fixes bug 329329 and fixes the first click of the play
6554         button pausing.
6556 2006-02-01  James Livingston  <jrl@ids.org.au>
6558         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
6559         /should/ now work, if the neccessary plugins get ported.
6561 2006-01-30  James Livingston  <jrl@ids.org.au>
6563         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
6564         string properties to "Unknown" is the string is empty. Kind of fixes
6565         bug 327495.
6567         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
6568         gettext calls once, rather than once per time the function is used.
6569         This stops us making tens of thousands of gettext calls on startup,
6570         which reduces the cpu-time of startup by 10-20%
6572 2006-01-29  James Livingston  <jrl@ids.org.au>
6574         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
6575         (rhythmdb_add_uri):
6576         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
6577         for files containing known video streams.
6580 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
6582         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
6583         required.
6585 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
6587         * INSTALL.quick: More random updates
6589         * rhythmdb/rhythmdb-query-model.c:
6590         (rhythmdb_query_model_class_init),
6591         (rhythmdb_query_model_set_property),
6592         (rhythmdb_query_model_get_property),
6593         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
6594         Remove user sort data handling, take a property ID and a reverse
6595         flag instead.
6596         (rhythmdb_query_model_insert_into_main_list),
6597         (rhythmdb_query_model_insert_into_limited_list),
6598         (rhythmdb_query_model_do_reorder),
6599         (_reverse_sorting_func):
6600         Handle reverse sorting by calling _reverse_sorting_func, which
6601         calls the real sort function and reverses the result.
6602         (rhythmdb_query_model_set_sort_order):
6603         Allow this to be called to set the initial sort order for limited
6604         queries, and handle reverse sorting when reordering.
6605         (rhythmdb_query_model_location_sort_func),
6606         (rhythmdb_query_model_album_sort_func),
6607         (rhythmdb_query_model_artist_sort_func),
6608         (rhythmdb_query_model_genre_sort_func),
6609         (rhythmdb_query_model_track_sort_func),
6610         (rhythmdb_query_model_double_ceiling_sort_func),
6611         (rhythmdb_query_model_ulong_sort_func),
6612         (rhythmdb_query_model_date_sort_func),
6613         (rhythmdb_query_model_string_sort_func):
6614         Sort functions moved from rb-entry-view.c.
6615         * rhythmdb/rhythmdb-query-model.h:
6616         Add the sort functions, and update the changed functions.
6617         
6618         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
6619         Just call _resort_model when the query model is set, since it
6620         does all the same things.
6621         (rb_entry_view_append_column):
6622         Rework bits so the rating column doesn't have to be so much of a
6623         special case.
6624         (rb_entry_view_append_column_custom):
6625         Take a property ID to sort on, rather than arbitrary custom data.
6626         (rb_entry_view_resort_model):
6627         Query model does all the reverse sort handling now.
6628         * widgets/rb-entry-view.h: Update _append_column_custom.
6630         * sources/rb-play-queue-source.c:
6631         (rb_play_queue_source_constructor):
6632         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
6633         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
6634         (rb_podcast_source_post_date_cell_sort_func),
6635         (rb_podcast_source_post_status_cell_sort_func),
6636         (rb_podcast_source_post_feed_cell_sort_func):
6637         Updates required by all the other changes.
6639         * rhythmdb/rhythmdb-property-model.c:
6640         (rhythmdb_property_model_drag_data_get):
6641         Sort the query results on the selected property,
6642         so they arrive in the expected order.  All the other changes were made
6643         to make this possible.  Fixes bug #327494.
6645 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
6646         
6647         * shell/rb-shell-clipboard.c:
6648         Use GTK_STOCK_REMOVE icon for the remove action in
6649         the play queue too.
6651 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
6653         * sources/rb-play-queue-source.c:
6654         (rb_play_queue_source_constructor),
6655         (rb_play_queue_source_update_count):
6656         Don't make the 'queued songs' column clickable,
6657         and add the queued song count to the column title.
6659 2006-01-29  James Livingston  <jrl@ids.org.au>
6661         * configure.ac: remove "experimental" marking from DAAP, and enable by
6662         default if the dependencies are found.
6664 2006-01-29  James Livingston  <jrl@ids.org.au>
6666         * NEWS: update NEWS
6668 2006-01-29  James Livingston  <jrl@ids.org.au>
6670         patch by: William Jon McCann  <mccann@jhu.edu>
6672         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
6673         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
6674         property used for the feed list. Fixes problem with feeds with no
6675         episodes not showing up.
6677 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
6678         
6679         * shell/rb-play-order-random-by-age-and-rating.c:
6680         (rb_random_by_age_and_rating_get_entry_weight):
6681         Fix compile errors, bug #328978.
6683 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
6685         * INSTALL.quick, README: Random updates
6686         * README.lirc: Add notes on controlling Rhythmbox with LIRC
6688 2006-01-28  James Livingston  <jrl@ids.org.au>
6690         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
6691         default rating back to 0 (from 2.5, which was needed for autorating).
6693         * shell/rb-play-order-random-by-age-and-rating.c:
6694         (rb_random_by_age_and_rating_get_entry_weight):
6695         * shell/rb-play-order-random-by-rating.c:
6696         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
6697         2.5 for the purposes of weighting entries.
6699 2006-01-28  James Livingston  <jrl@ids.org.au>
6701         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
6702         translator comments, to make it clearer what the "friendly time"
6703         formatting strings mean.
6705 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
6707         * daapsharing/rb-daap-connection.c: (http_response_handler):
6708         Fix the sense of the overflow check so it'll accept valid input.
6710 2006-01-27  James Livingston  <jrl@ids.org.au>
6712         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
6714         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
6715         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
6717 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
6719         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6720         
6721         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
6722         Don't include the artist field in the window title if it's blank.
6723         Fixes #325973.
6725 2006-01-26  William Jon McCann  <mccann@jhu.edu>
6727         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
6728         Use stock delete icon for move to trash and stock remove
6729         for remove menu item.
6731 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
6733         * shell/rb-shell.c: (rb_shell_constructor),
6734         (idle_handle_load_complete):  Don't start the playlist save
6735         timeout until we've loaded the playlists, otherwise we'll
6736         write an empty playlist file if startup takes too long.
6738 2006-01-25  William Jon McCann  <mccann@jhu.edu>
6740         * shell/rb-shell.c: Make view toolbar toggle use
6741         shift+ctrl+t.  Fixes #327585.
6743 2006-01-25  James Livingston  <jrl@ids.org.au>
6745         patch by: Christope Fergeau  <teuf@gnome.org>
6747         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
6748         (http_response_handler): fix a potential buffer overflow issue.
6750 2006-01-25  James Livingston  <jrl@ids.org.au>
6752         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
6753         Year column wide enough to display "Unknown"
6755 2006-01-25  James Livingston  <jrl@ids.org.au>
6757         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
6758         (rb_podcast_source_post_status_cell_data_func): make the episode
6759         status wording better. Part of bug 321607.
6761 2006-01-25  James Livingston  <jrl@ids.org.au>
6763         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
6764         others with a separator.
6766         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
6767         stock Delete icon.
6769 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
6771         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
6773 2006-01-23  James Livingston  <jrl@ids.org.au>
6775         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
6776         0.3.2. Fixed bug 328158.
6778 2006-01-23  James Livingston  <jrl@ids.org.au>
6780         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
6781         (gulong_gst_date_transform), (rb_metadata_class_init):
6782         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
6784 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
6786         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
6787         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
6788         (record_entry_change): Protect added_entries and changed_entries with
6789         a mutex, so it doesn't crash on startup on SMT/SMP machines.
6791 2006-01-23  James Livingston  <jrl@ids.org.au>
6793         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
6794         the browser for audio CDs.
6796 2006-01-22  James Livingston  <jrl@ids.org.au>
6798         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
6799         NEVER_FAIL as it causes the daemon-not-running error to never be
6800         reported, resulting in bug 319438 re-occurring.
6802 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
6804         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
6805         Just call the podcast manager's update method.  Unbreaks the 'update
6806         all feeds' command.
6808 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
6810         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
6812 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
6814         * configure.ac: Don't disable DAAP with gstreamer 0.10
6816         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
6817         (rb_daap_src_class_init), (rb_daap_src_init),
6818         (rb_daap_src_finalize), (rb_daap_src_set_property),
6819         (rb_daap_src_get_property), (rb_daap_src_write),
6820         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
6821         (_split_uri), (rb_daap_src_open):
6822         * daapsharing/rb-daap-src.h:
6823         Mostly fix seeking, handle chunked transfer encoding, and port to
6824         gstreamer 0.10.
6825         
6826         * player/rb-player-gst.c:
6827         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
6828         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
6830         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
6831         being fixed.
6833 2006-01-21  James Livingston  <jrl@ids.org.au>
6835         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
6836         for Year metadata in DAAP sources. Fixes bug 327700.
6838         * daapsharing/rb-daap-connection.c: (handle_song_listing):
6840 2006-01-20  William Jon McCann  <mccann@jhu.edu>
6842         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
6843         enum values instead of magic numbers.
6845         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
6846         Add number of songs that match each property title into
6847         the cell.  Also show the number of properties that match
6848         in the All entry.
6849         (rb_property_view_constructor): Use enum values instead of
6850         magic numbers.
6852         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
6853         Query podcast posts instead of feeds for browser.  Use
6854         post SUBTITLE which is the location for the property view.
6855         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
6856         (construct_query_from_selection) 
6857         (rb_podcast_source_cmd_delete_feed) 
6858         (rb_podcast_source_cmd_properties_feed) 
6859         (rb_podcast_source_cmd_update_feed): Use variable to make
6860         it clear what the selection data represents.
6861         (rb_podcast_source_feed_title_cell_data_func): Add number
6862         of posts that belong to each feed in the browser.
6864         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
6865         (rhythmdb_property_model_delete_prop): Decrement the refcount
6866         for the All entry.
6867         (rhythmdb_property_model_get_column_type): Use column enum
6868         values instead of magic numbers.  Add NUMBER column.
6869         (rhythmdb_property_model_get_value): Use enum.
6870         Add NUMBER column that represents the refcount for
6871         the title of that property.
6872         (rhythmdb_property_model_perform_sync): Don't fake up
6873         a title for All here.
6875         Fixes #327372.
6876         
6877 2006-01-21  James Livingston  <jrl@ids.org.au>
6879         Make Rhythmbox start faster by not blocking the UI while database
6880         initialisation and loading occurs. Closes bug 323348.
6882         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
6883         start 10 seconds later instead of immediately.
6884         
6885         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
6886         safe to call from any thread.
6888         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
6889         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
6890         so the UI doesn't block.
6892 2006-01-18  James Livingston  <jrl@ids.org.au>
6894         * sources/rb-static-playlist-source.c:
6895         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
6896         cause crashes. Oops. fixes bug 327477.
6898 2006-01-17  William Jon McCann  <mccann@jhu.edu>
6900         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
6901         Set GST element state to NULL before unreffing.
6902         Fixes #327422.
6904 2006-01-18  James Livingston  <jrl@ids.org.au>
6906         * sources/rb-static-playlist-source.c:
6907         (rb_static_playlist_source_do_query): don't filter on the SONG entry
6908         type, since the playlists can contain non-song entries. Fixes bug
6909         327448.
6911         * sources/rb-play-queue-source.c:
6912         (rb_play_queue_source_class_init): disable the search box for the
6913         queue.
6915 2006-01-18  James Livingston  <jrl@ids.org.au>
6917         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
6918         dragging of podcast episodes. Fixed bug 327450.
6920 2006-01-18  James Livingston  <jrl@ids.org.au>
6922         * rhythmdb/rhythmdb-query-model.c:
6923         (rhythmdb_query_model_drag_data_received): fix possible assertion when
6924         dragging to an emoty playlist.
6926 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
6928         * sources/rb-playlist-source-recorder.c:
6929         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
6931 2006-01-17  James Livingston  <jrl@ids.org.au>
6933         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
6935         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
6936         different number of tracks than exist on the cd, since that happens
6937         with audio+data hybrid CDs. Part of bug 325046.
6939 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
6941         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
6942         Remove useless call to gtk_tree_view_column_set_clickable().
6944         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
6945         Don't store sort data for columns if the sort function is NULL,
6946         so only sortable columns will be in the column sort data map.
6947         (rb_entry_view_set_columns_clickable): Only make columns we can sort
6948         on clickable.
6949         (rb_entry_view_constructor):  The 'playing icon' column is never
6950         clickable, so don't connect a signal handler for it.
6952         Fixes bug 326811.
6954 2006-01-17  James Livingston  <jrl@ids.org.au>
6956         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
6957         are 0.8 only. Fix element detection.
6959         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
6960         saving the new metadata failed
6962 2006-01-17  James Livingston  <jrl@ids.org.au>
6964         * shell/rb-shell-player.c: (do_next_idle),
6965         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
6966         (eos_cb): release audio device when a playlist finishes. Fixes bug
6967         323679.
6969 2006-01-17  James Livingston  <jrl@ids.org.au>
6971         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
6972         canonicalise the URIs when things are added via library watching.
6974 2006-01-16  William Jon McCann  <mccann@jhu.edu>
6976         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
6977         Off by one error in default speed index.
6979 2006-01-16  William Jon McCann  <mccann@jhu.edu>
6981         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
6982         (update_speed_combobox, update_speed_combobox):
6983         Get a list of the actually supported write speeds from
6984         n-c-b >= 2.13.90.  Otherwise use fallback list.
6986 2006-01-17  James Livingston  <jrl@ids.org.au>
6988         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
6989         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
6990         don't get stuck on recursive symlinks. Fixed bug 125452.
6992 2006-01-17  James Livingston  <jrl@ids.org.au>
6994         Add support for mass-storage audio players. Players are detected via
6995         either the HAL "audio_player" capability, or a ".is_audio_player" file
6996         in the root of the volume. Closes bug 325602.
6998         * configure.ac: separate using HAL from ipod support.
7000         * lib/rb-file-helpers.c: (rb_uri_is_local):
7001         * lib/rb-file-helpers.h: add function to determine whether a URI is
7002         local.
7004         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
7005         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
7006         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
7007         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
7008         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
7009         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
7010         directories can be scanned for files to add as  non-SONG entries.
7012         * shell/rb-removable-media-manager.c:
7013         (rb_removable_media_manager_mount_volume): add checking for
7014         mass-storage players.
7016         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
7017         * sources/rb-ipod-source.c: (rb_ipod_source_new),
7018         (hal_udi_is_ipod):
7019         * sources/rb-removable-media-source.c:
7020         (rb_removable_media_source_class_init),
7021         (rb_removable_media_source_constructor): move some things up to the
7022         RBRemovableMediaSource, rather than making subclasses do it.
7024         * sources/Makefile.am:
7025         * sources/rb-generic-player-source.c:
7026         * sources/rb-generic-player-source.h: add mass-storage player source.
7028 2006-01-16  James Livingston  <jrl@ids.org.au>
7030         patch by: William Jon McCann  <mccann@jhu.edu>
7032         * rhythmdb/rhythmdb-query-model.c:
7033         (rhythmdb_query_model_base_row_deleted): fix build issue from last
7034         commit.
7036 2006-01-16  James Livingston  <jrl@ids.org.au>
7038         Patch to add support for "chained queries" and putting hidden tracks
7039         in query models. Use chained queries to add search box support to
7040         normal playlists, and to make hidden entries not get lost. Fixes bug
7041         319278.
7043         * rhythmdb/rhythmdb-query-model.h:
7044         * rhythmdb/rhythmdb-query-model.c:
7045         (rhythmdb_query_model_class_init),
7046         (rhythmdb_query_model_set_property),
7047         (rhythmdb_query_model_get_property):
7048         (rhythmdb_query_model_finalize): add "show-hidden" and
7049         "base-model" properties.
7051         (rhythmdb_query_model_set_connected),
7052         (rhythmdb_query_model_has_pending_changes),     
7053         (rhythmdb_query_model_entry_added_cb),
7054         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
7055         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
7056         (rhythmdb_query_model_remove_entry),
7057         (rhythmdb_query_model_drag_data_received),
7058         (rhythmdb_query_model_base_row_inserted),
7059         (rhythmdb_query_model_base_row_deleted),
7060         (rhythmdb_query_model_base_non_entry_dropped),
7061         (rhythmdb_query_model_base_complete),
7062         (rhythmdb_query_model_base_entry_prop_changed),
7063         (rhythmdb_query_model_base_rows_reordered),
7064         (rhythmdb_query_model_row_drop_possible): handle base-model by
7065         chaining events and operations where necessary. Make hidden entries
7066         not get added only if "show-hidden" is false.
7068         (rhythmdb_query_model_child_index_to_base_index),
7069         (rhythmdb_query_model_base_index_to_child_index),
7070         (rhythmdb_query_model_get_entry_index): utility functions for handling
7071         base-model entries.
7073         (rhythmdb_query_model_reapply_query): apply the current query, and
7074         remove entries that don't match it.
7076         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
7077         empty queries.
7079         * sources/rb-source.c: (rb_source_set_property): move the unref later
7080         to fix problem if it is the last reference.
7082         * sources/rb-static-playlist-source.c:
7083         (rb_static_playlist_source_class_init),
7084         (rb_static_playlist_source_init),
7085         (rb_static_playlist_source_finalize),
7086         (rb_static_playlist_source_constructor), (impl_reset_filters),
7087         (impl_search), (rb_static_playlist_source_do_query),
7088         (impl_save_contents_to_xml),
7089         (rb_static_playlist_source_add_location_internal): use a chained query
7090         model to filter out hidden entries and implement the search box.
7092 2006-01-15  James Livingston  <jrl@ids.org.au>
7094         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
7095         the default playlist loading, which I broke earlier.
7097 2006-01-15  James Livingston  <jrl@ids.org.au>
7099         patch by: William Jon McCann  <mccann@jhu.edu>
7101         * sources/rb-playlist-source.c: (playlist_iter_func): use
7102         totem-plparser's new API version macros to check for API changes.
7103         Handle the recent API change.
7105 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
7107         * sources/rb-library-source.c: (impl_get_config_widget):
7108         Ref the preferences object to match the unref in the
7109         finalizer.  Fixes some portion of #323505.
7111 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
7113         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
7114         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
7115         Fix valgrind warnings about accessing uninitialised values.
7117 2006-01-14  William Jon McCann  <mccann@jhu.edu>
7119         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
7121 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
7123         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
7124         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
7125         Stops the 'now playing' icon from being displayed after the play
7126         order finishes.
7128 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
7130         * podcast/rb-podcast-manager.c:
7131         (rb_podcast_manager_db_entry_deleted_cb):
7132         Don't try to delete files we never downloaded, and cancel downloads
7133         for deleted episodes.  Fixes bug #326862.
7134         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
7135         Don't complain about NULL data items in the selection list.
7137 2006-01-14  James Livingston  <jrl@ids.org.au>
7139         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
7140         Make the name ofthe queue non editable. Fixes bug 326918.
7142 2006-01-13  William Jon McCann  <mccann@jhu.edu>
7144         * sources/rb-playlist-source-recorder.c (burn_cd) 
7145         (ask_rewrite_disc): Don't use our locally copied functions
7146         if we have at least 2.13.
7148 2006-01-13  William Jon McCann  <mccann@jhu.edu>
7150         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
7151         Correct the argument type for the process_error signal.
7152         May fix bug #323154.
7154 2006-01-13  James Livingston  <jrl@ids.org.au>
7156         save the queue to disk when exiting, and reload on startup. Fixed bug
7157         326677 .
7159         * shell/rb-playlist-manager.c:
7160         (rb_playlist_manager_load_playlists),
7161         (rb_playlist_manager_save_playlists_async): don't disable saving of
7162         the queue
7164         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
7165         add the queue source as a gobject property.
7167         * sources/rb-play-queue-source.c:
7168         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
7169         code to save the queue to xml
7171         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
7172         load the queue from xml.
7173         * sources/rb-playlist-xml.h:
7175         * sources/rb-static-playlist-source.c:
7176         (rb_static_playlist_source_load_from_xml),
7177         (rb_static_playlist_source_new_from_xml):
7178         * sources/rb-static-playlist-source.h: split the playlist xml loading
7179         from the static playlist creation function, so the queue can use it.
7181 2006-01-13  James Livingston  <jrl@ids.org.au>
7183         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
7184         assertion that should be there. Fixes bug 325923.
7185         
7186         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
7187         return NULL if the entry already exists (e.g. as another type).
7188         * daapsharing/rb-daap-connection.c: (handle_song_listing):
7189         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
7190         (rb_podcast_manager_insert_feed):
7191         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
7192         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
7193         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
7194         for the above function returning NULL.
7196 2006-01-12  James Livingston  <jrl@ids.org.au>
7198         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
7199         is enabled. Fixes bug 326673.
7200         
7201         * doc/reference/tmpl/eggtrayicon.sgml:
7202         * doc/reference/tmpl/rb-daap-src.sgml:
7203         * doc/reference/tmpl/rb-source.sgml:
7204         * doc/reference/tmpl/rb-statusbar.sgml:
7205         * doc/reference/tmpl/rb-tree-model-sort.sgml:
7206         * doc/reference/tmpl/rhythmbox-unused.sgml:
7207         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
7209 2006-01-11  James Livingston  <jrl@ids.org.au>
7211         * widgets/rb-song-info.c: (rb_song_info_constructor),
7212         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
7213         (rb_song_info_populate_dialog): fill in the fields if all tracks have
7214         the same value for properties. From bug 326054.
7216 2006-01-11  James Livingston  <jrl@ids.org.au>
7218         * sources/rb-source.h:
7219         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
7220         (rb_shell_player_set_playing_source_internal), (eos_cb):
7221         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
7222         every entry.
7224         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
7225         source use this. Closes bug 322077.
7227 2006-01-10  William Jon McCann  <mccann@jhu.edu>
7229         * widgets/eggtrayicon.c (egg_tray_icon_notify):
7230         In order for set_icon_data_from_pixbuf() to be
7231         effective, one must not set an icon in _new().
7233 2006-01-10  William Jon McCann  <mccann@jhu.edu>
7235         * widgets/eggtrayicon.c (egg_tray_icon_init) 
7236         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
7237         (egg_tray_icon_notify): Add support for libnotify 0.3.
7238         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
7239         * configure.ac: Determine the version of libnotify.
7240         Fixes #326333.
7242 2006-01-08  James Livingston  <jrl@ids.org.au>
7244         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
7245         trying to share a track with unknown length.
7247 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
7249         * shell/rb-shell-player.c: (rb_shell_player_init):
7250         Sync volume on startup so it doesn't default to 0.
7252 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
7254         * shell/rb-shell-player.c: (rb_shell_player_class_init),
7255         (rb_shell_player_get_property), (rb_shell_player_open_location),
7256         (info_available_cb):  Add the iradio streamed song title as a
7257         property, and emit a signal when it changes.
7259         * shell/rb-shell.c: (rb_shell_constructor),
7260         (rb_shell_player_elapsed_changed_cb),
7261         (rb_shell_player_stream_song_changed_cb):
7262         Issue a notification when the iradio song title changes.
7263         Fixes #326166.
7265 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
7267         * shell/rb-shell-player.c: (rb_shell_player_init),
7268         (rb_shell_player_finalize), (rb_shell_player_set_property),
7269         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
7270         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
7271         (rb_shell_player_set_volume_relative),
7272         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
7273         (rb_shell_player_get_mute):
7274         * shell/rb-shell-player.h:
7275         * shell/rb-shell-player.xml:
7276         Store volume as a property on RBShellPlayer, rather than in gconf.
7277         Add some methods to control volume via dbus.
7279         * shell/rb-shell.c: (rb_shell_constructor),
7280         (rb_shell_volume_widget_changed_cb),
7281         (rb_shell_player_volume_changed_cb):
7282         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
7283         Update volume using player properties rather than gconf, and sync the
7284         volume with the volume control button when something else changes it.
7285         Fixes #323840.
7287 2006-01-07  William Jon McCann  <mccann@jhu.edu>
7289         * shell/rb-tray-icon.c (tray_popup_position_menu):
7290         Make tray menu align with edge of panel.
7292         patch from Jaap A. Haitsma <jaap@haitsma.org>
7293         Fixes #319913
7295 2006-01-07  William Jon McCann  <mccann@jhu.edu>
7296         * shell/rb-shell.c (sourcelist_drag_received_cb): 
7297         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
7298         (rb_playlist_manager_new_playlist_from_selection_data):
7299         Make a reasonable default name for playlists created from
7300         dropped data.  Fixes #326116.
7302 2006-01-07  William Jon McCann  <mccann@jhu.edu>
7304         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
7305         Use new gconf key.
7306         (burn_cd): Always eject CD after burning.  Too many drives
7307         get confused if we don't.  Save the speed used if the burn
7308         was completed successfully.
7310         * data/rhythmbox.schemas: Use our own speed instead of from
7311         n-c-b. The situation is that the default_speed for n-c-b is most
7312         likely the maximum write speed.  This is fine for n-c-b because it
7313         has burn-proof turned on.  We can't turn it on for audio CDs
7314         because the results are poor in quality.  So we'll just pick a
7315         default that should work for everyone (4).
7317 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
7318         
7319         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
7320         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
7322 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
7324         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
7325         in my previous commit.  Fixes #326037.
7327 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
7329         patch by: Jonathan Matthew
7331         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
7332         error on Fedora Rawhide.
7334 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
7336         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
7337         Assume HTTP URLs ending with .xml or .rss are podcasts.
7338         (rb_shell_add_uri): Handle adding podcast feeds.
7340         * sources/rb-podcast-source.c: (rb_podcast_source_new):
7341         Register as the source for podcast feeds.
7343 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
7345         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
7346         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
7347         (rb_shell_preferences_append_view_page):
7348         * shell/rb-shell-preferences.h:
7349         Fix typo in function name.  Fixes #325992.
7351 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
7353         * shell/rb-audioscrobbler.c:
7354         Add '+' to the list of characters to URI-encode, so it doesn't get
7355         interpreted as a space.
7357 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
7359         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
7360         (rb_daap_connection_do_something):  Don't crash if the DAAP server
7361         goes away while we're still trying to log in.
7363 2006-01-06  James Livingston  <jrl@ids.org.au>
7365         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
7367 2006-01-06  James Livingston  <jrl@ids.org.au>
7369         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
7370         support for Year to automatic playlists. Closes bug 321341.
7372         * rhythmdb/rhythmdb-query-model.c:
7373         (rhythmdb_query_model_set_property):
7374         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
7375         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
7376         (rhythmdb_query_free), (rhythmdb_query_serialize),
7377         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
7378         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
7379         * rhythmdb/rhythmdb.h: Support special
7380         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
7381         year in date.
7383         * widgets/rb-query-creator-properties.c:
7384         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
7385         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
7387 2006-01-06  James Livingston  <jrl@ids.org.au>
7389         * configure.ac: make the playback backend selection work correctly
7391         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
7392         (rb_daap_src_class_init), (rb_daap_src_dispose),
7393         (rb_daap_src_change_state), (rb_daap_src_initialize):
7394         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
7395         doesn't work for this class. Fixes bug 325934
7397 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
7399         * configure.ac: Fix check for libnotify.
7401 2006-01-05  William Jon McCann  <mccann@jhu.edu>
7403         * sources/rb-playlist-source.c (xml_get_and_trim_names):
7404         Get name element for current lang and remove all name nodes
7405         from the XML tree.
7406         (get_playlist_name_from_xml): Try to get name element or
7407         fall back to name attribute.
7408         (rb_playlist_source_new_from_xml): Get name before turning over
7409         to sub-types for parsing so that we can remove name elements
7410         from the tree if necessary.
7412         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
7413         Load default playlists file if per user playlists are not found.
7415         * data/playlists.xml.in: 
7416         * data/Makefile.am: 
7417         * data/.cvsignore: Add default set of playlists.
7418         Fixes #323004
7420 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
7422         * shell/main.c: (main): Don't use the dbus interface to show the
7423         window if we're also going to use the bonobo interface.
7425 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
7427         * shell/rb-history.c: (rb_history_set_playing):
7428         Allow setting the playing song to NULL.
7429         (rb_history_append), (rb_history_delete_link):
7430         Don't randomly change position when entries are added and removed,
7431         it confuses play orders.
7432         
7433         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
7434         Random orders always have a next entry if the model is not empty.
7435         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
7436         Go back to the start of the history if we're past its end.
7438         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
7439         (rb_shuffle_play_order_go_next): Go back to the start of the history
7440         if we're past its end.
7441         (rb_shuffle_sync_history_with_query_model): Go back to the start of
7442         the history if the current entry is removed.
7444         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
7445         (rb_play_order_entry_deleted_cb): Only update have next/previous for
7446         the play order when the query has finished. This wasted about 10% CPU
7447         while the query was running.
7449         Fixes #324641: assertion failures when the query model was changed
7450         such that the playing song was no longer present.
7452 2006-01-05  James Livingston  <jrl@ids.org.au>
7454         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
7455         (rb_daap_src_dispose), (rb_daap_src_change_state):
7456         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
7457         (rhythmdb_gda_finalize):
7458         * widgets/rb-cell-renderer-pixbuf.c:
7459         * widgets/rb-cell-renderer-rating.c:
7460         (rb_cell_renderer_rating_class_init),
7461         (rb_cell_renderer_rating_finalize):
7462         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
7463         * widgets/rb-load-failure-dialog.c:
7464         (rb_load_failure_dialog_class_init),
7465         (rb_load_failure_dialog_finalize):
7466         * widgets/rb-rating.c: (rb_rating_class_init),
7467         (rb_rating_finalize):
7468         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
7469         (rb_search_entry_finalize): use G_DEFINE_TYPE
7471         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
7473 2006-01-05  James Livingston  <jrl@ids.org.au>
7475         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
7477         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
7478         the tarball.
7480         * shell/rb-history.c: (rb_history_class_init),
7481         (rb_history_finalize):
7482         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
7483         (rb_playlist_manager_finalize):
7484         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
7485         (rb_remote_init): use G_DEFINE_TYPE.
7487 2006-01-05  James Livingston  <jrl@ids.org.au>
7489         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
7490         changes
7492 2006-01-04  William Jon McCann  <mccann@jhu.edu>
7494         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
7495         Disable burn action when source is not a playlist.
7496         Fixes #323578.
7498 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
7500         Optionally use libnotify to display song change and other
7501         notifications, and provide an option to disable notifications.
7502         Fixes #320355 and innumerable informal complaints.
7504         * widgets/eggtrayicon.c: (egg_tray_icon_init),
7505         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
7506         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
7507         (egg_tray_icon_notify):
7508         * widgets/eggtrayicon.h:
7509         * configure.ac:
7510         * shell/Makefile.am:
7511         Optionally use libnotify instead of eggnotificationbubble.
7513         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
7514         (rb_tray_icon_constructor), 
7515         (rb_tray_icon_show_notifications_changed_cb),
7516         (rb_tray_icon_hide_notify_cb)
7517         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
7518         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
7519         EggNotificationBubble pointer to eggtrayicon.
7521         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
7522         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
7523         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
7525 2006-01-04  William Jon McCann  <mccann@jhu.edu>
7527         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
7528         Request a minimum size for the progress bar so that
7529         the window doesn't shrink too small.
7531 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
7533         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
7534         (add_db_entry), (db_entry_deleted_cb):
7535         Don't track the number of songs currently present, track the next ID
7536         to assign.  Fixes potential ID conflict problems.
7537         
7538         (db_entry_changed_cb), (rb_daap_share_start_publish),
7539         (rb_daap_share_stop_publish):
7540         Watch for db entry changes, and when songs become non-hidden after
7541         a successful stat, add them to the mapping tables.   Fixes #325178,
7542         making the DAAP server usable again.
7544 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
7545         
7546         * shell/rb-statusbar.c: (rb_statusbar_class_init),
7547         (rb_statusbar_construct), (rb_statusbar_init),
7548         (rb_statusbar_finalize), (rb_statusbar_set_property),
7549         (rb_statusbar_get_property), (rb_statusbar_new),
7550         (rb_statusbar_sync_with_source):
7551         * shell/rb-statusbar.h:
7552         Remove visibility management code, stop watching for play order
7553         changes (status bar doesn't show play order any more), remove unused
7554         'player' property, and some other minor cleanup.
7555         
7556         * shell/rb-shell.c: (rb_shell_constructor),
7557         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
7558         (rb_shell_sync_statusbar_visibility):
7559         Manage status bar visibility here rather than in the status bar
7560         itself, so we can take small mode into account.  Fixes #323589.
7562 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
7564         * widgets/eggnotificationbubble.c: (draw_bubble):
7565         Move the bubble off the visible screen while setting up bevels.  
7566         Fixes #316810.
7568 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
7570         * shell/rb-shell-player.c: (rb_shell_player_init),
7571         (rb_shell_player_finalize): 
7572         Remove unused structure members.
7573         
7574         (do_next_idle), (rb_shell_player_error):
7575         Only queue one call to do_next_idle, so we don't skip tracks if we get
7576         two errors for the same song.  Fixes #325216.
7578 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
7580         * data/glade/podcast-feed-properties.glade,
7581          podcast/rb-feed-podcast-properties-dialog.c:
7582         (rb_feed_podcast_properties_dialog_init),
7583         (rb_feed_podcast_properties_dialog_update):
7584         Add 'last episode' field to the podcast feed properties dialog.
7586         * podcast/rb-feed-podcast-properties-dialog.c:
7587         (rb_feed_podcast_properties_dialog_update_last_update),
7588         (rb_feed_podcast_properties_dialog_update_last_episode),
7589          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
7590         Use last-seen property for the time at which we last updated the feed,
7591         and post-time for the time the last episode was published.
7593         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
7594         Handle upgrades from 0.9.2; if no post-time was found for a podcast
7595         feed, use last-seen (which in 0.9.2 was the last post time).
7597         Fixes #323894.
7599 2006-01-01  James Livingston  <jrl@ids.org.au>
7601         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
7603         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
7604         year from the ipod database.
7606 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
7608         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
7609         Only set the pipeline back to NULL state for really uninteresting
7610         files.  This was causing deadlocks with various video files.
7611         Fixes #324912.
7613 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
7615         * data/glade/song-info-multiple.glade:
7616         Add disc number label and field.
7617         * widgets/rb-song-info.c: (rb_song_info_construct_single),
7618         (rb_song_info_constructor): 
7619         Handle widgets for disc number.
7620         (rb_song_info_sync_entries_multiple):
7621         Set disc number property on selected entries.
7622         Fixes #324777.
7624 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
7626         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
7627         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
7628         Activate the default widget when enter is pressed in these dialogs.
7629         Fixes #322887.
7631 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
7633         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
7634         Use rb_shell_player_get_playing_entry, so we get the right entry
7635         when playing from the queue.  Fixes #325379.
7637 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
7639         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
7640         Include podcast posts with no publication date.  Typically
7641         seen in static collections rather than feeds.
7643 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
7645         * shell/main.c: (main): Don't attempt to handle
7646         bonobo-only arguments if we couldn't get a bonobo
7647         client proxy.
7649 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
7651         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
7652         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
7653         abort if daap sharing is disabled and then re-enabled.
7655 2005-12-29  William Jon McCann  <mccann@jhu.edu>
7657         * podcast/rb-podcast-parse.c (rb_insert_item):
7658         Add debugging.
7659         (rb_podcast_parser_start_element): Support itunes:image.
7660         Add debugging.  Don't abuse the break statement.  Warn
7661         if state is unknown.
7662         (rb_podcast_parser_end_element): Add debugging.  Warn
7663         if state is unknown.
7664         (rb_podcast_parser_characters): Warn if state is unknown.
7666         Fixes parsing of feeds that use the itunes:image element.
7667         Fixes #324632
7669 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
7671         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
7672         (stations_view_drag_data_received_cb):
7673         Remove calls to rhythmdb_entry_lookup_by_location, as
7674         rb_iradio_source_add_station does that anyway.
7675         
7676         (rb_iradio_source_add_from_playlist):
7677         If the URL doesn't point to a playlist, add it as the stream
7678         URL instead.
7680 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
7682         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
7683         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
7684         so we don't get an assertion failure.
7685         Fixes #325025.
7687 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
7689         * shell/main.c: (load_uri_args): don't compile this in if
7690         neither bonobo nor dbus are enabled.  Fixes #324890.
7692 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
7694         * sources/rb-audiocd-source.c:
7695         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
7696         so it closes the device.
7698 2005-12-20  James Livingston  <jrl@ids.org.au>
7700         * metadata/rb-metadata-gst.c: make the state changes time-out again,
7701         so that it doesn't spend forever getting stuck on the one file. Don't
7702         report errors for failing to change state on known non-audio files.
7704         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
7705         audio sink creation if we can't create the gconfaudiosink. This lets
7706         it work with only gst-plugins-base on 0.10.
7708 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
7710         * rhythmdb/rhythmdb-query-model.c:
7711         (rhythmdb_query_model_set_sort_order):
7712         Fix a tiny memory leak in the previous commit.
7714 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
7716         * rhythmdb/rhythmdb-query-model.c:
7717         (rhythmdb_query_model_set_sort_order):
7718         Don't try to emit reorders for empty query models, since it doesn't
7719         achieve anything and it results in a few warnings.
7721 2005-12-19  William Jon McCann  <mccann@jhu.edu>
7723         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
7724         Make burn dialog non-resizable so that the expander can shrink.
7725         Fixes #308951.
7727 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
7729         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
7730         add entries without a location, rather than those with one.
7732 2005-12-19  James Livingston  <jrl@ids.org.au>
7734         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
7735         the error isn't set.
7737 2005-12-19  James Livingston  <jrl@ids.org.au>
7738         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
7739         add entries without a location. Fixes bug 324290.
7741         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
7742         without a location.
7744         * shell/main.c: (main): don't crash if dbus initialisation fails
7745         without setting an error
7747 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
7749         * sources/rb-library-source.c: Remove unused structure members
7750         (rb_library_source_do_query): Actually use the cached 'all' query.
7751         Fixes #324025.
7752         
7753 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
7755         * sources/rb-audiocd-source.c 
7756         (rb_audiocd_get_cd_info): tab
7757         (rb_audiocd_scan_songs): Return boolean success/failure,
7758         fix error messages a bit.
7759         (metadata_cb): Don't crash if we have no tracks
7760         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
7761         the CD.
7762         Fixes #324222.
7764 2005-12-15  William Jon McCann  <mccann@jhu.edu>
7766         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
7767         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
7768         key.
7770         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
7771         Fixes #324157
7773 2005-12-14  William Jon McCann  <mccann@jhu.edu>
7775         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
7776         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
7777         (fullscreen_changed_cb): 
7778         * lib/rb-preferences.h: 
7779         * data/ui/rhythmbox-ui.xml: 
7780         * data/rhythmbox.schemas:
7781         Add fullscreen mode.
7783         Fixes #324075.
7785 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
7787         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
7788         configure.  It was not working with RPM.
7789         * data/Makefile.am: Switched dbus directory location to use
7790         datadir instead of variable that was not working.
7792 2005-12-13  James Livingston  <jrl@ids.org.au>
7794         patch by: Alex Lancaster <alexl@users.sourceforge.net>
7796         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
7797         the podcast browser work again. Closes bug 323856.
7799 2005-12-12  William Jon McCann  <mccann@jhu.edu>
7801         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
7802         Remove C99ism.
7804         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
7805         (rb_utf_friendly_time):
7806         * lib/rb-cut-and-paste-code.h:
7808         * podcast/rb-feed-podcast-properties-dialog.c:
7809         (rb_feed_podcast_properties_dialog_parse_time):
7810         * podcast/rb-podcast-properties-dialog.c:
7811         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
7812         to display the date in a more user friendly way.
7813         For example, if the feed was updated yesterday it will say:
7814         Last updated: Yesterday 10:00 AM
7815         instead of printing the date.
7817 2005-12-12  William Jon McCann  <mccann@jhu.edu>
7819         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
7820         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
7821         (rb_validate_item_propert, rb_podcast_parser_start_element) 
7822         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
7823         Use RB style.  Check for NULL before strcmp.  No C++ comments.
7824         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
7825         Don't set invalid mime type when mime type is NULL.  Fix leaks.
7826         (rb_podcast_parse_date): Add support for some real world
7827         date formats.
7828         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
7829         (rb_podcast_parse_item_free): Style and no need to check
7830         for NULL before g_free.
7832         May fix #323742
7834 2005-12-12  James Livingston  <jrl@ids.org.au>
7836         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
7837         with gstreamer 0.10, which replaced audioscale.
7839         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
7840         function to free the SoupSession
7842         * shell/rb-source-header.c: (rb_source_header_set_property),
7843         (rb_source_header_disclosure_toggled_cb),
7844         (rb_source_header_view_browser_changed_cb),
7845         (rb_source_header_sync_control_state):
7846         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
7847         * sources/rb-library-source.c: (rb_library_source_class_init):
7848         * sources/rb-source.c: (rb_source_class_init),
7849         (rb_source_get_status), (default_get_browser_key),
7850         (rb_source_get_browser_key), (rb_source_can_browse),
7851         (rb_source_notify_status_changed),
7852         (rb_source_notify_filter_changed):
7853         * sources/rb-source.h: seperate the enabling of browsers from the use
7854         of a gconf key.
7856 2005-12-11  William Jon McCann  <mccann@jhu.edu>
7858         * data/glade/podcast-feed-properties.glade: 
7859         * data/glade/podcast-properties.glade: Use scrolled viewports
7860         for description text.  Fix regression of #320509.
7862 2005-12-11  James Livingston  <jrl@ids.org.au>
7864         * sources/rb-auto-playlist-source.c:
7865         (rb_auto_playlist_source_class_init), (impl_reset_filters),
7866         (impl_search), (rb_auto_playlist_source_do_query),
7867         (rb_auto_playlist_source_set_query),
7868         (rb_auto_playlist_source_get_query): add support for the search box
7869         to automatic playlists.
7871         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
7872         memory leak.
7874 2005-12-11  James Livingston  <jrl@ids.org.au>
7876         * NEWS: update NEWS
7878 2005-12-11  James Livingston  <jrl@ids.org.au>
7880         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
7881         (rhythmdb_load), (monitor_subdirectory),
7882         (rhythmdb_sync_library_location):  start the library sync and
7883         monitoring in an idle callback.
7885 2005-12-10  William Jon McCann  <mccann@jhu.edu>
7887         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
7888         (rb_podcast_source_constructor): Remove unused pixbuf column.
7889         (rb_podcast_source_set_property, rb_podcast_source_get_property):
7890         Use consistent style.
7892         Fixes #322961.
7894 2005-12-11  James Livingston  <jrl@ids.org.au>
7896         * rhythmdb/rhythmdb-property-model.c:
7897         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
7898         (rhythmdb_property_model_insert),
7899         (rhythmdb_property_model_delete_prop):
7900         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
7901         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
7902         (destroy_tree_property):
7903         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
7904         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
7905         GMemChunks, they are crap and deprecated. Improves startup-time and
7906         memory usage slightly.
7908 2005-12-10  William Jon McCann  <mccann@jhu.edu>
7910         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
7911         Added license and website info.
7913         * MAINTAINERS.old: Add Colin.
7914         * MAINTAINERS: Add James.
7915         * AUTHORS: Put back in order.  Add extra space between name and email
7916         to make it easier to read.  Add James and jonathan.
7918         * widgets/rb-song-info.c (rb_song_info_init) 
7919         (rb_song_info_constructor): Make sure close button is primary/rightmost.
7921 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
7923         Play queue implementation. Closes bug 107787.
7925         * data/rhythmbox.schemas: add items for whether the queue should be
7926         displayed as a sidebar, and the height of the sourcelist if it is.
7928         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
7929         playlist, and podcast popups; add 'view queue as sidebar' menu item,
7930         add popups for queue as source and as sidebar.  We need a separate
7931         popup for the sidebar view because otherwise it's hard to tell which
7932         of the visible entry views the action came from.
7934         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
7936         * po/POTFILES.in: Add new file
7938         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
7939         Add helper function for deciding if a podcast episode is available for
7940         playback.
7942         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
7943         reorder entries in the query model.
7944         (idle_process_update): Handle new update type used to insert entries
7945         at a particular position in the query model.
7946         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
7947         parameter to specify the position (-1 meaning 'at the end').
7948         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
7949         parameter.
7950         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
7951         bad entry removal updates for entries that aren't in the model.
7952         (rhythmdb_query_model_emit_reorder): Add helper function for
7953         reordering rows.
7954         (rhythmdb_query_model_move_entry): New method for moving entries
7955         around in the model
7956         (rhythmdb_query_model_entry_added_cb),
7957         (rhythmdb_query_model_update_limited_entries),
7958         (rhythmdb_query_model_do_reorder),
7959         (rhythmdb_query_model_do_insert): Pass through the index parameter,
7960         use rhythmdb_query_model_emit_reorder where appropriate.
7962         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
7963         Don't allow the queue to be deleted.
7964         (handle_playlist_entry_cb): Update for method signature change
7965         (rb_playlist_manager_save_playlists_async),
7966         (rb_playlist_manager_get_playlists): Don't save the play queue,
7967         don't report it as a playlist.
7969         * shell/rb-play-order.c: Include queue play order in the list of
7970         available orders.
7972         * shell/rb-shell.c
7973         (rb_shell_class_init), (rb_shell_get_property): Add new property 
7974         for access to the clipboard object.
7975         (rb_shell_constructor): Handle playing-from-queue signal to update the
7976         sourcelist display; add queue sidebar in to UI, listen for queue
7977         sidebar pane changes, and read initial settings from gconf.
7978         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
7979         Only tell the sourcelist the source has changed if the new source is 
7980         not the queue, as we update the sourcelist differently in that case.
7981         (rb_shell_set_window_title): Only use the cached window title if the
7982         playing state was the same when it was created.
7983         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
7984         (rb_shell_sync_pane_visibility): Only hide the side pane if the
7985         sourcelist is hidden and the queue is shown as a source.
7986         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
7987         mode, since it doesn't make any sense.
7988         (sourcelist_visibility_changed_cb): Update the visibility of the pane
7989         too.
7990         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
7991         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
7992         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
7993         playing from queue shown as sidebar.
7995         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
7996         MusicProperties action here from rb-shell-player.c, since it acts like
7997         cut/copy/paste etc.
7998         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
7999         (rb_shell_clipboard_get_property): new property for queue source.
8000         Watch for selection changes in the sidebar entry view as well as the
8001         normal one.
8002         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
8003         actions and MusicProperties.
8004         (rb_shell_clipboard_cmd_queue_delete),
8005         (rb_shell_clipboard_cmd_add_song_to_queue),
8006         (rb_shell_clipboard_cmd_song_info),
8007         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
8009         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
8010         actually came from (could be the playing source, or the queue), add a 
8011         new play order object for the queue, add a property for the queue
8012         source, add a signal for when we switch between playing from the
8013         source and from the queue.
8014         (rb_shell_player_set_property): Handle playing directly from the
8015         queue so we stop once the queue is empty.  Create queue play order
8016         when we get the queue source.
8017         (rb_shell_player_get_playing_source): Return the source we're actually
8018         playing from.
8019         (rb_shell_player_get_playing_entry): Get playing entry from queue if
8020         that's where it is.
8021         (rb_shell_player_set_playing_entry): Update the queue play order if 
8022         that's where we're playing from.
8023         (rb_shell_player_play_order_update_cb): Take has next/previous for the
8024         queue into consideration too.
8025         (swap_playing_source): Helper function for switching the playing
8026         source.
8027         (rb_shell_player_do_previous): Check the queue, even though there's
8028         never a previous entry in it (yet), swap playing source if it changed.
8029         (rb_shell_player_do_next): Check the queue for entries to play before
8030         the normal play order, and swap playing source if it changed.
8031         (rb_shell_player_do_previous_or_seek): Check the queue for previous
8032         entries to go to as well.
8033         (rb_shell_player_playpause): Check the queue before the selection and
8034         the play order, and swap playing source if it changed.
8035         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
8036         (rb_shell_player_entry_activated_cb): Use
8037         rb_podcast_manager_entry_downloaded, do some tapdancing to make
8038         activating queue entries work properly (move the activated entry to
8039         the start of the queue and then play it); if we were playing from the
8040         queue, clear its playing entry so it'll start again from the start
8041         after the activated entry.
8042         (rb_shell_player_sync_buttons): MusicProperties action handler moved
8043         to rb-shell-clipboard.c
8044         (actually_set_playing_source): Add helper for updating the playing
8045         source.
8046         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
8047         signal if we stop or start doing so; use actually_set_playing_source; 
8048         emit playing-source-changed if we actually did change source.
8050         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
8051         rb_static_playlist_source_add_location.
8053         * sources/rb-library-source.c (rb_library_source_class_init): Allow
8054         enqueueing of songs from the library.
8056         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
8057         enqueueing of sonsg from playlists.
8058         (rb_playlist_source_entry_added_cb): Add extra parameter for
8059         rhythmdb_query_model_add_entry.
8060         
8061         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
8062         Implement (can_)add_to_queue for this class.
8063         (rb_podcast_source_entry_activated): Use
8064         rb_podcast_manager_entry_downloaded.
8065         (impl_can_add_to_queue): Return TRUE if at least one entry that has
8066         been downloaded is selected.
8067         (impl_add_to_queue): Only add downloaded entries to the queue.
8069         * sources/rb-source.{c,h}:
8070         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
8071         methods.
8072         (rb_source_class_init): Don't allow enqueueing by default; implement 
8073         add_to_queue though.
8074         (default_add_to_queue): Add all selected entries to the queue.
8075         
8076         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
8077         would be playing if there wasn't anything in the queue).
8078         (set_source_playing): Helper function for manipulating tree store.
8079         (rb_sourcelist_set_playing_source): Use set_source_playing
8080         (rb_sourcelist_preempt_playing_source): Update preempted source
8081         pointer, manipulate source states.
8083         * sources/rb-static-playlist-source.{c,h}:
8084         (rb_static_playlist_source_add_location_internal),
8085         (rb_static_playlist_source_add_location),
8086         (rb_static_playlist_source_add_entry): Add index parameter for
8087         specifying where in the playlist the new entry goes.
8088         (rb_static_playlist_source_new_from_xml), (impl_paste),
8089         (rb_static_playlist_source_add_list_uri),
8090         (rb_static_playlist_source_add_location_swapped),
8091         (rb_static_playlist_source_add_locations),
8092         (rb_static_playlist_source_non_entry_dropped),
8093         (rb_static_playlist_source_row_inserted):
8094         Handle new index parameter everywhere it appears
8095         (rb_static_playlist_source_move_entry): New method for moving entries
8096         around in the playlist.
8098         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
8099         warnings when trying to scroll entry views that have never been
8100         displayed.
8102         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
8103         play order that removes the old entry when switching to a new one.
8105         * sources/rb-play-queue-source.{c,h}: New files, implementing a
8106         static playlist subclass that has a second entry view for the sidebar
8107         view using alternate formatting, and that displays the number of
8108         entries it contains in its source list entry.
8110 2005-12-10  James Livingston  <jrl@ids.org.au>
8112         * rhythmdb/rhythmdb-query-model.c:
8113         (rhythmdb_query_model_add_entry),
8114         (rhythmdb_query_model_drag_data_received):
8115         * sources/rb-static-playlist-source.c:
8116         (rb_static_playlist_source_non_entry_dropped): when things are
8117         dropped, ignore any blank lines in the list of uris. Make the source
8118         responsible for adding new items to the db.
8120         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
8121         empty string.
8123 2005-12-10  James Livingston  <jrl@ids.org.au>
8125         * shell/rb-shell-player.c: (rb_shell_player_set_property),
8126         (rb_shell_player_sync_buttons),
8127         (rb_shell_player_selection_changed_cb): watch for the
8128         "selection-changed" signal, so that the Song Properties get enabled.
8129         Closes bug 323694.
8131 2005-12-10  James Livingston  <jrl@ids.org.au>
8133         * data/rhythmbox.schemas: fix the gconf schema
8135 2005-12-10  James Livingston  <jrl@ids.org.au>
8137         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
8138         the decoded-pad callback with gstreamer 0.8, it causes problems.
8140 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
8142         Remove more junk from RBEntryView. Closes bug 323640.
8144         * widgets/rb-entry-view.{c,h}:
8145         Remove unused private structure members, replace 'playing' boolean
8146         with an enum (so we know if we're paused too), and store a pointer to
8147         the RBShellPlayer too.  
8148         (rb_entry_view_class_init), (rb_entry_view_set_property),
8149         (rb_entry_view_get_property):
8150         Remove 'entry-selected' and 'changed' signals and
8151         'playing-entry' property, add 'selection-changed' signal and
8152         'shell-player' and 'playing-state' properties.
8153         (rb_entry_view_new): Take the shell player object reference
8154         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
8155         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
8156         No longer needed, shell player is the place to get this information.
8157         (rb_entry_view_busy), (rb_entry_view_get_duration),
8158         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
8159         (rb_entry_view_get_next_from_entry),
8160         (rb_entry_view_get_previous_from_entry),
8161         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
8162         (rb_entry_view_get_num_entries):
8163         Removed, callers should go to the query model directly.
8164         (rb_entry_view_playing_song_changed): Update active query model, emit
8165         row changed signals to update pixbufs, and scroll to the playing song
8166         when the playing song changes, based on a signal from the shell
8167         player.
8168         (queue_changed_sig), (rb_entry_view_row_changed_cb),
8169         (emit_entry_changed): Evil, removed.
8170         (rb_entry_view_selection_changed_cb): Remove old signals, add new
8171         selection-changed signal.
8172         (rb_entry_view_select_none), (rb_entry_view_select_entry):
8173         Remove selection lock.  It didn't work anyway.
8174         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
8175         (rb_entry_view_emit_row_changed): Simple helper function to emit
8176         row-changed signals.
8178         * widgets/Makefile.am: Entry view needs headers from the shell/
8179         directory.
8180         * widgets/rb-song-info.{c,h}: Use the query model for everything except
8182         scrolling the entry view to show the entry being displayed.
8183         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
8184         'source' property so we can watch for query model changes.
8185         (rb_song_info_finalize): Unref objects, disconnect signal handlers
8186         (rb_song_info_set_property): Watch for query model changes, don't
8187         watch for entry view changes.
8188         (rb_song_info_new): Take source as a parameter, use the source's entry
8189         view unless one was specifically supplied.
8190         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
8191         Use query model rather than entry view to move between songs.
8192         (rb_song_info_update_buttons): Use query model.
8193         (rb_song_info_query_model_changed_cb): Handle query model changes.
8195         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
8196         Only one copy of the code to enable/disable the CD burning action
8197         (rb_playlist_manager_playlist_entries_changed):
8198         Use the query model to get the number of entries, not the entry view.
8200         * shell/rb-play-order-random-by-age-and-rating.c,
8201         shell/rb-play-order-random-by-age.c,
8202         shell/rb-play-order-random-by-rating.c,
8203         shell/rb-play-order-random-equal-weights.c:
8204         Use G_DEFINE_TYPE
8206         * shell/rb-shell-player.{c,h}:
8207         Remove a few unused entries from the structure.
8208         (rb_shell_player_set_property):
8209         Don't use the 'changed' signal on the entry view (it's evil)
8210         (rb_shell_player_have_first): No longer needed
8211         (rb_shell_player_play): Just tell the entry view it's playing
8212         (rb_shell_player_playpause): Tell the entry view it's paused
8213         when pausing.
8214         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
8215         (rb_shell_player_property_row_activated_cb):
8216         Get the entry to play using the query model, not the entry view.
8217         (rb_shell_player_sync_buttons): Update entry view state while we're
8218         here.
8219         (rb_shell_player_set_playing_source_internal): Update entry view state
8220         (rb_shell_player_get_playing): Ask the entry view, not the player.
8221         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
8222         and rb_shell_set_window_title work properly, so you get "(Paused)" in
8223         the window title and tray icon tooltip.
8224         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
8226         * sources/rb-iradio-source.c, sources/rb-library-source.c,
8227         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
8228         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
8229         view constructor, pass the source in to the song info widget
8230         constructor.
8232         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
8233         Use 'selection-changed' instead of 'changed', since that's what the
8234         clipboard cares about.
8235         (rb_shell_clipboard_set_source): Don't die if source == NULL
8237 2005-12-10  James Livingston  <jrl@ids.org.au>
8239         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
8240         * sources/rb-playlist-source-recorder.c:
8241         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
8242         stuff not use the deprecated API when compiled against 2.13
8244 2005-12-10  James Livingston  <jrl@ids.org.au>
8246         patch by: Alex Lancaster <alexl@users.sourceforge.net>
8248         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
8249         problem where the genre tag was getting set to the artist. Closes bug
8250         323642.
8252 2005-12-09  William Jon McCann  <mccann@jhu.edu>
8254         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
8255         Return NULL if can't get first iter.
8257         Fixes #323663
8259 2005-12-09  William Jon McCann  <mccann@jhu.edu>
8261         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
8262         updated rb_station_properties_dialog_new API.
8263         (rb_iradio_source_add_from_playlist): New public function.
8264         (rb_iradio_source_first_time_changed): Use add_from_playlist.
8266         * shell/rb-shell.c (new_station_location_added): Handle
8267         iradio location added signal.
8268         (rb_shell_cmd_new_station): Use new iradio station dialog.
8270         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
8271         (rb_station_properties_dialog_new): Don't squeeze new
8272         station functionality into this class.
8273         (rb_station_properties_dialog_response_cb): ditto.
8274         (rb_station_properties_dialog_update_title): Make
8275         consistent with other properties dialogs.
8276         (rb_station_properties_dialog_location_changed_cb): Do nothing.
8278         * iradio/rb-new-station-dialog.[ch]: 
8279         * iradio/Makefile.am: Add new station dialog.
8281         * data/glade/station-new.glade: New file based on
8282         new podcast feed dialog.
8283         * data/glade/station-properties.glade: Updated to
8284         be consistent with song properties dialog.
8286         Fixes #323306.
8288 2005-12-10  James Livingston  <jrl@ids.org.au>
8290         patch by: Ståle Lyngaas <staale@lyngaas.com>
8292         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
8293         submit songs longer than 30 minutes. Fixes bug 323639.
8295 2005-12-09  William Jon McCann  <mccann@jhu.edu>
8297         * shell/rb-shell.c (idle_save_playlist_manager): Use new
8298         async save function.
8299         (rb_shell_finalize): Remove save timeout sources.  Reorder
8300         steps a bit to make saving db and playlists a bit more
8301         failsafe in case something goes wrong later.
8302         (rb_shell_constructor): Keep track of save timeout source.
8303         (add_to_library_response_cb): Keep track of db save timeout source.
8305         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
8306         g_atomic.
8307         (rb_playlist_manager_shutdown): New function to shutdown
8308         threads etc. before exit.
8309         (rb_playlist_manager_finalize): Moved handling outstanding
8310         threads stuff to shutdown since if there are outstanding threads
8311         they hold a ref and finalize is never called.
8312         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
8313         of signal which may be required for sync save.
8314         (rb_playlist_manager_save_playlists_async): Renamed old
8315         save_playlists to save_playlists_async.  Use g_atomic.
8316         (rb_playlist_manager_save_playlists): New function to
8317         perform sync saves (symmetric with RhythmDB API).
8318         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
8320         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
8321         Style consistency anality.
8322         (rhythmdb_finalize): Remove save timeout source.
8323         (rhythmdb_set_property, rhythmdb_get_property) 
8324         (rhythmdb_process_events): More anality and keep track of
8325         save timeout source.
8326         (action_thread_main): No need to call g_thread_exit.
8327         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
8328         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
8329         (write_encoded_gvalue, read_encoded_property): La la la.
8331         Fixes #322940.
8333 2005-12-10  James Livingston  <jrl@ids.org.au>
8335         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
8336         non-audio files.
8338 2005-12-10  James Livingston  <jrl@ids.org.au>
8340         * Makefile.am:
8341         * configure.ac: remove the rpm spec files, so that automake works.
8342         oops
8344         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
8345         locking issue
8347 2005-12-09  James Livingston  <jrl@ids.org.au>
8349         * debian/: try to get cvs to actually remove the files
8351 2005-12-09  James Livingston  <jrl@ids.org.au>
8353         * rhythmbox.spec.in:
8354         * debian/: remove the distro package stuff, they are *really* old, and
8355         downstream manage it anyway.
8357 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
8359         Rework play orders to work off query models rather than 
8360         entry views, and track the playing entry themselves rather
8361         than relying on the entry view to do it.  This makes the entry
8362         view mostly just a widget. Closes bug 323612.
8364         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
8365         Use query model rather than entry view to get the number
8366         of entries in playlists.
8368         * rhythmdb/rhythmdb-query-model.{c.h}
8369         (rhythmdb_query_model_tree_path_to_entry),
8370         (rhythmdb_query_model_iter_to_entry),
8371         (rhythmdb_query_model_get_next_from_entry),
8372         (rhythmdb_query_model_get_previous_from_entry):
8373         New utility functions for iterating through query models.
8374         (rhythmdb_query_model_compute_status_normal):
8375         Have one copy of this code, not four.
8377         * shell/rb-play-order.{c,h}:
8378         Add signals for when next/previous availability changes, and
8379         when the playing entry is removed, and add a property for
8380         the current playing entry.  Add gtkdoc comments too.
8381         (rb_play_order_class_init): Add new property and signals.
8382         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
8383         (rb_play_orer_query_model_changed_cb),
8384         (rb_play_order_query_model_changed): 
8385         Use query model rather than entry view.
8386         (rb_play_order_set_property), (rb_play_order_get_property):
8387         Handle new playing-entry property.  Call playing_entry_changed virtual
8388         method so subclasses can do any processing required.
8389         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
8390         (rb_play_order_set_playing_entry):
8391         Just use the playing-entry property.
8392         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
8393         Utility methods for subclasses.
8394         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
8395         Update next/previous availability, check if the playing entry
8396         was removed.
8397         (default_playing_entry_removed):
8398         Keep the current behaviour of just stopping playback when the 
8399         playing entry is deleted.
8400         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
8401         these for subclasses that don't have go_next/go_previous, but do
8402         have get_next/get_previous.
8403         (rb_play_order_update_have_next_previous): Emit signal if the
8404         availability of next/previous entries has changed.
8406         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
8407         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
8408         Use G_DEFINE_TYPE, replace entry view iterator with query model 
8409         methods.
8410         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
8411         on the last song in the shuffled order, go back to the start. This
8412         means if you press 'play' again you'll get the whole order again, not
8413         just one song.
8415         * shell/rb-shell-player.c:
8416         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
8417         play order rather than the entry view.
8418         (rb_shell_player_set_property): Update the play order when the
8419         selected source changes and we aren't playing anything.
8420         (rb_shell_player_sync_play_order): Copy the playing entry across to
8421         the new play order so playback continues from the same song, and watch
8422         for updates to have_next/have_previous.
8423         (rb_shell_player_play_order_update_cb): Enable/disable the
8424         next/previous actions when next/previous entry availability changes.
8425         (rb_shell_player_jump_to_current): Just use the play order's idea of
8426         what's playing, not the entry view's; if not playing anything, clear
8427         the selection, so when a playlist ends and you hit play again, it'll
8428         start at the start rather than the end.
8429         (rb_shell_player_do_previous): restructure a bit.
8430         (rb_shell_player_do_next): restructure, jump to new playing entry in
8431         an idle handler instead of directly.
8432         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
8433         song if there is one.
8434         (rb_shell_player_playpause): Jump to playing song, don't update the
8435         play order if we got the song from the selection.
8436         (rb_shell_player_playing_entry_deleted_cb): Not needed.
8437         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
8438         looks after next/previous actions now.  Don't break if called while
8439         there is no selected source.
8440         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
8441         (rb_shell_player_set_playing_source_internal),
8442         (rb_shell_player_error): No need to track the attempted playing entry
8443         any more, since the play order does that.
8445         * shell/rb-shell.c:
8446         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
8447         rb_shell_player_get_playing_entry rather than going through the entry
8448         view.
8450         * shell/rb-statusbar.c (rb_statusbar_set_property),
8451         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
8452         than the entry view for status bar text changes.
8453         (rb_statusbar_sync_status): Ask the query model directly
8455         * sources/rb-source.{c}: Add query model property.
8456         (default_get_status): Get status text from query model, should be
8457         suitable for most sources.
8458         (rb_source_set_property): Listen for changes to the query model 
8459         to update the status text.
8460         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
8461         (idle_emit_status_changed): Emit status-changed signals when query
8462         model changes. 
8464         * sources/rb-library-source.c, sources/rb-podcast-source.c:
8465         (impl_get_status): Not needed, RBSource does this now
8466         (rb_library_source_do_query) (rb_podcast_source_do_query): 
8467         Update RBSource's query model reference.
8469         * sources/rb-playlist-source.c:
8470         Remove query-model property, since RBSource has one now
8471         (impl_get_status): Not needed, RBSource does this now
8472         (rb_playlist_source_row_deleted): Use query model iterator helper
8473         function.
8474         (rb_playlist_source_set_query_model): Update RBSource's query model
8475         reference too.
8477         * sources/rb-iradio-source.c:
8478         (impl_get_status): Ask the query model directly.
8479         (rb_iradio_source_do_query): Update RBSource's query model reference
8480         when we create a new query.
8482         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
8483         Use query model rather than entry view.
8485         * widgets/rb-entry-view.{c,h}: 
8486         Remove playing_entry_deleted signal (now in play order).
8487         (entry_from_tree_path), (entry_from_tree_iter): Not needed
8488          as RhythmDBQueryModel has equivalent helper functions.
8489         (rb_entry_view_*): Use query model helpers instead of the above two
8490         functions.
8492 2005-12-09  James Livingston  <jrl@ids.org.au>
8494         * configure.ac:
8495         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
8496         (rb_recorder_enabled):
8497         * shell/rb-removable-media-manager.c: (poll_tray_opened):
8498         * sources/rb-playlist-source-recorder.c:
8499         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
8500         whether libnautilusburn has the _drive_unref function, and if so use
8501         it. Stops it complaining about deprecated API.
8503 2005-12-09  James Livingston  <jrl@ids.org.au>
8505         * configure.ac: drop the minimum gstreamer version back down, it
8506         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
8508 2005-12-09  James Livingston  <jrl@ids.org.au>
8510         * widgets/rb-song-info.c: (rb_song_info_class_init),
8511         (rb_song_info_show), (rb_song_info_constructor),
8512         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
8513         (rb_song_info_forward_clicked_cb): save metadata changes when the
8514         Next/Previous buttons are pressed (closes bug 320952). use
8515         G_DEFINE_TYPE.
8517 2005-12-09  James Livingston  <jrl@ids.org.au>
8519         Patch by: <jonathan@kaolin.hn.org>
8521         * sources/rb-iradio-source.c:
8522         (stations_view_drag_data_received_cb):
8523         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
8524         of urls. Fixes bug 323610.
8526 2005-12-09  James Livingston  <jrl@ids.org.au>
8528          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
8529          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
8531         * configure.ac:
8532         * metadata/rb-metadata-gst.c:
8533         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
8534         (rb_player_construct), (rb_player_new):
8535         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
8536         (rb_recorder_gst_signal_error), (pipe_message),
8537         (rb_recorder_new_pad_cb), (rb_recorder_construct),
8538         (rb_recorder_new):
8539         * shell/main.c: (main):
8540         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
8541         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
8543 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
8545         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
8547         * shell/rb-playlist-manager.c:
8548           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
8549           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
8550           (rb_playlist_manager_set_automatic_playlist),
8551           (rb_playlist_manager_cmd_new_automatic_playlist),
8552           (rb_playlist_manager_cmd_edit_automatic_playlist):
8553            Use new playlist subclasses.
8554           (rb_playlist_manager_save_playlists): Only read the dirty flag
8555            for local playlists, minor pointless reformatting
8557         * sources/Makefile.am: add new files
8559         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
8560           split lots of stuff out into two
8561           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
8562           make RBPlaylistSource abstract, add virtual methods for showing a
8563           popup for the entry view and saving the playlist to XML.
8564           Other stuff is subclass-specific, or already virtual in RBSource.
8566         * sources/rb-playlist-xml: Define playlist XML tags and attributes
8567           in one place, since they're used across three source files now
8569         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
8570           Use new static playlist class
8572         * sources/rb-ipod-source.c: (add_rb_playlist):
8573           Use new static playlist class
8575         * sources/rb-static-playlist-source.{c,h},
8576         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
8577         files.
8579         * po/POTFILES.in: add new files
8581 2005-12-07  James Livingston  <jrl@ids.org.au>
8583         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
8584         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
8585         metadata loads not attempt to write changes to disk.
8587 2005-12-07  James Livingston  <jrl@ids.org.au>
8589         patch by: Alex Lancaster <alexl@users.sourceforge.net>
8591         * data/glade/song-info-multiple.glade:
8592         * widgets/rb-song-info.c: (rb_song_info_constructor),
8593         (rb_song_info_sync_entries_multiple): allow the year to be changed on
8594         multiple songs at once.
8596 2005-12-06  James Livingston  <jrl@ids.org.au>
8598         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
8599         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
8601 2005-12-06  James Livingston  <jrl@ids.org.au>
8603         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
8604         names rather than adding a horizontal scroll bar.
8606 2005-12-06  James Livingston  <jrl@ids.org.au>
8608         * rhythmdb/rhythmdb-query-model.c:
8609         (rhythmdb_query_model_update_limited_entries),
8610         (rhythmdb_query_model_drag_data_received): remove some pointless debug
8611         messages
8613         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
8614         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
8615         always hide rather than remove DB entries, which will make RB not lose
8616         information when tag editing happens or people move files to trash and
8617         then change their mind. Also fix some races where the monitoring code
8618         would notice the temporary files generated by saving metadata.
8620 2005-12-05  William Jon McCann  <mccann@jhu.edu>
8622         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
8623         Hide internals and add tooltips.
8624         (rb_song_display_box_size_allocate): Hide internals.
8625         (sanitize_string, info_url): Copied from rb-header.
8626         (rb_song_display_box_sync): New public function.
8628         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
8629         (rb_header_init): Use a separate row for the seek bar.
8630         (rb_header_finalize): Don't unref widgets.
8631         (rb_header_sync): Use rb_song_display_box_sync.
8632         (rb_header_set_urldata)
8633         (rb_header_set_show_artist_album): Hide instead of remove widgets.
8634         (rb_header_set_show_position_slider): Set visibility of seek bar.
8635         (rb_header_set_show_timeline): Set sensitivity of seek bar.
8636         (rb_header_get_elapsed_string): Don't shift when you first start playback.
8638         * shell/rb-statusbar.c (rb_statusbar_init)
8639         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
8641         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
8642         (rb_shell_constructor): Remove hseparator.  Monitor
8643         toolbar visibility settings.  Add toolbar.  Add
8644         volume button to toolbar.  Add tooltips for volume button.
8645         (rb_shell_view_toolbar_changed_cb) 
8646         (rb_shell_sync_toolbar_visibility)
8647         (toolbar_visibility_changed_cb): Set visibility of
8648         toolbar.
8649         (rb_shell_sync_smalldisplay): Set the toolbar style to
8650         icons only when in small display mode.
8651         (rb_shell_volume_widget_changed_cb): Save volume setting.
8653         * shell/rb-shell-player.c (rb_shell_player_constructor):
8654         Remove pause and stop actions.  Make play action "important"
8655         so that text is visible in horizontal toolbar position.
8656         Remove control buttons.
8657         (rb_shell_player_init) 
8658         (rb_shell_player_sync_song_position_slider_visibility):
8659         Set visbibility of seek bar.
8660         (rb_shell_player_cmd_play, rb_shell_player_playpause):
8661         Make play action a toggle.
8662         (rb_shell_player_sync_volume): Volume control moved
8663         to player.
8664         (gconf_song_position_slider_visibility_changed):
8665         Set visbibility of seek bar.
8666         (rb_shell_player_sync_buttons):
8667         Set sensitivity of actions instead of buttons.
8668         (rb_shell_player_playing_changed_cb): Add callback
8669         for player notify::playing changes.
8671         * lib/rb-preferences.h: Add hide toolbar and seek
8672         bar key names.
8674         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
8675         seek bar menu items.  Remove pause and stop actions
8676         from the control menu.  Add a toolbar.
8678         * data/rhythmbox.schemas: Add toolbar_hidden
8679         song_position_slider_hidden keys.
8681         Patch by: James Livingston  <jrl@ids.org.au>
8682                   William Jon McCann  <mccann@jhu.edu>
8683         Fixes #316238.
8685 2005-12-05  James Livingston  <jrl@ids.org.au>
8687         * data/glade/library-prefs.glade:
8688         * data/rhythmbox.schemas:
8689         * lib/rb-preferences.h:
8690         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
8691         (rhythmdb_sync_library_location):
8692         * sources/rb-library-source.c: (rb_library_source_class_init),
8693         (rb_library_source_finalize), (rb_library_source_constructor),
8694         (impl_get_config_widget), (rb_library_source_preferences_sync),
8695         (rb_library_source_watch_toggled_cb): allow people to disable library
8696         monitoring, because with nothing set the file chooser button selects
8697         the Home folder (and hence that will get monitored).
8699 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
8701         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
8702         attempt to fix problem with RSS parsing showing invalid feed types.
8703         Fixes bug 323153
8705 2005-12-04  James Livingston  <jrl@ids.org.au>
8707         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
8708         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
8709         importing a remote directory not block the UI.
8711 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
8713         * data/glade/podcast-feed-properties.glade:
8714         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
8716 2005-12-04  James Livingston  <jrl@ids.org.au>
8718         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
8720         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
8721         to && to fix a mistake in the earlier podcast patch.
8723 2005-12-03  James Livingston  <jrl@ids.org.au>
8725         * data/glade/podcast-new.glade:
8726         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
8727         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
8729         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
8730         GValue, which stops occasional errors.
8732         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
8733         compile issue.
8735 2005-12-03  James Livingston  <jrl@ids.org.au>
8737         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
8739         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
8740         crasher with some podcasts feeds.
8742 2005-12-03  James Livingston  <jrl@ids.org.au>
8744         * data/rhythmbox.schemas: fix the gconf schema
8746 2005-12-03  James Livingston  <jrl@ids.org.au>
8748         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
8749         add a selection timeout to the sourcelist. This lets you hold a track
8750         over the playlist source, and then have the view switch so you can
8751         insert the track in the middle of the playlist. Closes bug 323044.
8753         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
8754         (select_on_drag_timeout), (remove_select_on_drag_timeout),
8755         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
8756         (rb_tree_dnd_add_drag_dest_support):
8757         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
8758         timeout.
8760         * sources/rb-sourcelist-model.c:
8761         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
8762         the source list.
8764 2005-12-02  Bastien Nocera  <hadess@hadess.net>
8766         * data/glade/audioscrobbler-prefs.glade: add a space before the web
8767         links, so that the text doesn't touch the button
8769 2005-12-02  James Livingston  <jrl@ids.org.au>
8771         Add full support for gnome-vfs remote files. Closes bug 140355.
8773         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
8774         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
8775         for authentication information from the user doesn't block the UI.
8777         (rhythmdb_entry_set_visibility): don't emit the signal twice.
8779         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
8780         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
8781         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
8782         (rhythmdb_process_stat_event), (emit_load_error_idle),
8783         (rhythmdb_process_metadata_load),
8784         (rhythmdb_process_queued_entry_set_event),
8785         (rhythmdb_process_file_created_or_modified),
8786         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
8787         (queue_stat_uri), (add_thread_main),
8788         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
8789         (rhythmdb_load), (rhythmdb_save_thread_main),
8790         (threadsafe_entry_set), (rhythmdb_query_internal),
8791         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
8792         (rhythmdb_do_full_query_internal),
8793         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
8794         (rhythmdb_volume_unmounted_cb),
8795         (rhythmdb_check_changed_file): trivial changes to support the
8796         asynchronous stats.
8798         * shell/main.c: (main): activate the authentication manager.
8800         * shell/rb-playlist-manager.c:
8801         (rb_playlist_manager_cmd_load_playlist),
8802         (rb_playlist_manager_cmd_save_playlist):
8803         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
8804         (rb_shell_cmd_add_file_to_library):
8805         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
8806         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
8807         remote files.
8809 2005-12-02  James Livingston  <jrl@ids.org.au>
8811         * shell/rb-playlist-manager.c: makes playlist menu items use the
8812         elipses correctly. Fixes bug 322283.
8814 2005-12-02  James Livingston  <jrl@ids.org.au>
8816         * shell/rb-playlist-manager.c:
8817         (rb_playlist_manager_load_playlists): fix silly mistake
8819 2005-12-02  James Livingston  <jrl@ids.org.au>
8821         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
8822         print out metadata-write unless --debug was passed.
8824         * rhythmdb/rhythmdb.c: (rhythmdb_load):
8825         * shell/rb-playlist-manager.c:
8826         (rb_playlist_manager_load_playlists): block writes to disk if they are
8827         still being loaded.
8829 2005-12-02  James Livingston  <jrl@ids.org.au>
8831         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
8832         ctrl-T, because Ctrl-D is used by "small mode"
8834 2005-12-02  James Livingston  <jrl@ids.org.au>
8836         * shell/rb-shell-preferences.c:
8837         (rb_shell_preferences_append_view_page):
8838         * sources/rb-library-source.c: (impl_get_config_widget):
8839         * sources/rb-podcast-source.c: (impl_get_config_widget):
8840         * sources/rb-source.c: (rb_source_get_config_widget):
8841         * sources/rb-source.h: Make the preference actually work.
8843         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
8844         if Rhythmbox is being run for the first time.
8846 2005-12-02  James Livingston  <jrl@ids.org.au>
8848         Add support for Rhythmbox to watch your library, and automatically add
8849         new tracks. Fixes bug 160159.
8851         * data/glade/library-prefs.glade: add "library location" preference
8852         * data/rhythmbox.schemas: add gconf key for the library location
8854         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
8855         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
8856         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
8857         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
8858         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
8859         (rhythmdb_load_thread_main), (rhythmdb_load),
8860         (monitor_subdirectory), (monitor_library_directory),
8861         (monitor_entry_file), (rhythmdb_sync_library_location),
8862         (library_location_changed_cb), (rhythmdb_check_changed_file),
8863         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
8864         specifiec in the gconf key for new additions. Also fix monitoring code
8865         so that it works properly, and notices deletions.
8867         * lib/rb-preferences.h:
8868         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
8869         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
8870         * shell/rb-audioscrobbler.h:
8871         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
8872         (rb_shell_preferences_append_view_page),
8873         (rb_shell_preferences_new):
8874         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
8875         it's preferences pane, so that we don't need #ifdef's through
8876         rb-shell-preferences.
8878         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
8879         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
8880         "preferences" property, so that sources can acccess it. This is needed
8881         because the library location pref needs to take effect when the window
8882         is closed.
8884         * sources/rb-library-source.c:
8885         (rb_library_source_library_location_changed),
8886         (rb_library_source_dispose), (rb_library_source_finalize),
8887         (rb_library_source_constructor), (impl_get_config_widget),
8888         (rb_library_source_preferences_sync),
8889         (rb_library_source_process_library_location_change),
8890         (rb_library_source_prefs_update),
8891         (rb_library_source_process_library_handle_selection),
8892         (rb_library_source_library_location_cb): set up and control the
8893         "library location" preference.
8895         * sources/rb-audiocd-source.c:(rb_source_class_init):
8896         * sources/rb-source.c: (rb_source_class_init): remove some pointless
8897         code.
8899 2005-12-01  William Jon McCann  <mccann@jhu.edu>
8901         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
8902         (rb_feed_podcast_properties_dialog_update_title): 
8903         * data/glade/podcast-feed-properties.glade:
8904         Make the feed properties dialog consistent with the podcast
8905         properties dialog.
8907 2005-12-01  William Jon McCann  <mccann@jhu.edu>
8909         * metadata/.cvsignore: 
8910         * po/.cvsignore: 
8911         * podcast/.cvsignore: Updated.
8913         * shell/main.c (main): Support DBus 0.6 flags.
8915 2005-11-30  Bastien Nocera  <hadess@hadess.net>
8917         * data/ui/rhythmbox-ui.xml:
8918         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
8919         (rhythmbd_entry_move_to_trash_set_error),
8920         (rhythmdb_entry_move_to_trash):
8921         * rhythmdb/rhythmdb.h:
8922         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
8923         (rb_shell_clipboard_cmd_delete),
8924         (rb_shell_clipboard_cmd_move_to_trash):
8925         * sources/rb-library-source.c: (rb_library_source_class_init),
8926         (impl_delete), (impl_move_to_trash):
8927         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
8928         (impl_delete), (impl_move_to_trash):
8929         * sources/rb-removable-media-source.c:
8930         (rb_removable_media_source_class_init):
8931         * sources/rb-source.c: (rb_source_class_init),
8932         (rb_source_can_move_to_trash), (rb_source_delete),
8933         (rb_source_move_to_trash):
8934         * sources/rb-source.h:
8935         Add move_to_trash member for the sources, implement move to trash for
8936         the library and playlists
8937         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
8938         local files to the trash, and deleting them from the database
8939         (Closes: #315389)
8941 2005-11-30  William Jon McCann  <mccann@jhu.edu>
8943         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
8944         (rb_tray_icon_init, rb_tray_icon_finalize): 
8945         * shell/rb-statusbar.c (rb_statusbar_class_init) 
8946         (rb_statusbar_init, rb_statusbar_finalize): 
8947         * shell/rb-source-header.c (rb_source_header_class_init) 
8948         (rb_source_header_init, rb_source_header_finalize): 
8949         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
8950         (rb_shell_finalize): 
8951         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
8952         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
8953         * shell/rb-shell-player.c (rb_shell_player_class_init) 
8954         (rb_shell_player_init, rb_shell_player_finalize): 
8955         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
8956         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
8957         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
8958         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
8959         * shell/rb-play-order.c (rb_play_order_class_init) 
8960         (rb_play_order_init, rb_play_order_finalize): 
8961         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
8962         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
8963         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
8964         (rb_random_play_order_init, rb_random_play_order_finalize): 
8965         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
8966         (rb_history_finalize): 
8967         * shell/rb-commander.c (rb_commander_class_init) 
8968         (rb_commander_init, rb_commander_finalize): 
8969         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
8970         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
8971         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
8972         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
8973         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
8974         (rb_podcast_properties_dialog_init) 
8975         (rb_podcast_properties_dialog_finalize): 
8976         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
8977         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
8978         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
8979         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
8980         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
8981         (rb_feed_podcast_properties_dialog_init) 
8982         (rb_feed_podcast_properties_dialog_finalize): 
8983         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
8984         (rb_metadata_init, rb_metadata_finalize): 
8985         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
8986         (rb_station_properties_dialog_init) 
8987         (rb_station_properties_dialog_finalize): 
8988         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
8989         (rb_daap_share_init, rb_daap_share_dispose): 
8991         Use g_type_class_add_private in all classes. Closes bug 313688.
8992         
8993 2005-11-30  James Livingston  <jrl@ids.org.au>
8995         patch by: William Jon McCann <mccann@jhu.edu> to use
8996         g_type_class_add_private in all classes. Closes bug 313688.
8998         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
8999         (rb_thread_finalize):
9000         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
9001         (rb_player_finalize):
9002         * rhythmdb/rhythmdb-property-model.c:
9003         (rhythmdb_property_model_class_init),
9004         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
9005         * rhythmdb/rhythmdb-query-model.c:
9006         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
9007         (rhythmdb_query_model_finalize):
9008         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
9009         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
9010         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
9011         (rhythmdb_finalize):
9012         * sources/rb-daap-source.c: (rb_daap_source_class_init),
9013         (rb_daap_source_init), (rb_daap_source_dispose):
9014         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
9015         (rb_iradio_source_init), (rb_iradio_source_finalize):
9016         * sources/rb-library-source.c: (rb_library_source_class_init),
9017         (rb_library_source_init), (rb_library_source_finalize):
9018         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
9019         (rb_playlist_source_init), (rb_playlist_source_dispose):
9020         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
9021         (rb_podcast_source_init), (rb_podcast_source_finalize):
9022         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
9023         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
9024         * sources/rb-sourcelist-model.h:
9025         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
9026         (rb_sourcelist_init), (rb_sourcelist_finalize):
9027         * sources/rb-sourcelist.h:
9028         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
9029         * widgets/rb-cell-renderer-rating.c:
9030         (rb_cell_renderer_rating_init),
9031         (rb_cell_renderer_rating_class_init),
9032         (rb_cell_renderer_rating_finalize):
9033         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
9034         (rb_druid_finalize):
9035         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
9036         (rb_entry_view_init), (rb_entry_view_finalize):
9037         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
9038         (rb_header_finalize):
9039         * widgets/rb-load-failure-dialog.c:
9040         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
9041         (rb_load_failure_dialog_finalize):
9042         * widgets/rb-property-view.c: (rb_property_view_class_init),
9043         (rb_property_view_init), (rb_property_view_finalize):
9044         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
9045         (rb_rating_finalize):
9046         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
9047         (rb_search_entry_init), (rb_search_entry_finalize):
9048         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
9049         (rb_simple_view_init), (rb_simple_view_finalize):
9050         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
9051         (rb_song_display_box_init), (rb_song_display_box_finalize):
9052         * widgets/rb-song-info.c: (rb_song_info_class_init),
9053         (rb_song_info_init), (rb_song_info_finalize):
9054         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
9055         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
9057 2005-11-30  James Livingston  <jrl@ids.org.au>
9059         * iradio/rb-station-properties-dialog.c:
9060         (rb_station_properties_dialog_init),
9061         (rb_station_properties_dialog_new):
9062         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
9063         * lib/rb-glade-helpers.h:
9064         * podcast/rb-feed-podcast-properties-dialog.c:
9065         (rb_feed_podcast_properties_dialog_init),
9066         (rb_feed_podcast_properties_dialog_new):
9067         * podcast/rb-podcast-properties-dialog.c:
9068         (rb_podcast_properties_dialog_init),
9069         (rb_podcast_properties_dialog_new):
9070         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
9071         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
9072         * sources/rb-library-source.c: (impl_get_config_widget):
9073         * sources/rb-playlist-source-recorder.c:
9074         (rb_playlist_source_recorder_init):
9075         * widgets/rb-song-info.c: (rb_song_info_construct_single),
9076         (rb_song_info_constructor): create a single rb_glade_boldify_label()
9077         in rb-glade-helpers, rather than having eight implementation
9078         throughout the code.
9080 2005-11-30  James Livingston  <jrl@ids.org.au>
9082         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
9083         * lib/rb-util.h:
9084         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
9085         move the duration->string function into rb-utils, as it gets used in a
9086         few places.
9088         patch by: William Jon McCann <mccann@jhu.edu>
9090         * data/glade/podcast-properties.glade:
9091         * podcast/rb-podcast-properties-dialog.c:
9092         (rb_podcast_properties_dialog_init),
9093         (rb_podcast_properties_dialog_update),
9094         (rb_podcast_properties_dialog_update_title),
9095         (rb_podcast_properties_dialog_update_feed),
9096         (rb_podcast_properties_dialog_update_duration),
9097         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
9098         info dialog look more like the song info dialog. Use the same "Feed"
9099         value that is displayed in the treeview (ie. the album field), displays
9100         the duration, uses units in the bitrate field, and sort the fields in
9101         the same order.
9103 2005-11-29  James Livingston  <jrl@ids.org.au>
9105         * rhythmdb/rhythmdb-marshal.list:
9106         * rhythmdb/rhythmdb.h:
9107         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
9108         (emit_load_error_idle), (rhythmdb_process_metadata_load),
9109         (entry_to_rb_metadata), (emit_save_error_idle),
9110         (action_thread_main): emit error signal when metadata write fails.
9112         * shell/rb-shell.c: (rb_shell_constructor),
9113         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
9114         "metadata save" error and display it to the user.
9116 2005-11-29  James Livingston  <jrl@ids.org.au>
9118         * data/ui/rhythmbox-ui.xml:
9119         * sources/rb-podcast-source.c:
9120         (rb_podcast_source_songs_show_popup_cb),
9121         (rb_podcast_source_cmd_download_post),
9122         (rb_podcast_source_cmd_cancel_download): split download and cancel
9123         download commands. Replace usage of "Post" with "Esisode". Fixes bug
9124         321653.
9126 2005-11-18  William Jon McCann  <mccann@jhu.edu>
9128         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
9129         title on alert dialogs per the HIG.
9131         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
9132         the term Burn.
9133         (free_song_list): Routine to free song list.
9134         (rb_playlist_source_recorder_finalize): Use free_song_list.
9135         (rb_playlist_source_recorder_add_from_model): Return FALSE
9136         if unable to add all songs.  Check that duration of all
9137         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
9138         Fixes #321753.
9140         * sources/rb-playlist-source-recorder.c (check_media_length)
9141         (rb_playlist_source_recorder_start): Only check the duration
9142         and current media if the playlist length is longer than a
9143         standard CD (74 min).  Otherwise, just let the Recorder do the
9144         check.
9145         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
9146         drive at init.
9147         (rb_recorder_set_device): Don't leak drives.
9148         (rb_recorder_get_media_length): Use drive that was already set.
9149         (rb_recorder_burn): Let the recorder handle checking media type/size.
9150         Fixes bug 321754.
9152 2005-11-29  James Livingston  <jrl@ids.org.au>
9154         * rhythmdb/rhythmdb-query-model.c:
9155         (rhythmdb_query_model_set_sort_order):
9156         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
9157         emitting the tree-model "resorted" signal.
9159         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
9160         (rb_entry_view_finalize), (rb_entry_view_set_property),
9161         (rb_entry_view_constructor), (rb_entry_view_resort_model):
9162         * widgets/rb-entry-view.h: add a function to resort the entry view,
9163         using the above function.
9165         * sources/rb-iradio-source.c:
9166         (rb_iradio_source_songs_view_sort_order_changed_cb):
9167         * sources/rb-library-source.c: (rb_library_source_finalize),
9168         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
9169         * sources/rb-playlist-source.c:
9170         (rb_playlist_source_songs_sort_order_changed_cb):
9171         * sources/rb-podcast-source.c:
9172         (rb_podcast_source_posts_view_sort_order_changed_cb),
9173         (rb_podcast_source_do_query): use the above function instead of
9174         re-creating the query model. This makes changing the sorting an order
9175         of magnitude faster, as it uses a single resorted signal rather than
9176         deleting and re-adding everything (which emits 2N signals). Closes bug
9177         315389.
9179 2005-11-29  James Livingston  <jrl@ids.org.au>
9181         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
9182         autosizing, which results in large speedups. Closes bug 312122.
9184         * po/ja.po: change the date format, so that it is a constant width
9186         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9187         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
9188         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
9189         (rb_entry_view_constructor): make columns use fixed widths,
9190         disable column autosizing, and enable fixed-height mode.
9192         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
9193         (rb_entry_view_get_time_date_column_sample):
9194         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
9195         and get the canonical date format for the locale.
9197 ============ Version 0.9.2
9199 2005-11-28  James Livingston  <jrl@ids.org.au>
9201         * configure.ac: bump version to 0.9.2
9202         * NEWS: update with changes for 0.9.2
9204 2005-11-28  James Livingston  <jrl@ids.org.au>
9206         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9208         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
9209         Disable saving, renaming and delting for DAAP playlists.
9210         Fixes bug 322627.
9212 2005-11-28  James Livingston  <jrl@ids.org.au>
9214         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
9215         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
9216         prevent bug 322619.
9218         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
9219         * sources/rb-removable-media-source.c:
9220         (rb_removable_media_source_class_init): fix ipod browser visibility
9221         problem.
9223 2005-11-28  James Livingston  <jrl@ids.org.au>
9225         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
9226         Avahi 0.6 support actually work. Fixes bug 322519.
9228 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
9230         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
9231         avahi is specified in --with-mdns
9233 2005-11-27  James Livingston  <jrl@ids.org.au>
9235         patch by: Bastien Nocera <hadess@hadess.net>
9237         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
9238         not the private one. Fixes bug 322485.
9240 2005-11-26  James Livingston  <jrl@ids.org.au>
9242         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
9243         Avahi 0.6, as well as 0.5.
9245         * configure.ac:
9246         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
9247         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
9248         (add_service):
9250 2005-11-25  James Livingston  <jrl@ids.org.au>
9252         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
9253         321926.
9255 2005-11-25  James Livingston  <jrl@ids.org.au>
9257         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
9258         correct type for checking the date against 0. Stops a warning when
9259         saving metadata.
9261 2005-11-25  James Livingston  <jrl@ids.org.au>
9263         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
9264         adjustment to be inside the element's limits. Without this songs that
9265         have large ReplayGain values will recieve no increase because they are
9266         outside the acceptable range, causing them to remain quiet.
9268 2005-11-25  James Livingston  <jrl@ids.org.au>
9270         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
9271         * sources/rb-daap-source.c: (rb_daap_source_class_init):
9272         * sources/rb-ipod-source.c:
9273         * sources/rb-source.h:
9274         * sources/rb-library-source.h:
9275         * sources/rb-library-source.c: (rb_library_source_class_init),
9276         (rb_library_source_constructor),
9277         (rb_library_source_has_first_added_column),
9278         (rb_library_source_has_drop_support):
9279         * sources/rb-removable-media-source.c:
9280         (rb_removable_media_source_class_init): Make library-derived sources
9281         not show the Date Added column, as it doesn't make sense. Fixes bug
9282         322269.
9283         Move some of the feature funcs from the ipod and audio cd sources up to
9284         the removable media source.
9286 2005-11-24  James Livingston  <jrl@ids.org.au>
9288         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
9289         errors. oops.
9291 2005-11-24  James Livingston  <jrl@ids.org.au>
9293         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
9294         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
9295         (rb_iradio_source_constructor): Chain up dispose method and use
9296         G_DEFINE_TYPE
9298 2005-11-24  James Livingston  <jrl@ids.org.au>
9300         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
9301         mistake in the last commit that can cause crashes.
9303 2005-11-24  James Livingston  <jrl@ids.org.au>
9305         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
9306         instead of g_printerr.
9308         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
9309         rb_debug instead of g_warning. The message happens every time for
9310         removable media/daap shares, so it's not unusual.
9312 2005-11-24  James Livingston  <jrl@ids.org.au>
9314         patch by: Tom Parker <palfrey@tevp.net>
9316         * configure.ac: fix libsoup test for enabling daap
9318 2005-11-23  James Livingston  <jrl@ids.org.au>
9320         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
9321         (rb_query_creator_init), (rb_query_creator_constructor),
9322         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
9323         empty row to queries with no criteria. Fixes bug 322078. use
9324         G_DEFINE_TYPE.
9326 2005-11-23  James Livingston  <jrl@ids.org.au>
9328         patch by:  <baptiste.millemathias@gmail.com>
9330         * help/C/quick-reference.xml: update the quick reference to have the
9331         correct key bindings.
9333 2005-11-22  James Livingston  <jrl@ids.org.au>
9335         * sources/rb-library-source.c: (genres_selection_reset_cb),
9336         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
9337         reset the query when all browser selections are removed.
9339 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
9341         * podcast/rb-podcast-manager.c:
9342         (rb_podcast_manager_db_entry_deleted_cb):
9343         Use a custom loop to remove podcast posts, rather than
9344         gtk_tree_model_foreach(), as deleting the entries within
9345         that loop causes the iterator to return the first entry
9346         twice.  Instead, we need to find the next entry before
9347         removing the current one. Fixes bug 321956.
9348         (rb_podcast_manager_entry_remove_cb): No longer needed.
9350 2005-11-22  James Livingston  <jrl@ids.org.au>
9352         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
9353         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
9354         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
9356 2005-11-22  James Livingston  <jrl@ids.org.au>
9358         * sources/rb-podcast-source.c:
9359         (rb_podcast_source_post_date_cell_sort_func),
9360         (rb_podcast_source_post_status_cell_sort_func),
9361         (rb_podcast_source_post_feed_cell_sort_func):
9362         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
9363         (rb_entry_view_album_sort_func),
9364         (rb_entry_view_double_ceiling_sort_func),
9365         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
9366         the entry's location as a last resort when sorting, so the sort order
9367         is stable. This will stop entries moving around when two entries have
9368         the same sorting, and one of them gets played.
9370 2005-11-22  James Livingston  <jrl@ids.org.au>
9372         * daapsharing/rb-daap-connection.c:
9373         (rb_daap_connection_class_init), (rb_daap_connection_init),
9374         (connection_get_password), (build_message),
9375         (http_response_handler), (http_get), (handle_server_info),
9376         (handle_login), (handle_update), (handle_database_info),
9377         (handle_song_listing), (handle_playlists),
9378         (handle_playlist_entries), (rb_daap_connection_new),
9379         (rb_daap_connection_constructor), (rb_daap_connection_logout),
9380         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
9381         (rb_daap_connection_get_headers),
9382         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
9383         (rb_daap_connection_set_property),
9384         (rb_daap_connection_get_property):
9385         * daapsharing/rb-daap-connection.h:
9386         * sources/rb-daap-source.c: (rb_daap_source_dispose),
9387         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
9388         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
9389         of destroying the object when it is going to be used by a callback and
9390         fixes a double-free. Fixes bugs 321930 and 322007.
9392 2005-11-22  James Livingston  <jrl@ids.org.au>
9394         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
9395         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
9396         notification if there aren't any. Fixes bug 321968.
9398 2005-11-22  James Livingston  <jrl@ids.org.au>
9400         * rhythmdb/rhythmdb-property-model.c:
9401         (rhythmdb_property_model_set_property),
9402         (rhythmdb_property_model_finalize),
9403         (rhythmdb_property_model_compare),
9404         (rhythmdb_property_model_insert),
9405         (rhythmdb_property_model_delete_prop): Fix property model sorting
9406         where the display and sort keys are different. Fixes bug 321980.
9408 2005-11-22  James Livingston  <jrl@ids.org.au>
9410         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
9411         when import as a file or passed on the command line, and load them as
9412         playlists.
9414 2005-11-22  James Livingston  <jrl@ids.org.au>
9416         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
9418         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
9419         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
9420         a broken daap server. Fixes bug 321919.
9422 2005-11-22  James Livingston  <jrl@ids.org.au>
9424         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
9425         drag-and-drop for both the episodes and feeds list.
9426         
9427         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
9428         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
9429         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
9431         * widgets/rb-property-view.c: (rb_property_view_class_init),
9432         (rb_property_view_set_property), (rb_property_view_get_property),
9433         (rb_property_view_new), (rb_property_view_constructor):
9434         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
9435         (rb_simple_view_new), (rb_simple_view_constructor):
9436         * widgets/rb-simple-view.h: add a "draggable" property to property
9437         views and set it to false for the feed list. Fixes bug 321284.
9439 2005-11-22  James Livingston  <jrl@ids.org.au>
9441         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
9443         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
9444         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
9445         * sources/rb-ipod-source.c: (add_rb_playlist):
9446         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
9447         (rb_playlist_source_set_property),
9448         (rb_playlist_source_get_property), (rb_playlist_source_new),
9449         (impl_receive_drag), (rb_playlist_source_add_location),
9450         (rb_playlist_source_new_from_xml):
9451         * sources/rb-playlist-source.h: give playlists and (optional)
9452         entry-type, and reject entries that don't match. Fixes bug 322006.
9454 2005-11-21  James Livingston  <jrl@ids.org.au>
9456         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
9457         (rb_source_header_finalize): remove the weak references when the
9458         source header is finalised. Stops the callbacks being called after the
9459         object is destroyed.
9461 2005-11-21  James Livingston  <jrl@ids.org.au>
9463         * shell/main.c: (main): don't try to acquite bonobo/dbus when
9464         --no-registration was passed. It causes warnings that make it
9465         impossible to run with --no-registration --g-fatal-warnings
9467 2005-11-21  James Livingston  <jrl@ids.org.au>
9469         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
9470         of strings when they are still in use. Fixes bug 321547.
9472         (rb_daap_connection_destroy): fix memory leak
9474 2005-11-21  James Livingston  <jrl@ids.org.au>
9476         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
9477         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
9478         (rb_daap_mdns_resolve_cancel), (publish_cb),
9479         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
9480         support.
9482 2005-11-21  James Livingston  <jrl@ids.org.au>
9484         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
9485         sorting by genre
9487 2005-11-20  James Livingston  <jrl@ids.org.au>
9489         * podcast/rb-podcast-manager.c:
9490         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
9491         that we don't leak thread structures. Fixes bug 321636, and probably
9492         321775.
9494 2005-11-20  James Livingston  <jrl@ids.org.au>
9496         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
9497         (lookup_cd):
9498         * podcast/rb-podcast-manager.c: (start_job),
9499         (rb_podcast_manager_db_entry_deleted_cb),
9500         (rb_podcast_manager_entry_remove_cb):
9501         * podcast/rb-podcast-parse.c: (rb_insert_item),
9502         (rb_podcast_parse_load_feed):
9503         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
9504         * shell/rb-removable-media-manager.c:
9505         (rb_removable_media_manager_append_media_source):
9506         * shell/rb-shell.c: (add_to_library_response_cb):
9507         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
9508         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
9509         * sources/rb-iradio-source.c:
9510         (stations_view_drag_data_received_cb):
9511         * sources/rb-library-source.c: (string_list_equal),
9512         (impl_get_extra_views), (impl_receive_drag):
9513         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
9514         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
9515         (impl_receive_drag):
9516         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
9517         (rb_entry_view_append_column_custom), (harvest_entries):
9518         * widgets/rb-property-view.c:
9519         (rb_property_view_selection_changed_cb):
9520         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
9521         switch from using g_list_append to g_list_prepend. This changes
9522         operations from O(n^2) to O(n), which in cases like deleting a lot of
9523         tracks can give huge improvements in speed. Closes bug 321696.
9525 2005-11-20  James Livingston  <jrl@ids.org.au>
9527         * sources/rb-sourcelist.c: (rb_sourcelist_init),
9528         (rb_sourcelist_update_expander_visibility): fix indenting of child
9529         sources.
9531 2005-11-20  James Livingston  <jrl@ids.org.au>
9533         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
9534         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
9535         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
9536         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
9537         (add_service), (entry_group_cb): dynamically allocate memory, rather
9538         than using static variables.
9540         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
9541         re-enable the daap share if the name hasn't changed.
9542         * shell/rb-shell-preferences.c:
9543         (share_name_entry_focus_out_event_cb): don't ask the daap share to
9544         change it's name when the checkbox is disabled. Fixed bug 321748.
9546 2005-11-18  James Livingston  <jrl@ids.org.au>
9548         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
9549         as hidden if it is on the current workspace.
9551 2005-11-17  William Jon McCann  <mccann@jhu.edu>
9553         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
9554         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
9555         (rb_podcast_properties_dialog_parse_time): 
9556         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
9557         (rb_feed_podcast_properties_dialog_parse_time):
9558         Rework the way the last mod time strings are created.  It was using
9559         thread unsafe functions, not creating value UTF, and not not checking
9560         the value of the result before modifying it.  This new method fixes
9561         these problems.
9563 2005-11-18  James Livingston  <jrl@ids.org.au>
9565         Don't reset the search box when viewing a different source, because it
9566         will change what is being played. Closes 321593.
9568         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
9569         the search box
9571         * shell/rb-source-header.c: (rb_source_header_class_init),
9572         (rb_source_header_init), (rb_source_header_finalize): use
9573         G_DEFINE_TYPE.
9575         (rb_source_header_set_property),
9576         (rb_source_header_source_weak_destroy_cb),
9577         (rb_source_header_search_cb): store the search text when leaving a
9578         source and put it in the search box when viewing it again.
9580 2005-11-18  James Livingston  <jrl@ids.org.au>
9582         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9583         (save_entry):
9584         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
9585         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
9586         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
9587         time stamp.
9589         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
9590         last-seen as the timestamp of the last update of the feed. Don't
9591         re-add episodes that have been deleted. Closes 319759.
9593 2005-11-18  James Livingston  <jrl@ids.org.au>
9595         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
9596         that don't have the day name at the start. Closes 321645.
9598 2005-11-18  James Livingston  <jrl@ids.org.au>
9600         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
9601         (rb_podcast_manager_copy_post),
9602         (rb_podcast_manager_get_podcast_dir):
9603         * podcast/rb-podcast-manager.h:
9604         * sources/rb-podcast-source.c: (impl_get_config_widget),
9605         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
9606         download location switching to / if the prefs were opened before
9607         downloading an episode. Closes 321611.
9609 2005-11-18  James Livingston  <jrl@ids.org.au>
9611         * data/glade/podcast-new.glade:
9612         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
9613         (rb_new_podcast_dialog_set_property),
9614         (rb_new_podcast_dialog_get_property),
9615         (rb_new_podcast_dialog_response_cb),
9616         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
9617         for entering new podcast urls in. Closes bug 321610.
9619 2005-11-18  James Livingston  <jrl@ids.org.au>
9621         * sources/rb-podcast-source.c: (construct_query_from_selection),
9622         (rb_podcast_source_do_query): allow podcast list to be re-sorted
9623         without restarting RB. Closes bug 321612.
9625 2005-11-18  James Livingston  <jrl@ids.org.au>
9627         * widgets/rb-entry-view.c: (set_column_visibility),
9628         (rb_entry_view_sync_columns_visible): when changing visibility of one
9629         column, don't hide and re-show all the others. Makes a show/hide
9630         column operation a lot faster.
9632 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
9634         Closes bug 321702.
9636         * iradio/rb-station-properties-dialog.c
9637          (rb_station_properties_dialog_update_bitrate):
9638         Mark the bitrate value as being kbps, using the same
9639         translatable format string as rb-song-info.c
9641         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
9642          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
9644         * shell/rb-shell-player.c (info_available_cb):
9645          Use RB_METADATA_FIELD_BITRATE to update the iradio
9646          station's bitrate value.
9648 2005-11-17  James Livingston  <jrl@ids.org.au>
9650         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
9652         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
9653         free a NULL date.
9655 2005-11-17  James Livingston  <jrl@ids.org.au>
9657         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
9659         * lib/rb-stock-icons.c: emit a single warning rather than multiple
9660         assertions. Lookup the icon size correctly.
9662 2005-11-16  William Jon McCann  <mccann@jhu.edu>
9664         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
9665         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
9666         Fix build errors.
9668 2005-11-16  James Livingston  <jrl@ids.org.au>
9670         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
9671         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
9672         (rb_shell_preferences_sync_column_button): block the toggle signal of
9673         the column checkboxes while setting their initial state. This stops
9674         the visibility being re-set, which causes a lot of time being spent
9675         measuring the columns aagin when opening the prefs window.
9677         Use G_DEFINE_TYPE.
9679 2005-11-16  James Livingston  <jrl@ids.org.au>
9681         * sources/rb-sourcelist.c: (rb_sourcelist_init),
9682         (rb_sourcelist_edit_source_name): don't assume that the editable
9683         source name is in the first column, because it isn't. Fixes bug
9684         320137.
9686 2005-11-16  James Livingston  <jrl@ids.org.au>
9688         * daapsharing/rb-daap-mdns.h:
9689         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
9690         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
9691         parts can know why operations failed. Avahi can report that the daemon
9692         was not running. Howl doesn't do this (yet).
9693         
9694         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
9695         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
9696         (browse_cb): don't display mdns errors to the user, if it wa because
9697         the daemon was not running.
9699 2005-11-16  James Livingston  <jrl@ids.org.au>
9701         * rhythmdb/rhythmdb-property-model.c:
9702         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
9703         (rhythmdb_property_model_compare),
9704         (rhythmdb_property_model_insert),
9705         (rhythmdb_property_model_insert_prop),
9706         (rhythmdb_property_model_delete),
9707         (rhythmdb_property_model_delete_prop),
9708         (rhythmdb_property_model_get_value): use RBRefStrings rather than
9709         copying the string and re-creating the sort key. Saves a little bit of
9710         memory and time.
9712         (rhythmdb_property_model_perform_sync),
9713         (rhythmdb_property_model_sync): perform the count sync in an idle
9714         callback, so that it doesn't have to be re-run once per value when
9715         loading.
9717 2005-11-16  James Livingston  <jrl@ids.org.au>
9719         * rhythmdb/rhythmdb-query-model.c:
9720         (rhythmdb_query_model_entry_deleted_cb),
9721         (rhythmdb_query_model_remove_entry): remove deleted entries from the
9722         limited list. Stops problems if they are deleted, and then things on
9723         the main list are
9725 2005-11-16  James Livingston  <jrl@ids.org.au>
9727         * NEWS: update NEWS
9729         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
9730         button's minimise-to-tray action
9732 2005-11-16  James Livingston  <jrl@ids.org.au>
9734         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
9735         leak. Disable adding newly created files for now, because it doesn't
9736         work properly.
9738         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
9739         (rb_sourcelist_model_finalize):
9740         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
9741         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
9743 2005-11-16  James Livingston  <jrl@ids.org.au>
9745         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
9746         problem where a GError* wasn't being set to NULL. Actually check the
9747         result.
9749 2005-11-16  James Livingston  <jrl@ids.org.au>
9751         * doc/reference/tmpl/rb-entry-view.sgml:
9752         * doc/reference/tmpl/rhythmbox-unused.sgml:
9753         * doc/reference/tmpl/rhythmdb-query-model.sgml:
9754         * doc/reference/tmpl/rhythmdb.sgml:
9755         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
9756         docs, including the patch that was on bug 
9758         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
9759         API, because it should only be used by RhythmDB itself.
9761 2005-11-16  James Livingston  <jrl@ids.org.au>
9763         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
9764         pausing by middle clicking on the tray icon.
9766 2005-11-15  James Livingston  <jrl@ids.org.au>
9768         * configure.ac: enable audioscrobbler support by default, if libsoup
9769         is present.
9771 2005-11-15  James Livingston  <jrl@ids.org.au>
9773         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9774         Closes bug 321157.
9776         * configure.ac:
9777         * daapsharing/rb-daap-connection.c: (build_message),
9778         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
9779         support gzip encoded daap connections.
9781         (handle_song_listing): fix leak
9783 2005-11-15  James Livingston  <jrl@ids.org.au>
9785         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
9786         * sources/rb-podcast-source.c:
9787         (rb_podcast_source_post_date_cell_data_func): make the date format
9788         translatable again, so that translators can choose the best format for
9789         their locale (%x is huge in some locales)
9791 2005-11-15  James Livingston  <jrl@ids.org.au>
9793         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
9794         (end_job): mark podcast episodes as failed, if the metadata load
9795         fails. This will prevent people playing non-audio enclosures, helping
9796         stop bug 320366.
9798 2005-11-14  James Livingston  <jrl@ids.org.au>
9800         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
9801         video sink to fakesink. This will stop problems (potentially crashers)
9802         that will occur if the file contains a video stream.
9804         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
9805         rather than using magic numbers everywhere.
9807         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
9808         * sources/rb-podcast-source.c:
9809         (rb_podcast_source_songs_show_popup_cb),
9810         (rb_podcast_source_cmd_download_post),
9811         (rb_podcast_source_post_status_cell_data_func),
9812         (rb_podcast_source_entry_activated_cb): use the above constants.
9814         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
9815         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
9816         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
9817         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
9818         (cancel_job), (download_progress_cb),
9819         (rb_podcast_manager_cancel_download),
9820         (rb_podcast_manager_insert_feed): use the constants, and fix a
9821         trhead-safety issue.
9823 2005-11-14  Bastien Nocera  <hadess@hadess.net>
9825         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
9826         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
9827         entry-changed events after stats on startup, fixes entry deleted from
9828         filtered views not disappearing
9830 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
9832         Fix rhythmdb query model refcount and polling problems. Closes bug
9833         321410.
9835         * rhythmdb/rhythmdb-property-model.c:
9836         (rhythmdb_property_model_finalize):
9837          Unref the query model if we have one.
9839         * rhythmdb/rhythmdb-query-model.h:
9840          Remove poll and cancel methods.  Query cancellation
9841          never did anything anyway.
9843         * rhythmdb/rhythmdb-query-model.c:
9844         (rhythmdb_query_model_init): Remove GAsyncQueues.
9845          Replace the GAsyncQueue-based update processing
9846          with a simpler g_idle_add approach; still has the
9847          same queueing properties, but now we don't poll the
9848          model forever and updates are processed immediately.
9850         (_unref_entry), (rhythmdb_query_model_finalize):
9851          Unref DB entries when finalized
9853         (rhythmdb_query_model_has_pending_changes):
9854          Use our own counter to decide if there are updates pending
9856         (rhythmdb_query_model_process_update), (idle_process_update):
9857          Process updates using g_idle_add, or directly if possible
9859         (rhythmdb_query_model_signal_complete),
9860         (rhythmdb_query_model_add_entries):
9861          Change to new update processing method
9863         (idle_poll_model), (rhythmdb_query_model_poll):
9864          Remove GAsyncQueue-based update processing.
9866         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
9867          No need to poll the model any more - updates are processed
9868          directly for synchronous queries.
9870         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
9871          Property model needs to be unref'd here
9873         * sources/rb-library-source.c: (rb_library_source_do_query):
9874          Don't try to cancel the active query (it never worked anyway),
9875          remove obsolete poll call, unref property models as required,
9876          and don't unref the cached 'all' query, since hold on to it.
9877          We unref it when the sort order changes, which forces the query
9878          to be rerun.
9880         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
9881          Unref the property model as required
9883         (rb_podcast_source_do_query):
9884          Treat any query with no selected feeds and no search text as
9885          an 'all' query.  Unref query models except for the cached
9886          'all' query, since we hold on to that.
9888         (rb_podcast_source_cmd_update_all):
9889          Unref the property model as required.
9891         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
9892          Don't try to cancel the query (it never worked anyway)
9894         (rb_entry_view_poll_model):
9895          No need for this any more.
9897         * widgets/rb-entry-view.h:
9898          Remove obsolete function rb_entry_view_poll_model
9900         * widgets/rb-property-view.c: (rb_property_view_set_property):
9901          Ref and unref the property model as required.
9903 2005-11-14  James Livingston  <jrl@ids.org.au>
9905         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9907         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
9908         for error. Closes bug 321416.
9910 2005-11-14  James Livingston  <jrl@ids.org.au>
9912         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9914         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
9915         a crasher if a feed's last-post value isn't set. Closes bug 321353.
9917 2005-11-14  James Livingston  <jrl@ids.org.au>
9919         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
9920         * shell/rb-removable-media-manager.c:
9921         (rb_removable_media_manager_set_uimanager):
9922         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
9923         translation domain for GTK action groups.
9925 2005-11-12  James Livingston  <jrl@ids.org.au>
9927         * po/POTFILES.in: remove the old station-new files
9929 2005-11-12  James Livingston  <jrl@ids.org.au>
9931         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9932         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
9933         (save_entry): cause Rhythmbox to re-read the metadata from a file,
9934         when upgrading from a pre-Date-supporting version to a version that
9935         supports Date metadata. Closes bug 320760.
9937 2005-11-12  James Livingston  <jrl@ids.org.au>
9939         Add "update all podcast feeds" command. Closes bug 319954.
9941         * data/ui/rhythmbox-ui.xml: add to source context menu.
9943         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9944         (register_action_group), (rb_podcast_source_cmd_download_post),
9945         (rb_podcast_source_cmd_delete_feed),
9946         (rb_podcast_source_cmd_properties_feed),
9947         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
9948         rather than the shell.
9950         (rb_podcast_source_update_feed_func),
9951         (rb_podcast_source_cmd_update_all): update every feed.
9953 2005-11-11  James Livingston  <jrl@ids.org.au>
9955         * shell/rb-shell-player.c: (rb_shell_player_class_init),
9956         (rb_shell_player_constructor), (rb_shell_player_finalize):
9957         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
9958         others follow the HIG recommentations.
9960 2005-11-11  James Livingston  <jrl@ids.org.au>
9962         * podcast/rb-podcast-manager.c:
9963         (rb_podcast_manager_subscribe_feed): check that the url is valid,
9964         before trying to use it.
9966 2005-11-11  James Livingston  <jrl@ids.org.au>
9968         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
9969         (rb_entry_view_append_column): When sorting by year, sort by album
9970         within a particular year.
9972 2005-11-11  James Livingston  <jrl@ids.org.au>
9974         * NEWS: updates
9976 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
9977         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
9978         spelling of "Language."
9980 2005-11-11  James Livingston  <jrl@ids.org.au>
9982         * rhythmdb/rhythmdb-property-model.c:
9983         (rhythmdb_property_model_row_inserted_cb),
9984         (rhythmdb_property_model_prop_changed_cb),
9985         (rhythmdb_property_model_entry_removed_cb),
9986         (rhythmdb_property_model_insert_prop),
9987         (rhythmdb_property_model_sync): display the count after the "All"
9988         entry of a property model.
9990         * widgets/rb-property-view.c: (rb_property_view_class_init),
9991         (rb_property_view_finalize), (rb_property_view_constructor): use
9992         G_DEFINE_TYPE
9994 2005-11-10  James Livingston  <jrl@ids.org.au>
9996         * rhythmdb/rhythmdb-query-model.c:
9997         (rhythmdb_query_model_remove_entry):
9998         * rhythmdb/rhythmdb-query-model.h: make
9999         rhythmdb_query_model_remove_entry return whether the entry was in the
10000         model.
10002         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
10003         don't add non-SONG entries, as it doesn't really work and can cause
10004         crashes.
10006         (rb_playlist_source_remove_location): assert if the playlist and model
10007         differ on whether the entry is in the playlist
10009 2005-11-10  James Livingston  <jrl@ids.org.au>
10011         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
10012         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
10013         (rb_podcast_manager_thread_parse_feed),
10014         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
10015         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
10016         emulating one with a list and mutex. Fixes a couple of threading
10017         issues.
10018         
10019         (rb_podcast_manager_insert_feed): fix some problems with ignoring
10020         updated feeds.
10021         
10022         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
10023         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
10024         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
10025         * podcast/rb-podcast-parse.c: (rb_insert_item),
10026         (rb_podcast_parse_channel_free):
10027         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
10028         fix some typos, and make a bit of code clearer.
10030 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
10032         Make the "delete podcast" dialog better. Closes bug 320899.
10034         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
10035         Add PROP_WINDOW for rb_shell_get_property so we can access the
10036         GtkWindow widget of the main window. 
10037         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
10038         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
10039         podcast feed delete dialog less confusing as well.
10041 2005-11-09  James Livingston  <jrl@ids.org.au>
10043         * shell/rb-removable-media-manager.c:
10044         (rb_removable_media_manager_mount_volume),
10045         (rb_removable_media_manager_scan): Fix a crasher where we were getting
10046         NULL for a cd volume.
10048 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10050         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
10051         method return a gboolean indicating whether the changes
10052         to the entry have already been applied.
10054         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
10055         only modify the entry if impl_entry_set returns FALSE.
10057         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
10058         When setting the location of an entry, update the
10059         hash table mapping locations to entries.
10061 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10063         * data/glade/Makefile.am:
10064         * iradio/Makefile.am:
10065           Remove 'new station' dialog.
10067         * iradio/rb-station-properties-dialog.h:
10068         * sources/rb-iradio-source.c: (impl_song_properties):
10069         * shell/rb-shell.c: (rb_shell_cmd_new_station):
10070          Add 'new station' mode parameter to
10071          rb_station_properties_dialog_new.
10073         * (rb_station_properties_dialog_response_cb),
10074         (rb_station_properties_dialog_create_station):
10075          When in 'new station' mode, create the station
10076          when OK button is pressed.
10078         * iradio/rb-station-properties-dialog.c:
10079         (rb_station_properties_dialog_location_changed_cb):
10080          Only enable OK button if a location is specified
10081         (rb_station_properties_dialog_init),
10082         (rb_station_properties_dialog_new),
10083         (rb_station_properties_dialog_update),
10084         (rb_station_properties_dialog_update_title),
10085         (rb_station_properties_dialog_rated_cb),
10086         (rb_station_properties_dialog_update_play_count),
10087         (rb_station_properties_dialog_update_bitrate),
10088         (rb_station_properties_dialog_update_last_played),
10089         (rb_station_properties_dialog_update_rating),
10090         (rb_station_properties_dialog_update_playback_error),
10091         (rb_station_properties_dialog_show):
10092          Handle 'new station' mode, where there's no current
10093          station to edit.
10095 2005-11-08  James Livingston  <jrl@ids.org.au>
10097         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
10098         keybinding for track columns consistent between library and playlist
10099         sources.
10101 2005-11-07  James Livingston  <jrl@ids.org.au>
10103         * data/ui/rhythmbox-ui.xml:
10104         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
10105         "Edit" item to playlist menu. Closes bug 311470.
10107 2005-11-07  James Livingston  <jrl@ids.org.au>
10109         patch by: Jaap A. Haitsma <jaap@haitsma.org>
10111         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
10112         confirmation to save dialogs, with gtk 2.8 or higher.
10114 2005-11-07 James Livingston  <jrl@ids.org.au>
10115         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
10116         requirement to a general on, because people are going to have it for
10117         the other dependencies.
10119 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
10121         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
10122         delete dialog less confusing.  Use HIG recommended button order.
10123         Closes bug 320840.
10125 2005-11-06  James Livingston  <jrl@ids.org.au>
10127         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
10128         drag-and-drop error.
10129         
10130         * sources/rb-library-source.c: (rb_library_source_constructor): only
10131         add drag-and-drop for the Library itself, subclasses can add support
10132         themselves if they want it.
10134         * sources/rb-removable-media-source.c:
10135         (rb_removable_media_source_class_init): by default removable media
10136         sources do not support dnd
10138 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
10140         * data/glade/station-properties.glade:
10141          Add box containing error icon and error message label
10142         * iradio/rb-station-properties-dialog.c:
10143         (rb_station_properties_dialog_class_init),
10144         (rb_station_properties_dialog_finalize):
10145          Change this class to use G_DEFINE_TYPE
10146         (rb_station_properties_dialog_init),
10147         (rb_station_properties_dialog_update),
10148         (rb_station_properties_dialog_update_playback_error):
10149          Display error icon and message when there is one, and hide the error
10150          box otherwise.
10151         (rb_station_properties_dialog_show): Hack widget show
10152          method to update the visibility of the error info box when showing
10153          the widget.  Otherwise the icon is displayed all the time (same thing
10154          is done in rb-song-info). Closes bug 320749.
10156 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
10158         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
10159         parsing of the duration of podcast episodes from the feed. Closes bug
10160         320748.
10162 2005-11-05  James Livingston  <jrl@ids.org.au>
10164         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
10165         release date metadata ("Year"). Closes bug 166093.
10167         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
10168         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
10169         (rb_metadata_gst_add_tag_data):
10170         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
10171         (save_entry):
10172         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
10173         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
10174         (set_props_from_metadata), (rhythmdb_entry_set_internal),
10175         (rhythmdb_prop_get_type):
10176         * rhythmdb/rhythmdb.h: add support for "date" property
10177         
10178         * data/glade/general-prefs.glade:
10179         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
10180         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
10181         (rb_entry_view_append_column):
10182         * widgets/rb-entry-view.h:
10183         * sources/rb-library-source.c: (rb_library_source_constructor):
10184         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
10185         "Year" colums
10187         * data/glade/song-info.glade:
10188         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
10189         (rb_song_info_construct_single), (rb_song_info_constructor),
10190         (rb_song_info_populate_dialog), (rb_song_info_update_year),
10191         (rb_song_info_sync_entry_single): Add "Year" to song info window
10193         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
10194         sorted by year.
10196 2005-11-05  James Livingston  <jrl@ids.org.au>
10198         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
10199         description if it's very long.
10201 2005-11-05  James Livingston  <jrl@ids.org.au>
10203         pathc by: Artem Baguinski <femistofel@gmail.com>
10205         * help/C/Makefile.am:
10206         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
10207         Closes bug 320613.
10209 2005-11-05  James Livingston  <jrl@ids.org.au>
10211         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
10213         * daapsharing/rb-daap-share.c: (write_next_chunk),
10214         (message_finished), (databases_cb): Use chunked file loading and
10215         sending in the DAAP server. This should reduce the amount of memory
10216         required to send files to the client.
10218 2005-11-05  James Livingston  <jrl@ids.org.au>
10220         * configure.ac: make the nautilus_burn_drive_door_is_open detection
10221         work better on some systems. Closes 320622.
10223 2005-11-05  James Livingston  <jrl@ids.org.au>
10225         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
10226         homepage, so that users can find out what AudioScrobbler is. Add
10227         access keys.
10229         * data/glade/daap-prefs.glade:
10230         * data/glade/general-prefs.glade:
10231         * data/glade/library-prefs.glade: make the indent be more consistent
10233         * data/glade/podcast-prefs.glade: 
10234         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10235         (impl_get_config_widget): move thing out of code into glade, where
10236         they belong
10238 2005-11-05  James Livingston  <jrl@ids.org.au>
10240         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
10241         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
10243 2005-11-04  James Livingston  <jrl@ids.org.au>
10245         * configure.ac: don't print DAAP configure info twice
10247 2005-11-04  James Livingston  <jrl@ids.org.au>
10249         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
10250         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
10251         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
10252         #ifdefs, since we removed the symbol. Oops
10254 2005-11-04  James Livingston  <jrl@ids.org.au>
10256         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
10257         after the connect line, not before. Oops.
10259 2005-11-04  James Livingston  <jrl@ids.org.au>
10261         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
10262         fix some warnings
10264 2005-11-03  James Livingston  <jrl@ids.org.au>
10266         * NEWS: update the news file
10268         * data/glade/general-prefs.glade: make the prefs refer to "time" not
10269         "duration" column.
10271         * data/ui/rhythmbox-ui.xml:
10272         * shell/rb-playlist-manager.c:
10273         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10274         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
10275         and "delete" for feeds.
10277 2005-11-03  James Livingston  <jrl@ids.org.au>
10279         * sources/rb-podcast-source.c: (impl_delete),
10280         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
10281         feed. Closes 319760.
10283 2005-11-03  James Livingston  <jrl@ids.org.au>
10285         Don't start playing from the remote site when a un-downloaded podcast
10286         is activated. Closes 319983.
10287         
10289         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
10290         (write_job_data), (download_progress_cb): write the local location as
10291         soon as any data is recieved
10293         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
10294         the mountpoint to NULL for podcast episodes that haven't yet been
10295         downloaded.
10296         
10297         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
10298         start playing a podcast if it hasn't been downloaded.
10299         
10300         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10301         (rb_podcast_source_entry_activated_cb): begin downloading when the
10302         podcast is activated.
10304 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
10306         * data/glade/general-prefs.glade:  Fix capitalization.
10307         * shell/rb-removable-media-manager.c:  Add a mnemonic.
10308         * sources/rb-podcast-source.c:
10309         (rb_podcast_source_songs_show_popup_cb),
10310         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
10312 2005-11-03  James Livingston  <jrl@ids.org.au>
10314         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
10316         * shell/rb-removable-media-manager.c:
10317         (rb_removable_media_manager_mount_volume): don't check network or
10318         autofs mounts, as they're not going to be removable media. Stops
10319         sending lots of warnings to syslog. Closes 320571.
10321         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
10322         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
10323         320570.
10325 2005-11-03  James Livingston  <jrl@ids.org.au>
10327         Add support for playing audio CDs. Metadata lookup is done using
10328         SoundJuicer's MusicBrainz lookup code, which can be switched to using
10329         the library when it gets broken out of S-J.
10330         
10331         Add a "rescan media" menu item, and commands for ejecting removable
10332         media.
10334         Move nautilus-cd-burner from optional to required depenency.
10336         * configure.ac:
10337         * data/ui/rhythmbox-ui.xml:
10338         * metadata/Makefile.am:
10339         + metadata/sj-error.c:
10340         + metadata/sj-error.h:
10341         + metadata/sj-metadata-marshal.list:
10342         + metadata/sj-metadata-musicbrainz.c:
10343         + metadata/sj-metadata-musicbrainz.h:
10344         + metadata/sj-metadata.c:
10345         + metadata/sj-metadata.h:
10346         + metadata/sj-structures.c:
10347         + metadata/sj-structures.h:
10348         * player/Makefile.am:
10349         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
10350         * po/POTFILES.in:
10351         * shell/Makefile.am:
10352         * shell/rb-removable-media-manager.c:
10353         (rb_removable_media_manager_dispose), (poll_tray_opened),
10354         (end_cd_drive_monitor), (begin_cd_drive_monitor),
10355         (rb_removable_media_manager_load_media),
10356         (rb_removable_media_manager_mount_volume),
10357         (rb_removable_media_manager_cmd_eject_medium),
10358         (rb_removable_media_manager_cmd_scan_media),
10359         (rb_removable_media_manager_check_volume),
10360         (rb_removable_media_manager_unmount_volume_swap),
10361         (rb_removable_media_manager_scan):
10362         * sources/Makefile.am:
10363         + sources/rb-audiocd-source.c:
10364         + sources/rb-audiocd-source.h:
10365         * tests/Makefile.am:
10367 2005-11-02  James Livingston  <jrl@ids.org.au>
10369         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
10371         * sources/rb-iradio-source.c:
10372         (stations_view_drag_data_received_cb):
10373         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
10374         don't crash when the second uri is missing frm the drop, which
10375         browsers sometimes do.
10377 2005-11-01  James Livingston  <jrl@ids.org.au>
10379         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
10380         (rb_podcast_manager_insert_feed):
10381         * podcast/rb-podcast-manager.h:
10382         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
10383         (rb_set_item_value), (rb_validate_item_propert),
10384         (rb_podcast_parse_date), (rb_podcast_parse_time):
10385         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
10386         from the feed.
10388 2005-10-31  James Livingston  <jrl@ids.org.au>
10390         * ChangeLog:
10391         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
10392         huge
10394 2005-10-31  James Livingston  <jrl@ids.org.au>
10396         * sources/rb-podcast-source.c:
10397         (rb_podcast_source_post_date_cell_data_func): generate the date string
10398         in a way that is correct in all locales.
10399         
10400         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
10401         (rhythmdb_entry_sync_mirrored): make the last played/date added
10402         columns use the same format.
10404 2005-10-30  James Livingston  <jrl@ids.org.au>
10407         * podcast/rb-podcast-manager.c:
10408         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
10409         
10410         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
10411         iradio errors better.
10413 2005-10-30  James Livingston  <jrl@ids.org.au>
10415         patch by: Artem Baguinski <femistofel@gmail.com>
10417         * metadata/rb-metadata-gst.c: (rb_metadata_init):
10419 2005-10-30  James Livingston  <jrl@ids.org.au>
10421         * podcast/rb-podcast-manager.c:
10422         (rb_podcast_manager_subscribe_feed),
10423         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
10424         already been added, usually as a radio station. Closes 319434.
10426 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
10428         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
10429         mnemonics & resize issues)
10430         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
10431         & mnemonics)
10432         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
10433         widget for the "download location" label.
10435         Closes bug 320184.
10437 2005-10-29  James Livingston  <jrl@ids.org.au>
10439         Allow the search box to match words from multiple properties. Closes
10440         bug 139196. Thanks to the person from IRC who did a lot of the initial
10441         work.
10444         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
10445         * lib/rb-util.h: Add functions to split a string into words, and one
10446         to perform "search folding" which is currently like casefolding but
10447         also strips punctuation
10448         
10449         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
10450         (rhythmdb_query_preprocess):
10451         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
10452         against title, artist, album and genre (for the search box)
10453         
10454         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
10455         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
10456         (save_entry), (search_match_properties),
10457         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
10458         splitting into words and matching across multiple properties.
10459         
10460         * sources/rb-library-source.c: (construct_query_from_selection): use
10461         the new SEARCH_MATCH property for the search box
10462         
10463         * widgets/rb-entry-view.c: (type_ahead_search_func):
10465 2005-10-29  James Livingston  <jrl@ids.org.au>
10467         * lib/rb-stock-icons.c: (rb_stock_icons_init):
10468         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
10469         
10470         * shell/rb-playlist-manager.c:
10471         * shell/rb-shell.c: use the above stock ids, so that the icons get set
10472         correctly.
10473         
10474         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
10475         initial state of the shuffle/repeat menu items correctly. Patch from
10476         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
10478 2005-10-29  James Livingston  <jrl@ids.org.au>
10480         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
10481         double-free.
10482         
10483         * widgets/rb-cell-renderer-pixbuf.c:
10484         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
10485         icon go black when row is not selected
10486         
10487         * doc/reference/tmpl/rb-daap-connection.sgml:
10488         * doc/reference/tmpl/rhythmdb.sgml: doc updates
10490 2005-10-29  James Livingston  <jrl@ids.org.au>
10492         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
10493         silly mistake, where it could think partial downloads has been
10494         completed.
10496 2005-10-29  James Livingston  <jrl@ids.org.au>
10498         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
10500         * data/glade/song-info.glade:
10501         * widgets/rb-song-info.c: (rb_song_info_construct_single),
10502         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
10503         (rb_song_info_sync_entry_single): show the disc number in the song
10504         info window. From bug 311199.
10506 2005-10-29  James Livingston  <jrl@ids.org.au>
10508         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
10509         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
10510         regularly. Closes 155306.
10512 2005-10-29  James Livingston  <jrl@ids.org.au>
10514         * podcast/rb-podcast-manager.c:
10515         (rb_podcast_manager_download_entry),
10516         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
10517         (rb_podcast_manager_insert_feed):
10518         * podcast/rb-podcast-manager.h:
10519         * podcast/rb-podcast-parse.c: (rb_set_item_value),
10520         (rb_podcast_parser_start_element):
10521         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
10522         don't download them again. However, it can't resume
10523         partially-downloaded ones.
10525 2005-10-28  James Livingston  <jrl@ids.org.au>
10527         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
10528         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
10529         work. Don't attempt to write duration as a tag.
10531         Thanks to Artem Baguinski <femistofel@gmail.com>
10533 2005-10-28  James Livingston  <jrl@ids.org.au>
10535         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
10536         don't disable the status-bar menu item when the current source doesn't
10537         use the search box.
10539 2005-10-28  James Livingston  <jrl@ids.org.au>
10541         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
10542         crash if the file has unknown length
10544 2005-10-27  James Livingston  <jrl@ids.org.au>
10546         * daapsharing/rb-daap-connection.c:
10547         (rb_daap_connection_state_done): don't assert when a daap server
10548         doesn't have any playlists
10550 2005-10-27  James Livingston  <jrl@ids.org.au>
10552         * sources/rb-sourcelist-model.c:
10553         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
10554         source for the sourcelist. Closes bug 319817.
10556 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
10558         Patch by: Renato Araujo <renatox@gmail.com>
10560         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
10561           Fix for a crasher caused by previous patch.
10563 2005-10-26  James Livingston  <jrl@ids.org.au>
10565         * data/glade/podcast-prefs.glade:
10566         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
10567         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
10568         * sources/rb-podcast-source.c: (rb_podcast_source_new):
10569         * podcast/rb-podcast-manager.c:
10570         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
10571         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
10572         * shell/rb-shell.c: Change some strings to make them more consistent.
10573         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
10574         makes it clearer which is which. "Episode" may not be the best term,
10575         but it seems to be widely used.
10576         
10577         Also fix some strings that weren't marked as translatable.
10578         
10579         * podcast/rb-feed-podcast-properties-dialog.c:
10580         (rb_feed_podcast_properties_dialog_class_init),
10581         (rb_feed_podcast_properties_dialog_finalize):
10582         * podcast/rb-new-podcast-dialog.c:
10583         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
10584         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
10585         (rb_simple_view_finalize), (rb_simple_view_constructor):
10586         * podcast/rb-podcast-properties-dialog.c:
10587         (rb_podcast_properties_dialog_class_init),
10588         (rb_podcast_properties_dialog_finalize):
10589         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
10590         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
10591         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
10592         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
10593         use G_DEFINE_TYPE, instead of doing it manually.
10595 2005-10-26  James Livingston  <jrl@ids.org.au>
10597         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
10598         <jrl@ids.org.au>
10600         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
10601         (rb_metadata_init): Check that the necessary plugins are present to do
10602         id3 editing.
10603         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
10604         corrupted before replacing the original.
10606 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
10608         reviewed by: James Livingston <jrl@ids.org.au>
10610         Assign sequential IDs to playlists for DAAP rather than using the
10611         address of the playlist object.  Less flaky, and should work on 64bit
10612         platforms. Closes bug 319304.
10614         * daapsharing/rb-daap-share.c: 
10615         (rb_daap_share_set_property): watch for playlist creation
10616         (_find_by_id), (_find_by_source): playlist list search functions
10617         (rb_daap_share_playlist_created),
10618         (rb_daap_share_process_playlist),
10619         (rb_daap_share_playlist_destroyed):
10620          update playlist list as it changes, use weak refs on 
10621          playlists to get notified on destroy.
10622         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
10623          destroy playlist list on shutdown
10624         (add_playlist_to_mlcl): use playlist ID rather than pointer in
10625          DAAP response
10626         (databases_cb): search for playlist ID in list rather than just
10627          converting it to a pointer; return HTTP 404 if playlist not 
10628          found.
10629         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
10630          is already used for the main library
10632 2005-10-26  James Livingston  <jrl@ids.org.au>
10634         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
10636         * daapsharing/rb-daap-connection.c: (build_message),
10637         (http_response_handler), (http_get), (handle_server_info),
10638         (handle_login), (handle_update), (handle_database_info),
10639         (handle_song_listing), (handle_playlists),
10640         (handle_playlist_entries), (handle_logout),
10641         (rb_daap_connection_new), (rb_daap_connection_logout),
10642         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
10643         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
10644         * daapsharing/rb-daap-connection.h:
10645         * sources/rb-daap-source.c: (rb_daap_source_activate),
10646         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
10647         (rb_daap_source_disconnect): Make connecting to DAAP sources
10648         asynchronous, so that non-responsive servers don't hang the UI. Closes
10649         316225.
10651 2005-10-26  James Livingston  <jrl@ids.org.au>
10653         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
10655         * rhythmdb/rhythmdb-query-model.c:
10656         (rhythmdb_query_model_do_reorder): generate the row re-order map
10657         correctly.
10658         
10659         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
10660         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
10661         Update selection when rows get re-ordered. Closes 319718.
10663 2005-10-26  James Livingston  <jrl@ids.org.au>
10665         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
10667         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
10668         actually set the db pointer in play orders. Closes 319818.
10670 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
10672         Patch by: Renato Araujo <renatox@gmail.com>
10674         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
10675         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
10676         (rb_podcast_manager_update_synctime),
10677         (rb_podcast_manager_config_changed),
10678         (rb_podcast_manager_insert_feed):
10679         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
10680         (save_entry):
10681         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
10682         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
10683         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
10685 2005-10-25  James Livingston  <jrl@ids.org.au>
10687         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
10688         (db_entry_deleted_cb): don't share tracks that are hidden because the
10689         file is missing.
10691 2005-10-22  James Livingston  <jrl@ids.org.au>
10693         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
10694         crash if an entry couldn't be playerd, without streamer setting an
10695         error.
10697         
10698         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10700         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
10701         (rb_new_podcast_dialog_text_changed): enable the add button when a url
10702         is pasted into the dialog.
10703         
10704         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
10705         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
10706         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
10707         (rb_podcast_parse_channel_free):
10708         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
10709         feeds
10711 2005-10-22  James Livingston  <jrl@ids.org.au>
10713         * sources/rb-iradio-source.c:
10714         (rb_iradio_source_first_time_changed): Make merging the default
10715         stations actually work.
10716         
10717         * sources/rb-podcast-source.c:
10718         (rb_podcast_source_post_status_cell_data_func): fix problem where some
10719         people weren't seing the percentages in the stats column.
10721 2005-10-21  James Livingston  <jrl@ids.org.au>
10723         Patch from Caio Marcelo <cmarcelo@gmail.com>
10725         * shell/rb-shell.c: (rb_shell_window_state_cb),
10726         (rb_shell_get_visibility), (idle_hide_mainwindow),
10727         (rb_shell_set_visibility): Make the "show window" item in the tray
10728         icon menu show the toggle state correctly. Use a better policy on
10729         deciding whether the window is "visible" or not. Closes bug 308053.
10731 2005-10-21  James Livingston  <jrl@ids.org.au>
10733         * doc/reference/tmpl/rb-shell-preferences.sgml:
10734         * shell/Makefile.am: fix building with gtk-doc
10736         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
10737         don't submit podcasts to audioscrobbler
10738         
10739         
10740         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10741         
10742         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
10743         (rb_set_item_value): strip spaces surrounding podcast urls
10744         
10746         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
10747         
10748         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
10750 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
10752         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
10753          Audioscrobbler/Last.fm support
10755         * configure.ac:
10756         * data/glade/Makefile.am:
10757         * data/glade/audioscrobbler-prefs.glade:
10758         * data/rhythmbox.schemas:
10759         * lib/Makefile.am:
10760         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
10761         * lib/md5.h:
10762         * lib/rb-preferences.h:
10763         * po/POTFILES.in:
10764         * shell/Makefile.am:
10765         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
10766         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
10767         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
10768         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
10769         (rb_audioscrobbler_timeout_cb), (mkmd5),
10770         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
10771         (rb_audioscrobbler_do_handshake),
10772         (rb_audioscrobbler_do_handshake_cb),
10773         (rb_audioscrobbler_submit_queue),
10774         (rb_audioscrobbler_submit_queue_cb),
10775         (rb_audioscrobbler_import_settings),
10776         (rb_audioscrobbler_preferences_sync),
10777         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
10778         (rb_audioscrobbler_gconf_changed_cb),
10779         (rb_audioscrobbler_song_changed_cb),
10780         (rb_audioscrobbler_username_entry_changed_cb),
10781         (rb_audioscrobbler_username_entry_activate_cb),
10782         (rb_audioscrobbler_password_entry_changed_cb),
10783         (rb_audioscrobbler_password_entry_activate_cb),
10784         (rb_audioscrobbler_enabled_check_changed_cb),
10785         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
10786         (rb_audioscrobbler_load_entry_from_string),
10787         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
10788         (rb_audioscrobbler_print_queue),
10789         (rb_audioscrobbler_free_queue_entries):
10790         * shell/rb-audioscrobbler.h:
10791         * shell/rb-shell-preferences.c:
10792         (rb_shell_preferences_append_audioscrobbler_config):
10793         * shell/rb-shell-preferences.h:
10794         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
10795         (rb_shell_select_source), (rb_shell_cmd_preferences):
10796         * sources/Makefile.am:
10798 2005-10-21  James Livingston  <jrl@ids.org.au>
10800         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
10802         * Makefile.am:
10803         * NEWS:
10804         * configure.ac:
10805         * data/art/Makefile.am:
10806         * data/glade/Makefile.am:
10807         * data/rhythmbox.schemas:
10808         * data/ui/rhythmbox-ui.xml:
10809         * doc/reference/Makefile.am:
10810         * doc/reference/tmpl/rhythmdb.sgml:
10811         * lib/rb-stock-icons.c: (rb_stock_icons_init):
10812         * lib/rb-stock-icons.h:
10813         * po/POTFILES.in:
10814         * podcast/Makefile.am:
10815         + podcast/rb-feed-podcast-properties-dialog.c:
10816         + podcast/rb-feed-podcast-properties-dialog.h:
10817         + podcast/rb-new-podcast-dialog.c:
10818         + podcast/rb-new-podcast-dialog.h:
10819         + podcast/rb-podcast-manager.c:
10820         + podcast/rb-podcast-manager.h:
10821         + podcast/rb-podcast-marshal.list:
10822         + podcast/rb-podcast-parse.c:
10823         + podcast/rb-podcast-parse.h:
10824         + podcast/rb-podcast-properties-dialog.c:
10825         + podcast/rb-podcast-properties-dialog.h:
10826         * rhythmdb/rhythmdb-property-model.c:
10827         (rhythmdb_property_model_set_property),
10828         (rhythmdb_property_model_enable_drag):
10829         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
10830         (rhythmdb_tree_parser_end_element), (save_entry),
10831         (rhythmdb_tree_save):
10832         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
10833         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
10834         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
10835         (rhythmdb_entry_podcast_feed_get_type):
10836         * rhythmdb/rhythmdb.h:
10837         * shell/Makefile.am:
10838         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
10839         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
10840         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
10841         (rb_shell_quit):
10842         * sources/Makefile.am:
10843         + sources/rb-podcast-source.c:
10844         + sources/rb-podcast-source.h:
10845         * widgets/Makefile.am:
10846         * widgets/rb-property-view.c: (rb_property_view_class_init),
10847         (rb_property_view_constructor),
10848         (rb_property_view_selection_changed_cb),
10849         (rb_property_view_get_treeview):
10850         * widgets/rb-property-view.h:
10851         + widgets/rb-simple-view.c:
10852         + widgets/rb-simple-view.h:
10854 2005-10-20  James Livingston  <jrl@ids.org.au>
10856         * NEWS: update with changes since 0.9.1
10858         * configure.ac: check whether collate_key_for_filename is available
10859         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
10860         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
10861         it if it isn't available in glib (i.e. building against 2.6)
10862         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
10863         collation to get "natural sorting". Closes bug 158599.
10865 2005-10-20  James Livingston  <jrl@ids.org.au>
10867         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
10869         * doc/reference/tmpl/rb-shell-player.sgml:
10870         * shell/rb-shell-player.c: (rb_shell_player_class_init),
10871         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
10872         (rb_shell_player_get_playing),
10873         (rb_shell_player_get_playing_time_string),
10874         (rb_shell_player_get_playing_time),
10875         (rb_shell_player_set_playing_time), (tick_cb),
10876         (rb_shell_player_get_playing_path), (filter_mmkeys):
10877         * shell/rb-shell-player.h:
10878         * shell/rb-shell-player.xml:
10879         * shell/rb-shell.c: (rb_shell_constructor),
10880         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
10881         (rb_shell_set_window_title), (rb_shell_playing_impl),
10882         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
10883         Merge the duration_changed and elapsed_changed DBUS signals into one
10884         elapsed_changed signal. Check that the output argument isn't NULL
10885         before trying to put things in it.
10887 2005-10-20  James Livingston  <jrl@ids.org.au>
10889         * rhythmdb/rhythmdb-query-model.c:
10890         (rhythmdb_query_model_entry_added_cb),
10891         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
10892         problem where hidden entries could be shown in playlists.
10893         
10894         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
10895         issues when switching in and out of small mode.
10897 2005-10-19  James Livingston  <jrl@ids.org.au>
10899         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
10900         (rb_shell_constructor), (rb_shell_window_state_cb),
10901         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
10902         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
10903         (rb_shell_view_smalldisplay_changed_cb),
10904         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
10905         (rb_shell_sync_paned): remove gconf window-state races, prevent
10906         changing small mode too often, fix window event races. Closes 122806.
10908         
10909         Patch from Caio Marcelo <cmarcelo@gmail.com>
10911         * data/rhythmbox.schemas:
10912         * shell/rb-shell.c: (rb_shell_window_state_cb),
10913         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
10914         Remember the position of the window. Closes 315289.
10916 2005-10-19  James Livingston  <jrl@ids.org.au>
10918         Patch from Christophe Fergeau  <teuf@gnome.org>
10920         * configure.ac: determine whether libgpod is present when neither
10921         --with-ipod nor --without-ipod is passed
10923 2005-10-19  James Livingston  <jrl@ids.org.au>
10925         Patch from Caio Marcelo <cmarcelo@gmail.com>
10927         * shell/rb-shell-player.c: (do_next_idle),
10928         (rb_shell_player_do_previous), (rb_shell_player_do_next),
10929         (rb_shell_player_do_previous_or_seek),
10930         (rb_shell_player_previous_button_cb),
10931         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
10932         (rb_shell_player_cmd_next), (eos_cb):
10933         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
10934         end of the playlist is reached.
10936 2005-10-19  Christopher Aillon  <caillon@redhat.com>
10938         * lib/rb-thread.c: fix a few GSource leaks
10940 2005-10-19  James Livingston  <jrl@ids.org.au>
10942         * doc/reference/tmpl/bacon-volume.sgml:
10943         * doc/reference/tmpl/disclosure-widget.sgml:
10944         * doc/reference/tmpl/eel-gconf-extensions.sgml:
10945         * doc/reference/tmpl/eggnotificationbubble.sgml:
10946         * doc/reference/tmpl/eggtrayicon.sgml:
10947         * doc/reference/tmpl/gsequence.sgml:
10948         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
10949         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
10950         * doc/reference/tmpl/rb-daap-connection.sgml:
10951         * doc/reference/tmpl/rb-daap-dialog.sgml:
10952         * doc/reference/tmpl/rb-daap-mdns.sgml:
10953         * doc/reference/tmpl/rb-daap-share.sgml:
10954         * doc/reference/tmpl/rb-daap-sharing.sgml:
10955         * doc/reference/tmpl/rb-daap-source.sgml:
10956         * doc/reference/tmpl/rb-daap-src.sgml:
10957         * doc/reference/tmpl/rb-daap-structure.sgml:
10958         * doc/reference/tmpl/rb-debug.sgml:
10959         * doc/reference/tmpl/rb-dialog.sgml:
10960         * doc/reference/tmpl/rb-druid.sgml:
10961         * doc/reference/tmpl/rb-entry-view.sgml:
10962         * doc/reference/tmpl/rb-enums.sgml:
10963         * doc/reference/tmpl/rb-file-helpers.sgml:
10964         * doc/reference/tmpl/rb-glade-helpers.sgml:
10965         * doc/reference/tmpl/rb-header.sgml:
10966         * doc/reference/tmpl/rb-history.sgml:
10967         * doc/reference/tmpl/rb-ipod-source.sgml:
10968         * doc/reference/tmpl/rb-iradio-source.sgml:
10969         * doc/reference/tmpl/rb-library-source.sgml:
10970         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
10971         * doc/reference/tmpl/rb-metadata.sgml:
10972         * doc/reference/tmpl/rb-new-station-dialog.sgml:
10973         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
10974         * doc/reference/tmpl/rb-play-order-linear.sgml:
10975         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
10976         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
10977         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
10978         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
10979         * doc/reference/tmpl/rb-play-order-random.sgml:
10980         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
10981         * doc/reference/tmpl/rb-play-order.sgml:
10982         * doc/reference/tmpl/rb-player.sgml:
10983         * doc/reference/tmpl/rb-playlist-manager.sgml:
10984         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
10985         * doc/reference/tmpl/rb-playlist-source.sgml:
10986         * doc/reference/tmpl/rb-preferences.sgml:
10987         * doc/reference/tmpl/rb-property-view.sgml:
10988         * doc/reference/tmpl/rb-query-creator-private.sgml:
10989         * doc/reference/tmpl/rb-query-creator.sgml:
10990         * doc/reference/tmpl/rb-rating-helper.sgml:
10991         * doc/reference/tmpl/rb-rating.sgml:
10992         * doc/reference/tmpl/rb-recorder.sgml:
10993         * doc/reference/tmpl/rb-refstring.sgml:
10994         * doc/reference/tmpl/rb-removable-media-manager.sgml:
10995         * doc/reference/tmpl/rb-removable-media-source.sgml:
10996         * doc/reference/tmpl/rb-search-entry.sgml:
10997         * doc/reference/tmpl/rb-shell-clipboard.sgml:
10998         * doc/reference/tmpl/rb-shell-glue.sgml:
10999         * doc/reference/tmpl/rb-shell-player-glue.sgml:
11000         * doc/reference/tmpl/rb-shell-player.sgml:
11001         * doc/reference/tmpl/rb-shell-preferences.sgml:
11002         * doc/reference/tmpl/rb-shell.sgml:
11003         * doc/reference/tmpl/rb-song-display-box.sgml:
11004         * doc/reference/tmpl/rb-song-info.sgml:
11005         * doc/reference/tmpl/rb-source-header.sgml:
11006         * doc/reference/tmpl/rb-source.sgml:
11007         * doc/reference/tmpl/rb-sourcelist-model.sgml:
11008         * doc/reference/tmpl/rb-sourcelist.sgml:
11009         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
11010         * doc/reference/tmpl/rb-statusbar.sgml:
11011         * doc/reference/tmpl/rb-stock-icons.sgml:
11012         * doc/reference/tmpl/rb-string-helpers.sgml:
11013         * doc/reference/tmpl/rb-thread.sgml:
11014         * doc/reference/tmpl/rb-tray-icon.sgml:
11015         * doc/reference/tmpl/rb-tree-dnd.sgml:
11016         * doc/reference/tmpl/rb-tree-model-sort.sgml:
11017         * doc/reference/tmpl/rb-util.sgml:
11018         * doc/reference/tmpl/rhythmbox-unused.sgml:
11019         * doc/reference/tmpl/rhythmdb-property-model.sgml:
11020         * doc/reference/tmpl/rhythmdb-query-model.sgml:
11021         * doc/reference/tmpl/rhythmdb-tree.sgml:
11022         * doc/reference/tmpl/rhythmdb.sgml: update for changes
11023         
11024         * doc/reference/Makefile.am: make docs build with changed ipod support
11025         
11026         * po/POTFILES.in: remove sources/itunesdb
11028 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
11030         * sources/itunesdb.c:
11031         * sources/itunesdb.h: removed now useless files
11033 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
11035         * configure.ac:
11036         * shell/Makefile.am:
11037         * sources/Makefile.am:
11038         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
11039         code
11040         [1]: http://www.gtkpod.org/libgpod.html
11043 2005-10-18  James Livingston  <jrl@ids.org.au>
11045         patch from Funda Wang <fundawang@linux.net.cn>
11047         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
11048         the notification bubble string translatable.
11050 ============ Version 0.9.1
11052 2005-10-16  James Livingston  <jrl@ids.org.au>
11054         * configure.ac: bump version to 0.9.1
11055         * NEWS: update translation credits
11057 2005-10-16  James Livingston  <jrl@ids.org.au>
11059         * rhythmdb/rhythmdb-query-model.c:
11060         (rhythmdb_query_model_class_init),
11061         (rhythmdb_query_model_drag_data_received): 
11062         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
11063         notified when things are dropped into the entry view.
11064         
11065         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
11066         (rb_playlist_source_add_location_swapped),
11067         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
11068         (rb_playlist_source_non_entry_dropped),
11069         (rb_playlist_source_row_inserted): Use the new signal so that dropping
11070         things onto a playlist's entry view work correctly, and doesn't cause
11071         crashes. Allow folders to be dropped as well. (Closes 318308)
11073 2005-10-16  James Livingston  <jrl@ids.org.au>
11075         * NEWS: Update some more
11077         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
11078         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
11079         with the paned size, so that it doesn't move when the window is
11080         maximised/restored. Closes bug 315852.
11082         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
11083         display the playcount column, as it's useless (it never get changed).
11085 2005-10-14  James Livingston  <jrl@ids.org.au>
11087         * Makefile.am:
11088         * data/Makefile.am:
11089         * doc/reference/Makefile.am: get "make distcheck" to pass again
11091 2005-10-11  James Livingston  <jrl@ids.org.au>
11093         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
11094         destroy the connection when retrieving the playlists fails, because
11095         tracks have already been added. Closes 318380.
11097 2005-10-11  James Livingston  <jrl@ids.org.au>
11099         * sources/rb-sourcelist.c: (rb_sourcelist_append),
11100         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
11101         (source_name_edited_cb): Ask for the columns to be resized when a
11102         source is added, deleted or changes name.
11104 2005-10-11  James Livingston  <jrl@ids.org.au>
11106         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
11107         create a thread when processing a directory. This stops up created one
11108         thread for each file in a playlist we're trying to load. Closes
11109         317850.
11111         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
11112         typo that made sort-by-artist not work correctly.
11114 2005-10-11  James Livingston  <jrl@ids.org.au>
11116         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
11117         support is enabled
11119 2005-10-11  James Livingston  <jrl@ids.org.au>
11121         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
11122         * lib/rb-file-helpers.h: add a function to turn uris into our
11123         canonical path-escaped form
11124         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
11125         above function when import playlists. This will fix the problem of
11126         duplicate entries due to different representations of the uri (bug
11127         158211).
11129 2005-10-11  James Livingston  <jrl@ids.org.au>
11131         * shell/rb-shell.c: (rb_shell_get_visibility),
11132         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
11133         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
11134         window hiding so that Alt-F4 works again.
11136         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
11137         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
11138         (rb_entry_view_string_sort_func): Stop some crashes where a string
11139         property was set to NULL.
11141 2005-10-10  James Livingston  <jrl@ids.org.au>
11143         * doc/reference/rhythmbox.types: fix gtk-doc generation
11145 2005-10-09  James Livingston  <jrl@ids.org.au>
11147         * sources/rb-sourcelist.c: (rb_sourcelist_init):
11148         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
11149         accelerators, so that we don't have as many conflicting keys.
11151 2005-10-08  James Livingston  <jrl@ids.org.au>
11153         * data/iradio-initial.pls: Update the list of radio stations. Thanks
11154         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
11155         bug 129285.
11157 2005-10-07  James Livingston  <jrl@ids.org.au>
11159         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
11160         local path names in the same way as every other URI. This should stop
11161         duplicates occurring due to different escapings. Closes bug 158211.
11163 2005-10-06  James Livingston  <jrl@ids.org.au>
11165         * NEWS: more updates
11166         
11167         patch from Jaap Haitsma <jaap@haitsma.org>:
11169         * configure.ac:
11170         * data/Makefile.am:
11171         * data/art/Makefile.am:
11172         - data/art/rhythmbox-paused.png:
11173         - data/art/rhythmbox-playback-error.png:
11174         - data/art/rhythmbox-playing.png:
11175         - data/art-clearlooks/:
11176         * lib/rb-file-helpers.c: (rb_file):
11177         * lib/rb-stock-icons.c: (rb_stock_icons_init):
11178         * lib/rb-stock-icons.h:
11179         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
11180         * widgets/rb-cell-renderer-pixbuf.c:
11181         (rb_cell_renderer_pixbuf_render):
11182         * widgets/rb-entry-view.c: (rb_entry_view_init),
11183         (rb_entry_view_set_playing):
11184         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
11185         stock icons instead of custom art. Drop remanents of art-clearlooks.
11187 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
11189         * configure.ac: Added ne in ALL_LINGUAS
11191 2005-10-02  James Livingston  <jrl@ids.org.au>
11193         * data/glade/Makefile.am: actually install the daap prefs glade file
11195 2005-09-30  James Livingston  <jrl@ids.org.au>
11197         * po/POTFILES.in: mremove rb-string-helper.c from the list of
11198         translatable files, so that make check works and we don't annoy the
11199         translators.
11200         
11201         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
11202         sanity checking, in case a db entry is missing some properties.
11204 2005-09-29  James Livingston  <jrl@ids.org.au>
11206         - lib/rb-string-helpers.c:
11207         - lib/rb-string-helpers.h:
11208         * lib/Makefile.am:
11209         * rhythmdb/rhythmdb-tree.c:
11210         * rhythmdb/rhythmdb.c:
11211         * shell/main.c: (main):
11212         * shell/rb-shell.c:
11213         * widgets/rb-entry-view.c:
11214         * widgets/rb-property-view.c: remove rb-string-helpers, as they
11215         utility functions haven't been used in a while.
11217 2005-09-27  James Livingston  <jrl@ids.org.au>
11219         * data/art-clearlooks/Makefile.am:
11220         - data/art-clearlooks/rhythmbox-album.png:
11221         - data/art-clearlooks/rhythmbox-audiocd.png:
11222         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
11223         - data/art-clearlooks/rhythmbox-dnd.png:
11224         - data/art-clearlooks/rhythmbox-ipod.png:
11225         - data/art-clearlooks/rhythmbox-iradio.png:
11226         - data/art-clearlooks/rhythmbox-library.png:
11227         - data/art-clearlooks/rhythmbox-next.png:
11228         - data/art-clearlooks/rhythmbox-pause.png:
11229         - data/art-clearlooks/rhythmbox-play.png:
11230         - data/art-clearlooks/rhythmbox-playlist-menu.png:
11231         - data/art-clearlooks/rhythmbox-playlist.png:
11232         - data/art-clearlooks/rhythmbox-previous.png:
11233         - data/art-clearlooks/rhythmbox-repeat.png:
11234         - data/art-clearlooks/rhythmbox-rewind.png:
11235         - data/art-clearlooks/rhythmbox-shuffle.png:
11236         - data/art-clearlooks/rhythmbox-stop.png:
11237         - data/art-clearlooks/rhythmbox-visuals.png:
11238         - data/art-clearlooks/rhythmbox-volume-max.png:
11239         - data/art-clearlooks/rhythmbox-volume-medium.png:
11240         - data/art-clearlooks/rhythmbox-volume-min.png:
11241         - data/art-clearlooks/rhythmbox-volume-mute.png:
11242         - data/art-clearlooks/rhythmbox-volume-zero.png:
11243         * data/art/Makefile.am:
11244         - data/art/rhythmbox-album.png:
11245         - data/art/rhythmbox-audiocd.png:
11246         - data/art/rhythmbox-automatic-playlist.png:
11247         - data/art/rhythmbox-dnd.png:
11248         - data/art/rhythmbox-ipod.png:
11249         - data/art/rhythmbox-iradio.png:
11250         - data/art/rhythmbox-library.png:
11251         - data/art/rhythmbox-next.png:
11252         - data/art/rhythmbox-pause.png:
11253         - data/art/rhythmbox-play.png:
11254         - data/art/rhythmbox-playlist-menu.png:
11255         - data/art/rhythmbox-playlist.png:
11256         - data/art/rhythmbox-previous.png:
11257         - data/art/rhythmbox-repeat.png:
11258         - data/art/rhythmbox-rewind.png:
11259         - data/art/rhythmbox-shuffle.png:
11260         - data/art/rhythmbox-stop.png:
11261         - data/art/rhythmbox-visuals.png:
11262         - data/art/rhythmbox-volume-max.png:
11263         - data/art/rhythmbox-volume-medium.png:
11264         - data/art/rhythmbox-volume-min.png:
11265         - data/art/rhythmbox-volume-mute.png:
11266         - data/art/rhythmbox-volume-zero.png:
11267         * lib/rb-stock-icons.c: (rb_stock_icons_init):
11268         * lib/rb-stock-icons.h:
11269         * shell/rb-playlist-manager.c:
11270         * shell/rb-shell-player.c:
11271         * sources/rb-daap-source.c: (rb_daap_get_icon):
11272         * sources/rb-ipod-source.c:
11273         * sources/rb-iradio-source.c: (rb_iradio_source_init):
11274         * sources/rb-library-source.c: (rb_library_source_new):
11275         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
11276         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
11277         that hasn't been used in a LONG time, and also remove art that are
11278         now stock icons.
11280 2005-09-27  James Livingston  <jrl@ids.org.au>
11282         * README: point to the gnome.org web sites, and update the example
11283         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
11284         
11285         * rhythmdb/rhythmdb-query-model.c:
11286         (rhythmdb_query_model_set_property),
11287         (rhythmdb_query_model_get_property),
11288         (rhythmdb_query_model_finalize):
11289         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
11290         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
11291         * rhythmdb/rhythmdb.h:
11292         * sources/rb-iradio-source.c: (impl_search):
11293         * sources/rb-library-source.c: (impl_search): Add query
11294         "preprocessing", which performs operations such as casefolding any
11295         strings that will be compared to any of the *_FOLDED properties.
11296         Closes bug 316039
11298 2005-09-27  James Livingston  <jrl@ids.org.au>
11300         * data/glade/daap-prefs.glade:
11301         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
11302         file for the daap preferences pane
11303         
11304         * sources/rb-sourcelist.c: (rb_sourcelist_init),
11305         (rb_sourcelist_append), (rb_sourcelist_remove),
11306         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
11307         don't display the column for source expanders unless there is an
11308         expandable source.
11310 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
11312         * .cvsignore:
11313         * Makefile.am:
11314         * configure.ac:
11315         * doc/.cvsignore:
11316         * doc/Makefile.am:
11317         * doc/reference/.cvsignore:
11318         * doc/reference/Makefile.am:
11319         * doc/reference/rhythmbox-docs.sgml:
11320         * doc/reference/rhythmbox-sections.txt:
11321         * doc/reference/rhythmbox.types:
11322         * doc/reference/tmpl/bacon-volume.sgml:
11323         * doc/reference/tmpl/disclosure-widget.sgml:
11324         * doc/reference/tmpl/eel-gconf-extensions.sgml:
11325         * doc/reference/tmpl/eggnotificationbubble.sgml:
11326         * doc/reference/tmpl/eggtrayicon.sgml:
11327         * doc/reference/tmpl/gsequence.sgml:
11328         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
11329         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
11330         * doc/reference/tmpl/rb-daap-connection.sgml:
11331         * doc/reference/tmpl/rb-daap-dialog.sgml:
11332         * doc/reference/tmpl/rb-daap-mdns.sgml:
11333         * doc/reference/tmpl/rb-daap-share.sgml:
11334         * doc/reference/tmpl/rb-daap-sharing.sgml:
11335         * doc/reference/tmpl/rb-daap-source.sgml:
11336         * doc/reference/tmpl/rb-daap-src.sgml:
11337         * doc/reference/tmpl/rb-daap-structure.sgml:
11338         * doc/reference/tmpl/rb-debug.sgml:
11339         * doc/reference/tmpl/rb-dialog.sgml:
11340         * doc/reference/tmpl/rb-druid.sgml:
11341         * doc/reference/tmpl/rb-entry-view.sgml:
11342         * doc/reference/tmpl/rb-enums.sgml:
11343         * doc/reference/tmpl/rb-file-helpers.sgml:
11344         * doc/reference/tmpl/rb-glade-helpers.sgml:
11345         * doc/reference/tmpl/rb-header.sgml:
11346         * doc/reference/tmpl/rb-history.sgml:
11347         * doc/reference/tmpl/rb-ipod-source.sgml:
11348         * doc/reference/tmpl/rb-iradio-source.sgml:
11349         * doc/reference/tmpl/rb-library-source.sgml:
11350         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
11351         * doc/reference/tmpl/rb-metadata.sgml:
11352         * doc/reference/tmpl/rb-new-station-dialog.sgml:
11353         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
11354         * doc/reference/tmpl/rb-play-order-linear.sgml:
11355         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
11356         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
11357         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
11358         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
11359         * doc/reference/tmpl/rb-play-order-random.sgml:
11360         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
11361         * doc/reference/tmpl/rb-play-order.sgml:
11362         * doc/reference/tmpl/rb-player.sgml:
11363         * doc/reference/tmpl/rb-playlist-manager.sgml:
11364         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
11365         * doc/reference/tmpl/rb-playlist-source.sgml:
11366         * doc/reference/tmpl/rb-preferences.sgml:
11367         * doc/reference/tmpl/rb-property-view.sgml:
11368         * doc/reference/tmpl/rb-query-creator-private.sgml:
11369         * doc/reference/tmpl/rb-query-creator.sgml:
11370         * doc/reference/tmpl/rb-rating-helper.sgml:
11371         * doc/reference/tmpl/rb-rating.sgml:
11372         * doc/reference/tmpl/rb-recorder.sgml:
11373         * doc/reference/tmpl/rb-refstring.sgml:
11374         * doc/reference/tmpl/rb-removable-media-manager.sgml:
11375         * doc/reference/tmpl/rb-removable-media-source.sgml:
11376         * doc/reference/tmpl/rb-search-entry.sgml:
11377         * doc/reference/tmpl/rb-shell-clipboard.sgml:
11378         * doc/reference/tmpl/rb-shell-glue.sgml:
11379         * doc/reference/tmpl/rb-shell-player-glue.sgml:
11380         * doc/reference/tmpl/rb-shell-player.sgml:
11381         * doc/reference/tmpl/rb-shell-preferences.sgml:
11382         * doc/reference/tmpl/rb-shell.sgml:
11383         * doc/reference/tmpl/rb-song-display-box.sgml:
11384         * doc/reference/tmpl/rb-song-info.sgml:
11385         * doc/reference/tmpl/rb-source-header.sgml:
11386         * doc/reference/tmpl/rb-source.sgml:
11387         * doc/reference/tmpl/rb-sourcelist-model.sgml:
11388         * doc/reference/tmpl/rb-sourcelist.sgml:
11389         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
11390         * doc/reference/tmpl/rb-statusbar.sgml:
11391         * doc/reference/tmpl/rb-stock-icons.sgml:
11392         * doc/reference/tmpl/rb-string-helpers.sgml:
11393         * doc/reference/tmpl/rb-thread.sgml:
11394         * doc/reference/tmpl/rb-tray-icon.sgml:
11395         * doc/reference/tmpl/rb-tree-dnd.sgml:
11396         * doc/reference/tmpl/rb-tree-model-sort.sgml:
11397         * doc/reference/tmpl/rb-util.sgml:
11398         * doc/reference/tmpl/rhythmdb-property-model.sgml:
11399         * doc/reference/tmpl/rhythmdb-query-model.sgml:
11400         * doc/reference/tmpl/rhythmdb-tree.sgml:
11401         * doc/reference/tmpl/rhythmdb.sgml:
11402         * macros/.cvsignore:
11403         * shell/Makefile.am:
11404         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
11405         (rb_source_finalize), (rb_source_set_property),
11406         (rb_source_get_property), (default_get_pixbuf),
11407         (_rb_source_show_popup):
11408         * sources/rb-source.h:
11409         Add support for gtk-doc in rhythmbox.
11410         Convert RBSource to use newer glib functions, such as add_private.
11411         Gives RBSource a default get_pixbuf implementation.
11413 2005-09-25  James Livingston  <jrl@ids.org.au>
11415         * NEWS: Update with about a months worth of changes
11417         * data/glade/song-info-multiple.glade:
11418         * data/glade/song-info.glade:
11419         * data/rhythmbox.schemas:
11420         * lib/rb-preferences.h:
11421         * rhythmdb/rhythmdb.h:
11422         * shell/rb-shell-player.c:
11423         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
11424         few remaining parts of autorating.
11426 2005-09-24  James Livingston  <jrl@ids.org.au>
11428         * shell/rb-shell.c: (rb_shell_constructor),
11429         (rb_shell_window_state_cb), (rb_shell_set_visibility),
11430         (rb_shell_window_configure_cb): store window state in the gconf keys,
11431         so that it gets used. Closes bugs 313893 and 137068.
11433 2005-09-20  James Livingston  <jrl@ids.org.au>
11435         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
11436         crash if the entry has a NULL string in a property
11437         
11438         * shell/rb-removable-media-manager.c:
11439         (rb_removable_media_manager_load_media): fix some memory leaks
11440         
11441         (rb_removable_media_manager_mount_volume),
11442         (rb_removable_media_manager_eject_medium_cb),
11443         (rb_removable_media_manager_cmd_eject_medium): use
11444         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
11445         
11446         * sources/rb-removable-media-source.c:
11447         (rb_removable_media_source_set_property),
11448         (rb_removable_media_source_get_property): use
11449         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
11451 2005-09-18  James Livingston  <jrl@ids.org.au>
11453         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
11454         column
11456         * data/glade/general-prefs.glade:
11457         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
11458         (rb_shell_preferences_column_check_changed_cb),
11459         (rb_shell_preferences_sync): add checkbox to control visibility
11460         of the column
11461         
11462         
11463         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
11464         (save_entry):
11465         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
11466         (rhythmdb_prop_get_type):
11467         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
11468         was as "last played" is handled
11469         
11470         * sources/rb-library-source.c: (rb_library_source_constructor):
11471         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
11472         Make the column show in the library and playlists
11473         
11474         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
11475         * widgets/rb-entry-view.h: add the column
11476         
11477         * widgets/rb-query-creator-properties.c: allow automatic playlists to
11478         be sorted by the column
11480 2005-09-16  James Livingston  <jrl@ids.org.au>
11482         * shell/rb-shell-player.c: (rb_shell_player_init),
11483         (rb_shell_player_do_previous_or_seek),
11484         (rb_shell_player_previous_button_cb),
11485         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
11486         (rb_shell_player_playpause_button_cb): Make the previous button act
11487         the same as the menu item. Fix an inversion of the "previous track or
11488         seek" logic.
11489         
11490         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11491         
11492         (rb_shell_player_playpause): make --play-pause stop source that can't
11493         be paused
11495 2005-09-15  James Livingston  <jrl@ids.org.au>
11497         * configure.ac: increase totem-plparser requirements to 1.1.5
11499         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
11500         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
11501         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
11502         use the newer playlist APIs to save the name of the playlist, and use
11503         the name of a loaded playlist.
11505         Closes bug 309817.
11507 2005-09-15  James Livingston  <jrl@ids.org.au>
11509         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11511         * shell/Makefile.am: stop some linker warnings
11513         * shell/main.c: (main): make --no-registration work with dbus
11515 2005-09-15  James Livingston  <jrl@ids.org.au>
11517         * daapsharing/rb-daap-sharing.c: (create_share):
11518         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
11519         reference sinking and counting issues that I caused.
11521 2005-09-15  James Livingston  <jrl@ids.org.au>
11523         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
11524         playing" icon in the "now playing" column header.
11526 2005-09-14  James Livingston  <jrl@ids.org.au>
11528         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
11529         daap shares, when sharing is turned off.
11531 2005-09-12  Bastien Nocera  <hadess@hadess.net>
11533         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
11534         the GConf value's default, especially for badly installed schema
11535         files
11537 2005-09-12  James Livingston  <jrl@ids.org.au>
11539         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
11541         Patch from Paolo Borelli <pborelli@katamail.com>
11543         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
11544         grip when maximised. Closes bug 316055.
11546 2005-09-11  James Livingston  <jrl@ids.org.au>
11548         Patch from William Jon McCann <mccann@jhu.edu>
11550         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
11551         subclass of GtkStatusbar instead of GtkHBox.
11552         (rb_statusbar_construct): Don't set border width.
11553         (rb_statusbar_init): Use resize grip.  Don't use
11554         markup.
11555         (set_statusbar_tooltip, unset_statusbar_tooltip) 
11556         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
11557         Connect tooltips for actions.
11558         (rb_statusbar_sync_status): Push new message to statusbar.
11559         (rb_statusbar_set_progress): Don't use markup.
11560         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
11561         flag here since it prevents actually showing or hiding.
11562         (rb_statusbar_sync_with_source): Push new message to statusbar.
11564 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
11566         * daapsharing/rb-daap-structure.c:
11567         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
11568         around debugging definition.
11570 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
11571         
11572         * daapsharing/rb-daap-structure.c:
11573         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
11574         type = version.
11576         * daapsharing/rb-daap-mdns.c/h:
11577         (resolve_cb): Updated mDNS resolve callback to send service-name &
11578         name (read from Machine Name in the TXT data or equal to service-name
11579         if not in TXT).
11581         * daapsharing/rb-daap-source.c:
11582         (rb_daap_source_class_init), (rb_daap_source_set_property), 
11583         (rb_daap_source_get_property), (rb_daap_source_new),
11584         (find_source_by_service_name), (resolve_cb), (browse_cb), 
11585         (stop_resolver), (start_browsing), (stop_browsing), 
11586         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
11587         and added 'host' and 'port' gobject properties.  Updated to use new
11588         mDNS resolve callback sending service-name & name arguments.
11590 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
11592         * daapsharing/rb-daap-mdns.c:
11593         (howl_strerror): New function to report errors from Howl
11594         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
11595         (get_sw_discovery), (get_avahi_client): Better error reporting from
11596         Howl & Avahi.
11598         * sources/rb-daap-source.:
11599         (start_browsing), (stop_browsing): Fixed a bug where browsing would
11600         not get started or stopped in some situations.
11601         
11602 2005-09-12  James Livingston  <jrl@ids.org.au>
11604         * shell/rb-removable-media-manager.c: add a missing include, that
11605         would stop compilation if ipod support wasn't turned on
11607 2005-09-11  James Livingston  <jrl@ids.org.au>
11609         * daapsharing/rb-daap-dialog.c: (encode_base64),
11610         (rb_daap_password_dialog_new_run),
11611         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
11612         it is no broken in to two pieces, and remove a use of a goto
11613         
11614         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
11615         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
11616         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
11617         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
11618         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
11619         memory leaks, and some code style things.
11620         
11621         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
11622         (rb_daap_share_init), (rb_daap_share_set_property),
11623         (rb_daap_share_dispose), (rb_daap_share_new),
11624         (rb_daap_share_get_property): make the DB and the playlist manager
11625         gobject properties.
11626         
11627         (message_add_standard_headers),
11628         (message_set_from_rb_daap_structure), (server_info_cb),
11629         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
11630         (server_cb), (add_db_entry), (db_entry_added_cb),
11631         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
11632         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
11633         style and use CONF_PREFIX in the gconf keys
11634         
11635         * daapsharing/rb-daap-sharing.c: (create_share),
11636         (enable_sharing_changed_cb), (share_name_changed_cb),
11637         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
11638         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
11639         (rb_daap_src_instance_init), (rb_daap_src_dispose),
11640         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
11641         (rb_daap_src_get_property), (rb_daap_src_getcaps),
11642         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
11643         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
11644         (rb_daap_src_get_time): Deal with gconf callbacks where the key
11645         hasn't actually changed, fix some memory leaks, code style and release
11646         gconf notifications when the object is destroyed.
11647         
11648         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
11649         (rb_daap_source_class_init), (rb_daap_source_init),
11650         (rb_daap_source_dispose), (rb_daap_source_set_property),
11651         (rb_daap_source_get_property), (rb_daap_source_new),
11652         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
11653         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
11654         (rb_daap_sources_init), (rb_daap_sources_shutdown),
11655         (rb_daap_source_activate), (rb_daap_source_disconnect),
11656         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
11657         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
11658         release gconf notifications, handle gconf callbacks where the key
11659         hasn't changed, make "real name" and "password protected" gobject
11660         properties, fix some code style and fix a memory leak.
11662 2005-09-11  James Livingston  <jrl@ids.org.au>
11664         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11666         * shell/rb-playlist-manager.c:
11667         (rb_playlist_manager_save_playlists),
11668         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
11669         when we aren't supposed to. (Closes bug 315886)
11671 2005-09-11  James Livingston  <jrl@ids.org.au>
11673         * shell/rb-removable-media-manager.c:
11674         (rb_removable_media_manager_class_init),
11675         (rb_removable_media_manager_init),
11676         (rb_removable_media_manager_dispose),
11677         (rb_removable_media_manager_set_property),
11678         (rb_removable_media_manager_get_property),
11679         (rb_removable_media_manager_new),
11680         (rb_removable_media_manager_load_media),
11681         (rb_removable_media_manager_volume_mounted_cb),
11682         (rb_removable_media_manager_volume_unmounted_cb),
11683         (rb_removable_media_manager_mount_volume),
11684         (rb_removable_media_manager_unmount_volume),
11685         (rb_removable_media_manager_source_deleted_cb),
11686         (rb_removable_media_manager_append_media_source),
11687         (rb_removable_media_manager_set_uimanager),
11688         (rb_removable_media_manager_eject_medium_cb),
11689         (rb_removable_media_manager_cmd_eject_medium):
11690         * shell/rb-removable-media-manager.h:
11691         * sources/rb-removable-media-source.c:
11692         (rb_removable_media_source_class_init),
11693         (rb_removable_media_source_init),
11694         (rb_removable_media_source_dispose),
11695         (rb_removable_media_source_set_property),
11696         (rb_removable_media_source_get_property), (impl_get_pixbuf),
11697         (impl_delete_thyself):
11698         * sources/rb-removable-media-source.h: Add the four files that I
11699         somehow managed not to add to cvs in the last commit. Oops.
11701 2005-09-11  James Livingston  <jrl@ids.org.au>
11703         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
11704         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
11705         
11706         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
11707         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
11708         removable-media-manager on startup, and handle creation of sources.
11709         
11710         * sources/rb-ipod-source.h:
11711         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
11712         (rb_ipod_source_init), (rb_ipod_source_constructor),
11713         (rb_ipod_source_dispose), (rb_ipod_source_new),
11714         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
11715         the iPod source over to the removable media framework.
11716         
11717         * sources/rb-library-source.c: (paned_size_allocate_cb),
11718         (rb_library_source_get_paned_key): fix a potential bug is a
11719         library-derived source doesn't have a paned-key
11721 2005-09-11  Bastien Nocera  <hadess@hadess.net>
11723         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
11724         mp3 when we can't get the suffix of a file (Closes: #315941)
11726 2005-09-10  James Livingston  <jrl@ids.org.au>
11728         * configure.ac: fix the mdns tests, so that it doesn't complain about
11729         not finding one, if daap support isn't being compiled in
11731 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
11733         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
11735         * daapsharing/rb-daap-dialog.c:
11736         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
11737         HIG compliancy & images.
11739         * daapsharing/rb-daap-mdns.c:
11740         (browse_cb), (resolve_cb): Better detection of local services.  
11741         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
11742         Howl's limitations.  Fix the way collision handling is done under
11743         Avahi.
11745         * daapsharing/rb-daap-share.c:
11746         (publish_cb): Better name collision handling (at least for Avahi).
11748 2005-09-10  James Livingston  <jrl@ids.org.au>
11750         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
11751         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
11752         preferences more HIG compliant (Closes #315889)
11753         
11754         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
11755         list of files to be translated
11757 2005-09-10  James Livingston  <jrl@ids.org.au>
11759         * configure.ac: fix it so that --enable-daap=no works
11760         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
11761         uninstalled
11763 2005-09-10  James Livingston  <jrl@ids.org.au>
11765         Patch from Christophe Fergeau <teuf@gnome.org>
11767         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
11768         the ipod code.
11770 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
11771         * README.daap: Updating documentation
11773 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
11774         * AUTHORS: Added myself.
11776         * daapsharing/rb-daap-connection.c:
11777         (connection_login), (rb_connection_new): Reorganized password
11778         handling.
11780         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
11782         * shell/rb-shell.c:
11783         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
11785         * sources/rb-daap-source.c:
11786         (rb_daap_source_activate): Better error handling when we are unable to
11787         connect.
11788         
11789 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
11790         * README.daap: Fixed some terminology.
11792         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
11793         New --with-mdns=auto|howl|avahi flag to specify.
11795         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
11796         name collision dialogs.
11798         * daapsharing/rb-daap-connection.c:
11799         (connection_get_password), (build_message), (http_get)
11800         (connection_login): Ask for & use a password if the share demands it.
11802         * daapsharing/rb-daap-connection.h: Changed prototype of
11803         rb_daap_connection_new.
11804         
11805         * daapsharing/rb-daap-mdns.c: 
11806         (resolve_cb): Better detection of your own music share so it doesn't 
11807         appear in the sourcelist.
11809         * daapsharing/rb-daap-share.c:
11810         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
11811         that start on any available port.
11813         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
11815         * sources/rb-daap-source.c:
11816         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
11817         (browse_cb): Handle passworded shares. Resolve the host immediately
11818         instead of when activated.
11819         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
11820         (rb_daap_source_new): New GConf keys for UI state.
11821         (rb_daap_source_activate): Use RBPlaylistSource instead of
11822         RBDAAPPlaylistSource
11823         
11824         * sources/rb-daap-playlist-source.c/h: Removed
11826         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
11827         if the playlist is local (i.e. not DAAP or iPod).
11828         
11829         * shell/rb-playlist-manager.c:
11830         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
11831         wouldn't get saved if the last playlist hadn't changed.  Only save
11832         local playlists.
11833         
11834 2005-09-09  James Livingston  <jrl@ids.org.au>
11836         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
11837         iPod preferences pane, as it already uses the browser views as the
11838         library.
11840 2005-09-09  James Livingston  <jrl@ids.org.au>
11842         * sources/rb-library-source.c: (rb_library_source_finalize),
11843         (rb_library_source_constructor): fix gconf monitoring of library
11844         preference keys.
11845         * sources/rb-library-source.h: remove declaration of function that
11846         does not exist
11848 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
11850         * player/rb-player-gst.c:
11851         (rb_player_set_time): Fix seeking in daap streams.
11853 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
11855         * data/rhythmbox.schemas: Turn music share browsing on by default.
11857 2005-09-07  James Livingston  <jrl@ids.org.au>
11859         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
11861 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
11862         * player/rb-player-gst.c: 
11863         (rb_player_get_time): Fix for extra << & == that accidentally made
11864         it in.
11866         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
11867         
11868 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
11869         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
11870         it in last time.  Sorry.
11872 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
11873         
11874         * player/rb-player-gst.c:
11875         (rb_player_get_time): Fix a small crash appearing when
11876         the uri isn't set in the player, but rb_player_get_time() is
11877         still called.
11879         * configure.ac: Also check for libsoup 2.4, which is what ships with
11880         Gnome 2.12.
11882         * po/POTFILES.in: Added music sharing files that have translatable 
11883         strings.
11885         * README.daap: New file explaining "How Music Sharing Works"  
11887 2005-09-06  Bastien Nocera  <hadess@hadess.net>
11889         * daapsharing/.cvsignore: added
11891 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
11893         * daapsharing/*: Music sharing library.
11894         
11895         * sources/rb-daap-source.c/h: Music share RBSource.
11896         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
11898         * configure.ac: --enable-daap flag to turn on music sharing. Requires
11899         libsoup and a mutlicast DNS implementation (howl or avahi).
11901         * data/rhythmbox.schemas: New GConf keys for music sharing.
11903         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
11904         source right click menu.
11906         * player/rb-player-gst.c: Changes to properly play & seek in remote
11907         music share files.
11909         * shell/rb-playlist-manager.c/h:
11910         (rb_playlist_manager_get_playlists): New function to get a GList * of
11911         the playlists.
11912         (rb_playlist_manager_save_playlists): Don't save music share playlists
11913         and fixed a GObject reference leak.
11915         * shell/rb-shell.c/h:
11916         (rb_shell_append_source): No longer a local function.  Now takes a
11917         parent RBSource * argument, NULL to append a toplevel source.
11918         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
11919         source (useful for disconnecting from remote music share,
11920         specifically).
11921         (rb_shell_quit): Stop music sharing/browsing.
11922         (rb_shell_playlist_added_cb): Work with tree source structure.
11923         (rb_shell_get_property): "playlist-manager" property accessor.
11924         (rb_shell_class_init): New "playlist-manager" property.
11925         (rb_shell_construor): Append sources as toplevel sources.  Initialize
11926         daap sharing/browsing.
11927         (rb_shell_select_source): Notify source of activation/deactivation.
11929         * shell/rb-shell-prefernces.c: Music sharing preferences.
11931         * sources/rb-source.c/h: New activate, deactivate and disconnect
11932         class functions.  Activate & deactivate are notification style 
11933         functions that will tell a source when it is selected/unselected.
11934         Disconnect can be hooked up to a UI object to disconnect the source.
11936         * sources/rb-sourcelist-model.c:
11937         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
11938         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
11939         append a toplevel source.
11941 2005-09-05  James Livingston  <jrl@ids.org.au>
11943         * rhythmdb/rhythmdb-query-model.c:
11944         (rhythmdb_query_model_entry_changed_cb),
11945         (rhythmdb_query_model_do_reorder): Update the query model's totals if
11946         the duration of filesize of an entry changes.  Emit the row-changed
11947         signals that I forgot to put back in, when I was doing query sorting.
11949         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
11950         out "0 minutes" or "0 bytes".
11952 2005-09-04  James Livingston  <jrl@ids.org.au>
11954         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
11955         remove a leftover bit of the "internal-name" property of sources.
11957 2005-09-03  James Livingston  <jrl@ids.org.au>
11959         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
11960         extraneous debug message
11961         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
11962         crasher would affect any library-derived sources (which was also a
11963         memory leak).
11965 2005-09-02  Colin Walters  <walters@verbum.org>
11967         * configure.ac: Fix sytnax error.
11969         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
11970         code to disable minimization icons - need to figure out
11971         why it doesn't work...
11973 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
11975         * data/glade/song-info-multiple.glade:
11976         * data/glade/song-info.glade:
11977         * widgets/rb-song-info.c: (rb_song_info_constructor):
11978         Add a mnemonic to the newly added "Automatically rate" label
11979         in the properties dialog and use a bold typeface like all the 
11980         other labels in the dialog. (Closes bug 315089)
11982 2005-09-03  James Livingston  <jrl@ids.org.au>
11984         * sources/rb-library-source.c: (rb_library_source_class_init),
11985         (rb_library_source_finalize), (rb_library_source_constructor),
11986         (rb_library_source_set_property), (rb_library_source_get_property),
11987         (impl_get_paned_key), (paned_size_allocate_cb),
11988         (rb_library_source_state_prefs_sync), (impl_show_popup),
11989         (rb_library_source_get_paned_key):
11990         * sources/rb-library-source.h: Allow sources derived from
11991         RBLibrarySource to use different gconf keys for sort order, browser
11992         visibility and browser pane position. Fix a crasher if a derived
11993         source overrides _get_pixbuf.
11995 2005-09-02  Colin Walters  <walters@verbum.org>
11997         * shell/rb-shell.c (rb_shell_set_visibility): Move
11998         hint setting which seems to avoid races more.
11999         
12000 2005-09-03  James Livingston  <jrl@ids.org.au>
12002         * shell/rb-shell.c: fix compilation with iPod support enabled
12003         
12004 2005-09-02  Colin Walters  <walters@verbum.org>
12006         * shell/rb-shell.c (struct RBShellPrivate): Add
12007         idle_hide_mainwindow_id.
12008         (rb_shell_constructor): Move taskbar skipping hint into
12009         rb_shell_set_visibility.
12010         (idle_hide_mainwindow): New function.
12011         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
12012         racy hack to avoid rb appearing in taskbar when minimized.
12014 2005-09-01  Colin Walters  <walters@verbum.org>
12016         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
12018         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
12019         from gtkstatusicion.c.
12021         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
12023         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
12024         TrayShowWindow entry.
12025         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
12026         (rb_tray_icon_constructor): Create action group here.
12027         (rb_tray_icon_finalize): Destroy action group.
12028         (rb_tray_icon_set_property): Don't take an action group.
12029         (rb_tray_icon_new): Ditto.
12030         (tray_popup_position_menu): Some mostly boilerplate code
12031         to position menu.
12032         (rb_tray_icon_button_press_event_cb): Position menu.
12033         (rb_tray_icon_get_geom): New function used for the shell
12034         to set minimization hints.
12036         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
12038         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
12039         (struct RBShellPrivate): Change visible to iconified.
12040         (set_icon_geometry): New function from Søren Sandmann to
12041         tell Metacity where to draw the minimization animiation.
12042         (rb_shell_window_state_cb): Update iconified.
12043         (rb_shell_get_visibility): New function to say whether
12044         or not we're currently visible.
12045         (rb_shell_set_visibility): Update to minimize to
12046         tray or present as appropriate.
12047         (rb_shell_window_delete_cb): On window close, just
12048         minimize to tray if we're deleted.
12049         (rb_shell_set_window_title): Kill old notification code.
12050         (rb_shell_toggle_visibility): Nwe function.
12051         (rb_shell_cmd_toggle_visibility): Call it.
12052         (rb_shell_constructor): Skip the taskbar.
12053         (tray_destroy_cb): Better debugging.
12054         
12055 2005-09-01  Colin Walters  <walters@verbum.org>
12057         * data/ui/rhythmbox-ui.xml: Add MusicClose.
12059         * configure.ac: Enable bonobo by default.
12060         
12061 2005-09-01  Colin Walters  <walters@verbum.org>
12063         * configure.ac: Default to old art.  Add macros subdir.
12065         * Makefile.am (SUBDIRS): Add macros.
12067         * macros/Makefile.am: New.
12068         
12069 2005-09-01  Colin Walters  <walters@verbum.org>
12071         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
12072         rb-shell-player.xml.
12074         * remote/dbus/rb-remote-dbus.h: Deleted.
12075         
12076         * remote/dbus/Makefile.am: Delete all the junk, just dist
12077         rb-print-playing.py and rb-set-rating.py.
12079         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
12081         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
12083 2005-09-02  James Livingston  <jrl@ids.org.au>
12085         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
12086         file from cvs
12088         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
12089         (rb_shell_constructor): Patches from Jonathan Matthew
12090         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
12091         a crash when using "browse this artist".
12093 2005-08-31  Colin Walters  <walters@verbum.org>
12095         * configure.ac: Add --with-old-art configure switch.  Also
12096         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
12097         but it doesn't work.
12099         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
12100         Don't use eel_create_colorized_pixbuf for new art.
12101         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
12103         * data/art-clearlooks: New artwork.
12104         
12105 2005-08-31  Colin Walters  <walters@verbum.org>
12107         * shell/main.c (main): Fix Bastien's commit to continue to focus
12108         the window with GTK+ 2.8 at least.
12109         
12110 2005-08-31  Colin Walters  <walters@verbum.org>
12112         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
12113         is already loaded.
12115         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
12117 2005-08-31  Bastien Nocera  <hadess@hadess.net>
12119         * README: remove mentions of the xine-lib backend
12120         * shell/main.c: (main): make it compilable with gtk+ < 2.8
12122 2005-08-30  Colin Walters  <walters@verbum.org>
12124         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
12125         Make non-visible sources insensitive.
12126         
12127 2005-08-30  Colin Walters  <walters@verbum.org>
12129         * shell/rb-shell.c: Don't use GConf for selected source; it's
12130         confusing to have the selected source change after startup,
12131         and since we don't save other things it's not worth saving this.
12133         * sources/rb-playlist-source.c:
12134         * sources/rb-library-source.c:
12135         * sources/rb-iradio-source.c:
12136         * sources/rb-ipod-source.c: Delete internal-name property usage.
12137         * sources/rb-source.c: Delete internal-name property.
12139         * data/rhythmbox.schemas: Delete selected_source.
12140         
12141 2005-08-30  Colin Walters  <walters@verbum.org>
12143         * sources/rb-sourcelist.c: Make playing source bold instead of
12144         displaying a pixbuf; it's much less ugly.
12145         
12146 2005-08-30  Colin Walters  <walters@verbum.org>
12148         * sources/rb-source.c:
12149         * sources/rb-source.h: New virtual method try_playlist.
12151         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
12152         impl_try_playlist.
12153         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
12154         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
12155         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
12156         need to.
12157         (stations_view_drag_data_received_cb): Don't check for iradio uris;
12158         in theory we should though...
12160         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
12161         list in rb_shell_construct now.
12162         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
12163         RBiPodSource.
12164         (rb_shell_constructor): Create library, iradio, ipod here.
12165         (rb_shell_source_deleted_cb): Use source directly instead of
12166         indirecting through type.
12167         (rb_shell_sync_selected_source): Ditto.
12168         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
12169         from the type instead of special-casing.
12170         (rb_shell_guess_type_for_uri) 
12171         (rb_shell_add_uri)
12172         (handle_one_uri_with_possible_metadata): New functions.
12173         (rb_shell_load_uri): Refactor to allow loading playlists again,
12174         also use other URI infrastructure.
12176         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
12177         (rb_shell_player_error): Always set entry error on error, instead
12178         of depending on EOF behavior.
12180         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
12181         to just invoke rb_shell_add_uri.
12182         (rb_playlist_manager_parse_file): Return error instead of tossing
12183         up dialog box directly.
12184         (load_playlist_response_cb): Display error here.
12185         (add_uri_to_playlist): Delete.
12186         (handle_playlist_entry_into_playlist_cb): Renamed to
12187         handle_playlist_entry_cb.
12189         * shell/rb-playlist-manager.h: Add error, update prototype.
12191         * lib/rb-file-helpers.c:
12192         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
12194 2005-08-29  Colin Walters  <walters@verbum.org>
12196         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
12197         if entry already exists.  Use rhythmdb_entry_set_uninserted.
12199         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
12200         needlessly duping string, and use rhythmdb_entry_set_uninserted.
12201         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
12203         * shell/rb-shell.h (enum RBShellError): Add some more errors.
12204         Prototype rb_shell_set_song_property.
12206         * shell/rb-shell.xml: Export setSongProperty.
12208         * shell/rb-shell.c (rb_shell_set_song_property): New function.
12209         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
12210         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
12212         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
12213         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
12214         want to notify of the change.
12215         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
12217         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
12218         logic error; idle functions would be enqueued for each set.
12219         (rhythmdb_entry_set): Fix assertion logic error.
12221         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
12222         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
12223         Return if the entry already exists.
12224         
12225 2005-08-29  Colin Walters  <walters@verbum.org>
12227         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
12228         "inserted" member which we use to keep track of
12229         whether or not an entry is in the DB.  Prototype
12230         rhythmdb_entry_set_uninserted.
12232         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
12233         flag.
12234         (rhythmdb_entry_insert): Assert entry is not already inserted.
12235         (rhythmdb_process_metadata_load): Update to call _set_uninserted
12236         just after creating entry.
12237         (rhythmdb_entry_set): Document, and fail on uninserted entries.
12238         (rhythmdb_entry_set_nonotify): Ditto.
12239         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
12240         entries.
12241         (rhythmdb_entry_set_internal): Change notify flag to
12242         notify_if_inserted.  Also move notification after assertions.
12244         Update all existing callers of rhythmdb_entry_set_internal
12245         to give TRUE for notify_if_inserted; this should be what
12246         we want but may be an efficiency hit.
12247         
12248 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
12250         * shell/rb-shell-player.c: (rb_shell_player_init),
12251         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
12252         (rb_shell_player_set_playing_source_internal),
12253         (rb_shell_player_sync_with_selected_source): Notify the player when an
12254         entry has updated the title, album or artist field, and resync the big
12255         display.
12256         
12257         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
12258         * sources/rb-library-source.c: (rb_library_source_class_init),
12259         (impl_get_config_widget):
12260         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
12261         * sources/rb-source.c:
12262         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
12263         get_album functions in rb-source and adapted other sources accordingly.
12264         
12265 2005-08-29  Colin Walters  <walters@verbum.org>
12267         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
12268         signal_change member.
12269         (threadsafe_entry_set): New function.
12270         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
12271         (rhythmdb_entry_set_nonotify): New function; just call
12272         threadsafe_entry_set with FALSE.
12273         (rhythmdb_entry_set_internal): Take a notify flag; if true
12274         add the change to our pending set.
12276         Also update all internal callers of rhythmdb_entry_set_internal
12277         to pass FALSE.  Some of these may be bugs however and need to
12278         pass TRUE...
12280         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
12281         rhythmdb_entry_set, and rename rhythmdb_entry_set to
12282         rhythmdb_entry_set_nonotify.
12284         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
12285         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
12287         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
12289         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
12290         * sources/rb-source.c (rb_source_update_play_statistics): 
12291         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
12292         * sources/rb-ipod-source.c (entry_set_string_prop) 
12293         (load_ipod_db_idle_cb): 
12294         * shell/rb-shell.c (rb_shell_set_rating_impl): 
12295         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
12296         (info_available_cb): 
12297         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
12298         (rb_station_properties_dialog_sync_entries): 
12299         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
12301         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
12302         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
12303         
12304 2005-08-29  Colin Walters  <walters@verbum.org>
12306         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
12308         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
12309         linking insanity.
12311         * widgets/rb-header.c (sanitize_string): New function, extracted
12312         from old info_url.  Be sure to always strip the string.
12313         (info_url): Rewrite to take artist/album, and generate a sane
12314         URL for them from last.fm, which is better than allmusic.com in
12315         that they support Rhythmbox, and have a *SANE* URL scheme.
12316         (artist_info_url, album_info_url): Delete.
12317         (rb_header_sync): Use info_url.
12319 2005-08-29  James Livingston  <jrl@ids.org.au>
12321         * sources/rb-source.c: (rb_source_search): Check to ensure that this
12322         is implemented before calling it. Many sources don't implement the
12323         method.
12325 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
12327         * data/glade/create-playlist.glade:  Cleanup the layout,
12328         and add a few more mnemonics.
12329         * shell/rb-playlist-manager.c:
12330         (rb_playlist_manager_cmd_load_playlist),
12331         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
12332         capitalization for window titles.
12333         * widgets/rb-query-creator-properties.c: Add mnemonics
12334         to checkbutton labels.
12335         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
12336         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
12338 2005-08-28  Colin Walters  <walters@verbum.org>
12340         * data/rhythmbox.schemas: Delete search_text for library
12341         and iradio; this isn't a persistent value anymore.
12342         Closes #313757.
12343         
12344         * sources/rb-source.h:
12345         * sources/rb-source.c: Delete impl_can_search.
12347         * sources/rb-iradio-source.c: Delete search_text usage.
12348         * sources/rb-library-source.c: Ditto.
12350         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
12351         search when source is set, and just do rb_source_search in
12352         rb_source_header_search_cb.
12354         * shell/rb-shell.c (rb_shell_append_source): Don't
12355         initiate search.
12357         * shell/Makefile.am: Don't dist dashboard.c.
12359 2005-08-28  Colin Walters  <walters@verbum.org>
12361         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
12362         
12363 2005-08-28  Colin Walters  <walters@verbum.org>
12365         * data/org.gnome.Rhythmbox.service.in: New.
12367         * data/Makefile.am: Install service file.
12369         * configure.ac: Define DBUS_SERVICES_DIR.
12371         * autogen.sh: Set ACLOCAL_FLAGS.
12373         * macros/acinclude.m4: New.
12374         
12375 2005-08-28  Colin Walters  <walters@verbum.org>
12377         Initial patch from Jonathan Matthew; closes 313684.
12379         * rhythmdb/rhythmdb-tree.c:
12380         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
12381         (save_entry): Return on error.
12382         (rhythmdb_tree_save): Handle error when saving the
12383         db; additionally, handle errors from fclose and unlink,
12384         and print error too.
12386 2005-08-28  Colin Walters  <walters@verbum.org>
12388         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
12389         extra _.
12390         
12391 2005-08-28  Colin Walters  <walters@verbum.org>
12393         * configure.ac: Change iPod support to --with-ipod;
12394           automatically enable it if we have HAL.  Try to
12395           support both HAL 0.5 and HAL 0.2.  Break out
12396           totem-plparser into its own check so later we
12397           can do version tests there too.
12398           Kill dashboard support.
12399         
12400         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
12401         to support HAL > 0.5, but preserve the old code for HAL < 0.5
12402         Closes #310017.
12403         
12404         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
12405         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
12407         * sources/Makefile.am: Also handle
12408         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
12410         * shell/dashboard.c: Delete; someone should just write a little
12411         python shim which lists on the D-BUS interface and writes the
12412         stuff to Dashboard.  Even better Dashboard should be ported
12413         to D-BUS and do the listening itself, perhaps on an abstract
12414         "org.gnome.MusicPlayer" interface or something.
12416         * shell/rb-shell.c: Kill dashboard support.
12418 2005-08-28  Colin Walters  <walters@verbum.org>
12420         * remote/dbus/rb-print-playing.py: New file.
12422 2005-08-28  Colin Walters  <walters@verbum.org>
12424         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
12425         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
12427         * shell/rb-shell-player.h:
12428         * shell/rb-shell-player.c: Add playing-uri-changed signal.
12429         * shell/rb-shell-player.xml: Export it.
12431         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
12432         (rb_shell_error_quark): New.
12434         * shell/rb-shell.h: Prototype.  Also add RBShellError.
12435         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
12436         
12437 2005-08-28  Colin Walters  <walters@verbum.org>
12439         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
12440         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
12441         bonobo_unlock.
12442         (rb_remote_bonobo_preinit): Lock setting moved here.
12443         (rb_remote_bonobo_init): From here.
12445         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
12446         Also invoke handle_cmdline in the right place.
12447         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
12448         GFunc.
12450 2005-08-28  James Livingston  <jrl@ids.org.au>
12452         * NEWS: keep the NEWS file up to date, so we don't have to do it all
12453         when 0.9.1 comes around.
12455 2005-08-28  James Livingston  <jrl@ids.org.au>
12457         * iradio/rb-new-station-dialog.c:
12458         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
12459         bug 314477.
12461 2005-08-28  James Livingston  <jrl@ids.org.au>
12463         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
12465         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
12466         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
12467         is a song is longer than 60 minutes. Closes bug 313311.
12469 2005-08-27  James Livingston  <jrl@ids.org.au>
12471         * data/glade/create-playlist.glade:
12472         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
12473         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
12474         "minutes" as an option in the playlist limit menu.
12476         * rhythmdb/rhythmdb-query-model.c:
12477         (rhythmdb_query_model_class_init),
12478         (rhythmdb_query_model_set_property),
12479         (rhythmdb_query_model_get_property),
12480         (rhythmdb_query_model_update_limited_entries): Allow query models to
12481         have a time limit
12482         
12483         * shell/rb-playlist-manager.c:
12484         (rb_playlist_manager_set_automatic_playlist),
12485         (rb_playlist_manager_cmd_edit_automatic_playlist):
12486         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
12487         (rb_playlist_source_get_query), (impl_receive_drag),
12488         (rb_playlist_source_new_from_xml),
12489         (rb_playlist_source_save_to_xml),
12490         (rb_playlist_source_songs_sort_order_changed_cb),
12491         (rb_playlist_source_do_query):
12492         * sources/rb-playlist-source.h:
12493         * widgets/rb-query-creator.h: Allow playlists to be limited by time
12495 2005-08-27  James Livingston  <jrl@ids.org.au>
12497         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
12499         * configure.ac:
12500         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
12501         non-standard location. Closes bug 314640.
12503 2005-08-26  Colin Walters  <walters@verbum.org>
12504         
12505         Patch from Olivier Blin <oblin@mandriva.com>
12507         * widgets/eggnotificationbubble.c (draw_bubble): 
12508         Handle extreme-left case as well.
12509         
12510 2005-08-26  Colin Walters  <walters@verbum.org>
12512         * shell/rb-shell.c (idle_save_state): Don't do this.
12513         (rb_shell_construct): Remove idle calls to idle_save_state.
12514         We should save the playlists automatically when they're
12515         modified.
12516         (rb_shell_load_uri): Don't try to re-stat entry if it already
12517         exists.
12519         * shell/rb-shell-player.c: Keep track of entry we are attempting
12520         to play.
12521         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
12522         Don't double-free error.
12523         (rb_shell_player_play_entry): Signal errors.
12524         (rb_shell_player_entry_activated_cb): Ditto.
12525         (rb_shell_player_property_row_activated_cb): Ditto.
12526         (rb_shell_player_set_playing_source_internal): Unset attempted
12527         playing entry.
12528         (rb_shell_player_error): Refactor to be usable both sync and
12529         async.  Handle case where displayed entry differs from entry.
12530         (error_cb): Move GDK locking here.
12532         * shell/main.c (main): Drop most commandline arguments for D-BUS;
12533         people can just use dbus-send or python.  We only support focusing
12534         and loading files.
12535         (load_uri_args): New function, extracted from handle_cmdline.
12536         (dbus_load_uri, bonobo_load_uri): New functions.
12538         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
12539         appropriate.
12541         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
12542         * remote/dbus/rb-remote-dbus.c: Deleted.
12544         * player/rb-player-gst.c: Clear any pending idle handlers when we
12545         close the player.  Signal errors generated during open/play etc
12546         as synchronous errors.
12548         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
12549         
12550 2005-08-26  Colin Walters  <walters@verbum.org>
12552         * shell/rb-shell.c (rb_shell_present): Try harder.
12554 2005-08-26  Colin Walters  <walters@verbum.org>
12556         * shell/rb-shell.c (rb_shell_present): Try to handle
12557         GTK_MINOR_VERSION < 8.
12559 2005-08-26  James Livingston  <jrl@ids.org.au>
12561         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
12562         <pbrobinson@gmail.com>
12564 2005-08-26  Colin Walters  <walters@verbum.org>
12566         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
12568 2005-08-25  Colin Walters  <walters@verbum.org>
12570         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
12571         Delete.
12572         (rb_shell_player_do_next_with_rating): Move back into
12573         rb_shell_player_do_next.
12574         (rb_shell_player_entry_activated_cb): Remove call to
12575         rb_shell_player_auto_adjust_rating.
12576         (do_next_idle): Just call rb_shell_player_do_next.
12578         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
12580 2005-08-25  Colin Walters  <walters@verbum.org>
12582         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
12583         before gtk_window_present_with_time.
12584         
12585 2005-08-25  Colin Walters  <walters@verbum.org>
12587         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
12588         default.
12590         * shell/rb-shell.c (rb_shell_constructor): Adapted from
12591         rb_shell_construct.  This is so we only have to do g_object_new.
12592         (rb_shell_get_player): New function.
12593         (rb_shell_get_player_path): Ditto.
12594         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
12595         
12596         * shell/rb-shell.h: Prototype them.
12598         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
12599         export over D-BUS.
12600         (reemit_playing_signal): New function.
12601         (rb_shell_player_open_playlist_location): Use return values from
12602         rb_player_open, rb_player_close, etc. instead of checking "error".
12603         Return a gboolean on failure.
12604         (rb_shell_player_open_entry): Just open entry location, don't
12605         print to stderr.
12606         (rb_shell_player_play): Handle retval from rb_player_play.  Return
12607         a gboolean.
12608         (do_next_idle): Move logic for handling of end of playlist here.
12609         (rb_shell_player_set_playing_entry): Take a GError, return a
12610         gboolean.  Update to use gboolean return values.
12611         (rb_shell_player_do_previous): Delete lots of crazy duplicate
12612         logic.  Signal an error on end of playlist.  Also signal error if
12613         we're not playing.  Move heuristic for replaying the song into
12614         rb_shell_player_cmd_previous.
12615         (rb_shell_player_do_next_with_rating): Signal error on end of
12616         playlist.
12617         (rb_shell_player_do_next): Return errors.
12618         (rb_shell_player_cmd_previous): Heuristic for restarting song
12619         moved here; the idea is you generally only want that from the GUI.
12620         (rb_shell_player_cmd_play): Handle error.
12621         (rb_shell_player_playpause): Signal errors.
12622         (filter_mmkeys): Use rb_shell_player_cmd_previous and
12623         rb_shell_player_cmd_next in favor of the internal _do functions.
12624         
12625         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
12626         errors.  Update prototypes for above changes.
12628         * shell/main.c: More tightly integrate D-BUS; register various
12629         major singleton objects here.  Fix handle_cmdline so we only
12630         process extra arguments, not every argument.
12632         * shell/Makefile.am: Generate D-BUS glue headers.
12634         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
12635         into shell/main.c.  Now this file just acts as a client library.
12636         Not heavily tested.
12638         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
12639         Moved here.
12640         (rb_remote_bonobo_init): Move long CORBA rant here along with
12641         setting of lock functions.
12643         * player/rb-player-gst.c (rb_player_construct)
12644         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
12645         on error.
12647         * player/rb-player.h: Update prototypes.
12649         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
12650         rb-remote-bonobo.c.
12651         (rb_threads_init): Don't set gdk lock functions here.
12653 2005-08-25  James Livingston  <jrl@ids.org.au>
12655         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
12657         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
12658         * lib/rb-tree-dnd.h:
12659         * rhythmdb/rhythmdb-property-model.c:
12660         (rhythmdb_property_model_class_init),
12661         (rhythmdb_property_model_drag_source_init),
12662         (rhythmdb_property_model_iter_parent),
12663         (rhythmdb_property_model_row_draggable),
12664         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
12665         (rhythmdb_property_model_drag_data_get),
12666         (rhythmdb_property_model_enable_drag):
12667         * rhythmdb/rhythmdb-property-model.h:
12668         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
12669         (rb_playlist_manager_set_property), (append_new_playlist_source),
12670         (rb_playlist_manager_save_playlists):
12671         * shell/rb-shell.c: (rb_shell_construct),
12672         (sourcelist_drag_received_cb):
12673         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
12674         * sources/rb-playlist-source.c: (impl_receive_drag):
12675         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
12676         (rb_sourcelist_model_drag_dest_init),
12677         (rb_sourcelist_model_set_dnd_targets),
12678         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
12679         (rb_sourcelist_model_row_drop_position),
12680         (rb_sourcelist_model_get_drag_target),
12681         (rb_sourcelist_model_drag_data_get):
12682         * sources/rb-sourcelist-model.h:
12683         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
12684         (rb_sourcelist_init), (rb_sourcelist_get_property),
12685         (rb_sourcelist_selection_changed_cb):
12686         * sources/rb-sourcelist.h:
12687         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
12688         improve drag-n-drop support. Allow dragging of item from property
12689         views to the source list, to create new automatic playlists. Allow
12690         playlist re-ordering. Fix dragging from Rhythmbox to other
12691         applications. (Closes bug 147337)
12693 2005-08-24  Colin Walters  <walters@verbum.org>
12695         Patch from Olivier Blin <oblin@mandriva.com>
12697         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
12698         correctly in the case where the window is next to monitor edge.
12700 2005-08-24  James Livingston  <jrl@ids.org.au>
12702         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12703         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
12704         a gobject property to get the query model that backs the playlist.
12706 2005-08-24  James Livingston  <jrl@ids.org.au>
12708         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
12709         (handle_playlist_entry_into_playlist_cb),
12710         (rb_playlist_manager_playlist_entries_changed): Disable the "create
12711         audio cd" menu item when a non-playlist source is selected, or the
12712         playlist is empty. (Closes Bug 313253)
12714 2005-08-24  James Livingston  <jrl@ids.org.au>
12716         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
12717         Fix the playlist length checkso it doesn't report 0 for automatic
12718         playlists. This was stopping automati playlists being burnt to cd.
12720 2005-08-24  James Livingston  <jrl@ids.org.au>
12722         * configure.ac:
12723         * sources/rb-playlist-source-recorder.c: (burn_cd):
12724         * sources/rb-playlist-source.c:
12725         (rb_playlist_source_songs_sort_order_changed_cb):
12726         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
12727         more warnings that occur when compiling RPMs on Fedora.
12729 2005-08-24  James Livingston  <jrl@ids.org.au>
12731         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
12732         was stopping some distros gcc version compiling.
12734 2005-08-24  James Livingston  <jrl@ids.org.au>
12736         * NEWS:
12737         * data/glade/create-playlist.glade:
12738         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
12739         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
12740         (rhythmdb_query_free), (rhythmdb_query_serialize),
12741         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
12742         * rhythmdb/rhythmdb.h:
12743         * shell/rb-playlist-manager.c:
12744         (rb_playlist_manager_set_automatic_playlist),
12745         (rb_playlist_manager_cmd_edit_automatic_playlist):
12746         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
12747         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
12748         (impl_receive_drag), (rb_playlist_source_new_from_xml),
12749         (rb_playlist_source_save_to_xml),
12750         (rb_playlist_source_songs_sort_order_changed_cb),
12751         (rb_playlist_source_do_query):
12752         * sources/rb-playlist-source.h:
12753         * widgets/Makefile.am:
12754         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
12755         (rb_entry_view_set_sorting_order):
12756         * widgets/rb-query-creator-private.h:
12757         * widgets/rb-query-creator-properties.c:
12758         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
12759         (stringCriteriaGetWidgetData),
12760         (escapedStringCriteriaSetWidgetData),
12761         (escapedStringCriteriaGetWidgetData), (set_rating_score),
12762         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
12763         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
12764         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
12765         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
12766         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
12767         (relativeTimeCriteriaCreateWidget),
12768         (relativeTimeCriteriaSetWidgetData),
12769         (relativeTimeCriteriaGetWidgetData):
12770         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
12771         (rb_query_creator_class_init), (rb_query_creator_constructor),
12772         (rb_query_creator_dispose), (rb_query_creator_set_property),
12773         (rb_query_creator_get_property), (rb_query_creator_load_query),
12774         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
12775         (get_entry_for_property), (rb_query_creator_get_query),
12776         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
12777         (limit_toggled_cb), (lookup_row_by_widget),
12778         (remove_button_click_cb), (append_row),
12779         (get_property_index_from_proptype), (select_criteria_from_value),
12780         (property_option_menu_changed), (create_property_option_menu),
12781         (create_criteria_option_menu), (sort_option_menu_changed),
12782         (setup_sort_option_menu):
12783         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
12784         playlists. The two most notable improvements are 1) adding more
12785         properties to the query creator, making it much easier to add more in
12786         the future, and 2) allow playlists to be sorted, from the query editor
12787         if they gave limits, and by clicking on column headers if they don't.
12789         Files added: widgets/rb-query-creator-private.h,
12790         sources/rb-query-creator-properties.c
12792 2005-08-21  James Livingston  <jrl@ids.org.au>
12794         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
12795         error=NULL. This stops some crashes.
12797 2005-08-19  Colin Walters  <walters@verbum.org>
12799         Patch from Olivier Blin <oblin@mandriva.com>
12801         * widgets/eggnotificationbubble.c (force_window): Support top
12802         orientation.
12803         * widgets/eggnotificationbubble.h: Remove
12804         egg_notification_bubble_force_window from header.
12805         
12806 2005-08-18  James Livingston  <jrl@ids.org.au>
12808         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
12809         with the changes since then.
12811 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
12813         * shell/rb-shell-player.c: (rb_shell_player_init),
12814         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
12815         (rb_shell_player_volume_widget_changed_cb):
12816         * sources/rb-iradio-source.c:
12817         * sources/rb-library-source.c:
12818         * sources/rb-playlist-source.c:
12819         * widgets/Makefile.am:
12820         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
12821         (bacon_volume_button_class_init), (bacon_volume_button_init),
12822         (bacon_volume_button_dispose), (bacon_volume_button_new),
12823         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
12824         (bacon_volume_button_scroll), (bacon_volume_button_press),
12825         (cb_button_timeout), (cb_button_press), (cb_button_release),
12826         (bacon_volume_release_grab), (cb_dock_press),
12827         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
12828         (bacon_volume_scale_new), (bacon_volume_scale_press),
12829         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
12830         * widgets/bacon-volume.h:
12831         * widgets/rb-volume.c:
12832         * widgets/rb-volume.h:
12833           Use BaconVolumeButton (#300867).
12835 2005-08-17  James Livingston  <jrl@ids.org.au>
12837         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
12838         (rhythmdb_process_metadata_load): don't reset the First Seen time
12839         whenever we recheck the metadata.
12841 2005-08-17  James Livingston  <jrl@ids.org.au>
12843         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
12844         temporary workaround to stop crashes when trying to burn an empty
12845         playlist. Doesn't disable the menu item which is the better solution
12846         (Bug 313253).
12848 2005-08-15  James Livingston  <jrl@ids.org.au>
12850         * shell/rb-source-header.c: (rb_source_header_init),
12851         (rb_source_header_sync_control_state),
12852         (rb_source_header_search_activate_cb):
12853         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12854         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
12855         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
12856         (rb_search_entry_init), (rb_search_entry_searching),
12857         (rb_search_entry_activate_cb):
12858         * widgets/rb-search-entry.h: Move focus to the entry view when user
12859         presses enter in the search box. Patch from Paolo Borelli
12860         <pborelli@katamail.com> (Closes bug 128110)
12862 2005-08-15  James Livingston  <jrl@ids.org.au>
12864         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
12865         (rb_playlist_manager_new_playlist):
12866         * shell/rb-playlist-manager.h:
12867         * shell/rb-shell.c: (rb_shell_construct),
12868         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
12869         the source list to be shown when a new playlist is created. (Closes
12870         bug 161935)
12872 2005-08-15  James Livingston  <jrl@ids.org.au>
12874         * widgets/rb-header.c: (rb_header_init),
12875         (rb_header_set_show_timeline): disable the seek slider, rather than
12876         hiding it, which more closely follows the HIG. (Closes bug 139102)
12878 2005-08-13  Colin Walters  <walters@verbum.org>
12880         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
12881         rb_shell_hidden_notify.
12882         (rb_shell_hidden_notify): Notify if the shell is hidden.
12883         (rb_shell_set_visibility_impl): Debug goo.
12885         * shell/rb-shell.h: Export rb_shell_hidden_notify.
12887         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
12888         when the user clicks on notification.
12890         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
12891         CD burn is complete.
12892         (rb_playlist_source_recorder_finalize): Unref shell.
12893         (rb_playlist_source_recorder_new): Take shell.
12895         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
12896         Pass shell to RBPlaylistSourceRecorder.
12897         
12898 2005-08-13  Colin Walters  <walters@verbum.org>
12900         * lib/rb-thread.c:
12901         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
12902           time to convert.
12904 2005-08-13  Colin Walters  <walters@verbum.org>
12906         * widgets/eggnotificationbubble.h:
12907         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
12908         * widgets/eggtrayicon.c:
12909         * widgets/eggtrayicon.h: Add notification API.
12910         * shell/rb-tray-icon.c:
12911         * shell/rb-tray-icon.h: Add notification API.
12912         * shell/rb-shell.c: Notify on song change.
12914 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
12916         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
12917         Correct an inversion of two lines causing NULL to be unreffed
12919 ============ Version 0.9.0
12921 2005-08-10  Bastien Nocera  <hadess@hadess.net>
12923         * configure.ac: 0.9.0, whee!
12924         * NEWS: badly updated
12925         * remote/bonobo/Makefile.am:
12926         * remote/bonobo/rb-remote-bonobo.h:
12927         * shell/Makefile.am:
12928         * shell/main.c: make distcheck fixes