2006-11-23 James Livingston <doclivingston@gmail.com>
[rhythmbox.git] / ChangeLog
blobd1e4e4b3271e86af51be1e893a7f33cfdf989fca
1 2006-11-23  James Livingston  <doclivingston@gmail.com>
3         * bindings/python/rhythmdb.defs:
4         * bindings/python/rhythmdb.override: fix some binding stuff.
6 2006-11-23  James Livingston  <doclivingston@gmail.com>
8         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
10         * plugins/magnatune/magnatune/MagnatuneSource.py: remove credit card
11         details from debug output. Fixes #378355.
13 2006-11-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
15         * shell/rb-shell-player.c: (rb_shell_player_play):
16         Don't crash if current_playing_source is NULL.  Fixes #378195.
17         
18         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
19         rb_shell_player_play isn't very useful, use _playpause if not
20         already playing instead.
22 2006-11-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
24         * rhythmdb/rhythmdb-property-model.c: (query_model_cb),
25         (rhythmdb_property_model_drag_data_get):
26         * rhythmdb/rhythmdb-query-model.c:
27         (rhythmdb_query_model_drag_data_get),
28         (rhythmdb_query_model_drag_data_received):
29         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
30         (rhythmdb_tree_init), (rhythmdb_tree_finalize),
31         (rhythmdb_tree_entry_new_internal), (rhythmdb_tree_entry_delete),
32         (remove_one_song), (rhythmdb_tree_entry_lookup_by_id),
33         (rhythmdb_tree_entry_foreach), (rhythmdb_tree_entry_count),
34         (rhythmdb_tree_entry_foreach_by_type), (count_entries),
35         (rhythmdb_tree_entry_count_by_type):
36         * rhythmdb/rhythmdb.c:
37         * rhythmdb/rhythmdb.h:
38         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
39         (rb_daap_share_set_property), (rb_daap_share_get_property),
40         (rb_daap_share_new), (add_entry_to_mlcl), (send_chunked_file),
41         (send_mapped_file), (databases_cb), (db_entry_added_cb),
42         (db_entry_deleted_cb), (rb_daap_share_server_start),
43         (rb_daap_share_server_stop):
44         * daapsharing/rb-daap-share.h:
45         * daapsharing/rb-daap-sharing.c: (create_share):
46         Move id-to-entry map from daap share into rhythmdb.
48         * shell/rb-playlist-manager.c: (create_name_from_selection_data),
49         (rb_playlist_manager_new_playlist_from_selection_data):
50         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
51         * sources/rb-browser-source.c: (rb_browser_source_constructor):
52         * sources/rb-sourcelist-model.c:
53         (rb_sourcelist_model_drag_data_received),
54         (rb_sourcelist_model_row_drop_position),
55         (rb_sourcelist_model_get_drag_target),
56         (rb_sourcelist_model_drag_data_get):
57         * sources/rb-static-playlist-source.c: (impl_receive_drag),
58         (rb_static_playlist_source_add_id_list),
59         (rb_static_playlist_source_add_uri_list):
60         * widgets/rb-entry-view.c:
61         * widgets/rb-property-view.c:
62         Add a new drag-and-drop type: application/x-rhythmbox-entry
63         containing a list of entry IDs, and use it for DnD within the
64         application.  Avoids having to pick a URI to use for an entry, so we
65         can make DnD of podcast entries (and anything else where playback URI
66         is not the same as the entry location) work as expected.
67         Fixes #343537.
69 2006-11-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
71         * shell/rb-shell.c: (rb_shell_present):
72         Clear the skip-taskbar hint when presenting the window. Fixes #377963.
74 2006-11-20  James Livingston  <doclivingston@gmail.com>
76         * sources/rb-library-source.c: (impl_paste): don't explode if we can't
77         find the responsible source. Fixes #377029
79 2006-11-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
81         * lib/rb-file-helpers.c: (rb_uri_append_path), (rb_uri_append_uri),
82         (rb_uri_get_dir_name), (rb_uri_get_short_path_name):
83         * lib/rb-file-helpers.h:
84         * sources/rb-ipod-source.c: (ipod_get_filename_for_uri):
85         Implement rb_uri_get_short_path_name to replace
86         gnome_vfs_uri_extract_short_path name with something that doesn't
87         reject unknown URI schemes such as daap://.  Fixes #361077.
89         * tests/Makefile.am:
90         * tests/test-file-helpers.c: (test_get_short_path_name),
91         (START_TEST), (rb_file_helpers_suite), (main):
92         Add tests for the above.
94 2006-11-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
96         * widgets/bacon-volume.c: (bacon_volume_button_class_init),
97         (bacon_volume_button_new), (bacon_volume_button_style_set),
98         (bacon_volume_scale_class_init), (bacon_volume_button_update_icon),
99         (bacon_volume_scale_value_changed),
100         (bacon_volume_button_load_icons):
101         * widgets/bacon-volume.h:
102         Update bacon-volume from libbacon CVS again.
104 2006-11-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
106         * widgets/bacon-volume.c: (bacon_volume_load_icons):
107         Fall back to old icon names if the icon naming spec compliant
108         names don't work.  From #369491.
110 2006-11-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
112         * plugins/audiocd/Makefile.am:
113         Stop automake complaining about duplicate definitions.
115 2006-11-17  James Livingston  <doclivingston@gmail.com>
117         * sources/rb-ipod-source.c: (rb_ipod_source_dispose),
118         (load_ipod_db_idle_cb), (rb_ipod_load_songs): remove the idle callback
119         when disposing of the source. Fixes #376155
121         * plugins/daap/Makefile.am: fix some distcheck brokenness.
123 2006-11-17  James Livingston  <doclivingston@gmail.com>
125         * po/POTFILES.in: add missing files to POTFILES.in. Fixes #375978
127 2006-11-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
129         * shell/rb-playlist-manager.c: (*):
130         General cleanup, add appropriate object references and implement
131         dispose method.  Should fix #357099.
133 2006-11-15  James Livingston  <doclivingston@gmail.com>
135         patch by: William Lachance  <wrlach@gmail.com>
137         * rhythmdb/rhythmdb-query-model.c:
138         (rhythmdb_query_model_album_sort_func): improve sorting when some
139         tracks are missing track/disc number info. Fixes #371322
141 2006-11-14  James Livingston  <doclivingston@gmail.com>
143         patch by: Alex Lancaster
145         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): support podcast
146         episode dates which are missing the seconds. Fixes #373845
148 2006-11-13  James Livingston  <doclivingston@gmail.com>
150         * bindings/python/rhythmdb.override: bidn a few other pieces of
151         rhythmdb.
153 2006-11-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
155         * shell/rb-statusbar.c: (rb_statusbar_class_init),
156         (rb_statusbar_dispose), (rb_statusbar_finalize),
157         (rb_statusbar_set_property):
158         Remove idle handler in dispose, rather than finalize.
159         Keep references on all referenced objects (duh?).
160         Fixes #374443.
162 2006-11-12  James Livingston  <doclivingston@gmail.com>
164         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
166         * shell/rb-statusbar.c: (rb_statusbar_init): Make the progress bar in
167         the status bar smaller, so it isn't too big. Fixes #368757.
169 2006-11-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
171         * plugins/daap/rb-daap-plugin.c: (mdns_service_added),
172         (mdns_service_removed):
173         Take GDK lock in mDNS callbacks.  Fixes UI hangs when DAAP shares
174         disappear.
176 2006-11-12  James Livingston  <doclivingston@gmail.com>
178         * plugins/audioscrobbler/rb-lastfm-source.c:
179         (rb_lastfm_source_constructor), (rb_lastfm_source_add_station_cb): add
180         more supported last.fm radio things. From #373622
182 2006-11-12  James Livingston  <doclivingston@gmail.com>
184         * rhythmdb/rhythmdb.c: check the URI isn't NULL, in case ti got
185         through the earlier checks. Fixes #373605
187 2006-11-12  James Livingston  <doclivingston@gmail.com>
189         * sources/rb-library-source.c:
190         (rb_library_source_add_child_source): sort the child-library sources
191         the same as the library by default.
193 2006-11-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
195         * daapsharing/rb-daap-src.c: (rb_daap_src_open):
196         Don't try to report the size if we didn't get one.
197         Fixes server-side decoded playback from mt-daapd (but seeking doesn't
198         work), from #350276.
200 2006-11-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
202         * daapsharing/rb-daap-sharing.c:
203         (rb_daap_sharing_default_share_name), (create_share),
204         (share_name_changed_cb):
205         * daapsharing/rb-daap-sharing.h:
206         * plugins/daap/rb-daap-plugin.c: (update_config_widget),
207         (make_config_widget), (impl_create_configure_dialog):
208         Update DAAP preferences widget when displaying it, and
209         populate the share name entry with the default if there's nothing
210         there already.  Fixes #340279.
212 2006-11-11  James Livingston  <doclivingston@gmail.com>
214         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
216         * plugins/magnatune/magnatune/MagnatuneSource.py:
217         * plugins/magnatune/magnatune/__init__.py: Add toolbar actions for
218         Magnatune stuff. From #345783
220 2006-11-10  James Livingston  <doclivingston@gmail.com>
222         * plugins/generic-player/rb-nokia770-source.c:
223         (hal_udi_is_nokia770):
224         * plugins/generic-player/rb-psp-source.c: (hal_udi_is_psp):
225         * sources/rb-ipod-source.c: (hal_udi_is_ipod): don't shutdown the HAL
226         context if it wasn't inited. Fixes #372824
228 2006-11-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
230         * plugins/daap/rb-daap-plugin.h:
231         Add the file I missed last time.
233 2006-11-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
235         * CVS-SURGERY:
236         * backends/gstreamer/Makefile.am:
237         * backends/gstreamer/rb-player-gst.c:
238         * configure.ac:
239         * daapsharing/Makefile.am:
240         * daapsharing/rb-daap-connection.c:
241         (rb_daap_connection_disconnect):
242         * daapsharing/rb-daap-src.c: (rb_daap_src_set_plugin),
243         (rb_daap_src_open):
244         * daapsharing/rb-daap-src.h:
245         * data/glade/Makefile.am:
246         * data/rhythmbox.schemas:
247         * data/ui/Makefile.am:
248         * plugins/Makefile.am:
249         * plugins/daap/.cvsignore:
250         * plugins/daap/Makefile.am:
251         * plugins/daap/daap.rb-plugin.desktop.in:
252         * plugins/daap/rb-daap-plugin.c:
253         * shell/Makefile.am:
254         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
255         * shell/rb-shell.c: (construct_sources), (rb_shell_quit):
256         * sources/Makefile.am:
257         * sources/rb-daap-source.c: (rb_daap_source_class_init),
258         (rb_daap_source_new), (connection_auth_cb),
259         (connection_connecting_cb), (connection_disconnected_cb),
260         (release_connection), (rb_daap_source_disconnect),
261         (rb_daap_source_show_popup):
262         * sources/rb-daap-source.h:
263         Mangle DAAP into a plugin.  This disables DAAP with GStreamer 0.8.
264         Fixes #336150.
266 2006-11-09  James Livingston  <doclivingston@gmail.com>
268         * rhythmdb/rhythmdb.c: take the ref before calling the delete
269         implementation, not after. From #372851.
271 2006-11-09  James Livingston  <doclivingston@gmail.com>
273         patch by: Gilles Dartiguelongue  <dartigug@esiee.fr>
275         * plugins/Makefile.am:
276         * plugins/audiocd/Makefile.am: fix build when linking with --as-needed
277         fixes #371178.
279 2006-11-09  James Livingston  <doclivingston@gmail.com>
281         * plugins/audiocd/rb-audiocd-plugin.c: (impl_activate): use
282         g_signal_connect_object not g_signal_object, which stops it beign
283         called after the plugin is disposed.
285 2006-11-09  James Livingston  <doclivingston@gmail.com>
287         * plugins/audioscrobbler/rb-audioscrobbler.c:
288         (rb_audioscrobbler_finalize):don't attempt to use the SoupSession
289         after we're finalised. Should fix #370513
291 2006-11-08  James Livingston  <doclivingston@gmail.com>
293         patch by: Jerry Tan  <jerry.tan@sun.com>
295         * data/glade/song-info.glade: set more a11y properties on the
296         label-for/labelled-by info. Fixes #368179.
298 2006-11-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
300         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
301         (rb_entry_view_dispose), (rb_entry_view_finalize):
302         Unref objects and remove idle handlers in dispose rather than
303         finalize.  Should fix #364783.
305 2006-11-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
307         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
308         Rename 'ctxt' to 'parser' to avoid confusion, fix the check for
309         xmlCreateMemoryParserCtxt returning NULL that was previously checking
310         the wrong variable.  Really fixes #336842.
312 2006-11-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
314         * plugins/iradio/Makefile.am:
315         Actually install the UI file.
317 2006-11-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
319         * plugins/generic-player/rb-generic-player-source.c:
320         (rb_generic_player_source_constructor),
321         (rb_generic_player_source_dispose),
322         (rb_generic_player_source_load_playlists):
323         Don't crash if the source is destroyed before it gets a chance
324         to load playlists.
326 2006-11-06  James Livingston  <doclivingston@gmail.com>
328         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_monitor_uri_path):
329         * rhythmdb/rhythmdb.c: some leak fixes
331 2006-11-06  James Livingston  <doclivingston@gmail.com>
333         * bindings/python/rb.override: change the right function in the last
334         commit.
336 2006-11-06  James Livingston  <doclivingston@gmail.com>
338         * bindings/python/rb.override: unwrap the python string instead of
339         wrapping it. Oops.
341 2006-11-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
343         * tests/test-utils.c: (test_rhythmdb_setup):
344         Fix build break, #371106.
346 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
348         * tests/Makefile.am:
349         * tests/test-rhythmdb-property-model.c: (_get_property_count),
350         (START_TEST), (rhythmdb_property_model_suite), (main):
351         * tests/test-rhythmdb-query-model.c: (START_TEST),
352         (rhythmdb_query_model_suite), (main):
353         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite):
354         * tests/test-utils.c: (start_test_case), (end_step),
355         (end_test_case), (mark_signal), (set_waiting_signal),
356         (wait_for_signal), (test_rhythmdb_setup), (test_rhythmdb_shutdown),
357         (set_entry_string), (set_entry_ulong), (set_entry_hidden):
358         * tests/test-utils.h:
359         Split up rhythmdb tests, add tests for RhythmDBPropertyModel.
361 2006-11-04  James Livingston  <doclivingston@gmail.com>
363         * lib/rb-glade-helpers.c: (rb_glade_xml_new): don't use rb_file() is
364         we were passed a absolute path, e.g. from the plugin file find
365         function.
367 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
369         patch somewhat by:  Oskari Saarenmaa  <os@sumu.org>
371         * remote/dbus/rb-client.c: (main):
372         * shell/rb-shell.c: (rb_shell_hidden_notify), (rb_shell_do_notify):
373         * shell/rb-shell.h:
374         * shell/rb-shell.xml:
375         Add dbus method to request a notification for the playing song, and
376         an argument to rhythmbox-client to use it.  Fixes #359593.
378 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
380         * remote/dbus/rb-print-playing.py:
381         Revert changes I accidentally committed a while ago.
383 2006-11-03  James Livingston  <doclivingston@gmail.com>
385         * data/glade/song-info.glade: make more labels selectable, from #368641
387 2006-11-03  James Livingston  <doclivingston@gmail.com>
389         * shell/rb-shell-clipboard.c: (get_focussed_widget),
390         (rb_shell_clipboard_cmd_select_all),
391         (rb_shell_clipboard_cmd_select_none): make Select All select text in
392         the focussed widget if it's a text entry. Fixes #364590
394 2006-11-03  James Livingston  <doclivingston@gmail.com>
396         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
397         (bacon_volume_button_init), (bacon_volume_button_dispose),
398         (bacon_volume_button_new), (bacon_volume_button_realize),
399         (bacon_volume_button_press), (bacon_volume_key_release),
400         (bacon_volume_release_grab), (cb_dock_key_release),
401         (bacon_volume_scale_get_type), (bacon_volume_scale_value_changed),
402         (bacon_volume_theme_changed), (bacon_volume_load_icons):
403         * widgets/bacon-volume.h: update bacon-volume-widget from cvs.
404         Fixes #369491
406 2006-10-31  James Livingston  <doclivingston@gmail.com>
408         * configure.ac: remove spaces around '=' where they shouldn't be,
409         fixes building when you have libgpod 0.3.x
411 2006-10-31  James Livingston  <doclivingston@gmail.com>
413         patch by: Nguyen Thai Ngoc Duy  <pclouds@gmail.com>
415         * rhythmdb/rhythmdb.c: don't remove stale db entries when the grace
416         period is 0. Fixes #351425
418 2006-10-31  James Livingston  <doclivingston@gmail.com>
420         patch by: Luca Ferretti  <elle.uca@libero.it>
422         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
423         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
424         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
425         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
426         * plugins/ipod/ipod.rb-plugin.desktop.in:
427         * plugins/iradio/iradio.rb-plugin.desktop.in:
428         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
429         * plugins/sample-python/sample-python.rb-plugin.desktop.in:
430         * plugins/sample/sample.rb-plugin.desktop.in: Improve the descriptions
431         of the plugins. Fixes #365326
433 2006-10-31  James Livingston  <doclivingston@gmail.com>
435         * plugins/audiocd/Makefile.am: fix build on Solaris, fixes #367989.
437 2006-10-31  James Livingston  <doclivingston@gmail.com>
439         * data/glade/song-info.glade: set the mnemonic target for the labels
440         in the details tab. Fixes #368179.
442 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
444         * configure.ac:
445         When complaining about GStreamer being too old, use the right variable
446         name for the version we want.
448 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
450         * shell/rb-shell.h:
451         * shell/rb-tray-icon.c: (rb_tray_icon_notify):
452         * shell/rb-tray-icon.h:
453         * bindings/python/rb.defs:
454         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
455         (rb_shell_notify_playing_entry), (rb_shell_hidden_notify):
456         * sources/rb-playlist-source-recorder.c: (burn_cd):
457         * sources/rb-podcast-source.c:
458         (rb_podcast_source_start_download_cb),
459         (rb_podcast_source_finish_download_cb),
460         (rb_podcast_source_feed_updates_avaliable_cb):
461         Change the various notification functions to take a parameter
462         specifying whether the notification was explicitly requested by the
463         user.  Add a function to display a notification for an entry,
464         including streaming song metadata.
466         * shell/rb-shell-player.c: (rb_shell_player_stop):
467         Emit playing-song-changed and playing-uri-changed when stopping
468         playback.
470         * sources/Makefile.am:
471         * sources/rb-streaming-source.c:
472         * sources/rb-streaming-source.h:
473         Add a base class for streaming sources, handling streaming song
474         metadata and buffering messages, emitting notifications on song
475         changes, and updating play count statistics when playback stops.
477         * plugins/audioscrobbler/Makefile.am:
478         * plugins/audioscrobbler/rb-lastfm-source.c:
479         (rb_lastfm_source_class_init), (rb_lastfm_source_finalize),
480         (rb_lastfm_source_constructor), (impl_get_status),
481         (rb_lastfm_message_cb), (rb_lastfm_source_new_station),
482         (rb_lastfm_source_title_from_uri),
483         (rb_lastfm_source_entry_added_cb), (rb_lastfm_source_metadata_cb),
484         (rb_lastfm_song_changed_cb), (impl_activate):
485         * plugins/audioscrobbler/rb-lastfm-source.h:
486         * plugins/iradio/Makefile.am:
487         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
488         (rb_iradio_source_constructor), (impl_get_status),
489         (info_available_cb), (playing_source_changed_cb):
490         * sources/rb-iradio-source.h:
491         Use the new streaming source base class for iradio and last.fm
492         sources.  Fixes #364094.
494 2006-10-30  James Livingston  <doclivingston@gmail.com>
496         * podcast/rb-podcast-manager.c:
497         (rb_podcast_manager_db_entry_deleted_cb): when deleting a feed, cancel
498         any downloads from it before deleting the post entry. Fixes #366567.
500 2006-10-30  James Livingston  <doclivingston@gmail.com>
502         * shell/rb-shell-clipboard.c: remove the Control-T shortcut from
503         move-to-trash, since there have been reports of people accidently
504         deleting tracks and it probably isn't a common enough operation to be
505         worth a shortcut.
507 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
509         * backends/gstreamer/rb-player-gst.c:
510         * configure.ac:
511         * daapsharing/rb-daap-src.c: (rb_daap_src_init):
512         Fix GStreamer 0.8 build (and some typos in configure.ac).
514 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
516         patch largely by:  Edgar Luna  <eald@linuxuanl.org>
518         * sources/rb-source.c: (rb_source_class_init),
519         (rb_source_set_property), (rb_source_get_property):
520         Add a property to RBSource for plugin-created sources to have a
521         pointer to the RBPlugin object that created them.
523         * plugins/audiocd/Makefile.am:
524         * plugins/audiocd/multiple-album.glade:
525         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
526         * sources/Makefile.am:
527         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
528         * sources/rb-audiocd-source.h:
529         If musicbrainz returns multiple albums, present the user with a
530         choice between them.  Fixes #333215.
532         * configure.ac:
533         * plugins/Makefile.am:
534         Remove unused old audio CD stuff, only build audiocd plugin if we have
535         libnautilus-burn.  Fixes #367440.
537 2006-10-30  James Livingston  <doclivingston@gmail.com>
539         patch by: Brian McKenna  <puffnfresh@gmail.com>
541         * plugins/pythonconsole/pythonconsole.py: allow the python colsole to
542         handle blocks. Fixes #366696.
544 2006-10-30  James Livingston  <doclivingston@gmail.com>
546         * rhythmdb/rhythmdb.c: make the DB busy when processing files. From #349148
548 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
550         * shell/rb-shell-player.c: (rb_shell_player_class_init),
551         (rb_shell_player_sync_with_source),
552         (rb_shell_player_get_playing_time_string), (tick_cb):
553         * widgets/rb-header.c: (rb_header_sync_time),
554         (slider_moved_callback), (rb_header_update_elapsed),
555         (rb_header_elapsed_changed_cb):
556         Revert dbus interface breakage introduced in the fix for #365908.
558 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
560         patch by: Luca Ferretti  <elle.uca@libero.it>
562         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
563         Remove the access keys from the podcast-specific column headers.
564         Fixes #360640 again.
566 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
568         patch by: James Livingston <doclivingston@gmail.com>
570         * sources/rb-browser-source.c: (rb_browser_source_constructor):
571         Only register the search actions once.  From #346801.
573 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
575         * shell/rb-shell-player.c: (rb_shell_player_error):
576         When handling an error, try playing the next stream URL if we have
577         one, rather than stopping playback.  From #358140.
579 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
581         * shell/rb-shell.c: (handle_playlist_entry_cb):
582         Don't crash if we can't guess a source for a URI in the playlist.
583         Fixes #366261.
585 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
587         * shell/rb-shell-player.c: (rb_shell_player_class_init),
588         (rb_shell_player_sync_with_source),
589         (rb_shell_player_get_playing_time_string), (rb_shell_player_seek),
590         (tick_cb):
591         * widgets/rb-header.c: (rb_header_sync_time),
592         (rb_header_elapsed_changed_cb):
593         Treat elapsed time as signed, since rb_player_get_time returns a
594         signed value.  When actually using the value, mostly treat negative
595         values as 0.  Fixes #365908.
597 2006-10-27  James Livingston  <doclivingston@gmail.com>
599         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
601         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): handle MusicBrainz
602         returning 0 for the year/month/day. Fixes #364837.
604 2006-10-27  James Livingston  <doclivingston@gmail.com>
606         patch by: Luca Ferretti  <elle.uca@libero.it>
608         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
609         access keys from the entry view columns headers - they cause
610         keybindings conflicts, headaches for translators and the HIG says
611         they are bad. Fixes #360640.
613 2006-10-27  James Livingston  <doclivingston@gmail.com>
615         patch by: Luca Ferretti  <elle.uca@libero.it>
617         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
618         access keys from the entry view columns headers - they cause
619         keybindings conflicts, headaches for translators and the HIG says
620         they are bad. Fixes #360640.
622 2006-10-27  James Livingston  <doclivingston@gmail.com>
624         * rhythmdb/rhythmdb-private.h:
625         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): fix some glib 2.8 build
626         issues
628 2006-10-27  James Livingston  <doclivingston@gmail.com>
630         * plugins/artdisplay/Makefile.am:
631         * plugins/audioscrobbler/Makefile.am:
632         * plugins/iradio/Makefile.am: fix make clean
634 2006-10-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
636         * rhythmdb/rhythmdb-query.c: (rhythmdb_read_encoded_property):
637         Fall back to strtod() if g_ascii_strtod() doesn't work.
639         * rhythmdb/rhythmdb-tree.c: (save_entry_double):
640         Write floating point values using g_ascii_dtostr() to avoid
641         problems with locale-specific representations.  From #353205.
643 2006-10-25  James Livingston  <doclivingston@gmail.com>
645         * plugins/artdisplay/Makefile.am:
646         * plugins/audioscrobbler/Makefile.am:
647         * plugins/iradio/Makefile.am: fix "make distcheck"
649 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
651         patch by: Brian Cameron <brian.cameron@sun.com>
653         * plugins/audiocd/Makefile.am:
654         Link audiocd plugin with libnautilus-burn as required to get it to work
655         on Solaris.  Fixes #363288.
657 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
659         patch by:  Gabor Kelemen  <kelemeng@gnome.hu>
661         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
662         Clarify that we don't submit actual songs to last.fm, just information
663         on what you're listening to.  Fixes #364014.
665 2006-10-24  Bastien Nocera  <hadess@hadess.net>
667         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
668         (bacon_volume_button_class_init), (bacon_volume_button_new),
669         (bacon_volume_key_release), (cb_button_timeout), (cb_button_press),
670         (cb_dock_button_press), (cb_dock_key_release), (cb_dock_key_press),
671         (bacon_volume_scale_value_changed): update from libbacon, to get
672         better accessibility support (Closes: #364637)
674 2006-10-24  James Livingston  <doclivingston@gmail.com>
676         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
678         * configure.ac: fix some typos and leftovers from disabled->enabled
679         changes. Fixes #364217
681 2006-10-23  William Jon McCann  <mccann@jhu.edu>
683         * shell/rb-source-header.c (rb_source_header_init):
684         Don't require source header cells to be homogeneous.
685         Patch from #359188
687 2006-10-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
689         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
690         Pause the pipeline while buffering.  Fixes #358290.
692 2006-10-23  Bastien Nocera  <hadess@hadess.net>
694         * configure.ac: update required libgpod version to avoid crashes
695         when starting up with an iPod connect (Closes: #352972)
696         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path),
697         (hal_udi_is_ipod): remove outdated ifdefs
699 2006-10-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
701         * plugins/Makefile.am:
702         * plugins/power-manager/rb-power-manager-plugin.c:
703         Don't try to build the power-manager plugin with dbus < 0.35.
705 2006-10-22  James Livingston  <doclivingston@gmail.com>
707         patch by: Ed Catmur  <ed@catmur.co.uk>
709         * plugins/artdisplay/Makefile.am:
710         * plugins/artdisplay/artdisplay/__init__.py:
711         * plugins/artdisplay/rhythmbox-missing-artwork.svg: display some
712         placeholder art when none is available, to avoid having the widget pop
713         in and out of existance.
715 2006-10-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
717         * plugins/lyrics/lyrics.py:
718         Set the lyrics window transient for the main window so it can
719         actually be seen in party mode.  Fixes #362981.
721 2006-10-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
723         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
724         * sources/rb-source.c: (rb_source_class_init),
725         (rb_source_can_show_properties), (rb_source_song_properties):
726         * sources/rb-source.h:
727         Only enable the 'properties' item in the 'music' menu if the selected
728         source implements the show_properties method.  Fixes #356485.
730 2006-10-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
732         * shell/rb-shell-player.c:
733         (rb_shell_player_property_row_activated_cb):
734         Take the entry to play from the play order, rather than grabbing the
735         first entry in the query model.  Fixes #362042.
737 2006-10-16  James Livingston  <doclivingston@gmail.com>
739         * shell/main.c: (main): save custom menu accelerators before exiting.
740         Fixed #362300
742 2006-10-13  Ryan P Skadberg  <skadz@stigmata.org>
744         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
745         I HATE adding this patch, but I'm sick of hitting Yes once
746         and hour.  Working around brain-dead podcasts.
748 2006-10-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
750         * plugins/lyrics/lyrics.py:
751         Disconnect the create-song-info handler when deactivated.
752         Fixes #361882.
754 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
756         * widgets/rb-search-entry.c: (rb_search_entry_changed_cb):
757         Reset the style when clearing the search text.  Fixes #361295.
759 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
761         * rhythmdb/rhythmdb-query-model.c:
762         (rhythmdb_query_model_entry_changed_cb):
763         Don't emit entry-prop-changed for hidden signals from chained query
764         models, as the model will also propagate the parent model's
765         entry-prop-changed signal.  Fixes mysteriously unreported crashes.
767 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
769         * sources/rb-ipod-source.c: (generate_ipod_filename):
770         * lib/rb-cut-and-paste-code.c: (rb_make_valid_utf8):
771         * lib/rb-cut-and-paste-code.h:
772         Move eel_make_valid_utf8 to lib/, make the replacement
773         character a parameter.
775         * rhythmdb/rhythmdb.c: (make_access_failed_error),
776         (rhythmdb_execute_multi_stat_info_cb),
777         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_load):
778         When constructing an error message that includes a URI, make sure the
779         URI is valid utf-8.  Fixes #353588.
781 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
783         * player/rb-recorder-gst.c: (rb_recorder_construct),
784         (acb_wave_time):
785         Add an extra audioconvert element to allow endianness conversion on
786         big-endian machines, and fix a few endianness issues in the .wav
787         reading code.  Fixes #355611.
789 2006-10-09  James Livingston  <doclivingston@gmail.com>
791         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
793         * widgets/eggtrayicon.c: (egg_tray_icon_notify): work around a
794         libnotify 0.3.0 bug, as it doesn't handle escaped messages properly.
795         Fixes #357553.
797 2006-10-09  James Livingston  <doclivingston@gmail.com>
799         patch by: Luca Ferretti  <elle.uca@libero.it>
801         * data/glade/song-info-multiple.glade:
802         * data/glade/song-info.glade: Fix a few HIG issues.
804 2006-10-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
806         * plugins/audioscrobbler/rb-lastfm-source.c:
807         (rb_lastfm_source_class_init):
808         Return TRUE from impl_try_playlist so playback starts in a separate
809         thread.
811 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
813         * shell/main.c: (main):
814         Call bind_textdomain_codeset ("gstreamer-0.10", "UTF-8") so we get
815         UTF-8 GStreamer messages.  Fixes #357973.
817 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
819         * shell/rb-shell.c: (rb_shell_constructor):
820         Remove a line that accidentally slipped in from some other universe.
822 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
824         * plugins/audiocd/rb-audiocd-plugin.c: (_delete_cb):
825         Don't remove sources from the hash table while iterating it on
826         shutdown.  Fixes #359583.
828 2006-10-07  James Livingston  <doclivingston@gmail.com>
830         patch from Alex Lancaster  <alexl@users.sourceforge.net>
832         * shell/rb-shell.c: change the keybinding for "Plugins" to not
833         conflict with others. Fixes #355904
835 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
837         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_dispose),
838         (rhythmdb_query_model_chain),
839         (rhythmdb_query_model_entry_changed_cb),
840         (rhythmdb_query_model_base_entry_prop_changed),
841         (rhythmdb_query_model_base_entry_removed):
842         For chained models, propagate the parent model's entry-prop-changed
843         signal rather than emitting one from the db entry-changed handler.
844         This ensures that when the change filters the entry out of the parent
845         model, property models attached to the child model get the entry
846         change signal before the post-entry-delete signal, so they can
847         decrement the refcount for the right property value.  Fixes #359083.
849 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
851         * plugins/audioscrobbler/Makefile.am:
852         define NULL
854 2006-10-07  James Livingston  <doclivingston@gmail.com>
856         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
857         (rb_lastfm_src_uri_get_protocols), (rb_lastfm_src_uri_set_uri):
858         * plugins/audioscrobbler/rb-lastfm-source.c:
859         (rb_lastfm_source_get_playback_uri): work around GStreamer not support
860         hypens in URI schemes.
862 2006-10-06  William Jon McCann  <mccann@jhu.edu>
864         * plugins/iradio/Makefile.am:
865         * plugins/audioscrobbler/Makefile.am:
866         * plugins/cd-recorder/Makefile.am:
867         Don't clean all plugin_DATA.
868         Fixes #360210
870 2006-10-06  James Livingston  <doclivingston@gmail.com>
872         patch from Matt N  <fisxoj@gmail.com>
874         * backends/gstreamer/rb-player-gst.c: (emit_signal_idle),
875         (rb_player_gst_bus_cb):
876         * backends/rb-player.c: (rb_player_interface_init),
877         (_rb_player_emit_tick), (_rb_player_emit_event):
878         * backends/rb-player.h: let the backend emit named "events", for
879         things that the core shouldn't know about.
881         * rhythmdb/rhythmdb.h:
882         * widgets/rb-header.c: (get_extra_metadata), (rb_header_sync): add
883         support for streams containing album metadata.
885         * plugins/audioscrobbler/Makefile.am:
886         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
887         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
888         (impl_activate), (impl_deactivate), (impl_create_configure_dialog):
889         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
890         * plugins/audioscrobbler/rb-lastfm-source.c:
891         * plugins/audioscrobbler/rb-lastfm-source.h: Add support for playback
892         of last.fm streams. From #313049.
894 2006-10-06  James Livingston  <doclivingston@gmail.com>
896         * plugins/magnatune/magnatune/Makefile.am: add a file I missed
897         committing. Oops.
899 2006-10-06  James Livingston  <doclivingston@gmail.com>
901         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
903         * configure.ac:
904         * data/rhythmbox.schemas:
905         * plugins/Makefile.am:
906         * plugins/magnatune/Makefile.am:
907         * plugins/magnatune/magnatune-loading.glade:
908         * plugins/magnatune/magnatune-prefs.glade:
909         * plugins/magnatune/magnatune-purchase.glade:
910         * plugins/magnatune/magnatune.rb-plugin.desktop.in:
911         * plugins/magnatune/magnatune/BuyAlbumHandler.py:
912         * plugins/magnatune/magnatune/MagnatuneSource.py:
913         * plugins/magnatune/magnatune/TrackListHandler.py:
914         * plugins/magnatune/magnatune/__init__.py:
915         * plugins/magnatune/magnatune_circle_small.png:
916         * plugins/magnatune/magnatune_logo_color_small.png:
917         * plugins/magnatune/magnatune_logo_color_tiny.png: add a plugin to
918         play and download tracks from the MagnaTune online music store. From
919         #345783.
921 2006-10-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
923         * lib/rb-proxy-config.c: (rb_proxy_config_init),
924         (rb_proxy_config_dispose), (rb_proxy_config_finalize),
925         (check_auto_proxy_config), (get_proxy_config):
926         Don't crash when eel_gconf_get_string returns NULL.
927         Fixes #359974.
929 2006-10-04  James Livingston  <doclivingston@gmail.com>
931         patch by: Fryderyk Dziarmagowski  <freetz@gmx.net>
933         * plugins/audiocd/Makefile.am: fix the plugin when linking with
934         --as-needed. Fixes #358730
936 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
938         patch by:  William Jon McCann  <mccann@jhu.edu>
940         * sources/rb-iradio-source.c: (playing_source_changed_cb):
941         Fix some stupidity I introduced that caused crashes on shutdown.
942         Fixes #359181.
944 2006-10-02  William Jon McCann  <mccann@jhu.edu>
946         * plugins/audiocd/Makefile.am:
947         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
948         * plugins/iradio/.cvsignore:
949         * plugins/iradio/Makefile.am:
950         * plugins/iradio/rb-iradio-plugin.c: (impl_activate),
951         (impl_deactivate):
952         * plugins/power-manager/.cvsignore:
953         Install missing iradio ui file.  Don't leak ui filename.
954         Fix iradio install dir. Fix audiocd install dir.
955         Remove unused code from audio cd plugin.
957         Fixes #359170
959 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
961         * sources/rb-ipod-source.c: (impl_move_to_trash):
962         Uncomment rhythmdb_entry_move_to_trash call that I accidentally
963         commented out while fixing bug 355235.  Oops.
965 2006-10-03  James Livingston  <doclivingston@gmail.com>
967         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold): downgrade
968         non-unicode warnings to debug statements, since they can occur with
969         slightly broken files.
971         * plugins/iradio/rb-iradio-plugin.c: (impl_deactivate):
972         * shell/rb-shell.c: (rb_shell_source_deleted_cb): fix a crasher if the
973         iradio plugin is disabled and re-enabled.
975 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
977         * rhythmdb/rhythmdb.c: (rhythmdb_register_core_entry_types),
978         (rhythmdb_entry_podcast_post_get_type):
979         * rhythmdb/rhythmdb.h:
980         * tests/bench-rhythmdb-load.c: (main):
981         Add definitions for some common extra-metadata fields,
982         remove iradio entry type definition, add the concept of entry type
983         categories, define categories for the core entry types.
984         Categories are used to decide if an entry can be copied to a removable
985         device, if it should be reported to audioscrobbler, etc.
987         * shell/Makefile.am:
988         * shell/rb-shell-player.c: (rb_shell_player_class_init),
989         (rb_shell_player_constructor), (rb_shell_player_init),
990         (rb_shell_player_get_property), (open_location_thread),
991         (rb_shell_player_open_location),
992         (rb_shell_player_sync_with_source),
993         (rb_shell_player_set_playing_source_internal), (tick_cb):
994         * shell/rb-shell.c: (construct_widgets), (construct_sources),
995         (rb_shell_player_elapsed_changed_cb):
996         Remove iradio-specific code, use extra metadata fields for streaming
997         title and artist name.
999         * data/ui/rhythmbox-ui.xml:
1000         Add a placeholder for 'new ...' menu items.
1002         * Makefile.am:
1003         * sources/Makefile.am:
1004         * configure.ac:
1005         * data/rhythmbox.schemas:
1006         * plugins/Makefile.am:
1007         * plugins/iradio/Makefile.am:
1008         * plugins/iradio/iradio-ui.xml:
1009         * plugins/iradio/iradio.rb-plugin.desktop.in:
1010         * plugins/iradio/rb-iradio-plugin.c: (rb_iradio_plugin_init),
1011         (rb_iradio_plugin_finalize), (impl_activate), (impl_deactivate),
1012         (rb_iradio_plugin_class_init):
1013         iradio plugin, enabled and hidden by default.
1015         * plugins/audioscrobbler/rb-audioscrobbler.c:
1016         (rb_audioscrobbler_song_changed_cb):
1017         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
1018         * sources/rb-daap-source.c: (rb_daap_source_new):
1019         * sources/rb-ipod-source.c: (rb_ipod_source_new), (impl_paste):
1020         Define entry type categories, and use them where appropriate.
1022         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
1023         (rb_iradio_source_constructor), (rb_iradio_source_new),
1024         (impl_get_status), (impl_want_uri), (buffering_cb),
1025         (check_entry_type), (streaming_title_request_cb),
1026         (streaming_artist_request_cb), (extra_metadata_gather_cb),
1027         (info_available_cb), (playing_entry_changed_cb),
1028         (playing_source_changed_cb):
1029         Move streaming metadata and buffering handling here from
1030         rb-shell-player.c.  Emit extra-metadata notify signals when the streaming
1031         title or artist changes, and handle request and gather signals for
1032         those.
1034         * widgets/rb-header.c: (rb_header_class_init),
1035         (rb_header_set_property), (rb_header_get_property),
1036         (rb_header_new), (append_and_free), (rb_header_sync):
1037         * widgets/rb-header.h:
1038         Rework to use streaming artist and title extra-metadata.
1039         streaming-artist overrides entry artist, and streaming-title means
1040         entry title is a stream name, displayed in brackets.
1042         * doc/reference/Makefile.am:
1043         * doc/reference/rhythmbox.types:
1044         Remove iradio stuff from gtk-doc build.
1046         Fixed #347097.
1048 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1050         patch mostly by: Ed Catmur  <ed@catmur.co.uk>
1052         * bindings/python/rhythmdb.defs:
1053         * lib/rb-marshal.list:
1054         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
1055         (rhythmdb_emit_entry_deleted),
1056         (rhythmdb_entry_extra_metadata_accumulator),
1057         (rhythmdb_entry_request_extra_metadata),
1058         (rhythmdb_emit_entry_extra_metadata_notify),
1059         (unset_and_free_g_value), (rhythmdb_entry_gather_metadata):
1060         * rhythmdb/rhythmdb.h:
1061         Add signals for dealing with transient metadata outside the set stored
1062         in RhythmDBEntry:
1063         - entry_extra_metadata_request returns a value for the requested
1064           metadata field
1065         - entry_extra_metadata_notify notifies observers of a change to an
1066           extra metadata field
1067         - entry_extra_metadata_gather returns the values of all extra metadata
1068           fields
1070         * shell/rb-shell-player.c: (rb_shell_player_set_db_internal),
1071         (rb_shell_player_extra_metadata_cb):
1072         Sync the display on extra metadata changes and emit dbus signals when
1073         we can marshal the value.
1075         * shell/rb-shell.c: (rb_shell_get_song_properties):
1076         Implement rb_shell_song_get_properties using
1077         rhythmdb_entry_gather_metadata.
1079         * plugins/rb-python-module.c: (pyg_value_g_value_as_pyobject),
1080         (pyg_value_g_value_from_pyobject), (rb_python_module_init_python):
1081         * configure.ac:
1082         Add GValue marshaller for python (until bug 351072 is fixed)
1084         From #345592.
1086 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1088         * configure.ac:
1089         * data/rhythmbox.schemas:
1090         * plugins/Makefile.am:
1091         * plugins/power-manager/Makefile.am:
1092         * plugins/power-manager/power-manager.rb-plugin.desktop.in:
1093         * plugins/power-manager/rb-power-manager-plugin.c:
1094         (rb_gpm_plugin_class_init), (rb_gpm_plugin_init), (ignore_error),
1095         (inhibit_cb), (inhibit), (uninhibit_cb), (uninhibit),
1096         (playing_changed_cb), (impl_activate), (impl_deactivate):
1097         gnome-power-manager integration: inhibit suspend while playing.
1098         Fixes #344979.
1100 2006-10-02  James Livingston  <doclivingston@gmail.com>
1102         update by: Aloriel  <jorge.gonzalez.gonzalez@hispalinux.es>
1103         and Alex Lancaster  <alexl@users.sourceforge.net>
1105         * help/C/rhythmbox.xml: fix some mispellings and grammer.
1106         Fixes #353143, #353146 and #353147.
1108 ============ Version 0.9.6
1110 2006-10-01  James Livingston  <doclivingston@gmail.com>
1112         * configure.ac: bump version to 0.9.6. enable tag-writing and
1113         ipod-writing by default
1115         * NEWS: update NEWS
1117 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1119         patch by:  William Jon McCann  <mccann@jhu.edu>
1121         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
1122         Use a local GError in case no error pointer pointer is passed in.
1123         From bug #358396.
1125 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1127         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
1128         Don't reference members of freed structures.
1130 2006-09-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1132         patch by:  William Jon McCann  <mccann@jhu.edu>
1134         * player/rb-recorder-gst.c: (rb_recorder_burn):
1135         Drop GDK lock before entering n-c-b.  Fixes #353894?
1137 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1139         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
1140         (impl_activate):
1141         Handle error/hangup conditions on the LIRC connection.  Fixes #358049.
1143 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1145         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
1146         Call lirc_init before lirc_readconfig so we don't crash if the user's
1147         .lircrc file has any mode sections. Fixes #357419.
1149 2006-09-24  James Livingston  <doclivingston@gmail.com>
1151         * sources/rb-daap-source.c: (rb_daap_sources_shutdown): don't assert
1152         if we get called twice, as that can happen. Fixes #357214.
1154 2006-09-24  James Livingston  <doclivingston@gmail.com>
1156         * backends/rb-encoder.h: add "file access" error
1158         * lib/rb-file-helpers.c: (rb_dot_dir):
1159         * podcast/rb-podcast-manager.c:
1160         (rb_podcast_manager_download_file_info_cb): remove directory creation
1161         race condition.
1163         * backends/gstreamer/rb-encoder-gst.c: (create_parent_dirs_uri),
1164         (create_parent_dirs), (rb_encoder_gst_encode): check result of
1165         directory creation. Fixes #347743
1167 2006-09-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1169         * plugins/audioscrobbler/rb-audioscrobbler.c: (*):
1170         Strip trailing whitespace
1172 2006-09-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1174         * rhythmdb/Makefile.am:
1175         * rhythmdb/rhythmdb-private.h:
1176         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_error_quark),
1177         (rhythmdb_tree_parser_start_element), (rhythmdb_tree_load):
1178         * rhythmdb/rhythmdb-tree.h:
1179         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_load_error_cb),
1180         (rhythmdb_load_thread_main), (rhythmdb_save_thread_main):
1181         * rhythmdb/rhythmdb.h:
1182         Rather than aborting, show an error and refuse to load the database when
1183         it appears to come from the future.  From bug #350304.
1185 2006-09-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1187         * bindings/python/rhythmdb.override:
1188         Make entry_foreach usable.
1190 2006-09-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1192         * sources/rb-podcast-source.c: (rb_podcast_source_init):
1193         Scale the icon so it matches the rest of the sources.
1194         Fixes #351410.
1196 2006-09-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1198         * rhythmdb/rhythmdb-property-model.c: (_remove_entry_cb),
1199         (rhythmdb_property_model_set_query_model_internal),
1200         (rhythmdb_property_model_row_inserted_cb),
1201         (rhythmdb_property_model_prop_changed_cb),
1202         (rhythmdb_property_model_entry_removed_cb),
1203         (rhythmdb_property_model_delete),
1204         (rhythmdb_property_model_perform_sync):
1205         Use the hash table to track hidden entries, rather than visible
1206         entries.  Cuts memory usage fairly significantly.  From bug #347425.
1208 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1210         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting):
1211         Patch from Christian Becke to fix compilation with -O3, bug #355945.
1213 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1215         * sources/rb-ipod-source.c: (add_rb_playlist),
1216         (impl_move_to_trash), (impl_delete_thyself):
1217         Delete ipod playlists when the ipod source is deleted.  Fixes #355235.
1219         * sources/rb-sourcelist.c: (rb_sourcelist_remove):
1220         Make sure we don't leave the sourcelist thinking a deleted source is
1221         still playing.  Fixes nothing.
1223 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1225         * shell/rb-shell.c:
1226         Use GTK_STOCK_OPEN instead of GTK_STOCK_DIRECTORY for the
1227         'Music->Import Folder' menu item for better icon theme coverage.
1228         Fixes #354575.
1230 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1232         * rhythmdb/rhythmdb-private.h:
1233         * rhythmdb/rhythmdb.c: (rhythmdb_init),
1234         (rhythmdb_start_action_thread), (rhythmdb_finalize),
1235         (rhythmdb_thread_create), (rhythmdb_add_uri_with_type),
1236         (rhythmdb_load), (rhythmdb_save_async):
1237         Use a limited thread pool for adding URIs to the database.
1238         Fixes #352494.
1240 2006-09-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1242         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
1243         Do something like the previous change, but for gstreamer 0.10
1244         this time.  Oops.  Really fixes #349569.
1246 2006-09-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1248         * backends/gstreamer/rb-player-gst.c: (error_cb):
1249         Ignore 'internal data flow error' messages if we've already got an
1250         error for the file.  Fixes #349569.
1252 2006-09-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1254         * shell/rb-shell-clipboard.c:
1255         (rb_shell_clipboard_playlist_deleted_cb):
1256         Rebuild 'add to playlist' menu before removing actions for deleted
1257         playlists, and don't unref the action, as we never had a reference on
1258         it to begin with.  Fixes #354599.
1260 2006-09-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1262         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
1263         (sexy_icon_entry_unmap), (draw_icon), (sexy_icon_entry_set_icon):
1264         Apply fix for bug #354149 to our internal copy of sexy-icon-entry.c.
1266 2006-09-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1268         * daapsharing/rb-daap-connection.c: (handle_playlists):
1269         Reverse the list of playlists on the DAAP server so it ends up in the
1270         right order.  Fixes #353926.
1272 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1274         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
1275         Fully process each code so the LIRC client returns to its normal state
1276         when we're done.  Makes LIRC actually work properly for me.
1278 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1280         patch by: Ed Catmur  <ed@catmur.co.uk>
1282         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
1283         (sexy_icon_entry_unmap), (sexy_icon_entry_set_icon):
1284         Don't show unused GdkWindows in SexyIconEntry.  Fixes #353671.
1286 2006-09-02  William Jon McCann  <mccann@jhu.edu>
1288         patch by: James Livingston <doclivingston@gmail.com>
1290         * configure.ac:
1291         * data/rhythmbox.schemas:
1292         * metadata/Makefile.am:
1293         * plugins/Makefile.am:
1294         * plugins/audiocd/.cvsignore:
1295         * plugins/audiocd/Makefile.am:
1296         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
1297         * plugins/audiocd/rb-audiocd-plugin.c:
1298         (rb_audiocd_plugin_class_init), (rb_audiocd_plugin_init),
1299         (rb_audiocd_plugin_finalize), (rb_audiocd_plugin_mount_volume),
1300         (rb_audiocd_plugin_unmount_volume), (poll_tray_opened),
1301         (end_cd_drive_monitor), (begin_cd_drive_monitor),
1302         (get_nautilus_burn_drive_for_path), (split_drive_from_cdda_uri),
1303         (rb_audiocd_plugin_playing_uri_changed_cb),
1304         (nautilus_burn_drive_get_device),
1305         (rb_audiocd_plugin_source_deleted), (create_source_cb),
1306         (impl_activate), (_delete_cb), (impl_deactivate):
1307         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
1308         (rb_cd_recorder_plugin_init), (rb_cd_recorder_plugin_finalize):
1309         * shell/main.c: (main):
1310         * shell/rb-removable-media-manager.c:
1311         (rb_removable_media_manager_finalize),
1312         (rb_removable_media_manager_load_media),
1313         (rb_removable_media_manager_mount_volume),
1314         (rb_removable_media_manager_scan):
1315         * sources/Makefile.am:
1316         * sources/rb-audiocd-source.c:
1317         * sources/rb-audiocd-source.h:
1318         Make auto CD support a plugin.
1320         Fixes #349415.
1322 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1324         * daapsharing/rb-daap-connection.c: (handle_song_listing):
1325         Add a final rhythmdb_commit to make sure all songs from the share show
1326         up in the daap source.  Fixes #353913.
1328 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1330         * sources/rb-sourcelist-model.c:
1331         (rb_sourcelist_model_drag_data_received),
1332         (rb_sourcelist_model_row_drop_possible):
1333         Re-enable dragging of a set of tracks to the source list to create a
1334         new static playlist.  Fixes #353893.
1336 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1338         * widgets/bacon-volume.c: (cb_button_timeout):
1339         Actually drop the GDK lock, rather than returning while holding it.
1340         Fixes #353895.
1342 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1344         * plugins/generic-player/rb-generic-player-source.c:
1345         (rb_generic_player_source_constructor),
1346         (rb_generic_player_source_get_device_info), (impl_delete_thyself),
1347         (rb_generic_player_source_load_songs), (load_playlist_file),
1348         (default_load_playlists), (get_hal_context):
1349         Only call libhal_ctx_shutdown if libhal_ctx_init succeeds.
1350         Fixes #353483.
1352 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1354         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_directory_change_cb):
1355         Canonicalise URIs received from gnome-vfs file monitor.
1356         Fixes #353447.
1358 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1360         * help/C/rhythmbox.xml: unbreak help build
1361         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
1362         Unbuffer the IO channel.  Fixes some weirdness for me.
1364 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1366         * help/C/rhythmbox.xml:
1367         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
1368         (impl_activate), (impl_deactivate):
1369         Add 'playpause' LIRC command.
1371 2006-08-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1373         * sources/rb-source.c: (rb_source_class_init), (rb_source_dispose),
1374         (rb_source_finalize):
1375         Remove idle callbacks in dispose, rather than finalize. Fixes crashes
1376         when disconnecting generic audio players.
1378 2006-08-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1380         patch by: Paolo Borelli  <pborelli@katamail.com>
1382         * plugins/rb-python-plugin.c: (rb_python_object_get_type):
1383         Fix a small leak.
1385 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1387         * backends/gstreamer/rb-player-gst.c:
1388         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
1389         Don't actually disable the seek bar for non-seekable songs,
1390         because we can't reliably tell yet.
1392 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1394         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
1395         (add_playlist_entry_to_mlcl), (databases_cb), (db_entry_added_cb),
1396         (db_entry_deleted_cb), (rb_daap_share_server_start),
1397         (rb_daap_share_server_stop):
1398         * rhythmdb/rhythmdb-private.h:
1399         * rhythmdb/rhythmdb-tree.c: (save_entry):
1400         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
1401         (rhythmdb_entry_set_internal), (rhythmdb_prop_type_get_type),
1402         (rhythmdb_entry_get_ulong):
1403         * rhythmdb/rhythmdb.h:
1404         Give db entries a numeric ID property, replacing the daap server's
1405         entry->id map.  From #347665.
1407 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1409         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
1410         * widgets/rb-header.c: (rb_header_class_init),
1411         (rb_header_set_property), (rb_header_get_property),
1412         (rb_header_set_playing_entry), (rb_header_sync),
1413         (rb_header_sync_time):
1414         * widgets/rb-header.h:
1415         Add a 'seekable' property on RBHeader, and use it to make the seek bar
1416         insensitive when the player backend tells us we can't seek in the
1417         current song.  From #330410.
1419 2006-08-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1421         * widgets/rb-song-info.c: (rb_song_info_update_buttons):
1422         Don't try to unref previous/next entries if they aren't there.
1423         Fixes #351806.
1425 2006-08-15  James Livingston  <doclivingston@gmail.com>
1427         * rhythmdb/rhythmdb-monitor.c: (entry_volume_mounted_or_unmounted),
1428         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb): turn the
1429         mountpoint into a RBRefString and compare equality of those, rather
1430         than doign lots of strcmp()s.
1432         * sources/rb-source.c: (rb_source_finalize), (_update_status_idle),
1433         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb): do
1434         status notification as well as the visibility update in an idle
1435         callback. Makes it take much less time to update after a volume
1436         mount/unmount event.
1438 2006-08-15  James Livingston  <doclivingston@gmail.com>
1440         patch by: Christian Becke  <christianbecke@web.de>
1442         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library): allow
1443         multiple selections in the Import Folder dialog. Fixes #351414.
1445 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1447         * shell/rb-shell.c: (construct_widgets):
1448         * shell/rb-statusbar.c: (rb_statusbar_class_init),
1449         (rb_statusbar_connect_ui_manager), (rb_statusbar_set_property),
1450         (rb_statusbar_get_property), (rb_statusbar_new):
1451         * shell/rb-statusbar.h:
1452         Use the connect-proxy signal from the UI manager, which covers all
1453         action groups, rather than just one.  Fixes #351280.
1455 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1457         * widgets/rb-library-browser.c: (rebuild_child_model):
1458         Fix query model reference counts (bug #349601).
1460 2006-08-15  James Livingston  <doclivingston@gmail.com>
1462         * backends/rb-player.c: (rb_player_interface_init): make the EOS and
1463         Error signals be non-recursive. Fixes a highly-unlikely issue that
1464         could have caused #322972.
1466 2006-08-14  James Livingston  <doclivingston@gmail.com>
1468         * sources/rb-auto-playlist-source.c:
1469         (rb_auto_playlist_source_init):
1470         * sources/rb-static-playlist-source.c:
1471         (rb_static_playlist_source_init):
1473 2006-08-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1475         * sources/rb-browser-source.c:
1476         * sources/rb-import-errors-source.c:
1477         * sources/rb-iradio-source.c:
1478         * sources/rb-library-source.c:
1479         * sources/rb-missing-files-source.c:
1480         * sources/rb-play-queue-source.c:
1481         * sources/rb-playlist-source.c:
1482         * sources/rb-podcast-source.c:
1483         * sources/rb-source.c:
1484         Make entry-type a property on RBSource, rather than on most of its
1485         subclasses.  Fixes #347288.
1487 2006-08-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1489         * remote/dbus/rb-client.c: (parse_pattern),
1490         (create_rb_shell_proxies), (main):
1491         Actually implement %ag and %aG (genre) for --print-playing-format
1493 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1495         * lib/rb-debug.c: (rb_debug_real):
1496         No point allocating a buffer for the timestamp when we can just put it
1497         on the stack.
1499 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1501         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
1502         Don't ignore SIGPIPE.  gnome-vfs does it for us anyway.
1504 2006-08-11  James Livingston  <doclivingston@gmail.com>
1506         * podcast/rb-podcast-manager.c:
1507         (rb_podcast_manager_update_synctime): fix accidental commit in the
1508         last, which caused a warning.
1510 2006-08-11  James Livingston  <doclivingston@gmail.com>
1512         * data/rhythmbox.schemas:
1513         * podcast/rb-podcast-manager.c:
1514         (rb_podcast_manager_update_synctime): change the schema's
1515         update-inteval value from 0 to 1, which causes it to update on
1516         startup, rather than never. Should fixs #343818.
1518 2006-08-11  James Livingston  <doclivingston@gmail.com>
1520         * configure.ac:
1521         * data/Makefile.am:
1522         - data/rhythmbox.desktop.in:
1523         + data/rhythmbox.desktop.in.in: add mroe indirection to the build, so
1524         the @VERSION@ can be substituted in. Fix some issues with newer
1525         bug-buddy versions. Fixes #348853.
1527 2006-08-10  William Jon McCann  <mccann@jhu.edu>
1529         * data/rhythmbox.schemas:
1530         * plugins/Makefile.am:
1531         * plugins/artdisplay/Makefile.am:
1532         * plugins/audioscrobbler/Makefile.am:
1533         * plugins/cd-recorder/Makefile.am:
1534         * plugins/generic-player/Makefile.am:
1535         * plugins/ipod/Makefile.am:
1536         * plugins/lirc/Makefile.am:
1537         * plugins/lyrics/Makefile.am:
1538         * plugins/pythonconsole/Makefile.am:
1539         * plugins/rb-module.c:
1540         * plugins/rb-module.h:
1541         * plugins/rb-plugin-manager.c: (configure_button_cb),
1542         (plugin_manager_view_cell_cb), (cursor_changed_cb),
1543         (plugin_manager_populate_lists), (plugin_manager_set_active),
1544         (plugin_manager_toggle_active),
1545         (plugin_manager_get_selected_plugin), (rb_plugin_manager_init),
1546         (rb_plugin_manager_finalize):
1547         * plugins/rb-plugin-manager.h:
1548         * plugins/rb-plugin.c: (rb_get_plugin_paths),
1549         (rb_plugin_find_file):
1550         * plugins/rb-plugin.h:
1551         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load),
1552         (rb_plugins_engine_load_cb), (rb_plugins_engine_load_all),
1553         (rb_plugins_engine_init), (rb_plugin_info_free),
1554         (load_plugin_module), (rb_plugins_engine_activate_plugin),
1555         (rb_plugins_engine_deactivate_plugin),
1556         (rb_plugins_engine_plugin_is_active),
1557         (rb_plugins_engine_plugin_is_visible),
1558         (rb_plugins_engine_plugin_is_configurable),
1559         (rb_plugins_engine_configure_plugin),
1560         (rb_plugins_engine_get_plugin_name),
1561         (rb_plugins_engine_get_plugin_description),
1562         (rb_plugins_engine_get_plugin_authors),
1563         (rb_plugins_engine_get_plugin_website),
1564         (rb_plugins_engine_get_plugin_copyright),
1565         (rb_plugins_engine_get_plugin_icon):
1566         * plugins/rb-plugins-engine.h:
1567         * plugins/rb-python-module.c: (rb_python_module_init_python),
1568         (rb_python_module_load), (rb_python_module_unload),
1569         (rb_python_module_class_init), (rb_python_module_new),
1570         (finalise_collect_cb), (rb_python_shutdown):
1571         * plugins/rb-python-module.h:
1572         * plugins/rb-python-plugin.c: (call_python_method),
1573         (impl_deactivate), (impl_activate), (impl_create_configure_dialog),
1574         (impl_is_configurable), (rb_python_object_get_type):
1575         * plugins/rb-python-plugin.h:
1576         * plugins/rb/Makefile.am:
1578         Use TRUE/FALSE in schemas to make it easier to read.  Remove
1579         spurious whitespace.  Don't use libgnome explicitly.  Replace the
1580         crack USER_RB_PLUGINS_LOCATION API with rb_get_plugin_paths().
1581         Remove unused RB_PLUGINS_ENGINE_BASE_KEY CONF_PREFIX etc.  Don't
1582         special case loading of dirs.  Install plugins to subdirectors of
1583         PLUGINDIR so they don't interfere.  Install rb plugin to LIBDIR
1584         not DATADIR.  Fixes #350352
1586 2006-08-10  James Livingston  <doclivingston@gmail.com>
1588         * daapsharing/rb-daap-connection.c: (connection_connected),
1589         (connection_disconnected), (connection_operation_done):
1590         * daapsharing/rb-daap-share.c: (name_collision_cb):
1591         * plugins/generic-player/rb-generic-player-source.c:
1592         (rb_generic_player_source_load_playlists):
1593         * podcast/rb-podcast-manager.c:
1594         (rb_podcast_manager_download_entry),
1595         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_next_file),
1596         (end_job), (rb_podcast_manager_event_loop):
1597         * rhythmdb/rhythmdb-property-model.c:
1598         (rhythmdb_property_model_perform_sync):
1599         * rhythmdb/rhythmdb-query-model.c: (idle_process_update_idle),
1600         (rhythmdb_query_model_process_update), (idle_process_update),
1601         (rhythmdb_query_model_reapply_query_cb):
1602         * shell/rb-play-order.c: (sync_playing_entry_cb):
1603         * shell/rb-removable-media-manager.c:
1604         (rb_removable_media_manager_load_media):
1605         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync_idle),
1606         (rb_shell_clipboard_sync),
1607         (rb_shell_clipboard_entryview_changed_cb),
1608         (rb_shell_clipboard_entries_changed_cb),
1609         (rb_shell_clipboard_playlist_deleted_cb), (rebuild_playlist_menu),
1610         (rebuild_playlist_menu_idle),
1611         (rb_shell_clipboard_playlist_added_cb):
1612         * shell/rb-shell-player.c: (notify_playing_idle),
1613         (rb_shell_player_jump_to_current_idle), (_idle_unblock_signal_cb):
1614         * shell/rb-shell.c: (idle_save_playlist_manager), (quit_timeout),
1615         (rb_shell_quit):
1616         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
1617         * sources/rb-library-source.c: (add_child_sources_idle):
1618         * sources/rb-playlist-source-recorder.c: (response_idle_cb),
1619         (burn_cd_idle):
1620         * sources/rb-source.c: (update_visibility_idle):
1621         * widgets/bacon-volume.c: (button_timeout), (cb_button_timeout),
1622         (cb_button_press):
1623         * widgets/rb-druid.c: (idle_set_sensitive):
1624         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed):
1625         take the GDK lock when we should be, from #348588
1627 2006-08-09  James Livingston  <doclivingston@gmail.com>
1629         * rhythmdb/rhythmdb-property-model.c:
1630         (rhythmdb_property_model_get_path),
1631         (rhythmdb_property_model_get_value),
1632         (rhythmdb_property_model_iter_next): don't attempt to verify the
1633         iterator if it's the All value, since it isn't valid. Fixes a
1634         potential crasher.
1636 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1638         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
1639         (rb_podcast_manager_download_file_info_cb),
1640         (rb_podcast_manager_abort_download), (download_info_free),
1641         (download_info_new):
1642         Use gnome_vfs_async_get_file_info to figure out the local filename for
1643         a podcast episode, so we get the filename from the target of any
1644         redirects, rather than the source.  When creating the GnomeVFSURI, hide
1645         the query string, then append it later, to stop gnome-vfs from
1646         converting 'http://' to 'http:/'.  If the local filename ends with the
1647         query string, remove it.  Fixes #330766 and #321991.
1649 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1651         * sources/rb-library-source.c: (impl_want_uri):
1652         * sources/rb-static-playlist-source.c: (impl_want_uri):
1653         Treat sftp:// URIs as likely indicators of songness.
1655 2006-08-07  James Livingston  <doclivingston@gmail.com>
1657         * rhythmdb/rhythmdb.c: (process_added_entries_cb): don't auto-hide
1658         remote tracks with GStreamer 0.10, and remember their visibility like
1659         local ones.
1661 2006-08-07  James Livingston  <doclivingston@gmail.com>
1663         * remote/dbus/rb-client.c: (main): don't unref the bus instance, since
1664         apparently it's a borrowed reference. Should fix #347072.
1666 2006-08-06  James Livingston  <doclivingston@gmail.com>
1668         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_finalize),
1669         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1670         (rb_shuffle_play_order_get_previous),
1671         (rb_shuffle_play_order_go_previous), (handle_query_model_changed),
1672         (remove_from_history), (add_randomly_to_history),
1673         (rb_shuffle_sync_history_with_query_model),
1674         (rb_shuffle_playing_entry_changed), (rb_shuffle_db_entry_deleted),
1675         (query_model_and_history_contents_match): remove the tentatative
1676         history stuff, which is from older code, like we did for -random a few
1677         weeks ago.
1679 2006-08-06  James Livingston  <doclivingston@gmail.com>
1681         * shell/rb-play-order-queue.c: (rb_queue_play_order_go_next),
1682         (rb_queue_play_order_get_previous):
1683         * shell/rb-play-order-random.c: (rb_random_play_order_get_next),
1684         (rb_random_play_order_go_next),
1685         (rb_random_play_order_get_previous), (rb_random_db_changed):
1686         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
1687         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1688         (rb_shuffle_play_order_get_previous), (add_randomly_to_history),
1689         (rb_shuffle_db_changed), (rb_shuffle_entry_added),
1690         (rb_shuffle_entry_removed),
1691         (query_model_and_history_contents_match):
1692         * shell/rb-play-order.c: (rb_play_order_query_model_changed),
1693         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1694         (default_has_next), (default_has_previous),
1695         (rb_play_order_model_not_empty): Fix assorted refcounting issues in
1696         various play orders, after reviewing the code. Should fix #349601.
1698 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1700         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
1701         Pass the items_per_notification parameter to
1702         gnomevfs.async.load_directory, fixing 'argument 4 impossible' errors
1703         with some versions of python.
1705 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1707         * widgets/libsexy/sexy-icon-entry.c: (draw_icon):
1708         Don't try to draw the icon if the drawable area is too small.
1709         Fixes #349838.
1711 2006-08-04  Ryan P Skadberg  <skadz@stigmata.org>
1713         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
1715         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): seems to fix 348783
1717 2006-08-05  James Livingston  <doclivingston@gmail.com>
1719         * configure.ac: tell libtool not to check for C++/fortran/ etc
1720         compilers
1722         * plugins/rb-plugins-engine.c: (rb_plugin_info_free): remove the right
1723         watch, to fix some gconf warnings.
1725 2006-08-04  James Livingston  <doclivingston@gmail.com>
1727         patch by: William Jon McCann  <mccann@jhu.edu>
1729         * shell/main.c: (main): use GOption instead of popt. Fixes #346930
1731 2006-08-04  James Livingston  <doclivingston@gmail.com>
1733         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): try to
1734         actually fix #349722 this time
1736 2006-08-04  James Livingston  <doclivingston@gmail.com>
1738         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: don't attempt
1739         to seach for local art from http:// URIs, or those gnome-vfs doesn't
1740         know about. Fixes #348571.
1742 2006-08-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>
1744         various fixes for valgrind complaints:
1745         * lib/rb-tree-dnd.c: (rb_tree_dnd_data_free),
1746         (init_rb_tree_dnd_data):
1747           free the associated target list, too
1748         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_realize):
1749           initialize allocation.{x,y,width,height} correctly
1750         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting),
1751         (rb_entry_view_constructor):
1752           free strings when no longer needed
1754 2006-08-03  James Livingston  <doclivingston@gmail.com>
1756         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): use the
1757         real GtkTreeModel not the filter. Fixes #349722
1759 2006-08-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1761         * backends/gstreamer/rb-player-gst.c:
1762         Only use DAAP seek hacks for GStreamer 0.8 builds.
1764         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
1765         (rb_daap_src_open):
1766         * daapsharing/rb-daap-src.h:
1767         Implement normal GStreamer seeking for GStreamer 0.10 builds.
1769         * sources/rb-daap-source.c: (rb_daap_source_class_init),
1770         (rb_daap_source_get_headers):
1771         * sources/rb-daap-source.h:
1772         Reimplement rb_daap_source_get_headers for the case where we've
1773         already got the byte offset.  Add a small hack to
1774         rb_daap_source_class_init to prevent the linker from dropping
1775         rb-daap-src.o entirely.
1777         Fixes client-side DAAP seeking (for MP3, at least), bug #330410.
1779 2006-08-02  James Livingston  <doclivingston@gmail.com>
1781         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
1782         (handle_song_listing), (handle_playlist_entries),
1783         (rb_daap_connection_dispose):
1784         * sources/rb-daap-source.c: (_add_location_to_playlist),
1785         (rb_daap_source_connection_cb): make the daap code use RBRefStrings
1786         for playlist URIs, not pointless duplicate strings. From #347425.
1788 2006-08-02  James Livingston  <doclivingston@gmail.com>
1790         * data/rhythmbox.schemas:
1791         * lib/rb-preferences.h:
1792         * plugins/rb-plugin-manager.c: (rb_plugin_manager_class_init),
1793         (plugin_manager_view_cell_cb), (plugin_manager_populate_lists),
1794         (plugin_manager_set_active), (plugin_manager_toggle_active),
1795         (plugin_manager_get_selected_plugin), (name_search_cb),
1796         (plugin_manager_construct_tree), (rb_plugin_manager_new),
1797         (rb_plugin_manager_finalize):
1798         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
1799         (rb_plugins_engine_load_all), (rb_plugin_info_free),
1800         (rb_plugins_engine_plugin_is_visible),
1801         (rb_plugins_engine_plugin_visible_cb):
1802         * plugins/rb-plugins-engine.h: add gconf options to 1) disable loading
1803         per-user plugins, and 2) hide plugins from the manager UI. From #349395
1805 2006-08-02  James Livingston  <doclivingston@gmail.com>
1807         * sources/rb-sourcelist-model.c:
1808         (rb_sourcelist_model_drag_data_received): don't crash if we didn't
1809         drop on a source. Fixes #349580.
1811 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1813         * configure.ac:
1814         * daapsharing/rb-daap-dialog.c:
1815         * daapsharing/rb-daap-dialog.h:
1816         * shell/Makefile.am:
1817         * sources/Makefile.am:
1818         * sources/rb-daap-source.c: (connection_auth_cb),
1819         (rb_daap_source_connection_cb), (rb_daap_source_activate):
1820         Add gnome-keyring support for DAAP passwords and use
1821         gnome-password-dialog instead of our own.  
1822         Patch mostly by James Livingston.  Fixes bug #330346.
1824 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1826         * shell/rb-shell-player.c:
1827         (rb_shell_player_set_playing_source_internal),
1828         (rb_shell_player_sync_with_selected_source):
1829         Remove call to rb_source_have_url, as we never did anything with the
1830         result.
1832         * sources/rb-browser-source.c: (rb_browser_source_class_init):
1833         * sources/rb-import-errors-source.c:
1834         (rb_import_errors_source_class_init):
1835         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
1836         (impl_song_properties), (impl_want_uri), (impl_add_uri):
1837         * sources/rb-library-source.c: (rb_library_source_class_init),
1838         (impl_want_uri), (impl_add_uri):
1839         * sources/rb-missing-files-source.c:
1840         (rb_missing_files_source_class_init):
1841         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
1842         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
1843         (impl_want_uri), (impl_add_uri):
1844         * sources/rb-source.c: (rb_source_class_init),
1845         (rb_source_want_uri), (rb_source_add_uri), (rb_source_handle_eos):
1846         * sources/rb-source.h:
1847         * sources/rb-static-playlist-source.c:
1848         (rb_static_playlist_source_class_init), (search_action_changed),
1849         (impl_want_uri):
1850         Remove unused 'have_url' vfunc, add 'want_uri' and 'add_uri' vfuncs.
1851         When adding a URI, want_uri gets called for each source; the one that
1852         wants it most gets the URI passed to its add_uri method.
1853         
1854         * shell/rb-shell.h:
1855         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
1856         (rb_shell_guess_source_for_uri), (rb_shell_add_uri),
1857         (handle_playlist_entry_cb), (rb_shell_load_uri):
1858         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
1859         Use want_uri and add_uri to simplify and make generic
1860         rb_shell_add_uri, rb_shell_load_uri, various playlist parsing code.
1862         If a source that returns TRUE from try_playlist wants all the URIs in
1863         the playlist, give it the playlist URI instead.  This retains the
1864         existing behaviour for adding iradio playlists.
1866         * bindings/python/rb.defs: Update for above changes.
1868         From bug #347097.
1870 2006-07-31  James Livingston  <doclivingston@gmail.com>
1872         * data/Makefile.am:
1873         * data/generate-keys.sh: fix the build I broke with the last commit.
1874         Oops.
1876 2006-07-31  James Livingston  <doclivingston@gmail.com>
1878         * data/rhythmbox.applications: remove from cvs, as it hasn't been used
1879         in a long time. Fixes #349179.
1881 2006-07-30  James Livingston  <doclivingston@gmail.com>
1883         * lib/rb-util.c: (rb_gvalue_compare), (rb_value_array_append_data):
1884         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
1885         * rhythmdb/rhythmdb.c: (rhythmdb_finalize): more minor leak fixes
1887 2006-07-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1889         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1890         Don't tell the browser the query is still pending when doing a subset
1891         search.  Fixes #348617 again.
1893 2006-07-30  James Livingston  <doclivingston@gmail.com>
1895         * bindings/python/rb.override: remove an extraneous _wrap_ from the
1896         override definition. Fixes #348893.
1898 2006-07-30  James Livingston  <doclivingston@gmail.com>
1900         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error): don't use
1901         rb_error_dialog, as it's above this in the stack.
1903         * lib/rb-util.c: (rb_gvalue_compare):
1904         * lib/rb-util.h: change the return type to int, as we're returning
1905         -1/0/1
1907         * rhythmdb/rhythmdb.c: (rhythmdb_finalize):
1908         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1909         (rb_query_creator_set_sorting): minor leak fixes
1911 2006-07-28  James Livingston  <doclivingston@gmail.com>
1913         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1914         (rhythmdb_tree_finalize), (rhythmdb_tree_parser_end_element),
1915         (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_new_internal),
1916         (get_or_create_genre), (remove_entry_from_album),
1917         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1918         (rhythmdb_tree_entry_delete_by_type), (conjunctive_query),
1919         (rhythmdb_tree_entry_lookup_by_location),
1920         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1921         (rhythmdb_hash_tree_foreach),
1922         (rhythmdb_tree_entry_type_registered): actually make RhythmDBTree
1923         threadsafe. Fix a nasty problem if the _foreach callback function
1924         caused the addition/removal of entries.
1926 2006-07-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1928         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal):
1929         Clear selection before changing our idea of the model.  Fixes crashes
1930         on model changes while playing.
1932 2006-07-27  James Livingston  <doclivingston@gmail.com>
1934         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_type_registered): add
1935         a missing rb_refstring_unref.
1937         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
1938         (rhythmdb_process_file_deleted): use rb_refstring_unref not g_free:
1939         oops. should hopefully fix the crash reported on #347425.
1941 2006-07-27  James Livingston  <doclivingston@gmail.com>
1943         * backends/gstreamer/rb-encoder-gst.c:
1944         (get_profile_from_mime_type): fix encoding error issue, from #310774.
1946         * rhythmdb/rb-refstring.c: (rb_refstring_unref): Fix potential
1947         thread-safety issue.
1949 2006-07-27  James Livingston  <doclivingston@gmail.com>
1951         * rhythmdb/rb-refstring.c: (rb_refstring_find):
1952         * rhythmdb/rb-refstring.h: add a new function which returns the
1953         RBRefString that matches a string, but never creates a new one.
1955         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
1956         (monitor_entry_file), (rhythmdb_check_changed_file),
1957         (rhythmdb_directory_change_cb):
1958         * rhythmdb/rhythmdb-private.h:
1959         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1960         (unparent_entries), (free_unknown_entries),
1961         (rhythmdb_tree_parser_start_element),
1962         (rhythmdb_tree_parser_end_element), (save_entry),
1963         (save_unknown_entry_type), (rhythmdb_tree_entry_new),
1964         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1965         (remove_one_song), (rhythmdb_tree_entry_lookup_by_location),
1966         (rhythmdb_tree_entry_type_registered):
1967         * rhythmdb/rhythmdb.c: (rhythmdb_execute_multi_stat_info_cb),
1968         (rhythmdb_event_free), (sync_entry_changed), (rhythmdb_entry_new),
1969         (rhythmdb_entry_example_new), (rhythmdb_entry_finalize),
1970         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1971         (rhythmdb_process_metadata_load),
1972         (rhythmdb_process_file_created_or_modified),
1973         (rhythmdb_process_file_deleted), (rhythmdb_execute_stat_info_cb),
1974         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
1975         (action_thread_main), (rhythmdb_entry_set_internal),
1976         (rhythmdb_entry_move_to_trash_set_error),
1977         (rhythmdb_entry_move_to_trash),
1978         (rhythmdb_entry_lookup_by_location),
1979         (rhythmdb_entry_lookup_by_location_refstring),
1980         (default_sync_metadata), (rhythmdb_entry_get_string),
1981         (rhythmdb_entry_get_refstring):
1982         * rhythmdb/rhythmdb.h:
1983         * shell/rb-shell.c: (rb_shell_db_entry_added_cb):
1984         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1985         (rb_playlist_source_row_deleted),
1986         (rb_playlist_source_entry_added_cb),
1987         (rb_playlist_source_location_in_map),
1988         (rb_playlist_source_add_to_map): Make the LOCATION field of
1989         RhythmDBEntry be a RBRefString instead, which reduces some of the
1990         memory-fragmentation on startup and saves RBStaticPlaylistSource
1991         duplicating all the strings.
1993 2006-07-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1995         * rhythmdb/rhythmdb-query-model.c:
1996         (rhythmdb_query_model_copy_contents), (rhythmdb_query_model_chain):
1997         * rhythmdb/rhythmdb-query-model.h:
1998         Add function to copy contents from one query model to another,
1999         filtered by the destination model's query.
2001         * sources/rb-browser-source.c: (rb_browser_source_do_query):
2002         Use the above to create a new query model for subset searches, rather
2003         than filtering the existing model. Fixes #348617.
2005 2006-07-25  James Livingston  <doclivingston@gmail.com>
2007         * rhythmdb/rhythmdb-query-model.c:
2008         (rhythmdb_query_model_entry_changed_cb): Make hidden entries not get
2009         lost from static playlists. Yet again. Fixes #323095.
2011         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite): add a test
2012         case for the above, so that we should know if a change will break it
2013         again.
2015 2006-07-25  William Jon McCann  <mccann@jhu.edu>
2017         * data/rhythmbox.schemas: Fix for last commit.
2019         * podcast/rb-podcast-manager.c:
2020         (rb_podcast_manager_download_entry),
2021         (rb_podcast_manager_start_sync), (rb_podcast_manager_update_feeds),
2022         (rb_podcast_manager_db_entry_deleted_cb):
2023         * rhythmdb/rhythmdb-property-model.c:
2024         (rhythmdb_property_model_set_query_model_internal),
2025         (rhythmdb_property_model_set_property),
2026         (rhythmdb_property_model_finalize),
2027         (rhythmdb_property_model_drag_data_get):
2028         * rhythmdb/rhythmdb-query-model.c:
2029         (rhythmdb_query_model_set_query_internal),
2030         (rhythmdb_query_model_set_property),
2031         (rhythmdb_query_model_get_property), (rhythmdb_query_model_chain):
2032         * rhythmdb/rhythmdb-query-model.h:
2033         * sources/rb-browser-source.c: (rb_browser_source_dispose),
2034         (rb_browser_source_do_query):
2035         * sources/rb-import-errors-source.c:
2036         (rb_import_errors_source_constructor):
2037         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
2038         (rb_iradio_source_constructor), (rb_iradio_source_set_property),
2039         (rb_iradio_source_get_property), (rb_iradio_source_add_station),
2040         (impl_search), (impl_get_status),
2041         (rb_iradio_source_songs_show_popup_cb), (genre_selection_reset_cb),
2042         (rb_iradio_source_show_browser), (rb_iradio_source_do_query),
2043         (handle_playlist_entry_cb), (rb_iradio_source_add_from_playlist):
2044         * sources/rb-missing-files-source.c:
2045         (rb_missing_files_source_constructor),
2046         (rb_missing_files_source_dispose), (rb_missing_files_source_new):
2047         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize):
2048         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
2049         (rb_playlist_source_dispose), (rb_playlist_source_finalize),
2050         (rb_playlist_source_save_playlist),
2051         (rb_playlist_source_new_from_xml),
2052         (rb_playlist_source_save_to_xml),
2053         (rb_playlist_source_setup_entry_view),
2054         (rb_playlist_source_set_query_model), (rb_playlist_source_get_db),
2055         (rb_playlist_source_get_query_model),
2056         (rb_playlist_source_mark_dirty),
2057         (rb_playlist_source_location_in_map),
2058         (rb_playlist_source_add_to_map):
2059         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
2060         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
2061         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
2062         (impl_delete), (rb_podcast_source_state_prefs_sync),
2063         (rb_podcast_source_show_browser), (rb_podcast_source_do_query),
2064         (impl_get_config_widget), (rb_podcast_source_add_feed),
2065         (rb_podcast_source_cmd_download_post),
2066         (rb_podcast_source_cmd_cancel_download),
2067         (rb_podcast_source_cmd_delete_feed),
2068         (rb_podcast_source_cmd_update_feed),
2069         (rb_podcast_source_cmd_update_all),
2070         (rb_podcast_source_cb_interval_changed_cb),
2071         (rb_podcast_source_load_finish_cb), (rb_podcast_source_shutdown),
2072         (rb_podcast_source_entry_activated_cb):
2073         * sources/rb-source.c: (rb_source_finalize),
2074         (rb_source_set_query_model_internal), (rb_source_set_property),
2075         (default_get_status):
2076         * sources/rb-static-playlist-source.c:
2077         (rb_static_playlist_source_dispose),
2078         (rb_static_playlist_source_finalize),
2079         (rb_static_playlist_source_constructor),
2080         (rb_static_playlist_source_do_query):
2081         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
2082         (rb_entry_view_set_shell_player_internal),
2083         (rb_entry_view_set_model_internal), (rb_entry_view_get_property),
2084         (rb_entry_view_set_model), (rb_entry_view_append_column),
2085         (rb_entry_view_insert_column_custom), (rb_entry_view_constructor),
2086         (rb_entry_view_set_state):
2087         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
2088         (rb_library_browser_finalize), (rb_library_browser_new),
2089         (update_browser_property_visibilty), (view_selection_reset_cb),
2090         (reset_view_cb), (construct_query_cb), (ignore_selection_changes),
2091         (restore_selection), (rebuild_child_model),
2092         (rb_library_browser_set_selection), (rb_library_browser_set_model):
2093         * widgets/rb-property-view.c:
2094         (rb_property_view_set_model_internal),
2095         (rb_property_view_set_selection_mode), (rb_property_view_reset),
2096         (rb_property_view_get_model), (rb_property_view_set_model),
2097         (rb_property_view_get_num_properties),
2098         (rb_property_view_set_selection),
2099         (rb_property_view_append_column_custom),
2100         (rb_property_view_set_search_func):
2101         Fix some more leaks.  Mostly RhythmDBQueryModel ref leaks.
2102         From #347446
2104 2006-07-25  William Jon McCann  <mccann@jhu.edu>
2106         * sources/rb-playlist-source-recorder.c: (update_speed_combobox):
2107         Work around a small n-c-b API change.
2109 2006-07-25  James Livingston  <doclivingston@gmail.com>
2111         * data/rhythmbox.schemas: fix the schema to use the right plugin keys
2113         * rhythmdb/rhythmdb.c: (rhythmdb_finalize),
2114         (rhythmdb_load_thread_main), (rhythmdb_load): release entry refs when
2115         aborting entry-emission on finalise
2117 2006-07-25  James Livingston  <doclivingston@gmail.com>
2119         * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix
2120         warning when entry is NULL.
2122 2006-07-25  James Livingston  <doclivingston@gmail.com>
2124         * help/sv/.cvsignore:
2125         * lib/.cvsignore:
2126         * plugins/generic-player/.cvsignore:
2127         * remote/.cvsignore:
2128         * remote/dbus/.cvsignore:
2129         * shell/.cvsignore:
2130         * tests/.cvsignore: more .cvsignore updates
2132 2006-07-24  James Livingston  <doclivingston@gmail.com>
2134         * widgets/eggtrayicon.c: (egg_tray_icon_class_init),
2135         (transparent_expose_event), (make_transparent_again),
2136         (make_transparent), (egg_tray_icon_realize), (egg_tray_icon_add):
2137         apply a patch for EggTrayIcon so that it handled transparent panels
2138         correctly. Patch by DanWinship  <danw@novell.com> from bug 150726.
2139         Fixes #348208.
2141 2006-07-24  James Livingston  <doclivingston@gmail.com>
2143         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_parse_valist): copy
2144         queries rather than taking ownership when parsing a subquery. Fixed a
2145         crash exposed by the recent leak fixes.
2147         * doc/reference/tmpl/disclosure-widget.sgml:
2148         * doc/reference/tmpl/rb-debug.sgml:
2149         * doc/reference/tmpl/rb-metadata.sgml:
2150         * doc/reference/tmpl/rb-play-order.sgml:
2151         * doc/reference/tmpl/rb-playlist-manager.sgml:
2152         * doc/reference/tmpl/rb-playlist-source.sgml:
2153         * doc/reference/tmpl/rb-shell-player.sgml:
2154         * doc/reference/tmpl/rb-shell.sgml:
2155         * doc/reference/tmpl/rb-song-display-box.sgml:
2156         * doc/reference/tmpl/rhythmbox-unused.sgml:
2157         * doc/reference/tmpl/rhythmdb.sgml: Update all the gtk-doc crap
2159 2006-07-24  James Livingston  <doclivingston@gmail.com>
2161         * lib/.cvsignore:
2162         * plugins/artdisplay/.cvsignore:
2163         * plugins/artdisplay/artdisplay/.cvsignore:
2164         * plugins/lyrics/.cvsignore:
2165         * plugins/pythonconsole/.cvsignore:
2166         * plugins/rb/.cvsignore: add/update various .cvsignore files
2168 2006-07-24  James Livingston  <doclivingston@gmail.com>
2170         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
2171         (rb_refstring_ref): don't emit critical warnings when the refstring
2172         is NULL, as that happens often for podcast metadata.
2174         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence): add
2175         missing rhythmdb_entry_ref call
2177 2006-07-23  William Jon McCann  <mccann@jhu.edu>
2179         * bindings/python/rb.override:
2180         * daapsharing/rb-daap-share.c: (add_playlist_entry_to_mlcl):
2181         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
2182         (playlist_row_inserted_cb):
2183         * plugins/generic-player/rb-psp-source.c: (visit_playlist_dirs):
2184         * plugins/rb-plugin-manager.c:
2185         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
2186         (rb_podcast_manager_copy_post),
2187         (rb_podcast_manager_db_entry_deleted_cb),
2188         (rb_podcast_manager_insert_feed):
2189         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
2190         (rb_refstring_ref), (rb_refstring_get_sort_key):
2191         * rhythmdb/rhythmdb-private.h:
2192         * rhythmdb/rhythmdb-property-model.c:
2193         (rhythmdb_property_model_set_property),
2194         (rhythmdb_property_model_get_property),
2195         (rhythmdb_property_model_finalize), (rhythmdb_property_model_new),
2196         (rhythmdb_property_model_row_inserted_cb),
2197         (rhythmdb_property_model_prop_changed_cb),
2198         (rhythmdb_property_model_compare),
2199         (rhythmdb_property_model_insert),
2200         (rhythmdb_property_model_iter_from_string),
2201         (rhythmdb_property_model_get_column_type),
2202         (rhythmdb_property_model_get_iter),
2203         (rhythmdb_property_model_get_value),
2204         (rhythmdb_property_model_iter_nth_child), (query_model_cb),
2205         (rhythmdb_property_model_enable_drag):
2206         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init),
2207         (rhythmdb_query_model_constructor), (rhythmdb_query_model_dispose),
2208         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
2209         (rhythmdb_query_model_chain),
2210         (rhythmdb_query_model_entry_added_cb),
2211         (rhythmdb_query_model_entry_changed_cb),
2212         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
2213         (rhythmdb_query_model_add_entry),
2214         (rhythmdb_query_model_insert_into_main_list),
2215         (rhythmdb_query_model_insert_into_limited_list),
2216         (rhythmdb_query_model_remove_from_main_list),
2217         (rhythmdb_query_model_remove_from_limited_list),
2218         (rhythmdb_query_model_update_limited_entries),
2219         (rhythmdb_query_model_emit_reorder),
2220         (rhythmdb_query_model_do_reorder),
2221         (rhythmdb_query_model_do_insert),
2222         (rhythmdb_query_model_move_entry),
2223         (rhythmdb_query_model_remove_entry),
2224         (rhythmdb_query_model_entry_to_iter),
2225         (rhythmdb_query_model_iter_to_entry),
2226         (rhythmdb_query_model_get_previous_from_entry),
2227         (rhythmdb_query_model_row_draggable),
2228         (rhythmdb_query_model_drag_data_delete),
2229         (rhythmdb_query_model_drag_data_get),
2230         (rhythmdb_query_model_drag_data_received),
2231         (rhythmdb_query_model_row_drop_possible),
2232         (rhythmdb_query_model_row_drop_position),
2233         (rhythmdb_query_model_add_results),
2234         (rhythmdb_query_model_query_complete),
2235         (rhythmdb_query_model_get_column_type),
2236         (rhythmdb_query_model_get_iter), (rhythmdb_query_model_get_value),
2237         (rhythmdb_query_model_iter_nth_child),
2238         (apply_updated_entry_sequence),
2239         (rhythmdb_query_model_child_index_to_base_index),
2240         (rhythmdb_query_model_get_entry_index),
2241         (rhythmdb_query_model_base_row_inserted),
2242         (rhythmdb_query_model_base_row_deleted),
2243         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
2244         (rhythmdb_query_model_location_sort_func),
2245         (rhythmdb_query_model_title_sort_func),
2246         (rhythmdb_query_model_album_sort_func),
2247         (rhythmdb_query_model_artist_sort_func),
2248         (rhythmdb_query_model_track_sort_func),
2249         (rhythmdb_query_model_double_ceiling_sort_func),
2250         (rhythmdb_query_model_ulong_sort_func),
2251         (rhythmdb_query_model_date_sort_func),
2252         (rhythmdb_query_model_string_sort_func),
2253         (rhythmdb_query_model_within_limit):
2254         * rhythmdb/rhythmdb-tree.c: (unparent_entries),
2255         (rhythmdb_tree_parser_start_element),
2256         (rhythmdb_tree_parser_end_element),
2257         (rhythmdb_tree_parser_characters), (rhythmdb_tree_load),
2258         (write_elt_name_open), (write_elt_name_close), (save_entry_string),
2259         (save_entry_int), (save_entry_ulong), (save_entry_boolean),
2260         (save_entry_uint64), (save_entry_double), (save_entry),
2261         (set_entry_album), (rhythmdb_tree_entry_new),
2262         (get_genres_hash_for_type), (get_or_create_genre),
2263         (get_or_create_artist), (get_or_create_album), (remove_child),
2264         (remove_entry_from_album), (rhythmdb_tree_entry_set),
2265         (rhythmdb_tree_entry_delete), (remove_one_song),
2266         (rhythmdb_tree_entry_delete_by_type),
2267         (rhythmdb_tree_evaluate_query), (search_match_properties),
2268         (evaluate_conjunctive_subquery), (do_conjunction),
2269         (conjunctive_query_songs), (clone_remove_ptr_array_index),
2270         (conjunctive_query_albums), (conjunctive_query_artists),
2271         (conjunctive_query_genre), (conjunctive_query),
2272         (split_query_by_disjunctions), (do_query_recurse),
2273         (handle_entry_match), (rhythmdb_tree_entry_lookup_by_location),
2274         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
2275         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
2276         (hash_tree_artists_foreach), (hash_tree_genres_foreach):
2277         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
2278         (extract_gtype_from_enum_entry),
2279         (extract_nice_name_from_enum_entry), (rhythmdb_init),
2280         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_action_free),
2281         (rhythmdb_event_free), (rhythmdb_finalize),
2282         (rhythmdb_set_property), (rhythmdb_get_property),
2283         (rhythmdb_thread_create), (free_entry_changes),
2284         (emit_entry_changed), (sync_entry_changed),
2285         (process_added_entries_cb), (process_deleted_entries_cb),
2286         (rhythmdb_commit_internal), (rhythmdb_add_timeout_commit),
2287         (rhythmdb_entry_allocate), (rhythmdb_entry_get_type_data),
2288         (rhythmdb_entry_insert), (rhythmdb_entry_new),
2289         (rhythmdb_entry_example_new), (rhythmdb_entry_ref),
2290         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
2291         (rhythmdb_entry_is_editable), (set_props_from_metadata),
2292         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2293         (rhythmdb_process_metadata_load),
2294         (rhythmdb_process_file_created_or_modified),
2295         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
2296         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat),
2297         (queue_stat_uri), (queue_stat_uri_tad), (rhythmdb_execute_load),
2298         (rhythmdb_entry_get), (entry_to_rb_metadata), (rhythmdb_add_uri),
2299         (rhythmdb_add_uri_with_type), (rhythmdb_entry_set),
2300         (record_entry_change), (rhythmdb_entry_set_internal),
2301         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
2302         (rhythmdb_entry_move_to_trash_cb),
2303         (rhythmdb_entry_move_to_trash_set_error),
2304         (rhythmdb_entry_move_to_trash), (rhythmdb_entry_delete_by_type),
2305         (rhythmdb_nice_elt_name_from_propid),
2306         (rhythmdb_propid_from_nice_elt_name),
2307         (rhythmdb_entry_lookup_by_location), (rhythmdb_entry_foreach),
2308         (rhythmdb_evaluate_query), (rhythmdb_emit_entry_deleted),
2309         (rhythmdb_compute_status_normal), (default_sync_metadata),
2310         (rhythmdb_entry_register_type), (rhythmdb_entry_type_foreach),
2311         (rhythmdb_entry_type_get_by_name), (song_can_sync_metadata),
2312         (podcast_get_playback_uri), (podcast_data_destroy),
2313         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
2314         (rhythmdb_entry_dup_string), (rhythmdb_entry_get_string),
2315         (rhythmdb_entry_get_boolean), (rhythmdb_entry_get_uint64),
2316         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
2317         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_double),
2318         (rhythmdb_entry_get_playback_uri), (rhythmdb_get_property_type):
2319         * rhythmdb/rhythmdb.h:
2320         * shell/rb-play-order-linear-loop.c:
2321         (rb_linear_play_order_loop_get_next),
2322         (rb_linear_play_order_loop_get_previous):
2323         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
2324         (rb_linear_play_order_get_previous):
2325         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_previous):
2326         * shell/rb-play-order-random.c: (get_query_model_contents):
2327         * shell/rb-play-order-shuffle.c: (handle_query_model_changed),
2328         (get_query_model_contents):
2329         * shell/rb-play-order.c: (rb_play_order_constructor),
2330         (rb_play_order_finalize),
2331         (rb_play_order_set_playing_entry_internal),
2332         (rb_play_order_set_property), (rb_play_order_new),
2333         (rb_play_order_get_player), (rb_play_order_get_source),
2334         (rb_play_order_get_db), (rb_play_order_get_query_model),
2335         (rb_play_order_player_is_playing),
2336         (rb_play_order_set_playing_entry),
2337         (rb_play_order_get_playing_entry),
2338         (rb_play_order_playing_source_changed),
2339         (rb_play_order_query_model_changed),
2340         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
2341         (default_has_next), (default_has_previous),
2342         (sync_playing_entry_cb), (default_playing_entry_removed),
2343         (rb_play_order_has_next), (rb_play_order_get_next),
2344         (rb_play_order_go_next), (rb_play_order_has_previous),
2345         (rb_play_order_get_previous), (rb_play_order_go_previous),
2346         (rb_play_order_model_not_empty),
2347         (rb_play_order_update_have_next_previous):
2348         * shell/rb-playlist-manager.c: (rb_playlist_manager_is_dirty),
2349         (rb_playlist_manager_save_playlists),
2350         (rb_playlist_manager_set_automatic_playlist),
2351         (rb_playlist_manager_cmd_edit_automatic_playlist),
2352         (_queue_track_cb), (rb_playlist_manager_get_playlists),
2353         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name):
2354         * shell/rb-shell-clipboard.c: (add_playlist_to_menu):
2355         * shell/rb-shell-player.c: (rb_shell_player_constructor),
2356         (volume_pre_unmount_cb), (reemit_playing_signal),
2357         (notify_playing_idle), (rb_shell_player_open_playlist_url),
2358         (rb_shell_player_handle_eos_unlocked),
2359         (rb_shell_player_handle_eos), (rb_shell_player_init),
2360         (rb_shell_player_new), (rb_shell_player_get_playing_entry),
2361         (playlist_entry_cb), (rb_shell_player_open_entry),
2362         (rb_shell_player_play), (do_next_idle), (gconf_play_order_changed),
2363         (rb_shell_player_set_play_order),
2364         (rb_shell_player_set_playback_state),
2365         (rb_shell_player_sync_play_order),
2366         (rb_shell_player_play_order_update_cb),
2367         (rb_shell_player_jump_to_current), (swap_playing_source),
2368         (rb_shell_player_do_previous), (rb_shell_player_do_next),
2369         (rb_shell_player_do_previous_or_seek), (rb_shell_player_playpause),
2370         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
2371         (rb_shell_player_entry_activated_cb),
2372         (rb_shell_player_property_row_activated_cb),
2373         (rb_shell_player_entry_changed_cb),
2374         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
2375         (rb_shell_player_pause),
2376         (rb_shell_player_get_playing_song_duration),
2377         (rb_shell_player_error), (error_cb), (tick_cb),
2378         (info_available_cb), (buffering_cb),
2379         (rb_shell_player_get_playing_path), (grab_mmkey), (filter_mmkeys):
2380         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
2381         (rb_shell_jump_to_current):
2382         * sources/rb-auto-playlist-source.c:
2383         (rb_auto_playlist_source_finalize), (impl_receive_drag),
2384         (impl_save_contents_to_xml), (rb_auto_playlist_source_set_query),
2385         (rb_auto_playlist_source_get_query):
2386         * sources/rb-auto-playlist-source.h:
2387         * sources/rb-browser-source.c: (rb_browser_source_do_query):
2388         * sources/rb-import-errors-source.c:
2389         (rb_import_errors_source_constructor):
2390         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
2391         * sources/rb-library-source.c: (filepath_parse_pattern):
2392         * sources/rb-missing-files-source.c:
2393         (rb_missing_files_source_constructor):
2394         * sources/rb-play-queue-source.c:
2395         (rb_play_queue_source_clear_queue),
2396         (rb_play_queue_source_track_info_cell_data_func):
2397         * sources/rb-playlist-source.c: (rb_playlist_source_set_property),
2398         (rb_playlist_source_get_property), (playlist_iter_func),
2399         (rb_playlist_source_save_to_xml), (rb_playlist_source_row_deleted),
2400         (rb_playlist_source_track_cell_data_func):
2401         * sources/rb-podcast-source.c: (construct_query_from_selection),
2402         (rb_podcast_source_post_status_cell_data_func),
2403         (rb_podcast_source_post_feed_cell_data_func),
2404         (rb_podcast_source_feed_title_search_func),
2405         (rb_podcast_source_post_date_cell_data_func):
2406         * sources/rb-source.c: (default_get_status),
2407         (rb_source_get_status), (rb_source_browser_toggled),
2408         (rb_source_update_play_statistics), (rb_source_search),
2409         (rb_source_get_config_widget), (default_add_to_queue),
2410         (rb_source_add_to_queue), (rb_source_receive_drag),
2411         (rb_source_gather_hash_keys):
2412         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2413         (rb_sourcelist_model_is_row_visible),
2414         (rb_sourcelist_model_row_is_separator),
2415         (rb_sourcelist_model_drag_data_received), (path_is_droppable),
2416         (path_is_reorderable), (rb_sourcelist_model_row_draggable),
2417         (rb_sourcelist_model_drag_data_get):
2418         * sources/rb-sourcelist.c: (rb_sourcelist_append),
2419         (match_source_to_iter), (rb_sourcelist_source_to_iter),
2420         (rb_sourcelist_visible_source_to_iter),
2421         (rb_sourcelist_edit_source_name), (set_source_playing),
2422         (rb_sourcelist_set_playing_source), (rb_sourcelist_remove),
2423         (rb_sourcelist_select), (rb_sourcelist_selection_changed_cb),
2424         (drop_received_cb), (row_activated_cb), (emit_show_popup),
2425         (key_release_cb), (name_notify_cb), (visibility_notify_cb),
2426         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
2427         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
2428         (rb_static_playlist_source_add_location_internal),
2429         (rb_static_playlist_source_row_inserted):
2430         * widgets/rb-entry-view.c: (type_ahead_search_func),
2431         (rb_entry_view_finalize), (rb_entry_view_set_model),
2432         (rb_entry_view_playing_cell_data_func),
2433         (rb_entry_view_rating_cell_data_func),
2434         (rb_entry_view_long_cell_data_func),
2435         (rb_entry_view_play_count_cell_data_func),
2436         (rb_entry_view_duration_cell_data_func),
2437         (rb_entry_view_year_cell_data_func),
2438         (rb_entry_view_quality_cell_data_func),
2439         (rb_entry_view_location_cell_data_func),
2440         (rb_entry_view_string_cell_data_func),
2441         (rb_entry_view_sync_sorting), (rb_entry_view_set_sorting_type),
2442         (rb_entry_view_get_sorting_order),
2443         (rb_entry_view_set_sorting_order), (rb_entry_view_append_column),
2444         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
2445         (rb_entry_view_rated_cb), (rb_entry_view_pixbuf_clicked_cb),
2446         (rb_entry_view_playing_song_changed), (harvest_entries),
2447         (rb_entry_view_button_press_cb), (rb_entry_view_row_activated_cb),
2448         (rb_entry_view_row_inserted_cb), (rb_entry_view_row_deleted_cb),
2449         (set_column_visibility):
2450         * widgets/rb-entry-view.h:
2451         * widgets/rb-header.c: (rb_header_new),
2452         (rb_header_set_playing_entry), (rb_header_set_title):
2453         * widgets/rb-library-browser.c: (rebuild_child_model),
2454         (rb_library_browser_set_model):
2455         * widgets/rb-property-view.c:
2456         (rb_property_view_set_model_internal), (rb_property_view_finalize),
2457         (rb_property_view_set_property), (rb_property_view_get_property),
2458         (rb_property_view_reset), (rb_property_view_get_model),
2459         (rb_property_view_set_model), (rb_property_view_row_activated_cb),
2460         (rb_property_view_button_press_cb):
2461         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2462         (rb_query_creator_get_property), (rb_query_creator_load_query),
2463         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
2464         (rb_query_creator_get_query), (rb_query_creator_get_limit),
2465         (rb_query_creator_get_sort_order), (limit_toggled_cb),
2466         (lookup_row_by_widget), (remove_button_click_cb),
2467         (add_button_click_cb), (create_property_option_menu):
2468         * widgets/rb-song-info.c: (rb_song_info_constructor),
2469         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
2470         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
2471         (rb_song_info_update_rating), (rb_song_info_sync_entry_single):
2472         Fix more leaks.  Mostly RhythmDBEntry ref leaks.  From #347446
2474 2006-07-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2476         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2477         (rb_shell_player_get_property):
2478         Add a property providing access to the player backend object.
2480 2006-07-23  James Livingston  <doclivingston@gmail.com>
2482         * shell/rb-play-order-random.c: (rb_random_play_order_finalize),
2483         (get_history), (rb_random_filter_history),
2484         (rb_random_playing_entry_changed), (rb_random_db_entry_deleted):
2485         remove the tentative history, since it appears to be a remanent from
2486         older play order code. The only thing it was doing was using up
2487         CPU-time and memory. From #345857
2489 2006-07-23  James Livingston  <doclivingston@gmail.com>
2491         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
2493         * shell/main.c: (main):
2494         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2495         (rb_playlist_manager_finalize), (rb_playlist_manager_set_property),
2496         (rb_playlist_manager_get_property), (rb_playlist_manager_new),
2497         (rb_playlist_manager_load_playlists),
2498         (rb_playlist_manager_save_data):
2499         * shell/rb-playlist-manager.h:
2500         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
2501         (rb_shell_get_property), (rb_shell_sync_state),
2502         (idle_save_playlist_manager), (rb_shell_finalize), (rb_shell_new),
2503         (construct_sources), (idle_handle_load_complete):
2504         * shell/rb-shell.h: Add a command-line option for changing the
2505         playlist xml file to use, similar to the rhythmdb one. Fixes #343659.
2507 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2509         * daapsharing/rb-daap-share.c: (databases_cb):
2510         Make sure we set status codes on HTTP responses.
2512 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2514         * configure.ac:
2515         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
2516         (chunked_message_finished), (send_chunked_file),
2517         (mapped_file_message_finished), (send_mapped_file), (databases_cb):
2518         Use GMappedFile to send local files to DAAP clients where possible.  
2519         iTunes can't seek properly in files sent using chunked transfer 
2520         encoding.  Also remove the useless bitrate calculation code, as we
2521         never even used the result anyway.  From #330410.
2523 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2525         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
2527         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
2528         Enable multiple selection for 'import file'.  Fixes #347478.
2530 2006-07-20  Claudio Saavedra  <csaavedra@alumnos.utalca.cl>
2532         * metadata/rb-metadata-dbus-client.c: (kill_metadata_service):
2533         * metadata/rb-metadata-dbus-service.c: (main): Replace calls to 
2534         deprecated dbus_connection_disconnect () with dbus_connection_close ().
2535         Fixes #348098.
2537 2006-07-20  James Livingston  <doclivingston@gmail.com>
2539         * widgets/rb-entry-view.c: (type_ahead_search_func): check the strings
2540         aren't NULL before calling strstr. Fixes #347998.
2542 2006-07-19  James Livingston  <doclivingston@gmail.com>
2544         patch by: Alex Lancaster   <alexl@users.sourceforge.net>
2546         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): accept dates from
2547         MB that only have years. Fixes #347906.
2549 2006-07-19  James Livingston  <doclivingston@gmail.com>
2551         * rhythmdb/rhythmdb-private.h:
2552         * rhythmdb/rhythmdb.c: (rhythmdb_init),
2553         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2554         (_shutdown_foreach_swapped), (rhythmdb_shutdown),
2555         (rhythmdb_finalize), (timeout_rhythmdb_commit),
2556         (rhythmdb_add_timeout_commit), (rhythmdb_execute_stat_info_cb),
2557         (rhythmdb_execute_stat), (queue_stat_uri),
2558         (rhythmdb_sync_library_idle), (rhythmdb_load_thread_main),
2559         (rhythmdb_load), (rhythmdb_entry_register_type),
2560         (rhythmdb_entry_register_type_alias): Keep track of outstanding
2561         asynchronous vfs operations, and cancel them when shutting down the
2562         DB. Also remove outstanding timeoud/idle callbacks. Fixes #347985
2564         * tests/test-rhythmdb.c: (mark_signal), (set_waiting_signal),
2565         (test_rhythmdb_shutdown): wait until the db has been finalised before
2566         continuing on to the next test.
2568 2006-07-19  James Livingston  <doclivingston@gmail.com>
2570         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): use the
2571         right thing in the #ifdef. From #347832.
2573 2006-07-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2575         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
2576         Fix compile warning.
2578 2006-07-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2580         * rhythmdb/rhythmdb-query-model.c:
2581         (rhythmdb_query_model_set_property),
2582         (rhythmdb_query_model_reapply_query_cb):
2583         Ignore old query == new query case.
2584         Fixes auto playlists with time-relative queries.
2586         * rhythmdb/rhythmdb-query.c: (prop_gvalue_to_string),
2587         (write_encoded_gvalue), (rhythmdb_query_is_time_relative),
2588         (rhythmdb_query_to_string):
2589         * rhythmdb/rhythmdb.h:
2590         Add debug helper for printing queries in case someone needs it again.
2592 2006-07-18  James Livingston  <doclivingston@gmail.com>
2594         patch by: Ståle Lyngaas  <staale@lyngaas.com>
2595         * sources/rb-audiocd-source.c: store the MB track ids in the database.
2596         Fixes #347832
2598         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): and
2599         write then into files.
2601 2006-07-17  William Jon McCann  <mccann@jhu.edu>
2603         * daapsharing/rb-daap-connection.c:
2604         (rb_daap_connection_set_property):
2605         * daapsharing/rb-daap-share.c: (rb_daap_share_set_db),
2606         (rb_daap_share_set_playlist_manager), (rb_daap_share_set_property),
2607         (add_playlist_to_mlcl), (databases_cb):
2608         * daapsharing/rb-daap-sharing.c: (create_share):
2609         * iradio/rb-new-station-dialog.c:
2610         (rb_new_station_dialog_class_init), (rb_new_station_dialog_new):
2611         * iradio/rb-station-properties-dialog.c:
2612         (rb_station_properties_dialog_finalize),
2613         (rb_station_properties_dialog_set_property),
2614         (rb_station_properties_dialog_get_current_entry):
2615         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
2616         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data):
2617         * plugins/generic-player/rb-generic-player-source.c:
2618         (rb_generic_player_source_dispose), (rb_generic_player_source_new),
2619         (handle_playlist_entry_cb):
2620         * plugins/generic-player/rb-nokia770-source.c:
2621         (rb_nokia770_source_new), (hal_udi_is_nokia770):
2622         * plugins/generic-player/rb-psp-source.c: (impl_get_mount_path),
2623         (visit_playlist_dirs), (hal_udi_is_psp):
2624         * podcast/rb-podcast-manager.c:
2625         * podcast/rb-podcast-properties-dialog.c:
2626         (rb_podcast_properties_dialog_finalize),
2627         (rb_podcast_properties_dialog_set_entry_view),
2628         (rb_podcast_properties_dialog_set_property):
2629         * rhythmdb/rhythmdb-property-model.c:
2630         * rhythmdb/rhythmdb-query-model.c:
2631         (rhythmdb_query_model_set_property),
2632         (rhythmdb_query_model_reapply_query_cb):
2633         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_deserialize):
2634         * rhythmdb/rhythmdb-tree.c: (split_query_by_disjunctions):
2635         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
2636         (rhythmdb_event_free), (rhythmdb_shutdown),
2637         (rhythmdb_thread_create), (action_thread_main),
2638         (rhythmdb_do_full_query_async_parsed),
2639         (rhythmdb_do_full_query_internal):
2640         * shell/main.c: (main):
2641         * shell/rb-play-order-random.c: (rb_random_play_order_go_next):
2642         * shell/rb-play-order.c: (rb_play_order_finalize),
2643         (rb_play_order_set_player),
2644         (rb_play_order_set_playing_entry_internal),
2645         (rb_play_order_set_property),
2646         (rb_play_order_playing_source_changed),
2647         (rb_play_order_query_model_changed):
2648         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
2649         (rb_playlist_manager_set_source),
2650         (rb_playlist_manager_set_shell_internal),
2651         (rb_playlist_manager_set_property):
2652         * shell/rb-removable-media-manager.c:
2653         (rb_removable_media_manager_set_property),
2654         (rb_removable_media_manager_set_uimanager),
2655         (rb_removable_media_manager_cmd_eject_medium),
2656         (rb_removable_media_manager_cmd_copy_tracks):
2657         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_finalize),
2658         (rb_shell_clipboard_new), (rb_shell_clipboard_sync),
2659         (rb_shell_clipboard_set),
2660         (rb_shell_clipboard_cmd_add_to_playlist_new),
2661         (rb_shell_clipboard_playlist_add_cb),
2662         (rb_shell_clipboard_playlist_renamed_cb),
2663         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
2664         (rebuild_playlist_menu):
2665         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2666         (rb_shell_player_set_queue_source_internal),
2667         (rb_shell_player_finalize), (rb_shell_player_set_play_order),
2668         (rb_shell_player_entry_activated_cb),
2669         (rb_shell_player_property_row_activated_cb),
2670         (_idle_unblock_signal_cb), (rb_shell_player_playing_changed_cb):
2671         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
2672         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2673         (rb_shell_finalize), (construct_widgets),
2674         (rb_shell_playing_from_queue_cb),
2675         (rb_shell_player_stream_song_changed_cb),
2676         (rb_shell_player_volume_changed_cb):
2677         * shell/rb-statusbar.c: (rb_statusbar_new):
2678         * shell/rb-tray-icon.c: (rb_tray_icon_finalize),
2679         (rb_tray_icon_sync_action), (rb_tray_icon_set_property):
2680         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
2681         * sources/rb-auto-playlist-source.c:
2682         (rb_auto_playlist_source_class_init),
2683         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
2684         (rb_auto_playlist_source_constructor), (impl_receive_drag),
2685         (rb_auto_playlist_source_do_query),
2686         (rb_auto_playlist_source_set_query),
2687         (rb_auto_playlist_source_browser_changed_cb),
2688         (search_action_changed):
2689         * sources/rb-auto-playlist-source.h:
2690         * sources/rb-browser-source.c: (rb_browser_source_finalize),
2691         (search_action_changed), (rb_browser_source_constructor),
2692         (rb_browser_source_cmd_choose_artist), (impl_delete),
2693         (rb_browser_source_browser_changed_cb),
2694         (rb_browser_source_do_query):
2695         * sources/rb-daap-source.c: (rb_daap_source_dispose),
2696         (rb_daap_source_finalize), (rb_daap_source_class_init),
2697         (rb_daap_get_icon), (rb_daap_source_new), (destroy_pixbufs),
2698         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2699         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2700         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect),
2701         (rb_daap_source_get_headers):
2702         * sources/rb-import-errors-source.c:
2703         (rb_import_errors_source_constructor),
2704         (rb_import_errors_source_new), (impl_delete), (impl_get_status):
2705         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2706         (rb_ipod_source_new), (add_rb_playlist), (add_ipod_song_to_db),
2707         (get_db_for_source), (load_ipod_db_idle_cb), (rb_ipod_load_songs),
2708         (hal_udi_is_ipod), (impl_move_to_trash), (completed_cb),
2709         (impl_paste), (impl_receive_drag):
2710         * sources/rb-iradio-source.c: (rb_iradio_source_finalize),
2711         (rb_iradio_source_constructor), (impl_get_status), (impl_delete),
2712         (impl_song_properties):
2713         * sources/rb-library-source.c: (rb_library_source_constructor),
2714         (rb_library_source_new), (impl_paste),
2715         (rb_library_source_add_child_source):
2716         * sources/rb-missing-files-source.c: (impl_delete),
2717         (impl_get_status):
2718         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize),
2719         (rb_play_queue_source_class_init),
2720         (rb_play_queue_source_constructor):
2721         * sources/rb-playlist-source.c: (rb_playlist_source_init),
2722         (rb_playlist_source_set_db), (rb_playlist_source_constructor),
2723         (rb_playlist_source_dispose), (rb_playlist_source_save_playlist),
2724         (rb_playlist_source_new_from_xml),
2725         (rb_playlist_source_save_to_xml):
2726         * sources/rb-podcast-source.c: (rb_podcast_source_init),
2727         (rb_podcast_source_dispose), (rb_podcast_source_finalize),
2728         (search_action_changed), (rb_podcast_source_constructor),
2729         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2730         (construct_query_from_selection),
2731         (rb_podcast_source_cmd_download_post),
2732         (rb_podcast_source_cmd_cancel_download),
2733         (rb_podcast_source_cmd_delete_feed),
2734         (rb_podcast_source_start_download_cb),
2735         (rb_podcast_source_finish_download_cb),
2736         (rb_podcast_source_feed_updates_avaliable_cb),
2737         (rb_podcast_source_get_shell), (impl_can_add_to_queue),
2738         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2739         (impl_get_status):
2740         * sources/rb-removable-media-source.c: (impl_delete_thyself):
2741         * sources/rb-source.c: (rb_source_get_property),
2742         (default_add_to_queue), (default_move_to_trash),
2743         (_rb_source_show_popup), (rb_source_gather_selected_properties),
2744         (_rb_source_register_action_group):
2745         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2746         (rb_sourcelist_model_is_row_visible),
2747         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
2748         (rb_sourcelist_model_row_draggable),
2749         (rb_sourcelist_model_drag_data_get):
2750         * sources/rb-sourcelist.c: (rb_sourcelist_finalize),
2751         (icon_notify_cb), (rb_sourcelist_append), (set_source_playing),
2752         (rb_sourcelist_remove), (button_press_cb), (name_notify_cb),
2753         (visibility_notify_cb):
2754         * sources/rb-static-playlist-source.c:
2755         (rb_static_playlist_source_class_init),
2756         (rb_static_playlist_source_init),
2757         (rb_static_playlist_source_finalize),
2758         (rb_static_playlist_source_constructor), (impl_delete),
2759         (rb_static_playlist_source_browser_changed_cb),
2760         (rb_static_playlist_source_add_location_internal),
2761         (search_action_changed):
2762         * sources/rb-static-playlist-source.h:
2763         * widgets/rb-druid.c:
2764         * widgets/rb-entry-view.c:
2765         (rb_entry_view_set_shell_player_internal),
2766         (rb_entry_view_set_model_internal), (rb_entry_view_set_property),
2767         (rb_entry_view_get_property), (rb_entry_view_new),
2768         (rb_entry_view_button_press_cb):
2769         * widgets/rb-library-browser.c: (rb_library_browser_finalize),
2770         (rb_library_browser_set_property),
2771         (rb_library_browser_get_property):
2772         * widgets/rb-query-creator.c: (rb_query_creator_new_from_query),
2773         (get_entry_for_property), (get_property_index_from_proptype):
2774         * widgets/rb-song-info.c: (rb_song_info_constructor),
2775         (rb_song_info_finalize), (rb_song_info_set_source_internal),
2776         (rb_song_info_set_property), (rb_song_info_get_property):
2778         More leak and reference counting fixes.  From bug #347446.
2780 2006-07-17  James Livingston  <doclivingston@gmail.com>
2782         * sources/rb-auto-playlist-source.c:
2783         (rb_auto_playlist_source_do_query): use rbythmdb_query_model_chain
2784         rather than setting the base model, as that lets us not import all the
2785         entries from the base model. This fixes some issues whether the search
2786         box wasn't filting automatic playlists.
2788 2006-07-17  James Livingston  <doclivingston@gmail.com>
2790         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix a syntax
2791         error, which caused blacklist creation to fail.
2793 2006-07-17  James Livingston  <doclivingston@gmail.com>
2795         * shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when
2796         running with -n, because we don't start it then. Fixes a crash on
2797         exit.
2799 2006-07-17  James Livingston  <doclivingston@gmail.com>
2801         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2803         * data/glade/playlist-save.glade: Make the "playlist save" dialog use
2804         Save not Open for the button. Fixes #345816
2806 2006-07-17  James Livingston  <doclivingston@gmail.com>
2808         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2810         * sources/rb-library-source.c: (impl_get_config_widget): Fix the build
2811         when track transfer is disabled. Fixes #347705
2813 2006-07-17  James Livingston  <doclivingston@gmail.com>
2815         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2817         * sources/rb-library-source.c: (impl_get_config_widget): fix build
2818         with track transfer disabled. Fixes #347705
2820 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2822         * rhythmdb/rhythmdb-query-model.c:
2823         (rhythmdb_query_model_set_property):
2824         * shell/main.c: (main):
2825         * shell/rb-shell-clipboard.c: (unset_source_internal),
2826         (rb_shell_clipboard_finalize),
2827         (rb_shell_clipboard_set_source_internal),
2828         (rb_shell_clipboard_set_property), (rebuild_playlist_menu):
2829         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2830         (rb_shell_player_set_db_internal),
2831         (rb_shell_player_set_queue_source_internal),
2832         (rb_shell_player_finalize), (rb_shell_player_set_property):
2833         * shell/rb-shell.c: (rb_shell_finalize), (construct_sources):
2834         * sources/rb-auto-playlist-source.c:
2835         (rb_auto_playlist_source_constructor),
2836         (rb_auto_playlist_source_new_from_xml):
2837         * sources/rb-daap-source.c: (create_pixbufs):
2838         * sources/rb-ipod-source.c:
2839         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
2840         * sources/rb-library-source.c:
2841         (rb_library_source_add_child_source):
2842         * sources/rb-play-queue-source.c:
2843         (rb_play_queue_sync_playing_state),
2844         (rb_play_queue_source_track_info_cell_data_func):
2845         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
2846         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
2847         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
2848         (impl_can_add_to_queue), (impl_add_to_queue):
2849         * sources/rb-source.c: (rb_source_set_property):
2850         * sources/rb-sourcelist.c: (rb_sourcelist_append):
2851         * sources/rb-static-playlist-source.c:
2852         (rb_static_playlist_source_constructor),
2853         (rb_static_playlist_source_load_from_xml):
2854         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
2855         * widgets/rb-entry-view.c: (rb_entry_view_init),
2856         (rb_entry_view_finalize), (rb_entry_view_append_column),
2857         (rb_entry_view_constructor):
2858         * widgets/rb-song-info.c: (rb_song_info_set_property):
2859         Fix leaks.  From bug #347446.
2861 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2863         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize),
2864         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
2865         (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry),
2866         (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb),
2867         (add_decoding_pipeline), (profile_bin_find_encoder),
2868         (get_profile_from_mime_type), (extract_track), (transcode_track),
2869         (rb_encoder_gst_encode):
2870         * backends/gstreamer/rb-encoder-gst.h:
2871         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init),
2872         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
2873         (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb),
2874         (rb_player_gst_construct):
2875         * backends/gstreamer/rb-player-gst.h:
2876         * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel):
2877         * backends/rb-encoder.h:
2878         * backends/rb-player.c: (_rb_player_emit_tick):
2879         * backends/rb-player.h:
2880         * daapsharing/rb-daap-connection.c: (build_message),
2881         (actual_http_response_handler), (http_response_handler),
2882         (http_get), (entry_set_string_prop), (emit_progress_idle),
2883         (handle_server_info), (handle_database_info),
2884         (handle_song_listing), (handle_playlists),
2885         (handle_playlist_entries), (rb_daap_connection_new),
2886         (connected_cb), (rb_daap_connection_do_something),
2887         (rb_daap_connection_get_headers), (rb_daap_connection_dispose),
2888         (rb_daap_connection_get_property):
2889         * daapsharing/rb-daap-connection.h:
2890         * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run),
2891         (rb_daap_collision_dialog_new_run):
2892         * daapsharing/rb-daap-dialog.h:
2893         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
2894         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
2895         (DigestToString), (rb_daap_hash_generate):
2896         * daapsharing/rb-daap-hash.h:
2897         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
2898         (resolve_cb), (browse_cb):
2899         * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb),
2900         (resolve_cb), (rb_daap_mdns_browser_resolve),
2901         (rb_daap_mdns_browser_start), (resolver_free):
2902         * daapsharing/rb-daap-mdns-browser.h:
2903         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb):
2904         * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb),
2905         (publish_cb):
2906         * daapsharing/rb-daap-mdns-publisher.h:
2907         * daapsharing/rb-daap-share.c: (name_collision_cb),
2908         (rb_daap_share_process_playlist), (rb_daap_share_dispose),
2909         (message_set_from_rb_daap_structure), (content_codes_cb),
2910         (session_id_validate), (logout_cb), (update_cb),
2911         (add_entry_to_mlcl), (add_playlist_to_mlcl),
2912         (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb),
2913         (rb_daap_share_server_start), (rb_daap_share_server_stop),
2914         (rb_daap_share_publish_start):
2915         * daapsharing/rb-daap-share.h:
2916         * daapsharing/rb-daap-sharing.c: (share_name_changed_cb),
2917         (share_password_changed_cb), (rb_daap_sharing_shutdown):
2918         * daapsharing/rb-daap-sharing.h:
2919         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init),
2920         (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps),
2921         (rb_daap_src_open):
2922         * daapsharing/rb-daap-structure.c: (rb_daap_structure_add),
2923         (rb_daap_structure_node_serialize), (rb_daap_structure_serialize),
2924         (rb_daap_structure_parse_container_buffer),
2925         (rb_daap_structure_parse), (gnode_find_node),
2926         (rb_daap_structure_find_item), (rb_daap_structure_find_node),
2927         (print_rb_daap_item):
2928         * daapsharing/rb-daap-structure.h:
2929         * iradio/rb-new-station-dialog.c:
2930         (rb_new_station_dialog_class_init), (rb_new_station_dialog_init),
2931         (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb),
2932         (rb_new_station_dialog_text_changed):
2933         * iradio/rb-station-properties-dialog.c:
2934         (rb_station_properties_dialog_init),
2935         (rb_station_properties_dialog_new),
2936         (rb_station_properties_dialog_response_cb),
2937         (rb_station_properties_dialog_get_current_entry),
2938         (rb_station_properties_dialog_rated_cb),
2939         (rb_station_properties_dialog_update_rating),
2940         (rb_station_properties_dialog_update_playback_error),
2941         (rb_station_properties_dialog_sync_entries):
2942         * metadata/rb-metadata-common.c: (rb_metadata_error_quark):
2943         * metadata/rb-metadata-dbus-client.c: (ping_metadata_service),
2944         (start_metadata_service), (rb_metadata_load), (rb_metadata_set),
2945         (rb_metadata_can_save), (rb_metadata_save):
2946         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load),
2947         (rb_metadata_dbus_can_save), (rb_metadata_dbus_save),
2948         (_handle_message), (_new_connection), (main):
2949         * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message),
2950         (rb_metadata_dbus_read_from_message):
2951         * metadata/rb-metadata-dbus.h:
2952         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb),
2953         (rb_add_id3_tagger), (rb_metadata_init),
2954         (rb_metadata_gst_tag_to_field), (make_undecodable_error),
2955         (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb),
2956         (rb_metadata_gst_new_decoded_pad_cb),
2957         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
2958         * metadata/sj-error.c: (sj_error_quark):
2959         * metadata/sj-error.h:
2960         * metadata/sj-metadata-musicbrainz.c:
2961         (sj_metadata_musicbrainz_instance_init),
2962         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
2963         (get_rdf), (lookup_cd):
2964         * metadata/sj-metadata.c: (sj_metadata_get_type):
2965         * metadata/sj-structures.c:
2966         * metadata/sj-structures.h:
2967         * metadata/test-metadata.c: (load_metadata_cb), (main):
2968         * podcast/rb-feed-podcast-properties-dialog.c:
2969         (rb_feed_podcast_properties_dialog_init),
2970         (rb_feed_podcast_properties_dialog_update_title):
2971         * podcast/rb-feed-podcast-properties-dialog.h:
2972         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
2973         (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb),
2974         (rb_new_podcast_dialog_text_changed):
2975         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
2976         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
2977         (rb_podcast_manager_set_property),
2978         (rb_podcast_manager_get_property), (rb_podcast_manager_new),
2979         (rb_podcast_manager_download_entry),
2980         (rb_podcast_manager_update_feeds),
2981         (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file),
2982         (rb_podcast_manager_copy_post),
2983         (rb_podcast_manager_thread_parse_feed),
2984         (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata),
2985         (rb_podcast_manager_db_entry_added_cb), (write_job_data),
2986         (download_info_free), (download_info_new), (start_job),
2987         (rb_podcast_manager_cancel_all), (end_job), (cancel_job),
2988         (download_progress_cb), (download_progress_update_cb),
2989         (rb_podcast_manager_remove_feed),
2990         (rb_podcast_manager_db_entry_deleted_cb),
2991         (rb_podcast_manager_cancel_download),
2992         (rb_podcast_manager_update_synctime),
2993         (rb_podcast_manager_set_remove_files),
2994         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
2995         (rb_podcast_manager_abort_subscribe),
2996         (rb_podcast_manager_get_podcast_dir):
2997         * podcast/rb-podcast-manager.h:
2998         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
2999         (rb_validate_channel_propert), (rb_validate_item_propert),
3000         (rb_podcast_parser_start_element), (rb_podcast_parser_end_element),
3001         (rb_podcast_parser_characters), (rb_podcast_parse_load_feed),
3002         (rb_podcast_parse_date), (rb_podcast_parse_time),
3003         (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free):
3004         * podcast/rb-podcast-parse.h:
3005         * podcast/rb-podcast-properties-dialog.c:
3006         (rb_podcast_properties_dialog_init),
3007         (rb_podcast_properties_dialog_get_current_entry),
3008         (rb_podcast_properties_dialog_update_title),
3009         (rb_podcast_properties_dialog_update_duration),
3010         (rb_podcast_properties_dialog_update_date):
3011         * podcast/rb-podcast-properties-dialog.h:
3012         * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend),
3013         (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate),
3014         (g_sequence_remove_range), (g_sequence_get_ptr_at_pos),
3015         (g_sequence_ptr_move), (g_sequence_ptr_sort_changed),
3016         (g_sequence_search), (g_sequence_set_aggregate_data),
3017         (g_sequence_node_update_fields), (g_sequence_node_rotate),
3018         (find_min), (g_sequence_node_find_by_pos),
3019         (g_sequence_node_find_closest), (g_sequence_node_free),
3020         (g_sequence_node_split), (g_sequence_node_insert_before),
3021         (g_sequence_node_get_length), (g_sequence_node_remove),
3022         (g_sequence_node_calc_height), (g_sequence_node_insert_sorted),
3023         (g_sequence_calc_tree_height):
3024         * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown),
3025         (rb_refstring_get):
3026         * rhythmdb/rb-refstring.h:
3027         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
3028         (rhythmdb_gda_init), (dump_model), (execute_query),
3029         (execute_nonquery), (ensure_table_exists), (collect_value_for_sql),
3030         (collect_value_from_sql), (_initialize), (rhythmdb_gda_new),
3031         (rhythmdb_gda_load), (rhythmdb_gda_entry_new),
3032         (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get),
3033         (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location),
3034         (translate_query), (do_query), (rhythmdb_gda_do_full_query):
3035         * rhythmdb/rhythmdb-gda.h:
3036         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
3037         (rhythmdb_finalize_monitoring), (monitor_entry_file),
3038         (monitor_library_directory), (rhythmdb_check_changed_file),
3039         (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb),
3040         (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted),
3041         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb):
3042         * rhythmdb/rhythmdb-private.h:
3043         * rhythmdb/rhythmdb-property-model.c:
3044         (rhythmdb_property_model_set_property),
3045         (rhythmdb_property_model_row_inserted_cb),
3046         (rhythmdb_property_model_prop_changed_cb),
3047         (rhythmdb_property_model_compare),
3048         (rhythmdb_property_model_get_value),
3049         (rhythmdb_property_model_iter_nth_child),
3050         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
3051         (rhythmdb_property_model_drag_data_get),
3052         (rhythmdb_property_model_enable_drag),
3053         (rhythmdb_property_model_column_get_type):
3054         * rhythmdb/rhythmdb-property-model.h:
3055         * rhythmdb/rhythmdb-query-model.c:
3056         (rhythmdb_query_model_class_init),
3057         (rhythmdb_query_model_set_property),
3058         (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain),
3059         (rhythmdb_query_model_has_pending_changes),
3060         (rhythmdb_query_model_entry_changed_cb),
3061         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
3062         (rhythmdb_query_model_add_entry),
3063         (rhythmdb_query_model_remove_from_main_list),
3064         (rhythmdb_query_model_remove_entry),
3065         (rhythmdb_query_model_drag_data_received),
3066         (rhythmdb_query_model_row_drop_possible),
3067         (rhythmdb_query_model_compute_status_normal),
3068         (rhythmdb_query_model_set_sort_order),
3069         (rhythmdb_query_model_get_entry_index),
3070         (rhythmdb_query_model_base_row_inserted),
3071         (rhythmdb_query_model_base_row_deleted),
3072         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
3073         (rhythmdb_query_model_date_sort_func),
3074         (rhythmdb_query_model_within_limit):
3075         * rhythmdb/rhythmdb-query-model.h:
3076         * rhythmdb/rhythmdb-query-results.c:
3077         (rhythmdb_query_results_query_complete):
3078         * rhythmdb/rhythmdb-query-results.h:
3079         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy),
3080         (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist),
3081         (rhythmdb_query_free), (rhythmdb_read_encoded_property),
3082         (rhythmdb_query_serialize), (rhythmdb_query_deserialize),
3083         (rhythmdb_query_preprocess), (rhythmdb_query_get_type):
3084         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize),
3085         (rhythmdb_tree_parser_start_element),
3086         (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load),
3087         (save_entry), (save_entry_type), (save_unknown_entry_type),
3088         (rhythmdb_tree_save), (rhythmdb_tree_entry_new),
3089         (rhythmdb_tree_property_new), (get_genres_hash_for_type),
3090         (get_or_create_genre), (remove_entry_from_album),
3091         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
3092         (remove_one_song), (rhythmdb_tree_entry_delete_by_type),
3093         (search_match_properties), (evaluate_conjunctive_subquery),
3094         (clone_remove_ptr_array_index), (conjunctive_query_albums),
3095         (conjunctive_query_artists), (conjunctive_query_genre),
3096         (conjunctive_query), (split_query_by_disjunctions),
3097         (do_query_recurse), (rhythmdb_tree_entry_foreach),
3098         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
3099         (hash_tree_artists_foreach), (hash_tree_genres_foreach),
3100         (rhythmdb_hash_tree_foreach),
3101         (rhythmdb_tree_entry_type_registered):
3102         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
3103         (metadata_field_from_prop), (extract_gtype_from_enum_entry),
3104         (extract_nice_name_from_enum_entry), (rhythmdb_init),
3105         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
3106         (rhythmdb_shutdown), (rhythmdb_finalize),
3107         (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb),
3108         (rhythmdb_entry_insert), (rhythmdb_entry_new),
3109         (rhythmdb_entry_example_new),
3110         (set_metadata_string_default_unknown), (is_ghost_entry),
3111         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
3112         (rhythmdb_process_metadata_load),
3113         (rhythmdb_process_queued_entry_set_event),
3114         (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb),
3115         (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata),
3116         (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main),
3117         (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save),
3118         (rhythmdb_entry_set), (rhythmdb_entry_set_internal),
3119         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
3120         (rhythmdb_entry_delete_by_type),
3121         (rhythmdb_propid_from_nice_elt_name),
3122         (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query),
3123         (rhythmdb_compute_status_normal),
3124         (rhythmdb_entry_register_type_alias),
3125         (rhythmdb_entry_type_foreach), (song_can_sync_metadata),
3126         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
3127         (rhythmdb_entry_import_error_get_type),
3128         (rhythmdb_entry_podcast_post_get_type),
3129         (rhythmdb_entry_podcast_feed_get_type),
3130         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
3131         (rhythmdb_sync_library_location), (rhythmdb_entry_get_string),
3132         (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type):
3133         * rhythmdb/rhythmdb.h:
3134         * shell/main.c: (main), (load_uri_args), (handle_dbus_message):
3135         * shell/rb-history.c: (rb_history_new), (rb_history_set_playing),
3136         (rb_history_limit_size):
3137         * shell/rb-history.h:
3138         * shell/rb-play-order-linear-loop.c:
3139         (rb_linear_play_order_loop_get_next):
3140         * shell/rb-play-order-linear-loop.h:
3141         * shell/rb-play-order-linear.c:
3142         * shell/rb-play-order-linear.h:
3143         * shell/rb-play-order-queue.c:
3144         (rb_queue_play_order_playing_entry_removed):
3145         * shell/rb-play-order-queue.h:
3146         * shell/rb-play-order-random-by-age-and-rating.c:
3147         * shell/rb-play-order-random-by-age-and-rating.h:
3148         * shell/rb-play-order-random-by-age.c:
3149         (rb_random_by_age_get_entry_weight):
3150         * shell/rb-play-order-random-by-age.h:
3151         * shell/rb-play-order-random-by-rating.c:
3152         * shell/rb-play-order-random-by-rating.h:
3153         * shell/rb-play-order-random-equal-weights.c:
3154         * shell/rb-play-order-random-equal-weights.h:
3155         * shell/rb-play-order-random.c: (rb_random_filter_history),
3156         (rb_random_get_total_weight), (rb_random_play_order_get_next),
3157         (rb_random_db_changed), (rb_random_playing_entry_changed),
3158         (rb_random_db_entry_deleted):
3159         * shell/rb-play-order-shuffle.c: (remove_from_history),
3160         (add_randomly_to_history), (get_query_model_contents),
3161         (rb_shuffle_playing_entry_changed):
3162         * shell/rb-play-order-shuffle.h:
3163         * shell/rb-play-order.c: (rb_play_order_class_init),
3164         (rb_play_order_set_property),
3165         (rb_play_order_playing_source_changed),
3166         (rb_play_order_query_model_changed_cb),
3167         (rb_play_order_query_model_changed),
3168         (rb_play_order_entry_added_cb), (default_playing_entry_removed):
3169         * shell/rb-play-order.h:
3170         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
3171         (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager),
3172         (rb_playlist_manager_set_property),
3173         (rb_playlist_manager_parse_file),
3174         (rb_playlist_manager_load_playlists),
3175         (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data),
3176         (rb_playlist_manager_save_playlists),
3177         (rb_playlist_manager_new_playlist),
3178         (rb_playlist_manager_new_playlist_from_selection_data),
3179         (rb_playlist_manager_cmd_new_automatic_playlist),
3180         (rb_playlist_manager_cmd_edit_automatic_playlist),
3181         (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist),
3182         (save_playlist_response_cb), (export_set_extension_cb),
3183         (filter_get_export_filter_label), (setup_format_menu),
3184         (rb_playlist_manager_cmd_save_playlist),
3185         (rb_playlist_manager_get_playlists),
3186         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
3187         (rb_playlist_manager_delete_playlist),
3188         (rb_playlist_manager_export_playlist):
3189         * shell/rb-playlist-manager.h:
3190         * shell/rb-removable-media-manager.c:
3191         (rb_removable_media_manager_class_init),
3192         (rb_removable_media_manager_dispose),
3193         (rb_removable_media_manager_finalize),
3194         (rb_removable_media_manager_set_property),
3195         (split_drive_from_cdda_uri),
3196         (rb_removable_media_manager_playing_uri_changed_cb),
3197         (rb_removable_media_manager_load_media),
3198         (rb_removable_media_manager_volume_mounted_cb),
3199         (remove_volume_by_source),
3200         (rb_removable_media_manager_source_deleted_cb),
3201         (rb_removable_media_manager_volume_unmounted_cb),
3202         (rb_removable_media_manager_mount_volume),
3203         (rb_removable_media_manager_set_uimanager),
3204         (rb_removable_media_manager_scan), (do_transfer),
3205         (rb_removable_media_manager_cmd_copy_tracks):
3206         * shell/rb-removable-media-manager.h:
3207         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
3208         (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor),
3209         (rb_shell_clipboard_sync),
3210         (rb_shell_clipboard_idle_poll_deletions),
3211         (rb_shell_clipboard_cmd_add_to_playlist_new),
3212         (rb_shell_clipboard_playlist_add_cb),
3213         (rb_shell_clipboard_playlist_deleted_cb),
3214         (rb_shell_clipboard_playlist_renamed_cb),
3215         (rb_shell_clipboard_playlist_visible_cb),
3216         (rb_shell_clipboard_playlist_added_cb):
3217         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3218         (rb_shell_player_constructor), (volume_pre_unmount_cb),
3219         (rb_shell_player_init), (rb_shell_player_set_property),
3220         (rb_shell_player_new), (rb_shell_player_open_playlist_url),
3221         (rb_shell_player_open_location),
3222         (rb_shell_player_set_playing_entry),
3223         (rb_shell_player_play_order_update_cb),
3224         (rb_shell_player_jump_to_current), (rb_shell_player_do_previous),
3225         (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek),
3226         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
3227         (rb_shell_player_cmd_play), (rb_shell_player_playpause),
3228         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
3229         (gconf_song_position_slider_visibility_changed),
3230         (rb_shell_player_entry_activated_cb),
3231         (rb_shell_player_property_row_activated_cb),
3232         (rb_shell_player_entry_changed_cb),
3233         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
3234         (actually_set_playing_source),
3235         (rb_shell_player_set_playing_source_internal),
3236         (rb_shell_player_get_playing_song_duration), (eos_cb),
3237         (rb_shell_player_error), (error_cb), (info_available_cb),
3238         (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb),
3239         (rb_shell_player_error_get_type):
3240         * shell/rb-shell-player.h:
3241         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
3242         (rb_shell_preferences_append_page),
3243         (share_check_button_toggled_cb),
3244         (password_check_button_toggled_cb), (add_daap_preferences),
3245         (rb_shell_preferences_column_check_changed_cb),
3246         (rb_shell_preferences_sync_column_button),
3247         (rb_shell_preferences_sync),
3248         (rb_shell_preferences_browser_views_activated_cb):
3249         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init),
3250         (rb_shell_set_property), (rb_shell_get_property),
3251         (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize),
3252         (construct_widgets), (construct_load_ui), (rb_shell_constructor),
3253         (rb_shell_get_visibility), (rb_shell_set_visibility),
3254         (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb),
3255         (rb_shell_register_entry_type_for_source),
3256         (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb),
3257         (rb_shell_playing_entry_changed_cb), (rb_shell_select_source),
3258         (rb_shell_player_stream_song_changed_cb),
3259         (rb_shell_set_window_title),
3260         (rb_shell_view_smalldisplay_changed_cb),
3261         (rb_shell_view_queue_as_sidebar_changed_cb),
3262         (rb_shell_cmd_plugins), (add_to_library_response_cb),
3263         (rb_shell_cmd_add_folder_to_library),
3264         (rb_shell_cmd_add_file_to_library),
3265         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
3266         (sidepane_visibility_changed_cb), (toolbar_state_changed_cb),
3267         (rb_shell_jump_to_entry_with_source), (tray_embedded_cb),
3268         (session_die_cb), (save_yourself_cb), (rb_shell_session_init),
3269         (handle_playlist_entry_cb), (rb_shell_load_uri),
3270         (rb_shell_add_to_queue), (rb_shell_present),
3271         (rb_shell_get_song_properties), (rb_shell_set_song_property),
3272         (rb_shell_volume_widget_changed_cb),
3273         (rb_shell_player_volume_changed_cb),
3274         (rb_shell_ui_location_get_type):
3275         * shell/rb-shell.h:
3276         * shell/rb-source-header.c: (ui_manager_add_widget_cb),
3277         (rb_source_header_init), (rb_source_header_set_source_internal),
3278         (rb_source_state_sync), (rb_source_header_clear_search),
3279         (rb_source_header_view_browser_changed_cb):
3280         * shell/rb-source-header.h:
3281         * shell/rb-statusbar.c: (rb_statusbar_construct),
3282         (rb_statusbar_init), (rb_statusbar_finalize),
3283         (rb_statusbar_set_property), (rb_statusbar_set_progress),
3284         (rb_statusbar_source_status_changed_cb):
3285         * shell/rb-statusbar.h:
3286         * shell/rb-tray-icon.c: (rb_tray_icon_init),
3287         (rb_tray_icon_constructor), (rb_tray_icon_finalize),
3288         (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb),
3289         (rb_tray_icon_get_geom), (rb_tray_icon_notify):
3290         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor),
3291         (rb_audiocd_create_track_entry):
3292         * sources/rb-auto-playlist-source.c:
3293         (rb_auto_playlist_source_class_init),
3294         (rb_auto_playlist_source_constructor),
3295         (rb_auto_playlist_source_new_from_xml), (impl_reset_filters),
3296         (impl_search), (impl_receive_drag), (impl_save_contents_to_xml),
3297         (rb_auto_playlist_source_query_complete_cb),
3298         (rb_auto_playlist_source_do_query),
3299         (rb_auto_playlist_source_set_query),
3300         (rb_auto_playlist_source_browser_changed_cb),
3301         (search_action_to_prop):
3302         * sources/rb-auto-playlist-source.h:
3303         * sources/rb-browser-source.c: (rb_browser_source_init),
3304         (rb_browser_source_dispose), (search_action_to_prop),
3305         (rb_browser_source_constructor),
3306         (rb_browser_source_cmd_choose_genre),
3307         (rb_browser_source_cmd_choose_artist),
3308         (rb_browser_source_cmd_choose_album), (impl_search),
3309         (rb_browser_source_browser_changed_cb),
3310         (rb_browser_source_do_query):
3311         * sources/rb-browser-source.h:
3312         * sources/rb-daap-source.c: (rb_daap_source_class_init),
3313         (rb_daap_source_init), (rb_daap_source_dispose),
3314         (rb_daap_source_set_property), (start_browsing),
3315         (rb_daap_sources_init), (rb_daap_sources_shutdown),
3316         (rb_daap_source_connection_cb), (rb_daap_source_activate),
3317         (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri),
3318         (rb_daap_source_get_headers), (rb_daap_source_get_status):
3319         * sources/rb-daap-source.h:
3320         * sources/rb-import-errors-source.h:
3321         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
3322         (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist),
3323         (add_ipod_song_to_db), (load_ipod_db_idle_cb),
3324         (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path),
3325         (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions),
3326         (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod),
3327         (ipod_mkdir_with_parents), (build_ipod_dir_name),
3328         (generate_ipod_filename), (ipod_path_from_unix_path),
3329         (impl_delete_thyself):
3330         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
3331         (rb_iradio_source_init), (rb_iradio_source_constructor),
3332         (rb_iradio_source_new), (guess_uri_scheme),
3333         (rb_iradio_source_add_station),
3334         (rb_iradio_source_async_update_play_statistics),
3335         (genre_selection_reset_cb), (rb_iradio_source_do_query),
3336         (stations_view_drag_data_received_cb),
3337         (rb_iradio_source_cmd_new_station):
3338         * sources/rb-iradio-source.h:
3339         * sources/rb-library-source.c: (rb_library_source_dispose),
3340         (rb_library_source_constructor),
3341         (rb_library_source_location_button_clicked_cb),
3342         (impl_get_config_widget), (rb_library_source_library_location_cb),
3343         (sanitize_path), (filepath_parse_pattern),
3344         (layout_example_label_update),
3345         (rb_library_source_layout_filename_changed), (build_filename),
3346         (impl_can_paste), (impl_paste),
3347         (rb_library_source_add_child_source),
3348         (rb_library_source_sync_child_sources):
3349         * sources/rb-library-source.h:
3350         * sources/rb-missing-files-source.h:
3351         * sources/rb-play-queue-source.c:
3352         (rb_play_queue_source_constructor), (impl_show_entry_view_popup):
3353         * sources/rb-play-queue-source.h:
3354         * sources/rb-playlist-source-recorder.c:
3355         (rb_playlist_source_recorder_class_init), (update_speed_combobox),
3356         (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc),
3357         (rb_playlist_source_recorder_init),
3358         (rb_playlist_source_recorder_new):
3359         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
3360         (rb_playlist_source_save_playlist),
3361         (rb_playlist_source_entry_added_cb),
3362         (rb_playlist_source_set_query_model),
3363         (rb_playlist_source_add_to_map):
3364         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3365         (rb_podcast_source_init), (rb_podcast_source_dispose),
3366         (rb_podcast_source_finalize), (search_action_to_prop),
3367         (rb_podcast_source_constructor), (rb_podcast_source_set_property),
3368         (rb_podcast_source_get_property), (rb_podcast_source_new),
3369         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
3370         (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb),
3371         (rb_podcast_source_show_browser), (construct_query_from_selection),
3372         (rb_podcast_source_do_query), (impl_get_config_widget),
3373         (rb_podcast_source_btn_file_change_cb),
3374         (posts_view_drag_data_received_cb),
3375         (rb_podcast_source_cmd_download_post),
3376         (rb_podcast_source_cmd_cancel_download),
3377         (rb_podcast_source_cmd_delete_feed),
3378         (rb_podcast_source_cmd_properties_feed),
3379         (rb_podcast_source_cmd_update_feed),
3380         (rb_podcast_source_post_status_cell_data_func),
3381         (rb_podcast_source_post_feed_cell_data_func),
3382         (rb_podcast_source_post_date_cell_data_func),
3383         (rb_podcast_source_load_finish_cb), (impl_receive_drag),
3384         (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue),
3385         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
3386         (impl_get_status):
3387         * sources/rb-podcast-source.h:
3388         * sources/rb-removable-media-source.c:
3389         (rb_removable_media_source_constructor):
3390         * sources/rb-removable-media-source.h:
3391         * sources/rb-source.h:
3392         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
3393         (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible),
3394         (rb_sourcelist_model_row_is_separator),
3395         (rb_sourcelist_model_drag_data_received),
3396         (rb_sourcelist_model_row_drop_possible), (path_is_droppable),
3397         (rb_sourcelist_model_row_drop_position),
3398         (rb_sourcelist_model_get_drag_target),
3399         (rb_sourcelist_model_row_draggable),
3400         (rb_sourcelist_model_drag_data_get),
3401         (rb_sourcelist_model_row_inserted_cb),
3402         (rb_sourcelist_model_get_group_path):
3403         * sources/rb-sourcelist.c: (rb_sourcelist_append),
3404         (match_source_to_iter), (rb_sourcelist_source_to_iter),
3405         (rb_sourcelist_visible_source_to_iter),
3406         (rb_sourcelist_edit_source_name),
3407         (rb_sourcelist_selection_changed_cb), (button_press_cb),
3408         (key_release_cb), (name_notify_cb), (icon_notify_cb),
3409         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
3410         * sources/rb-static-playlist-source.c:
3411         (rb_static_playlist_source_class_init),
3412         (rb_static_playlist_source_constructor),
3413         (rb_static_playlist_source_load_from_xml), (impl_reset_filters),
3414         (impl_search), (rb_static_playlist_source_do_query),
3415         (rb_static_playlist_source_browser_changed_cb),
3416         (impl_receive_drag), (impl_save_contents_to_xml),
3417         (rb_static_playlist_source_add_location_swapped),
3418         (search_action_to_prop):
3419         * sources/rb-static-playlist-source.h:
3420         * widgets/bacon-volume.c: (bacon_volume_button_get_type):
3421         * widgets/eggtrayicon.c: (egg_tray_icon_init),
3422         (egg_tray_icon_get_orientation_property),
3423         (egg_tray_icon_send_manager_message),
3424         (egg_tray_icon_update_manager_window),
3425         (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize),
3426         (egg_tray_icon_send_message), (egg_tray_icon_notify):
3427         * widgets/eggtrayicon.h:
3428         * widgets/rb-cell-renderer-pixbuf.c:
3429         (rb_cell_renderer_pixbuf_get_property),
3430         (rb_cell_renderer_pixbuf_set_property),
3431         (rb_cell_renderer_pixbuf_get_size),
3432         (rb_cell_renderer_pixbuf_render),
3433         (rb_cell_renderer_pixbuf_activate):
3434         * widgets/rb-cell-renderer-rating.c:
3435         (rb_cell_renderer_rating_class_init),
3436         (rb_cell_renderer_rating_get_property),
3437         (rb_cell_renderer_rating_set_property),
3438         (rb_cell_renderer_rating_get_size),
3439         (rb_cell_renderer_rating_render),
3440         (rb_cell_renderer_rating_activate):
3441         * widgets/rb-dialog.c:
3442         * widgets/rb-dialog.h:
3443         * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new),
3444         (path_dialog_response_cb), (idle_set_sensitive), (do_response),
3445         (rb_druid_page3_finish_cb):
3446         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3447         (rb_entry_view_init), (rb_entry_view_set_property),
3448         (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func),
3449         (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting),
3450         (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type),
3451         (rb_entry_view_set_sorting_order),
3452         (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column),
3453         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
3454         (rb_entry_view_playing_song_changed),
3455         (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb),
3456         (rb_entry_view_scroll_to_entry), (set_column_visibility),
3457         (rb_entry_view_set_fixed_column_width),
3458         (rb_entry_view_get_time_date_column_sample),
3459         (rb_entry_view_state_get_type):
3460         * widgets/rb-entry-view.h:
3461         * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
3462         (rb_header_sync), (slider_moved_timeout), (slider_moved_callback),
3463         (changed_idle_callback), (rb_header_elapsed_changed_cb):
3464         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
3465         (update_browser_property_visibilty),
3466         (rb_library_browser_construct_query), (restore_selection),
3467         (rebuild_child_model), (rb_library_browser_set_selection),
3468         (rb_library_browser_set_model):
3469         * widgets/rb-library-browser.h:
3470         * widgets/rb-property-view.c: (rb_property_view_class_init),
3471         (rb_property_view_set_property), (rb_property_view_reset),
3472         (rb_property_view_get_model), (rb_property_view_constructor),
3473         (rb_property_view_set_selection),
3474         (rb_property_view_selection_changed_cb),
3475         (rb_property_view_button_press_cb),
3476         (rb_property_view_set_search_func):
3477         * widgets/rb-query-creator-private.h:
3478         * widgets/rb-query-creator-properties.c:
3479         (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData),
3480         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
3481         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
3482         (relativeTimeCriteriaCreateWidget),
3483         (relativeTimeCriteriaSetWidgetData):
3484         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
3485         (rb_query_creator_dispose), (rb_query_creator_load_query),
3486         (rb_query_creator_new_from_query), (rb_query_creator_get_query),
3487         (get_property_index_from_proptype), (select_criteria_from_value),
3488         (create_property_option_menu), (create_criteria_option_menu),
3489         (sort_option_menu_changed), (setup_sort_option_menu):
3490         * widgets/rb-query-creator.h:
3491         * widgets/rb-rating-helper.c: (rb_rating_install_rating_property),
3492         (rb_rating_render_stars):
3493         * widgets/rb-rating-helper.h:
3494         * widgets/rb-rating.c: (rb_rating_expose):
3495         * widgets/rb-rating.h:
3496         * widgets/rb-search-entry.c: (rb_search_entry_clear),
3497         (rb_search_entry_timeout_cb):
3498         * widgets/rb-search-entry.h:
3499         * widgets/rb-song-info.c: (rb_song_info_construct_single),
3500         (rb_song_info_constructor), (rb_song_info_new),
3501         (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog),
3502         (rb_song_info_update_location), (rb_song_info_backward_clicked_cb),
3503         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
3504         (rb_song_info_query_model_changed_cb),
3505         (rb_song_info_sync_entries_multiple),
3506         (rb_song_info_sync_entry_single):
3507         Strip all trailing whitespace.  Fixes #344293.
3509 2006-07-13  Ryan P Skadberg  <skadz@stigmata.org>
3511         * doc/reference/Makefile.am: Fix GTK Doc Build
3513 2006-07-13  James Livingston  <doclivingston@gmail.com>
3515         * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri
3517         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above
3518         instead of the LOCATION, and don't try to get the directory listing
3519         for http URI schemes
3521         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for
3522         invalid utf8 in the error message, since apparently it can happen.
3524 2006-07-12  William Jon McCann  <mccann@jhu.edu>
3526         * sources/rb-import-errors-source.c:
3527         (rb_import_errors_source_class_init),
3528         (rb_import_errors_source_init),
3529         (rb_import_errors_source_constructor),
3530         (rb_import_errors_source_dispose), (rb_import_errors_source_new),
3531         (impl_get_status), (rb_import_errors_source_songs_show_popup_cb):
3532         * sources/rb-missing-files-source.c:
3533         (rb_missing_files_source_class_init),
3534         (rb_missing_files_source_init),
3535         (rb_missing_files_source_constructor),
3536         (rb_missing_files_source_dispose), (rb_missing_files_source_new),
3537         (rb_missing_files_source_songs_sort_order_changed_cb),
3538         (impl_get_status):
3539         * sources/rb-source.c: (rb_source_class_init),
3540         (rb_source_finalize), (update_visibility_idle),
3541         (queue_update_visibility), (rb_source_set_hidden_when_empty),
3542         (rb_source_set_property), (rb_source_get_property),
3543         (default_get_status), (rb_source_update_play_statistics),
3544         (default_add_to_queue), (_rb_source_show_popup),
3545         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb),
3546         (rb_source_gather_selected_properties),
3547         (_rb_source_register_action_group):
3548         * sources/rb-source.h:
3549         * sources/rb-sourcelist.c: (visibility_notify_cb):
3550         Don't use a fake model for import-errors and missing-files
3551         sources.  Add a new source property "hidden-when-empty".
3552         Update source visibility in an idle.  Clean up some whitespace.
3553         From bug #346800
3555 2006-07-12  James Livingston  <doclivingston@gmail.com>
3557         * bindings/python/rb.defs:
3558         * bindings/python/rb.override: bind rb_error_dialog
3560         * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off
3561         the current working directory for uninstalled plugins, and add the
3562         class name to the method name.
3564 2006-07-12  James Livingston  <doclivingston@gmail.com>
3566         * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check
3567         the sources EOF type if it's NULL. Fixes #346284.
3569 2006-07-12  James Livingston  <doclivingston@gmail.com>
3571         * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit
3572         I accidently committed. Nothing to see here, move along...
3574 2006-07-11  James Livingston  <doclivingston@gmail.com>
3576         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3577         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of
3578         Unknown.
3580 2006-07-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3582         * doc/reference/rhythmbox.types: Fix doc build (bug #347223)
3584 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3586         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
3587         Don't try to set mtime if we've deleted the entry.
3589 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3591         * bindings/python/rhythmdb.defs:
3592         * rhythmdb/rhythmdb.c:
3593         * rhythmdb/rhythmdb.h:
3594         * rhythmdb/rhythmdb-private.h:
3595         * rhythmdb/rhythmdb-query.c:
3596         Move data structures holding registered entry types inside the
3597         RhythmDB object, and add a vfunc called when new types are registered.
3598         Add a flag to RhythmDBEntryType specifying whether entries of the type
3599         should be saved to the on-disk database.
3601         * sources/rb-audiocd-source.c:
3602         * sources/rb-daap-source.c:
3603         * sources/rb-ipod-source.c:
3604         * plugins/generic-player/rb-generic-player-source.c:
3605         * plugins/generic-player/rb-nokia770-source.c:
3606         * plugins/generic-player/rb-psp-source.c:
3607         Adjust to the above changes.
3609         * rhythmdb/rhythmdb-tree.c:
3610         If the type for an entry hasn't been registered yet, store the entry's
3611         properties as-is, and convert them to a real entry when the type is
3612         registered.  If the type doesn't get registered, save the entry back
3613         to the database unmodified.  From #330226.
3615 2006-07-10  James Livingston  <doclivingston@gmail.com>
3617         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change
3618         os.path.unlink to os.unlink, so removing stuff works.
3620 2006-07-10  James Livingston  <doclivingston@gmail.com>
3622         patch by: Ed Catmur  <ed@catmur.co.uk>
3623               and Peter  <bugzilla-gnome-org@maubp.freeserve.co.uk>
3625         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3626         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3627         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
3628         * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the
3629         internals of the cover database and Amazon lookup engine, and add
3630         support for loading art from the local file system. Fixes #345688.
3632         * plugins/rb/Coroutine.py:
3633         * plugins/rb/Makefile.am:
3634         * plugins/rb/__init__.py: Add the Coroutine class to the common python
3635         plugin classes.
3637 2006-07-10  James Livingston  <doclivingston@gmail.com>
3639         * tests/Makefile.am: don't run the benchmark when doing "make check"
3641         * po/POTFILES.in: more build fixes, from Matti Lindell
3642         <feenixx@hotmail.com>. Fixes #347049.
3645 2006-07-10  James Livingston  <doclivingston@gmail.com>
3647         * plugins/cd-recorder/Makefile.am: build fixes
3649         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't
3650         attempt to change properties if we couldn't create an entry.
3652         * shell/rb-source-header.c: (rb_source_header_init),
3653         (rb_source_header_view_browser_changed_cb),
3654         (rb_source_header_sync_control_state):
3655         * shell/rb-tray-icon.c:
3656         * widgets/Makefile.am:
3657         * widgets/disclosure-widget.c:
3658         * widgets/disclosure-widget.h: remove the remanents of the disclosure
3659         widget, as it hasn't been used for a while.
3661 2006-07-09  William Jon McCann  <mccann@jhu.edu>
3663         * Makefile.am:
3664         * configure.ac:
3665         * data/ui/rhythmbox-ui.xml:
3666         * plugins/Makefile.am:
3667         * plugins/cd-recorder/.cvsignore:
3668         * plugins/cd-recorder/Makefile.am:
3669         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
3670         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
3671         (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init),
3672         (rb_cd_recorder_plugin_finalize), (burn_source_iter_func),
3673         (source_burn), (cmd_burn_source), (playlist_entries_changed),
3674         (playlist_row_inserted_cb), (update_source),
3675         (shell_selected_source_notify_cb), (impl_activate),
3676         (impl_deactivate):
3677         * shell/Makefile.am:
3678         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source),
3679         (rb_playlist_manager_cmd_save_playlist):
3680         * shell/rb-shell.c: (rb_shell_select_source):
3681         * sources/Makefile.am:
3682         * sources/rb-playlist-source-recorder.c:
3683         (rb_playlist_source_recorder_new):
3684         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3685         (rb_playlist_source_add_to_map):
3686         * sources/rb-playlist-source.h:
3687         Move cd burning into a plugin.  Fixes #344300.
3689 2006-07-10  James Livingston  <doclivingston@gmail.com>
3691         * lib/eel-gconf-extensions.c:
3692         * shell/rb-shell.c: remove some ununsed gnomeui includes
3694         * widgets/Makefile.am:
3695         * widgets/rb-song-display-box.c:
3696         * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs,
3697         since it isn't acutally used anywhere. Fixes #346926
3699 2006-07-09  James Livingston  <doclivingston@gmail.com>
3701         * bindings/python/rb.defs:
3702         * bindings/python/rb.override:
3703         * lib/rb-debug.c: (rb_debug_real):
3704         * lib/rb-debug.h:
3705         * plugins/rb/__init__.py: don't print out an extra newline when
3706         diverting python print statements to RB's debug log.
3708 2006-07-09  James Livingston  <doclivingston@gmail.com>
3710         * rhythmdb/rhythmdb-property-model.c:
3711         (rhythmdb_property_model_drag_data_get):
3712         * sources/rb-sourcelist-model.c:
3713         (rb_sourcelist_model_row_draggable),
3714         (rb_sourcelist_model_drag_data_get): check that the path/iter we get
3715         from the row reference is still valid. Fixes #346709.
3717 2006-07-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3719         patch by: Peter  <bugzilla-gnome-org@maubp.freeserve.org.uk>
3721         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple):
3722         If all selected entries have the same rating, use that as the initial
3723         rating for the multiple song info dialog.  Fixes #345970.
3725 2006-07-09  James Livingston  <doclivingston@gmail.com>
3727         * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try
3728         to prevent #343345:
3729                 - don't ever scale to 1x1, just hide the image in that case
3730                 - don't fade when the window is minimised
3731                 - use the last-good allocation width, not the current one - as
3732                   it sometimes get weird values.
3734 2006-07-08  William Jon McCann  <mccann@jhu.edu>
3736         * data/ui/rhythmbox-ui.xml:
3737         * shell/rb-shell.c:
3738         Remove Import audio CD from menu.  Fixes #339732
3740 2006-07-08  James Livingston  <doclivingston@gmail.com>
3742         * metadata/test-metadata.c: (print_metadata_string),
3743         (load_metadata_cb): print out all the metadata we have read, not just
3744         a few.
3746         * sources/rb-playlist-source-recorder.c: (insert_media_request_cb),
3747         (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues.
3749 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3751         * plugins/lyrics/lyrics.py:
3752         Change the lyrics cache location to match Quod Libet's,
3753         and fix the '&' -> 'and' substitution to require spaces.
3755 2006-07-08  James Livingston  <doclivingston@gmail.com>
3757         * bindings/python/rb.defs:
3758         * bindings/python/rb.override: bind rb_debug_real to rb._debug
3760         * configure.ac:
3761         * plugins/Makefile.am:
3762         * plugins/rb-python-module.c: (rb_python_module_init_python):
3763         * plugins/rb/Makefile.am: add a place to put common python classes.
3764         plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the
3765         rb module/
3767         * plugins/lyrics/Makefile.am:
3768         * plugins/lyrics/Loader.py:
3769         * plugins/artdisplay/artdisplay/Makefile.am:
3770         * plugins/artdisplay/artdisplay/Loader.py:
3771         * plugins/rb/Loader.py: move the loader class to rb.Loader
3773         * plugins/rb/__init__.py: redirect stdout from python (e.g.
3774         "print ...") to rb_debug. error output (e.g. exceptions) are still
3775         printed on stderr.
3777         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3778         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3779         * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader
3780         instead of Loader.
3782         Fixes #346895.
3784 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3786         * shell/rb-shell-player.xml:
3787         * shell/rb-shell-player.h:
3788         Correct the details of the playing-song-property-changed signal.
3790 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3792         * lib/rb-marshal.list:
3793         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3794         (rb_shell_player_entry_changed_cb):
3795         * shell/rb-shell-player.h:
3796         * shell/rb-shell-player.xml:
3797         Emit a dbus signal when a property is changed on the playing entry.
3798         Fixes #332461.
3800 2006-07-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3802         * rhythmdb/rhythmdb-private.h:
3803         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
3804         Fix build break with gcc 4.1 by changing RBRefString pointers into
3805         gpointers.
3807 2006-07-07  James Livingston  <doclivingston@gmail.com>
3809         * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
3810         remove an extraneous !, which caused it not to monitor folders in the
3811         library with no tracks in them. Fixes #346759.
3813 2006-07-07  James Livingston  <doclivingston@gmail.com>
3815         * rhythmdb/rhythmdb-private.h:
3816         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
3817         (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
3818         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
3819         (rhythmdb_entry_get_string):
3820         * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
3821         flags for the affected properties. _sync_mirrored will get run
3822         automatically when a dirty property is accessed, which improves
3823         performance a bit (especially during startup) as we don't need to sync
3824         every time they change. From #325215.
3826         * tests/bench-rhythmdb-load.c
3827         * tests/Makefile.am: add a RhythmDB loading benchmark.
3829 2006-07-06  James Livingston  <doclivingston@gmail.com>
3831         * bindings/python/rb.defs:
3832         * bindings/python/rb.override: some more fixes, so that
3833         python classes derived from RBSource work correctly.
3835 2006-07-06  James Livingston  <doclivingston@gmail.com>
3837         * configure.ac: bump pygtk requirements to 2.8, since we're already
3838         using some features of it, and weird things will happen if people are
3839         actually trying to use pygtk 2.6.
3841         * bindings/python/rb.override:
3842         * bindings/python/rhythmdb.defs:
3843         * bindings/python/rhythmdb.override: allow python to set
3844         RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
3846         * sources/rb-browser-source.c: remove some left over member variables
3848 2006-07-06  James Livingston  <doclivingston@gmail.com>
3850         * rhythmdb/rhythmdb.c:
3851         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
3852         (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
3853         rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
3854         former is pointless (as rhythmdb already knows which it should use)
3855         and the latter doesn't seem useful at all, and possibly bad. From
3856         #330226.
3858         * bindings/python/rhythmdb.defs:
3859         * bindings/python/rhythmdb.override:
3860         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
3861         (handle_song_listing):
3862         * podcast/rb-podcast-manager.c:
3863         (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
3864         (rb_podcast_manager_insert_feed):
3865         * sources/rb-audiocd-source.c: (entry_set_string_prop),
3866         (rb_audiocd_create_track_entry):
3867         * sources/rb-ipod-source.c: (entry_set_string_prop),
3868         (add_ipod_song_to_db):
3869         * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
3870         * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
3872 2006-07-05  James Livingston  <doclivingston@gmail.com>
3874         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
3875         (playlist_load_end_cb), (rb_playlist_manager_parse_file),
3876         (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
3877         totem-plparser gives us, or the file name if it doesn't give us
3878         anything. Set the default file name when saving too. Fixes #345261
3880 2006-07-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3882         patch by: Ed Catmur  <ed@catmur.co.uk>
3884         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
3885         Skip all hidden directories, not just trash, and skip unreadable
3886         files.  Fixes #346322.
3888 2006-07-04  James Livingston  <doclivingston@gmail.com>
3890         * plugins/rb-module.h:
3891         * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
3892         (rb_module_new):
3893         * plugins/rb-plugin.h:
3894         * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
3895         (rb_plugin_finalise), (rb_plugin_set_property),
3896         (rb_plugin_get_property), (rb_plugin_activate),
3897         (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
3898         (rb_plugin_find_file):
3899         * plugins/rb-plugins-engine.c: (load_plugin_module):
3900         * plugins/rb-python-module.c: (rb_python_module_new_object),
3901         (rb_python_module_new):
3902         * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
3903         rb_plugin_find_file method for locating plugin-specific data. Fixes
3904         346473.
3906         * bindings/python/rb.defs:
3907         * plugins/Makefile.am:
3908         * plugins/generic-player/rb-generic-player-plugin.c:
3909         (create_source_cb):
3910         * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
3912 2006-07-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3914         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
3915         (rb_metadata_can_save), (rb_metadata_save):
3916         Protect the dbus connection with a mutex.
3918 2006-07-03  James Livingston  <doclivingston@gmail.com>
3920         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
3921         case of the parser/tagger not being able to be created.
3923 2006-07-03  James Livingston  <doclivingston@gmail.com>
3925         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3927         * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
3928         window resizable, as it used to be. Fixes #345940.
3930 2006-07-01  James Livingston  <doclivingston@gmail.com>
3932         Patch from Ståle Lyngaas  <staale@lyngaas.com>
3934         * rhythmdb/rhythmdb.h:
3935         * rhythmdb/rhythmdb-private.h:
3936         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3937         (rhythmdb_tree_parser_end_element), (save_entry):
3938         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
3939         (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
3940         (set_props_from_metadata), (rhythmdb_entry_set_internal),
3941         (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
3942         MusicBrainz track IDs in the database, and bump the on-disk version
3943         number to trigger a metadata reload.
3945         * backends/gstreamer/rb-player-gst.c: (process_tag):
3946         * metadata/rb-metadata-common.c:
3947         * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
3948         (rb_metadata_gst_field_to_gst_tag):
3949         * metadata/rb-metadata.h: grab MB track IDs and use them.
3951         * plugins/audioscrobbler/rb-audioscrobbler.c:
3952         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
3953         (rb_audioscrobbler_timeout_cb),
3954         (rb_audioscrobbler_song_changed_cb): send the MB track id along with
3955         the other metadata. Fixes #343491.
3957 2006-06-30  James Livingston  <doclivingston@gmail.com>
3959         * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
3960         method.
3962 2006-06-30  James Livingston  <doclivingston@gmail.com>
3964         * bindings/python/rb.defs:
3965         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3966         (rb_browser_source_songs_show_popup_cb),
3967         (default_show_entry_popup):
3968         * sources/rb-browser-source.h:
3969         * sources/rb-library-source.c: (rb_library_source_class_init),
3970         (rb_library_source_constructor), (impl_show_popup): allow
3971         RBBrowserSource-derived sources to override the entry context menu
3972         properly - by making it a virtual function, rather than relying on
3973         signal handler order (which doesn't really work).
3975 2006-06-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3977         * rhythmdb/rhythmdb-query-model.c:
3978         (rhythmdb_query_model_reapply_query_cb):
3979         Use the original query, not the preprocessed query, when redoing
3980         the query to pick up entries that previously didn't match.
3981         Preprocessing the query twice is bad.  Fixes #346186.
3983 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3985         * plugins/audioscrobbler/rb-audioscrobbler.c:
3986         (rb_audioscrobbler_song_changed_cb):
3987         Just check if the elapsed time has been reset, rather
3988         than checking if it's a different track.  Fixes #344827.
3990 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3992         * backends/gstreamer/rb-player-gst.c:
3993         Set cdda source read-speed to 1.  Fixes gaps in playback while the
3994         drive spins up, #344576.
3996 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3998         * plugins/audioscrobbler/rb-audioscrobbler.c:
3999         (rb_audioscrobbler_perform):
4000         Use HTTP/1.1.  Fixes #345895.
4002 2006-06-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4004         * lib/rb-preferences.h:
4005         * lib/rb-proxy-config.c: (rb_proxy_config_init),
4006         (check_auto_proxy_config), (get_proxy_config):
4007         Don't try to use a HTTP proxy if no proxy host is specified.
4008         Alert the user to the fact that we don't support automatic proxy
4009         configuration as infrequently as possible.  From #345712.
4011 2006-06-25  James Livingston  <doclivingston@gmail.com>
4013         * rhythmdb/rhythmdb-property-model.c:
4014         (rhythmdb_property_model_set_property): connect to the
4015         "post-entry-delete" signal, rather than "entry-deleted". This ensures
4016         things get removed correctly, fixes #338183.
4018 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4020         * rhythmdb/rhythmdb-query-model.c:
4021         (rhythmdb_query_model_drag_data_received):
4022         Fix build break.
4024 2006-06-25  James Livingston  <doclivingston@gmail.com>
4026         patch by Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4028         * widgets/rb-search-entry.c: (rb_search_entry_init),
4029         (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
4030         search box have a pale yellow background when it's in use, except for
4031         when the user has an "accessability" theme. Code based heavily on
4032         Epiphany's. Fixes #344416.
4034 2006-06-25  James Livingston  <doclivingston@gmail.com>
4036         * plugins/lyrics/lyrics.py:
4037         * plugins/pythonconsole/pythonconsole.py:
4038         * plugins/sample-python/sample-python.py: don't import gettext stuff
4039         as _, as the C code does this for us. Fixes i18n for python plugins,
4040         #343081
4042 2006-06-25  James Livingston  <doclivingston@gmail.com>
4044         * rhythmdb/rhythmdb-query-model.c:
4045         (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
4046         a model use a reorder rather then deleting and re-adding the entry.
4047         This means it does do weird things like stop playback of a track that
4048         is dragged, fixing #337657.
4050 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4052         * metadata/rb-metadata-dbus-service.c:
4053         Add missing #include <glib/gi18n.h> from previous commit.
4055 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4057         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4059         * metadata/rb-metadata-dbus-service.c: (main):
4060         Initialize gettext in the metadata helper.
4061         * metadata/rb-metadata-gst.c:
4062         Make some strings translatable.  Fixes #345286.
4064 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4066         * configure.ac:
4067         * lib/Makefile.am:
4068         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4069         Inline the custom icons so they can always be loaded, but are still
4070         themable.  Fixes #345796.
4072 2006-06-23  James Livingston  <doclivingston@gmail.com>
4074         * sources/rb-auto-playlist-source.c:
4075         (rb_auto_playlist_source_do_query): stop the search box being applied
4076         for limits in auto playlists. Fixes #345307.
4078 2006-06-23  James Livingston  <doclivingston@gmail.com>
4080         * shell/rb-shell-clipboard.c:
4081         (rb_shell_clipboard_set_source_internal),
4082         (rb_shell_clipboard_sync), (add_playlist_to_menu),
4083         (rebuild_playlist_menu): don't use the add-to-playlist menu for
4084         non-library tracks, as we don't supprot it yet. From #345248.
4086 2006-06-23  James Livingston  <doclivingston@gmail.com>
4088         patch by: Brian Cameron  <brian.cameron@sun.com>
4090         * plugins/generic-player/rb-generic-player-plugin.c:
4091         * plugins/generic-player/rb-generic-player-source.c:
4092         * plugins/generic-player/rb-nokia770-source.c:
4093         * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
4094         Fixes 345673.
4096 2006-06-22  James Livingston  <doclivingston@gmail.com>
4098         * backends/rb-player.c: (rb_player_interface_init):
4099         * lib/rb-marshal.list:
4100         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
4101         * rhythmdb/rhythmdb-query-model.c:
4102         (rhythmdb_query_model_class_init):
4103         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
4104         * shell/rb-shell-player.c: (rb_shell_player_class_init):
4105         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
4106         * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
4107         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
4108         * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
4109         marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
4110         possible not.
4112 2006-06-20  James Livingston  <doclivingston@gmail.com>
4114         patch by Alex Lancaster  <alexl@users.sourceforge.net>
4116         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
4117         metadata to clients. Fixes #345276.
4119 2006-06-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4121         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4122         (rb_add_id3_tagger):
4123         Fix plugin/element version detection for id3v2mux.
4125 2006-06-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4127         * sources/rb-source.c: (rb_source_finalize),
4128         (rb_source_set_property), (rb_source_post_entry_deleted_cb),
4129         (_autohide_update_visibility),
4130         (_rb_autohide_source_post_entry_deleted_cb),
4131         (_rb_autohide_source_row_inserted_cb),
4132         (_rb_source_hide_when_empty):
4133         Use post-entry-delete signal to update status and autohide sources.
4135 2006-06-20  James Livingston  <doclivingston@gmail.com>
4137         * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
4138         "selection changed" idle callback, if present.
4140 2006-06-19  James Livingston  <doclivingston@gmail.com>
4142         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4144         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
4145         don't try to translate the empty string. Fixes #345285.
4147 2006-06-19  James Livingston  <doclivingston@gmail.com>
4149         * bindings/python/rhythmdb.override: more python binding fixes
4151 2006-06-19  James Livingston  <doclivingston@gmail.com>
4153         * lib/rb-util.c: (rb_copy_function):
4154         * lib/rb-util.h: add a function that returns the same pointer it was
4155         passed.
4157         * rhythmdb/rhythmdb.h:
4158         * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
4159         (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
4160         "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
4161         and RhythmDBEntryType into boxed types. This allows them to be used
4162         from python. Note that entry-types aren't actually reference counted
4163         (yet).
4165         * bindings/python/rb.defs:
4166         * bindings/python/rhythmdb.defs:
4167         * bindings/python/rhythmdb.override: Adapt to the above, and fix the
4168         return types of some bindings.
4170         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
4171         (process_added_entries_cb), (rhythmdb_entry_finalize),
4172         (rhythmdb_entry_delete):
4173         * daapsharing/rb-daap-connection.c:
4174         (rb_daap_connection_class_init), (rb_daap_connection_set_property),
4175         (rb_daap_connection_get_property):
4176         * plugins/generic-player/rb-generic-player-source.c:
4177         (rb_generic_player_source_load_songs), (load_playlist_file):
4178         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
4179         * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
4180         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
4181         (idle_process_update), (rhythmdb_query_model_add_entry),
4182         (rhythmdb_query_model_insert_into_main_list),
4183         (rhythmdb_query_model_insert_into_limited_list),
4184         (rhythmdb_query_model_remove_from_main_list),
4185         (rhythmdb_query_model_remove_from_limited_list),
4186         (rhythmdb_query_model_drag_data_received),
4187         (rhythmdb_query_model_add_results),
4188         (rhythmdb_query_model_get_column_type),
4189         (rhythmdb_query_model_get_value):
4190         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4191         (rhythmdb_tree_entry_delete), (remove_one_song):
4192         * shell/rb-play-order-linear-loop.c:
4193         (rb_linear_play_order_loop_get_next),
4194         (rb_linear_play_order_loop_get_previous):
4195         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
4196         (rb_linear_play_order_get_previous):
4197         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
4198         (rb_queue_play_order_get_previous):
4199         * shell/rb-play-order-random.c: (rb_random_play_order_init),
4200         (rb_random_filter_history), (rb_random_play_order_get_next),
4201         (rb_random_play_order_go_next), (rb_random_db_changed),
4202         (rb_random_playing_entry_changed):
4203         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
4204         (remove_from_history), (add_randomly_to_history),
4205         (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
4206         * shell/rb-play-order.c: (rb_play_order_class_init),
4207         (rb_play_order_set_property), (rb_play_order_get_property),
4208         (rb_play_order_update_have_next_previous):
4209         * shell/rb-play-order.h:
4210         * shell/rb-shell-clipboard.c:
4211         (rb_shell_clipboard_process_deletions),
4212         (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
4213         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
4214         * sources/rb-auto-playlist-source.c:
4215         (rb_auto_playlist_source_constructor):
4216         * sources/rb-browser-source.c: (rb_browser_source_class_init),
4217         (rb_browser_source_set_property), (rb_browser_source_get_property),
4218         (rb_browser_source_do_query):
4219         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
4220         * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
4221         * sources/rb-ipod-source.c: (add_rb_playlist),
4222         (add_ipod_song_to_db), (impl_paste):
4223         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
4224         (rb_iradio_source_set_property), (rb_iradio_source_get_property):
4225         * sources/rb-library-source.c: (layout_example_label_update):
4226         * sources/rb-missing-files-source.c:
4227         (rb_missing_files_source_class_init),
4228         (rb_missing_files_source_set_property),
4229         (rb_missing_files_source_get_property),
4230         (rb_missing_files_source_new):
4231         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
4232         (rb_playlist_source_set_property),
4233         (rb_playlist_source_get_property):
4234         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
4235         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
4236         (construct_query_from_selection):
4237         * sources/rb-removable-media-source.c: (impl_delete_thyself):
4238         * sources/rb-static-playlist-source.c:
4239         (rb_static_playlist_source_constructor),
4240         (rb_static_playlist_source_add_location_internal):
4241         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
4242         * widgets/rb-header.c: (rb_header_class_init),
4243         (rb_header_set_property), (rb_header_get_property):
4244         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
4245         (rb_library_browser_set_property),
4246         (rb_library_browser_get_property):
4247         * widgets/rb-song-info.c: (rb_song_info_class_init),
4248         (rb_song_info_get_property): Adjust for the _ref/_unref prototype
4249         change, do s/pointer/boxed/ in many places and free entry-types
4250         properly.
4252 2006-06-18  James Livingston  <doclivingston@gmail.com>
4254         * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
4255         unushed GThreadPool non-exclusive threads every now and then.
4257         * rhythmdb/rhythmdb-private.h:
4258         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
4259         (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
4260         threads. Fixes #341593
4262 2006-06-19  James Livingston  <doclivingston@gmail.com>
4264         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
4265         the "Track number" checkbox actually work for playlists. From #329986.
4267 2006-06-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4269         * plugins/generic-player/rb-generic-player-source.c:
4270         Get playlist and audio folder information from HAL.  Fixes #333845.
4272 2006-06-18  James Livingston  <doclivingston@gmail.com>
4274         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4276         * widgets/rb-entry-view.h:
4277         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
4278         (rb_entry_view_append_column_custom),
4279         (rb_entry_view_insert_column_custom): add support for inserting custom
4280         columns at arbitrary locations, rather than just appending to the end.
4282         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
4283         the playlists "track number" column go at the start, and add a normal
4284         track number column. Fixes #329986.
4286 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
4288         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
4289         a mnemonic conflict.  Add ellipses to the edit button.
4290         * sources/rb-library-source.c:
4291         (rb_library_source_edit_profile_clicked_cb),
4292         (impl_get_config_widget):  Hide dialog separator.  Assign a 
4293         mnemonic widget to the labels. Fixes #344114.
4295 2006-06-18  James Livingston  <doclivingston@gmail.com>
4297         * configure.ac: bump version
4298         * NEWS: add NEWS for 0.9.5
4300 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4302         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
4303         (rb_uri_handle_recursively):
4304         Don't attempt to recurse into directories we can't open.  
4305         Fixes #341485.
4307 2006-06-18  James Livingston  <doclivingston@gmail.com>
4309         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
4311         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
4312         #344610.
4314 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4316         * bindings/python/rb.defs:
4317         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
4318         * shell/rb-shell-player.h:
4319         * shell/rb-shell.c: (rb_shell_play_entry):
4320         Add source parameter to rb_shell_player_play_entry, using the selected
4321         source if not specified.
4323         * shell/rb-play-order.c: (rb_play_order_class_init),
4324         (rb_play_order_finalize), (rb_play_order_query_model_changed),
4325         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
4326         (default_playing_entry_removed):
4327         * shell/rb-play-order.h:
4328         Move entry removal handling back to the row-deleted signal, as we need
4329         the entry to be present in the model.  When changing to the next entry
4330         after the playing entry is deleted, set the new entry as the playing
4331         entry and then sync it to the player in an idle handler, so we don't
4332         end up playing it if it was removed too.
4333         * shell/rb-play-order-queue.c:
4334         (rb_queue_play_order_playing_entry_changed),
4335         (rb_queue_play_order_playing_entry_removed):
4336         Use the playing-entry-removed handler from the play order class,
4337         setting a flag so we don't try to remove the already-removed entry
4338         from the model.
4340         This makes removal of the playing entry from playlists etc. work more
4341         or less correctly for all play orders.  Fixes #344627.
4343 2006-06-17  James Livingston  <doclivingston@gmail.com>
4345         patch by: Elijah Newren  <newren@gmail.com>
4347         * tests/test-rhythmdb.c: fix the build with older versions of check
4348         (again). Fixes #343718.
4350 2006-06-17  James Livingston  <doclivingston@gmail.com>
4352         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
4353         name for capsfilter's "caps" property. Fixes #344968.
4355 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4357         * shell/rb-shell-player.c: (rb_shell_player_playpause):
4358         Don't leak the selected entry list when finding an entry to play.
4360 2006-06-17  James Livingston  <doclivingston@gmail.com>
4362         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
4363         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
4364         as a O(1) one works fine, and it will get called often when the user
4365         deleted multiple tracks. Part of #344922.
4367 2006-06-17  James Livingston  <doclivingston@gmail.com>
4369         * shell/rb-shell-player.c: (rb_shell_player_stop): make
4370         rb_shell_player_stop and rb_shell_player_playpause not mutually
4371         recursive. Fixed #336912.
4373 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4375         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
4376         Treat nested elements inside properties as unknown.  Fixes parsing of
4377         podcast feeds with unescaped HTML in description tags, bug #344532.
4379 2006-06-15  William Jon McCann  <mccann@jhu.edu>
4381         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
4382         when quitting.  Fixes #344875.
4384 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4386         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
4387         Move the playing-entry-removed handling to after the normal entry
4388         delete handling, since we're called after the entry has been removed
4389         from the query model now.  Fixes crashes described in #344627.
4391 2006-06-13  William Jon McCann  <mccann@jhu.edu>
4393         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
4394         (rb_rating_get_rating_from_widget):
4395         * widgets/rb-rating.c: (rb_rating_class_init),
4396         (rb_rating_finalize), (rb_rating_get_property),
4397         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
4398         (rb_rating_button_press_cb):
4399         Don't crash when ratings icons can't be found.  Fixes #344533.
4401 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4403         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
4405 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4407         * Makefile.am:
4408         * configure.ac:
4409         * remote/Makefile.am:
4410         * remote/dbus/Makefile.am:
4411         * remote/dbus/rb-client.c:
4412         * shell/Makefile.am:
4413         New dbus client program providing --play/--next etc. arguments.
4414         Fixes #340863, #155763.
4416 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4418         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
4419         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
4421 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
4423         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
4425         * rhythmdb/rhythmdb-query-model.c:
4426         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
4427         to Library incorrectly
4429 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4431         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
4432         Return input string untouched if gnome_vfs_uri_new returns NULL.
4433         * sources/rb-static-playlist-source.c: (impl_receive_drag),
4434         (rb_static_playlist_source_add_list_uri):
4435         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
4436         URIs don't break it.  Fixes #339033.
4438 2006-06-08  James Livingston  <doclivingston@gmail.com>
4440         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
4441         for sources on the edge (i.e. the queue). Fixes #328409.
4443         * sources/rb-ipod-source.c: fix typo
4445 2006-06-08  James Livingston  <doclivingston@gmail.com>
4447         * configure.ac:
4448         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
4449         --enable-ipod-writing to enable the ipod syncing code.
4451 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4453         * sources/rb-library-source.c: (layout_example_label_update):
4454         add missing comma so we don't generate broken markup.
4456 2006-06-08  James Livingston  <doclivingston@gmail.com>
4458         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
4459         tag-merging with id3v2mux as well as id3mux. From #342330.
4461 2006-06-07  James Livingston  <doclivingston@gmail.com>
4463         * tests/test-rhythmdb.c: #define fail_if for old version of check
4464         which don't have it. Hopefully fixes #343718.
4466 2006-06-07  James Livingston  <doclivingston@gmail.com>
4468         * shell/rb-playlist-manager.c:
4469         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
4470         g_value_array_free with NULL. Fixes #341053.
4472 2006-06-07  James Livingston  <doclivingston@gmail.com>
4474         * shell/rb-playlist-manager.c:
4475         (rb_playlist_manager_playlist_entries_changed),
4476         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
4477         instead of "row-removed", which fixes updating "burn playlist"
4478         sensitivity. Fixes #331119.
4480 2006-06-07  James Livingston  <doclivingston@gmail.com>
4482         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
4483         rather than restarting if the source uses _RETRY and there is an
4484         actual error (like an undecodable stream) rather than it just dropping
4485         out and causing EOS.
4487 2006-06-07  James Livingston  <doclivingston@gmail.com>
4489         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
4490         free the pixbufs if they couldn't be loaded. Fixed #343852.
4492 2006-06-07  James Livingston  <doclivingston@gmail.com>
4494         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
4495         the close button on the dialog work. Fixes #335346.
4497 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4499         * sources/rb-sourcelist-model.c: (path_is_droppable),
4500         (path_is_reorderable):
4501         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
4502         (row_activated_cb), (emit_show_popup), (key_release_cb),
4503         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
4504         Ignore group marker rows in the source list.  Fixes #344089, a couple
4505         of other crashers, and some weird UI glitches too.
4507 2006-06-07  James Livingston  <doclivingston@gmail.com>
4509         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
4510         the seeking query fails. This is needed because many gst elements
4511         don't implement the seeking query yet. Should fix 329977.
4513 2006-06-06  James Livingston  <doclivingston@gmail.com>
4515         * configure.ac: bump version for a prerelease, turn on track transfer
4516         by default.
4518         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
4519         ipod transfer stuff, since it has big issues and we'll hopefully land
4520         real support (bug 310774) after 0.9.5
4522 2006-06-06  James Livingston  <doclivingston@gmail.com>
4524         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
4525         id3v2mux once we've detected it.
4527 2006-06-06  James Livingston  <doclivingston@gmail.com>
4529         * lib/Makefile.am:
4530         * tests/test-rhythmdb.c: undo accidental commit which caused
4531         rb-thread.c to be built (which it isn't normally)
4533 2006-06-06  James Livingston  <doclivingston@gmail.com>
4535         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
4536         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
4537         fail_{if/unless} calls, as some versions of check need them (they are
4538         optional in others). Should fix bug 343718.
4540 2006-06-06  James Livingston  <doclivingston@gmail.com>
4542         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
4543         343836.
4544         
4545         * lib/Makefile.am:
4546         * lib/rb-thread.c: (process_actions):
4547         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
4548         tests that don't pass.
4550 2006-06-05  James Livingston  <doclivingston@gmail.com>
4552         * data/glade/Makefile.am:
4553         * data/glade/load-failure.glade:
4554         * data/rhythmbox.schemas: remove the remainder of the old load-failure
4555         dialog.
4557 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4559         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
4560         checked in.
4562 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4564         * bindings/python/rb.defs:
4565         * sources/rb-source.h:
4566         * sources/rb-source.c: (rb_source_class_init),
4567         (rb_source_set_property), (rb_source_get_property),
4568         (rb_sourcelist_group_get_type):
4569         Add 'sourcelist-group' property on the RBSource class, describing how
4570         sources should be grouped in the source list.
4572         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
4573         (rb_sourcelist_model_new), (real_row_is_separator),
4574         (rb_sourcelist_model_is_row_visible),
4575         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
4576         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
4577         (rb_sourcelist_model_row_draggable),
4578         (rb_sourcelist_model_row_inserted_cb),
4579         (rb_sourcelist_model_row_deleted_cb),
4580         (rb_sourcelist_model_get_group_path):
4581         * sources/rb-sourcelist-model.h:
4582         * sources/rb-sourcelist.c: (rb_sourcelist_init),
4583         (rb_sourcelist_append):
4584         Add group marker rows for each sourcelist group, and use these to
4585         insert sources in the right place.  Sort transient sources (DAAP
4586         shares) by name.  Show the group marker rows as separators when the
4587         next visible row is a source.  Make persistant sources (playlists) and
4588         removable sources reorderable using drag and drop, restricting them
4589         within the source groups.
4590         
4591         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4592         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
4593         * sources/rb-daap-source.c: (rb_daap_source_new):
4594         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4595         * sources/rb-static-playlist-source.c:
4596         (rb_static_playlist_source_new):
4597         * plugins/generic-player/rb-generic-player-source.c:
4598         (rb_generic_player_source_new):
4599         * plugins/generic-player/rb-nokia770-source.c:
4600         (rb_nokia770_source_new):
4601         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
4602         Add source list group information to existing source classes.
4604         Fixes #318754 and #336492.
4606 2006-06-04  James Livingston  <doclivingston@gmail.com>
4608         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
4609         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
4610         win32 build fixes.
4612 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4614         * rhythmdb/rhythmdb-query-model.c:
4615         (rhythmdb_query_model_class_init),
4616         (rhythmdb_query_model_remove_from_main_list):
4617         * rhythmdb/rhythmdb-query-model.h:
4618         Add a new 'post-entry-delete' signal, emitted when the entry has been
4619         removed from the model's data structures.
4621         * shell/rb-play-order.c: (rb_play_order_finalize),
4622         (rb_play_order_query_model_changed),
4623         (rb_play_order_post_entry_delete_cb):
4624         Use the new signal to update the play order, so the queue play order
4625         doesn't try to scroll to entries that don't exist in a way that causes
4626         the tree view to crash.  Fixes #340216.
4628 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4630         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
4631         Fix rb_debug call I missed previously.
4633 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4635         * metadata/rb-metadata-gst.c:
4636         Don't use NULL as the error message for ignored files, as it crashes
4637         with some C libraries.  Fixes #343713.
4639 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4641         * widgets/rb-dialog.c: (rb_error_dialog):
4642         * widgets/rb-dialog.h:
4643         Mark rb_error_dialog as taking printf-like arguments, and use a format
4644         string for the primary message rather than passing in the message
4645         directly.
4647         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
4648         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
4649         (info_available_cb):
4650         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
4651         * shell/rb-removable-media-manager.c:
4652         (rb_removable_media_manager_eject_medium_cb):
4653         Make sure all calls to rb_error_dialog use string constants for the
4654         format string rather than passing the error message directly.  Remove
4655         an extra %s from the message used when playback fails.  Fixes #343562.
4657         * lib/rb-debug.h:
4658         * sources/rb-audiocd-source.c:
4659         * plugins/audioscrobbler/rb-audioscrobbler.c:
4660         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
4661         Mark rb_debug as taking printf-like arguments and fix a few resulting
4662         warnings.
4664 2006-06-02  James Livingston  <doclivingston@gmail.com>
4666         * configure.ac:
4667         + macros/check.m4: add support for using check for unit tests, the .m4
4668         files is so autogen can run without check being installed
4670         * tests/Makefile.am:
4671         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
4672         some of the old tests, and add some new ones. Currently
4673         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
4674         yet (the query doesn't return any entries).
4676         - tests/deserialization-test1.xml:
4677         - tests/deserialization-test2.xml:
4678         - tests/deserialization-test3.xml:
4679         - tests/test-rhythmdb-indexing.c:
4680         - tests/test-rhythmdb-simple.c:
4681         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
4682         have been ported
4684         - tests/test-cd.c:
4685         - tests/test-cmdline.c: remove obsolete tests
4687 2006-06-02  James Livingston  <doclivingston@gmail.com>
4689         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4690         (rb_add_id3_tagger), (rb_metadata_init): add support for using
4691         id3v2mux, and check whether we are using a version of id3mux that has
4692         the correct merge-mode behaviour.
4694         * plugins/sample-python/Makefile.am: fix distcheck.
4696         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
4697         the changed-files source was added before trying to remove it.
4699         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
4700         *old* bug which would crash if a query with top-level disjunctions
4701         tried to check later disjunctive parts. Hooray for unit-testing.
4703 2006-06-02  William Jon McCann  <mccann@jhu.edu>
4705         * player/rb-recorder-gst.c (rb_recorder_set_device):
4706         Check for a null drive.
4708 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4710         * lib/Makefile.am:
4711         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4712         Register the app icon as a builtin if the icon theme can't find it.
4714 2006-05-31  James Livingston  <doclivingston@gmail.com>
4716         * player/rb-recorder-gst.c: add missing include.
4718 2006-05-30  William Jon McCann  <mccann@jhu.edu>
4720         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
4721         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
4722         (tick_timeout_cb), (rb_recorder_sync_pipeline),
4723         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
4724         (rb_recorder_set_device), (rb_recorder_get_default_device):
4725         * shell/main.c: (main):
4726         * shell/rb-removable-media-manager.c:
4727         (rb_removable_media_manager_finalize),
4728         (get_nautilus_burn_drive_for_path),
4729         (rb_removable_media_manager_playing_uri_changed_cb),
4730         (rb_removable_media_manager_load_media),
4731         (nautilus_burn_drive_get_device),
4732         (rb_removable_media_manager_scan):
4733         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
4735         Update for libnautilus-burn 2.15.3 API changes.
4736         Fixes #342604
4738 2006-05-30  James Livingston  <doclivingston@gmail.com>
4740         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
4741         "return" to that it asks for the password again if it was wrong.
4743 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4745         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
4746         typefind element.
4748 2006-05-30  James Livingston  <doclivingston@gmail.com>
4750         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
4751         (download_progress_cb): don't do wonky things if the transfer
4752         "suceeds" without transferring any data.
4754 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4756         * sources/rb-library-source.c: (layout_example_label_update),
4757         (build_filename):  Fix crash when no audio profile is selected.
4758         Fixes #341447.
4760 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4762         * shell/rb-shell.c: (rb_shell_clear_queue):
4763         * shell/rb-shell.h:
4764         * shell/rb-shell.xml:
4765         * sources/rb-play-queue-source.c:
4766         (rb_play_queue_source_clear_queue),
4767         (rb_play_queue_source_cmd_clear):
4768         * sources/rb-play-queue-source.h:
4769         Add clearQueue dbus method.
4771 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4773         * shell/main.c: (main):  Implement --quit option.
4775 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4777         * rhythmdb/rhythmdb-private.h:
4778         * rhythmdb/rhythmdb-tree.h:
4779         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
4780         (rhythmdb_entry_insert), (rhythmdb_entry_set),
4781         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
4782         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
4783         (rhythmdb_entry_get_boolean):
4784         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
4785         bitmask, giving the db backend anything past the first 16 bits for 
4786         its own private use.
4788         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4789         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
4790         Add a 'loading' flag to indicate that an entry is being loaded from
4791         disk, and use that to ignore entry_set operations on such entries
4792         rather than the 'inserted' flag, which doesn't quite mean the same
4793         thing.  Fixes #342694.
4795 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4797         * shell/rb-shell.xml: Remove visibility property, since it causes
4798         crashes (dbus bug 7057) and doesn't do much else.
4800 2006-05-28  James Livingston  <doclivingston@gmail.com>
4802         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
4804         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4805         * po/POTFILES.in: fix some more i18n issues.
4807 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4809         * bindings/python/rb.defs:
4810         * shell/rb-shell-player.c: (rb_shell_player_playpause),
4811         (filter_mmkeys):
4812         * shell/rb-shell-player.h:
4813         Deprecate the useless 'ignore_stop' parameter to
4814         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
4815         API.  From bug #334829.
4817 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4819         * plugins/generic-player/rb-generic-player-source.c:
4820         (visit_playlist_dirs), (default_transform_playlist_uri):
4821         When playlist parsing fails, unref the playlist, not the parent
4822         source.  Fix memory leak in playlist uri transform.
4823         * plugins/generic-player/rb-nokia770-source.c:
4824         (impl_transform_playlist_uri):
4825         Fix memory leak in playlist uri transform.
4827 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
4829         * doc/reference/Makefile.am: fix grk-doc build
4831 2006-05-27  James Livingston  <doclivingston@gmail.com>
4833         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4835         * plugins/lyrics/lyrics.py:
4836         * po/POTFILES.in: Make strings in plugins translatable. From bug
4837         343081.
4839 2006-05-27  James Livingston  <doclivingston@gmail.com>
4841         * backends/Makefile.am:
4842         * backends/gstreamer/Makefile.am:
4843         * lib/Makefile.am:
4844         * plugins/audioscrobbler/Makefile.am:
4845         * plugins/generic-player/Makefile.am:
4846         * po/POTFILES.in:
4847         * rhythmdb/rhythmdb-monitor.c:
4848         * rhythmdb/rhythmdb.c:
4849         * sources/Makefile.am:
4850         * widgets/Makefile.am: fix compilation after some CVS surgery was
4851         done.
4853 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4855         * bindings/python/rhythmdb.defs:
4856         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
4857         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
4858         (rhythmdb_query_deserialize):
4859         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
4860         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
4861         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
4862         (rhythmdb_entry_register_type_alias),
4863         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
4864         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
4865         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
4866         (rhythmdb_entry_podcast_feed_get_type),
4867         (rhythmdb_entry_import_error_get_type),
4868         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
4869         * rhythmdb/rhythmdb.h:
4870         Allocate a specified amount of extra memory for each db entry, to be
4871         used to store fields specific to the entry type.  Optionally associate
4872         a name with each entry type, to be used when saving entries and
4873         auto playlists to disk.  Allow entry types to have multiple names
4874         to handle older playlist files that used '0' to represent 'song'.
4875         Use private data to store podcast fields.
4877         * rhythmdb/rhythmdb-private.h:
4878         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4879         (rhythmdb_tree_parser_end_element), (save_entry),
4880         (rhythmdb_tree_entry_set):
4881         Simplify property handling by using existing code to convert
4882         properties from strings to GValues and to set properties on entries.
4883         Other assorted changes due to the above.
4885         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4886         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
4887         * sources/rb-generic-player-source.c:
4888         (rb_generic_player_source_new):
4889         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4890         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
4891         * sources/rb-psp-source.c: (rb_psp_source_new):
4892         Update for changes to rhythmdb_entry_register_type.  None of these
4893         entry types need names or use private data.
4895         Fixes #337429.
4897 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4899         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
4900         Fix creation of ignored-file db entries - need to check for
4901         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
4903 2006-05-25  James Livingston  <doclivingston@gmail.com>
4905         * AUTHORS:
4906         * MAINTAINERS: update my email address
4908 2006-05-25  James Livingston  <doclivingston@gmail.com>
4910         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
4911         "(... mix)" when searching for lyrics. Cache the lyrics under
4912         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
4914 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4916         * sources/rb-import-errors-source.c:
4917         (rb_import_errors_source_class_init):
4918         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
4919         * sources/rb-browser-source.c: (rb_browser_source_class_init):
4920         * sources/rb-source.c: (rb_source_class_init),
4921         (default_move_to_trash):
4922         Implement the basic move-to-trash operation once in rb-source.c, 
4923         rather than in each source type that supports it.
4925         * plugins/ipod/rb-ipod-plugin.c:
4926         * shell/rb-removable-media-manager.c:
4927         * shell/rb-shell.c: (rb_shell_constructor):
4928         Only scan removable media once after loading plugins.  Add a flag
4929         plugins can use to check if the initial scan has been done.
4931         * data/rhythmbox.schemas:
4932         Enable ipod and generic-player plugins by default.
4933         
4934         * configure.ac:
4935         * data/ui/Makefile.am:
4936         * data/ui/generic-player-ui.xml:
4937         * data/ui/rhythmbox-ui.xml:
4938         * plugins/Makefile.am:
4939         * plugins/generic-player/Makefile.am:
4940         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
4941         * plugins/generic-player/rb-generic-player-plugin.c:
4942         * sources/Makefile.am:
4943         * sources/rb-generic-player-source.c:
4944         * sources/rb-generic-player-source.h:
4945         * sources/rb-nokia770-source.c:
4946         * sources/rb-nokia770-source.h:
4947         * sources/rb-psp-source.c: (visit_playlist_dirs):
4948         * sources/rb-psp-source.h:
4949         Pluginise generic player (and nokia770 and PSP) support and add
4950         move-to-trash for players not mounted read-only.
4951         Fixes #342868.
4953 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4955         * daapsharing/rb-daap-connection.c (handle_song_listing):
4956         Lower bound check for batch commit.  Fixes #342848
4958         * sources/rb-daap-source.c (rb_daap_source_get_status):
4959         Always set output variables if provided.
4961 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4963         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
4964         (rhythmdb_tree_entry_delete), (remove_one_song):
4965         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
4966         Fix two db entry reference counting problems.
4967         The initial reference on the entry is held by the db backend, but it
4968         was never being dropped.  The reference count was incremented when
4969         adding an entry to the deleted_entries map and to the
4970         deleted_entries_to_emit list, but only decremented for one of those.
4972 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4974         * daapsharing/rb-daap-connection.c (http_response_handler) 
4975         (rb_daap_connection_dispose):
4976         Call soup_session_abort to make sure there are no outstanding
4977         requests when we dispose of the connection.  Ignore cancelled
4978         messages in the callback.
4980 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4982         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
4983         (rb_daap_source_disconnect): Set a flag when disconnecting
4984         the source.  Check this flag in connection callback
4985         to see if we should release the connection.
4987 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4989         * daapsharing/Makefile.am:
4990         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
4991         (rb_daap_connection_class_init), (connection_connected),
4992         (connection_disconnected), (connection_operation_done),
4993         (build_message), (connection_set_error_message),
4994         (actual_http_response_handler), (http_get),
4995         (entry_set_string_prop), (emit_progress_idle),
4996         (handle_server_info), (handle_login), (handle_update),
4997         (handle_database_info), (handle_song_listing), (handle_playlists),
4998         (handle_playlist_entries), (handle_logout),
4999         (rb_daap_connection_new), (rb_daap_connection_is_connected),
5000         (connection_response_data_free), (connected_cb),
5001         (rb_daap_connection_connect), (disconnected_cb),
5002         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
5003         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
5004         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
5005         (rb_daap_connection_get_property):
5006         * daapsharing/rb-daap-connection.h:
5007         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
5008         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
5009         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
5010         (rb_daap_hash_generate):
5011         * daapsharing/rb-daap-hash.h:
5012         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5013         (rb_daap_get_icon), (remove_source), (stop_browsing),
5014         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
5015         (connection_connecting_cb), (connection_disconnected_cb),
5016         (release_connection), (rb_daap_source_connection_cb),
5017         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
5018         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
5020         Adds a better async API for connect and disconnect.  Doesn't share
5021         callback data for every async call.  Adds a connect signal.  Uses
5022         an operation-done signal to trigger the callbacks.  Displays an
5023         error when connections fail.  A few refcounting fixes to fix
5024         crashes.  Uses a weak pointer to set the connection to NULL so we
5025         don't clobber references.  Wait for each disconnect when shutting
5026         down sources.  Split out DAAP hash stuff into its own file.  Fix
5027         typo in header.
5029         Fixes #342643
5030         
5031 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5033         * sources/rb-auto-playlist-source.c:
5034         (rb_auto_playlist_source_new_from_xml):
5035         Initialize the gvalue used to hold the size limit correctly.
5036         Fixes #342744.
5038 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5040         * shell/rb-shell.c: (rb_shell_window_delete_cb),
5041         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
5042         * shell/rb-shell.h:
5043         * shell/rb-shell.xml:
5044         Convert rb_shell_quit into a dbus method, and add visibility dbus
5045         property.
5047 2006-05-22  James Livingston  <doclivingston@gmail.com>
5049         * rhythmdb/rhythmdb.h:
5050         * rhythmdb/rhythmdb.c: (sync_entry_changed),
5051         (rhythmdb_entry_is_editable), (action_thread_main),
5052         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
5053         vfuncs for can_sync_metadata, and sync_metadata. The default is always
5054         false, and syncing into the file.
5056         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
5057         (rhythmdb_entry_iradio_get_type),
5058         (rhythmdb_entry_import_error_get_type):
5059         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
5060         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
5061         change the DB.
5063 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5065         * rhythmdb/Makefile.am:
5066         * rhythmdb/rhythmdb-monitor.c:
5067         * rhythmdb/rhythmdb-private.h:
5068         * rhythmdb/rhythmdb-query.c:
5069         * rhythmdb/rhythmdb.c:
5070         Split up rhythmdb.c a bit.
5072 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5074         * data/glade/audioscrobbler-prefs.glade:
5075         Add a link to the last.fm server status page.
5077 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
5079         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
5080         Capitalization fix.
5081         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5082         (impl_create_configure_dialog):  UI layout fixes, remove
5083         dialog separator, and capitalization fix for window title.
5084         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
5085         and remove dialog separator.
5086         * data/glade/plugins.glade:  UI layout fixes.
5087         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
5088         and capitalization fix.  Fixes #342438.
5090 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
5092         * data/glade/podcast-properties.glade:  Fix layout of the download 
5093         location.  Fixes #342431.
5095 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5097         * data/ui/rhythmbox-ui.xml:
5098         We only need one copy of the 'add to queue' action in the edit menu.
5100 2006-05-20  James Livingston  <doclivingston@gmail.com>
5102         * data/ui/rhythmbox-ui.xml:
5103         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
5104         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
5105         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
5106         (rb_shell_clipboard_sync),
5107         (rb_shell_clipboard_cmd_add_to_playlist_new),
5108         (rb_shell_clipboard_cmd_queue_song_info),
5109         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
5110         (rb_shell_clipboard_playlist_deleted_cb),
5111         (rb_shell_clipboard_playlist_renamed_cb),
5112         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
5113         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
5114         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
5115         dynamically generated with all the static playlists. Fixes bug 323364.
5117         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
5118         right child, so it doesn't go weird when art appears and disappears.
5120 2006-05-20  James Livingston  <doclivingston@gmail.com>
5122         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
5124         * rhythmdb/rhythmdb-query-model.c:
5125         (rhythmdb_query_model_set_property),
5126         (rhythmdb_query_model_finalize),
5127         (rhythmdb_query_model_reapply_query_cb):
5128         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
5129         (rhythmdb_query_append_prop_multiple),
5130         (rhythmdb_query_is_time_relative):
5131         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
5132         time-based criteria, fixes bug 341131.
5134 2006-05-20  James Livingston  <doclivingston@gmail.com>
5136         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
5137         we have already changed playing entries. Interpolate the art size so
5138         it doesn't jump when the old and new images have different aspect
5139         ratios.
5141 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5143         * rhythmdb/rhythmdb-private.h:
5144         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5145         (save_entry):
5146         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
5147         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
5148         (rhythmdb_entry_get_ulong):
5149         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
5150         and elsewhere, use them on the stack rather than allocating on 
5151         the heap.  From bug #342333.
5153 2006-05-19  William Jon McCann  <mccann@jhu.edu>
5155         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
5156         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
5157         (add_track), (eos_cb), (error_signal_idle),
5158         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
5159         (rb_recorder_construct), (recorder_track_free),
5160         (rb_recorder_finalize):
5161         * sources/rb-playlist-source-recorder.c:
5162         Support libnautilus-burn size -> capacity API change.  Add
5163         some braces to blocks.
5165 2006-05-19  William Jon McCann  <mccann@jhu.edu>
5167         * metadata/sj-metadata-musicbrainz.c:
5168         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
5169         Sync with sound-juicer in CVS.  Fixes #342177
5170         * sources/rb-audiocd-source.c: Don't declare variables
5171         in the middle of a block (c99ism).  Fix order of #includes.
5172         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
5173         one variable per line.  Update copyright date.
5175 2006-05-19  James Livingston  <doclivingston@gmail.com>
5177         patch by: Hendrik Richter  <hendi@gnome-de.org>
5179         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
5180         "translator_credits" to a hyphen, so it doesn't cause problems for
5181         tools that check access keys. Fixes bug 341832.
5183 2006-05-19  James Livingston  <doclivingston@gmail.com>
5185         * po/POTFILES.in: remove references to files that don't exist any more
5186         (fixes make distcheck).
5188 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
5190         * plugins/lyrics/lyrics.py:  Fix layout close button in 
5191         Song Lyrics dialog. Fixes bug 342322.
5193 2006-05-19  James Livingston  <doclivingston@gmail.com>
5195         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
5197         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
5198         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
5199         version checks not break when libnotify goes to 1.0.0. Fixes bug
5200         342244.
5202 2006-05-18  James Livingston  <doclivingston@gmail.com>
5204         * shell/rb-shell-clipboard.c:
5205         * shell/rb-shell.c:
5206         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
5208 2006-05-17  William Jon McCann  <mccann@jhu.edu>
5210         * sources/rb-playlist-source-recorder.c (get_song_description):
5211         Reverse artist and title in song description.  This
5212         is useful because at least the title will be visible
5213         when there is limited space.
5215 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5217         * daapsharing/rb-daap-connection.c: (connection_get_password):
5218         Take gdk lock before emitting authenticate signal.
5219         * sources/rb-daap-source.c: (connection_connecting_cb):
5220         Get rid of the unnecessary idle handler (it's already called from one)
5221         Fixes #342047 once more.
5223 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5225         * shell/rb-shell.c: (rb_shell_class_init):
5226         * shell/rb-shell.h:
5227         * widgets/rb-song-info.c: (rb_song_info_class_init),
5228         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
5229         (rb_song_info_constructor), (rb_song_info_get_property),
5230         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
5231         (rb_song_info_forward_clicked_cb):
5232         * widgets/rb-song-info.h:
5233         * data/glade/song-info-multiple.glade:
5234         * lib/rb-marshal.list:
5235         * bindings/python/Makefile.am:
5236         * bindings/python/rb.defs:
5237         * bindings/python/rb.override:
5238         Allow plugins to add pages to the notebooks used in song info windows,
5239         and to track the current song displayed in single-entry windows.
5240         
5241         * configure.ac:
5242         * plugins/Makefile.am:
5243         * plugins/lyrics/Loader.py:
5244         * plugins/lyrics/Makefile.am:
5245         * plugins/lyrics/lyrics.py:
5246         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
5247         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
5248         as a separate window (for the playing song) or as a page in the song
5249         info window.  A few TODO items left, but this fixes #319320.
5251 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5253         Patch by:  Roozbeh Pournader
5255         * configure.ac:
5256         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
5257         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
5259 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5260         
5261         * sources/rb-daap-source.c: (update_connection_status):
5262         Correct return value.  Fixes #342047 again.
5264 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5266         * sources/rb-daap-source.c: (update_connection_status),
5267         (connection_connecting_cb):
5268         Update status in an idle handler so we don't rely on the gdk lock
5269         being recursive (because it isn't any more).  Fixes #342047.
5271 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5273         * lib/rb-util.c: (rb_make_duration_string),
5274         (rb_make_elapsed_time_string):
5275         * lib/rb-util.h:
5276         Add a function for formatting an elapsed time string.
5278         * shell/rb-shell-player.c: (rb_shell_player_init),
5279         (rb_shell_player_sync_with_source),
5280         (rb_shell_player_get_playing_time_string), (tick_cb):
5281         Store elapsed time in the private data structure, and use the above
5282         function.
5283         
5284         * widgets/rb-header.c:
5285         * widgets/rb-header.h:
5286         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
5287         object, so everything has the same idea of the elapsed time.
5288         Fixes #339693.
5290 2006-05-16  James Livingston  <doclivingston@gmail.com>
5292         * bindings/python/rhythmdb.defs:
5293         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
5294         some parametre defaults, so you don't have to pass None, False for the
5295         sorting order.
5297 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5299         * bindings/python/rhythmdb.defs:
5300         * rhythmdb/rhythmdb-query-model.c:
5301         (rhythmdb_query_model_compute_status_normal):
5302         * rhythmdb/rhythmdb-query-model.h:
5303         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
5304         * rhythmdb/rhythmdb.h:
5305         Change the various compute_status methods to accept a singular/plural
5306         pair to use in the status string.
5307         
5308         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5309         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
5310         * sources/rb-source.c: (default_get_status):
5311         Call entries 'songs' by default, and 'episodes' in the podcast source.
5312         Fixes #340227.
5314 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5316         patch by:  Paul Drain
5318         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
5319         Fixes #341817.
5321 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5323         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
5324         Generate reorder maps correctly.
5325         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
5326         Scroll to the first entry from the old selection.
5327         Fixes #322992.
5329 2006-05-15  William Jon McCann  <mccann@jhu.edu>
5331         * data/ui/rhythmbox-ui.xml:
5332         * lib/rb-preferences.h:
5333         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
5334         (rb_shell_playlist_created_cb),
5335         (rb_shell_view_sidepane_changed_cb),
5336         (rb_shell_sync_sidepane_visibility),
5337         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
5338         (sidepane_visibility_changed_cb):
5339         * sources/rb-podcast-source.c:
5340         Convert sourcelist visibility to side-pane visbility.
5341         Fixes #339733
5343 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5345         * widgets/rb-header.c:
5346         * widgets/rb-header.h: Stop RBHeader from referring to itself as
5347         'player', and make it use the private data structure allocated for it.
5349 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5351         * configure.ac: enable metadata helper with dbus < 0.35.
5353 2006-05-15  James Livingston  <doclivingston@gmail.com>
5355         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
5357         * data/glade/song-info.glade:
5358         * widgets/rb-song-info.c: (rb_song_info_construct_single),
5359         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
5360         (rb_song_info_update_filesize): Add the file size into the song info
5361         window. Fixes bug 340861.
5363 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5365         * bindings/python/rhythmdb.defs:
5366         * rhythmdb/rhythmdb-query-model.c:
5367         (rhythmdb_query_model_set_property),
5368         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
5369         * rhythmdb/rhythmdb-query-model.h:
5370         Add a new method to chain query models without importing entries from
5371         the parent into the child.  This is useful when the subset of entries
5372         in the child can be more easily determined by running a query than by
5373         filtering entries from the parent.
5375         * bindings/python/rb.defs:
5376         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
5377         (rb_library_browser_set_property),
5378         (rb_library_browser_get_property), (rb_library_browser_new),
5379         (rebuild_child_model):
5380         * widgets/rb-library-browser.h:
5381         * sources/rb-auto-playlist-source.c:
5382         (rb_auto_playlist_source_constructor):
5383         * sources/rb-static-playlist-source.c:
5384         (rb_static_playlist_source_constructor):
5385         * sources/rb-browser-source.c: (rb_browser_source_constructor):
5386         Use more efficient queries for constructing the browser query model
5387         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
5388         backend to optimise the query) and run new queries rather than
5389         filtering entries from the parent.  Fixes #341402.
5391         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
5393 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5395         * configure.ac:
5396         * shell/Makefile.am:
5397         * shell/main.c: (main), (load_uri_args), (send_present_message),
5398         (unregister_dbus_handler), (handle_dbus_message),
5399         (register_dbus_handler):
5400         Add minimal support for dbus 0.31 - 0.35.
5402         * doc/reference/Makefile.am:
5403         * doc/reference/rhythmbox.types:
5404         * data/Makefile.am:
5405         * data/GNOME_Rhythmbox.server.in:
5406         * data/rhythmbox.pc.in:
5407         * remote/*:
5408         * remote/bonobo/*:
5409         Remove remaining bonobo and generic remote interface files.
5411 2006-05-14  James Livingston  <doclivingston@gmail.com>
5413         * shell/rb-shell.c: (construct_widgets):
5414         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
5415         resize the browser and queue-sidebar section of their panes, unless
5416         the other section is below the minimum size. Fixes bug 331927.
5418 2006-05-13  James Livingston  <doclivingston@gmail.com>
5420         * rhythmdb/rhythmdb-query-model.c:
5421         (rhythmdb_query_model_class_init),
5422         (rhythmdb_query_model_set_property),
5423         (rhythmdb_query_model_get_property),
5424         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
5425         (rhythmdb_query_model_insert_into_main_list),
5426         (rhythmdb_query_model_insert_into_limited_list),
5427         (rhythmdb_query_model_do_reorder),
5428         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
5429         (rhythmdb_query_model_location_sort_func),
5430         (rhythmdb_query_model_title_sort_func),
5431         (rhythmdb_query_model_album_sort_func),
5432         (rhythmdb_query_model_artist_sort_func),
5433         (rhythmdb_query_model_genre_sort_func),
5434         (rhythmdb_query_model_track_sort_func),
5435         (rhythmdb_query_model_double_ceiling_sort_func),
5436         (rhythmdb_query_model_ulong_sort_func),
5437         (rhythmdb_query_model_date_sort_func),
5438         (rhythmdb_query_model_string_sort_func):
5439         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
5440         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
5441         "data destroy" property. Fixed bug 341543.
5443         * bindings/python/rhythmdb.defs:
5444         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
5445         rhythmdb_query_model_set_sorting_order
5447         * rhythmdb/rhythmdb-property-model.c:
5448         (rhythmdb_property_model_drag_data_get):
5449         * sources/rb-import-errors-source.c:
5450         (rb_import_errors_source_constructor):
5451         * sources/rb-missing-files-source.c:
5452         (rb_missing_files_source_constructor):
5453         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
5454         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
5455         * widgets/rb-entry-view.h: adapt to the above change.
5457 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5459         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5460         (rhythmdb_tree_load):
5461         Commit loaded entries in batches, rather than individually.  
5462         More startup time reduction.
5464 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
5466         * doc/reference/Makefile.am: fix gtk-doc compilation
5468 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5470         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5471         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5472         * plugins/artdisplay/artdisplay/Loader.py:
5473         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
5474         Only call the first artist the best match when album==Unknown.
5475         Don't perform each query twice if album doesn't include "Vol N".
5476         Fix searching for compilations.  Fix blacklisting.
5477         Part of bug #307848
5479 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5481         * Makefile.am:
5482         * bindings/python/Makefile.am:
5483         * bindings/python/rb.defs:
5484         * bindings/python/rb.override:
5485         * configure.ac:
5486         * doc/reference/Makefile.am:
5487         * plugins/Makefile.am:
5488         * plugins/audioscrobbler/Makefile.am:
5489         * plugins/ipod/Makefile.am:
5490         * plugins/lirc/Makefile.am:
5491         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
5492         (impl_activate), (impl_deactivate):
5493         * plugins/sample/Makefile.am:
5494         * remote/Makefile.am:
5495         * shell/Makefile.am:
5496         * shell/main.c: (main), (main_shell_weak_ref_cb):
5497         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
5498         (rb_shell_get_property), (rb_shell_window_state_cb),
5499         (idle_hide_mainwindow), (rb_shell_set_visibility),
5500         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
5501         (rb_shell_set_song_property):
5502         * shell/rb-shell.h:
5503         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
5504         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
5505         (rb_tray_icon_get_property), (rb_tray_icon_new),
5506         (rb_tray_icon_button_press_event_cb),
5507         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
5508         (rb_tray_icon_show_window_changed_cb):
5509         * shell/rb-tray-icon.h:
5511         Remove bonobo, require DBUS.
5512         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
5513         Fixes #339720
5515 2006-05-13  James Livingston  <doclivingston@gmail.com>
5517         * bindings/python/rb.override: fix some pointer-type warnings
5519 2006-05-12  James Livingston  <doclivingston@gmail.com>
5521         * lib/rb-util.c: (rb_value_free):
5522         * lib/rb-util.h: Add function to unset and free a GValue* that was
5523         allocated in the heap.
5525         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
5526         the metadata hastable values
5527         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
5528         leak the metadata hashtable structure
5529         * metadata/rb-metadata-dbus.c:
5530         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
5531         using g_strdup and then _take_string
5533         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
5534         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
5535         stat something.
5537         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
5538         leak the encoded string
5540         * widgets/rb-property-view.c:
5541         (rb_property_view_selection_changed_cb): set some variables to have
5542         inital values, because some code paths may not set them before we use
5543         them.
5545         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
5546         don't have python warning into a debug message".
5548 2006-05-10  William Jon McCann  <mccann@jhu.edu>
5550         * data/rhythmbox.schemas: Use zero instead of null for
5551         default burn speed.  Fixes #341283.
5553 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5555         * bindings/python/rb.defs:
5556         * widgets/rb-library-browser.c:
5557         (rb_library_browser_get_property_view):
5558         * widgets/rb-library-browser.h:
5559         Add a method to get the property view for a given property.
5561         * sources/rb-browser-source.c:
5562         (rb_browser_source_cmd_choose_genre),
5563         (rb_browser_source_cmd_choose_artist),
5564         (rb_browser_source_cmd_choose_album):
5565         Change the browser selection by changing the property view selection. 
5566         Makes the selection change visible, fixing #331740.
5568 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5570         * bindings/python/rb.defs:
5571         * bindings/python/rb.override:
5572         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
5573         * shell/rb-statusbar.c: (*),
5574         * sources/rb-import-errors-source.c: (impl_get_status):
5575         * sources/rb-iradio-source.c: (impl_get_status):
5576         * sources/rb-missing-files-source.c: (impl_get_status):
5577         * sources/rb-source.c: (default_get_status),
5578         (rb_source_get_status):
5579         * sources/rb-source.h:
5580         Allow sources to provide a progress value for the status bar.
5581         Simplify status bar processing (much less polling).
5582         Consider rhythmdb busy while it's still loading the database.
5584         * daapsharing/rb-daap-connection.c: (*)
5585         * daapsharing/rb-daap-connection.h:
5586         * lib/rb-marshal.list:
5587         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5588         (rb_daap_source_init), (connection_connecting_cb),
5589         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
5590         (rb_daap_source_get_status):
5591         Provide status information for DAAP connections, and move processing
5592         of large responses into a separate thread.
5593         Fixes bugs #322020 and #338978.
5595 2006-05-09  James Livingston  <doclivingston@gmail.com>
5597         Split the artdisplay plugin into several files.
5598         Fix loader and amazon-search re-use issues.
5599         Add some better search heuristics.
5601         * configure.ac:
5602         * plugins/artdisplay/Makefile.am:
5603         * plugins/artdisplay/artdisplay.py:
5604         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5605         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5606         * plugins/artdisplay/artdisplay/Loader.py:
5607         * plugins/artdisplay/artdisplay/Makefile.am:
5608         * plugins/artdisplay/artdisplay/__init__.py:
5610 2006-05-09  James Livingston  <doclivingston@gmail.com>
5612         * sources/rb-browser-source.h: remove the _has_first_added_column
5613         stuff since it isn't actually used anywhere. Sources that want it
5614         should just add it themselves, as the library already does
5616         * bindings/python/rb.defs:
5617         * sources/rb-daap-source.c: (rb_daap_source_class_init):
5618         * sources/rb-library-source.c: (rb_library_source_class_init):
5619         * sources/rb-removable-media-source.c:
5620         (rb_removable_media_source_class_init): Remove the remanants of the
5621         above.
5623 2006-05-09  James Livingston  <doclivingston@gmail.com>
5625         * bindings/python/rb.defs:
5626         * sources/rb-browser-source.h: remove a function that was declared in
5627         the header, but not defined anywhere.
5629 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5631         * plugins/artdisplay/.cvsignore:
5632         * plugins/ipod/.cvsignore: Added.
5634 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5636         * sources/rb-auto-playlist-source.c:
5637         (rb_auto_playlist_source_new_from_xml):
5638         Fix reading of older playlist files where all three limits were
5639         specified so we take the first nonzero limit.  From #341053.
5641 2006-05-09  James Livingston  <doclivingston@gmail.com>
5643         * bindings/python/Makefile.am:
5644         * bindings/python/rb.defs:
5645         * bindings/python/rb.override: bind RBBrowserSource,
5646         RBRemovableMediaSource and RBRemovableMediamanager.
5648 2006-05-09  James Livingston  <doclivingston@gmail.com>
5650         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
5652         * data/glade/plugins.glade: make the plugin dialog look a bit better.
5653         Fixes bug 339221.
5655 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5657         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
5658         Don't explode when trying to edit a query with no limit set.
5660 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5662         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5663         Clear the should_queue flag when switching to a non-submittable entry,
5664         so we don't submit songs that played for three seconds before
5665         switching to a podcast episode.
5667         * rhythmdb/rhythmdb-query-model.c
5668         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
5669         in the drag data list.
5671 2006-05-08  James Livingston  <doclivingston@gmail.com>
5673         * lib/rb-util.c: (rb_value_array_append_data):
5674         * lib/rb-util.h: add function which is basically a combination of
5675         G_VALUE_COLLECT and g_value_array_append.
5677         * rhythmdb/rhythmdb-query-model.h:
5678         * rhythmdb/rhythmdb-query-model.c:
5679         (rhythmdb_query_model_class_init),
5680         (rhythmdb_query_model_set_property),
5681         (rhythmdb_query_model_get_property),
5682         (rhythmdb_query_model_finalize),
5683         (rhythmdb_query_model_update_limited_entries),
5684         (rhythmdb_query_model_set_sort_order),
5685         (rhythmdb_query_model_within_limit),
5686         (rhythmdb_query_model_limit_type_get_type): Make query model limits
5687         saner. Rather than having <count=N, time=N, size=N> we now have a
5688         <type, value> pair. This will also make it much easier to add new
5689         limit types in the future.
5691         * shell/rb-playlist-manager.c:
5692         (rb_playlist_manager_set_automatic_playlist),
5693         (rb_playlist_manager_cmd_edit_automatic_playlist):
5694         * sources/rb-auto-playlist-source.c:
5695         (rb_auto_playlist_source_finalize),
5696         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
5697         (_save_write_ulong), (_save_write_uint64),
5698         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
5699         (rb_auto_playlist_source_set_query),
5700         (rb_auto_playlist_source_get_query):
5701         * sources/rb-auto-playlist-source.h:
5702         * sources/rb-library-source.c:
5703         (rb_library_source_add_child_source):
5704         * sources/rb-psp-source.c: (visit_playlist_dirs):
5705         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
5706         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
5707         * widgets/rb-query-creator.h: Adapt to the above change.
5709 2006-05-08  James Livingston  <doclivingston@gmail.com>
5711         * shell/rb-playlist-manager.c:
5712         (rb_playlist_manager_cmd_edit_automatic_playlist):
5713         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
5714         (rb_auto_playlist_source_set_query),
5715         (rb_auto_playlist_source_get_query): copy the query in the _get method
5716         and free it in things calling that. Fixes a crasher.
5718 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5720         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5721         Make entries on newly mounted volumes visible immediately, hiding them
5722         later if they turn out to be missing.  Fixes #340068.
5724 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5726         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
5727         Ignore zip files and ignore errors for files we've decided to ignore.
5729 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5731         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
5732         Add missing }, should fix #340844.
5734 2006-05-06  James Livingston  <doclivingston@gmail.com>
5736         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
5737         typo.
5739 2006-05-06  James Livingston  <doclivingston@gmail.com>
5741         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
5742         that we work with libnotify >= 0.4
5744 2006-05-06  James Livingston  <doclivingston@gmail.com>
5746         patch by: Joe Barnett  <thejoe@gmail.com>
5748         * configure.ac: check if we're using a version of libgpod that
5749         supports the Motorola ROKR
5751         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
5752         for the db path, if we using the newer version.
5754         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
5756 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5758         * rhythmdb/rhythmdb-query-model.c:
5759         (rhythmdb_query_model_drag_data_get):
5760         Use playback URI, not location, for drag data.  Fixes #322597.
5762 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
5764         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
5766 2006-05-03  James Livingston  <doclivingston@gmail.com>
5768         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
5769         (rb_add_id3_tagger), (rb_metadata_save):
5770         Set the tags on the tagging element when it is
5771         created, not during pipeline creation - which is required for
5772         dynamically created elements.
5774         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
5775         support for using the "vorbistag" element to re-tag ogg vorbis files.
5776         Fixes bug 339878.
5778 2006-05-03  James Livingston  <doclivingston@gmail.com>
5780         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
5782         * plugins/artdisplay/artdisplay.py:
5783         - Fix small bug callback of data loader getting overwritten on fast
5784         connections.
5785         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
5786         Jonathan Matthew)
5787         - Fix Rhythmbox UI blocking while loading/searching cover art
5788         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
5789         - Initial approach to allow additional "art search engines"
5790         - Further modularization in a couple of places
5791         - Minor fixes for empty entries (iradio, album, artist etc.)
5793 2006-05-03  James Livingston  <doclivingston@gmail.com>
5795         * shell/rb-playlist-manager.c:
5796         (rb_playlist_manager_playlist_entries_changed),
5797         (rb_playlist_manager_set_source): don't show the edit/delete/rename
5798         options for non-local sources, rather than showing disabled ones.
5800         * sources/rb-library-source.c: (add_child_sources_idle),
5801         (rb_library_source_constructor), (rb_library_source_new),
5802         (rb_library_source_library_location_changed),
5803         (rb_library_source_add_child_source),
5804         (rb_library_source_sync_child_sources): Create "child library" sources
5805         when the user has multiple library locations set. Fixes bug 100552.
5807 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5809         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
5810         * plugins/sample/sample.rb-plugin.desktop.in:
5811         Finish changing 'Author' to 'Authors'
5812         
5813         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
5814         (rhythmdb_entry_import_error_get_type):
5815         Implement get_playback_uri for import errors (returns NULL)
5817         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
5818         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
5819         entry, rather than doing entry type checks.
5821 2006-05-02  James Livingston  <doclivingston@gmail.com>
5823         patch from Alessandro Decina  <alessandro@nnva.org>
5825         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
5826         the signal emission in the case of fatal-on-init errors. From bug
5827         322268.
5829 2006-05-02  James Livingston  <doclivingston@gmail.com>
5831         * rhythmdb/rhythmdb.h:
5832         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
5833         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
5834         (rhythmdb_entry_podcast_post_get_type),
5835         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
5836         virtual function to entry-types for getting the playback URI. From bug
5837         330226.
5839         * backends/gstreamer/rb-encoder-gst.c:
5840         (create_pipeline_and_source), (extract_track):
5841         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
5842         to get the URI.
5844 2006-05-02  James Livingston  <doclivingston@gmail.com>
5846         patch by: Brian Cameron  <brian.cameron@sun.com>
5848         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
5849         340337.
5851 2006-05-01  William Jon McCann  <mccann@jhu.edu>
5853         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
5854         instead of clear.  Use regex matching to strip "disc N"
5855         from album.  Match titles in ProductName.  Perform
5856         fallback queries including various artist compilations.
5857         Include "us" locale.  Improve queries when artist or album
5858         is unknown.  Use medium size image if large is unavailable.
5860         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
5861         William Jon McCann  <mccann@jhu.edu>
5862         
5863 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5865         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
5866         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
5867         (conjunctive_query): Sanity check.
5868         (evaluate_conjunctive_subquery): 
5869         Don't return TRUE immediately when a relative-time query criterion
5870         matches.  Fixes #339972.
5872 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5874         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
5875         Don't crash if primary or secondary are NULL.
5877 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5879         * doc/reference/Makefile.am: fix gtk-doc build yet again
5881 2006-04-28  James Livingston  <doclivingston@gmail.com>
5883         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
5884         python console. Fixes bug 339934.
5886 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5888         * rhythmdb/rhythmdb-property-model.c:
5889         (rhythmdb_property_model_drag_data_get):
5890         When creating uri list drag data, create a new query model based on
5891         the query model the property model is attached to.  Makes the
5892         resulting query use the right entry type and include the upstream
5893         query criteria.  Fixes half of #327540.
5895 2006-04-27  James Livingston  <doclivingston@gmail.com>
5897         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
5898         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
5899         build fixes.
5901 2006-04-27  James Livingston  <doclivingston@gmail.com>
5903         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
5905 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5907         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
5908         (rb_playlist_manager_save_data),
5909         (rb_playlist_manager_save_playlists):
5910         * shell/rb-playlist-manager.h:
5911         * shell/rb-shell.c: (rb_shell_sync_state),
5912         (idle_save_playlist_manager):
5913         Remove a bit more threading insanity from the playlist manager.
5915 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5917         * shell/rb-playlist-manager.c: 
5918         * shell/rb-playlist-manager.h:
5919         Remove dead code, add gtk-doc, remove threading insanity (mostly).
5920         
5921         * shell/rb-shell.c: (rb_shell_sync_state),
5922         (idle_save_playlist_manager), (construct_sources),
5923         (rb_shell_select_source), (rb_shell_sync_party_mode):
5924         Adjustments for above changes.
5926 2006-04-26  William Jon McCann  <mccann@jhu.edu>
5928         * sources/rb-browser-source.c (impl_browser_toggled):
5929         Reset browser when hidden.  Fixes #339617.
5931 2006-04-26  James Livingston  <doclivingston@gmail.com>
5933         * backends/Makefile.am:
5934         * backends/gstreamer/Makefile.am: work again with separated
5935         built-roots
5937 2006-04-26  James Livingston  <doclivingston@gmail.com>
5939         * shell/rb-removable-media-manager.c:
5940         (rb_removable_media_manager_set_uimanager): fix compilation with
5941         -Werror and --enable-track-transfer.
5943 2006-04-26  James Livingston  <doclivingston@gmail.com>
5945         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
5946         implementing class. In theory allows alternate player implementations
5947         to be selected at run-time rather than compile-time. Fixes bug 338667.
5949         * Makefile.am:
5950         * backends/Makefile.am:
5951         * backends/gstreamer/Makefile.am:
5952         * backends/gstreamer/rb-player-gst.h:
5953         * backends/rb-player.c: (rb_player_interface_init),
5954         (rb_player_get_type), (rb_player_open), (rb_player_opened),
5955         (rb_player_close), (rb_player_play), (rb_player_pause),
5956         (rb_player_playing), (rb_player_set_volume),
5957         (rb_player_get_volume), (rb_player_set_replaygain),
5958         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
5959         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
5960         (_rb_player_emit_buffering), (_rb_player_emit_error),
5961         (_rb_player_emit_tick), (rb_player_error_quark):
5962         * player/Makefile.am:
5963         * player/rb-player-gst.c: (rb_player_gst_class_init),
5964         (rb_player_init), (tick_timeout), (rb_player_gst_init),
5965         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
5966         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
5967         (process_tag), (found_tag_cb), (buffering_cb),
5968         (rb_player_gst_bus_cb), (rb_player_gst_construct),
5969         (rb_player_gst_new):
5970         * player/rb-player.h:
5971         * shell/Makefile.am:
5972         * sources/rb-audiocd-source.c:
5973         * widgets/Makefile.am:
5974         * widgets/rb-header.c: (rb_header_class_init):
5976 2006-04-26  James Livingston  <doclivingston@gmail.com>
5978         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
5979         don't try to download an episode if it couldn't be parsed. Fixes bug
5980         339712.
5982         * shell/rb-removable-media-manager.c:
5983         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
5984         Library" option when track transfer is disabled. Fixes bug 339728.
5986 2006-04-26  James Livingston  <doclivingston@gmail.com>
5988         * data/ui/Makefile.am:
5989         * data/ui/daap-ui.xml:
5990         * data/ui/rhythmbox-ui.xml:
5991         * sources/rb-daap-source.c: (rb_daap_sources_init),
5992         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
5993         way that the ipod ui is. Fixes bug 339743.
5995 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5997         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
5998         (process_added_entries_cb), (process_deleted_entries_cb),
5999         (rhythmdb_commit_internal): 
6000         Combine the idle functions to emit entry-added and entry-deleted,
6001         and combine as many invocations of same as possible.  Another
6002         significant reduction in startup time.
6003         
6004         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
6005         Delay the next call to rhythmdb_process_events if the queue is
6006         empty or if we can't process any of the events in the queue because
6007         the database is read only.
6009         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
6011 2006-04-25  William Jon McCann  <mccann@jhu.edu>
6013         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
6015         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
6016         Don't special case errors quite so much.
6018 2006-04-25  William Jon McCann  <mccann@jhu.edu>
6020         * data/rhythmbox.schemas: Remove default speed.
6022         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
6023         Add n-c-b 2.15 support.  Make the default speed to slowest since
6024         that is all that works reliably.
6026 2006-04-25  William Jon McCann  <mccann@jhu.edu>
6028         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
6029         Fix compiler error from last commit.
6031 2006-04-25  James Livingston  <doclivingston@gmail.com>
6033         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
6034         transcoding-related issues. From bug 322268.
6036         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
6037         don't emit the signal, since the object is being finalised, which os a
6038         Bad Thing To Do.
6040         (profile_bin_find_encoder), (get_profile_from_mime_type),
6041         (transcode_track): find the encoding element by iterating looking for
6042         element in the class Codec/Encoder/Audio rather than the one named
6043         "enc".
6045 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6047         * shell/rb-shell-player.xml:
6048         * shell/rb-shell.xml:
6049         Add signal argument information.  
6050         Patch by Tim Moloney  <t.moloney@verizon.net>
6052         * shell/rb-shell.c: (rb_shell_window_state_cb):
6053         Use the right value for the visibility_changed signal.  Most of the
6054         time, anyway.
6056 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6058         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
6059         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
6060         (impl_create_configure_dialog):
6061         * data/glade/audioscrobbler-prefs.glade:
6062         * shell/rb-audioscrobbler.c (*):
6063         * lib/rb-preferences.h:
6064         * data/rhythmbox.schemas:
6065         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
6066         Add status information (# tracks submitted, # queued, last submit
6067         time, result of last submission) to the plugin config window.
6068         Remove 'enabled' setting, since it's easier to just disable the
6069         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
6070         nonexistant (so far) 'last.fm streaming' plugin.
6071         
6072         * help/C/rhythmbox.xml: Update documentation for last.fm profile
6073         plugin
6075         Fixes some of #325848.  We still don't provide a way to view the
6076         submission queue.
6078 2006-04-25  James Livingston  <doclivingston@gmail.com>
6080         patch by: Anders Petersson  <demitar@worldforge.org>
6082         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
6083         the YY-MM-DD format.
6085 2006-04-23  James Livingston  <doclivingston@gmail.com>
6087         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
6088         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
6089         * bindings/python/override_common.h:
6090         * bindings/python/rb.override: python binding fixes
6092 2006-04-23  James Livingston  <doclivingston@gmail.com>
6094         * shell/rb-statusbar.c: (rb_statusbar_finalize),
6095         (rb_statusbar_sync_with_source),
6096         (rb_statusbar_source_status_changed_cb): do the sync in an idle
6097         callback, rather than immediately every time. Takes ~5% off my warm-cache
6098         startup time.
6100         * bindings/python/rhythmdb.defs: fix the types using for
6101         RhythmDBEntryTypes.
6103 2006-04-22  James Livingston  <doclivingston@gmail.com>
6105         * data/ui/rhythmbox-ui.xml:
6106         * shell/rb-shell.c:
6107         * sources/rb-daap-source.c: (rb_daap_source_class_init),
6108         (remove_source), (rb_daap_sources_init),
6109         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
6110         (rb_daap_source_disconnect):
6111         * sources/rb-source.c: (rb_source_class_init),
6112         (rb_source_deactivate):
6113         * sources/rb-source.h: move the "disconnect" functionality from into
6114         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
6116 2006-04-22  James Livingston  <doclivingston@gmail.com>
6118         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
6119         actually get the translated strings for browser headers (they were
6120         already marked as translatable). Fixes bug 339380.
6122 2006-04-22  James Livingston  <doclivingston@gmail.com>
6124         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
6125         submission timeout when the object is finalised.
6127         * bindings/python/Makefile.am:
6128         * bindings/python/rb.defs:
6129         * bindings/python/rb.override:
6130         * bindings/python/rhythmdb.defs: fix some python binding stuff.
6132         * widgets/rb-library-browser.c:
6133         (rb_library_browser_construct_query), (rebuild_output_model),
6134         (rebuild_child_model):
6135         * widgets/rb-library-browser.h: change from GPtrArray to
6136         RhythmDBQuery (which in C is the same thing).
6138 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6140         * shell/rb-shell.c: (rb_shell_get_song_properties):
6141         Don't try to include entry-type (or anything else not easily
6142         marshallable) in the song properties hash table.
6144         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
6146         * sources/rb-playlist-source.c: (rb_playlist_source_init),
6147         (rb_playlist_source_constructor): Fix entry-type initialization as
6148         with previous commit.
6150 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6152         * sources/rb-iradio-source.c: (rb_iradio_source_init),
6153         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
6154         * sources/rb-podcast-source.c: (rb_podcast_source_init),
6155         (rb_podcast_source_constructor):
6156         Set default values for entry-type after base class construction,
6157         rather than in _init, because gobject will set the entry-type property
6158         to NULL after _init if no value is provided.  Fixes #339206.
6160 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
6162         patch by: Gunnar Steinn Magnusson
6164         * COPYING:
6165         * backends/gstreamer/rb-encoder-gst.c:
6166         * backends/gstreamer/rb-encoder-gst.h:
6167         * backends/rb-encoder.c:
6168         * backends/rb-encoder.h:
6169         * bindings/python/override_common.c:
6170         * bindings/python/override_common.h:
6171         * daapsharing/rb-daap-connection.c:
6172         * daapsharing/rb-daap-connection.h:
6173         * daapsharing/rb-daap-dialog.c:
6174         * daapsharing/rb-daap-dialog.h:
6175         * daapsharing/rb-daap-mdns-browser-avahi.c:
6176         * daapsharing/rb-daap-mdns-browser-howl.c:
6177         * daapsharing/rb-daap-mdns-browser.h:
6178         * daapsharing/rb-daap-mdns-publisher-avahi.c:
6179         * daapsharing/rb-daap-mdns-publisher-howl.c:
6180         * daapsharing/rb-daap-mdns-publisher.h:
6181         * daapsharing/rb-daap-share.c:
6182         * daapsharing/rb-daap-share.h:
6183         * daapsharing/rb-daap-sharing.c:
6184         * daapsharing/rb-daap-sharing.h:
6185         * daapsharing/rb-daap-src.c:
6186         * daapsharing/rb-daap-src.h:
6187         * daapsharing/rb-daap-structure.c:
6188         * daapsharing/rb-daap-structure.h:
6189         * help/C/fdl-appendix.xml:
6190         * help/es/es.po:
6191         * help/ja/fdl-appendix.xml:
6192         * iradio/rb-new-station-dialog.c:
6193         * iradio/rb-new-station-dialog.h:
6194         * iradio/rb-station-properties-dialog.c:
6195         * iradio/rb-station-properties-dialog.h:
6196         * lib/mkdtemp.c:
6197         * lib/mkdtemp.h:
6198         * lib/rb-cut-and-paste-code.c:
6199         * lib/rb-cut-and-paste-code.h:
6200         * lib/rb-debug.c:
6201         * lib/rb-debug.h:
6202         * lib/rb-file-helpers.c:
6203         * lib/rb-file-helpers.h:
6204         * lib/rb-glade-helpers.c:
6205         * lib/rb-glade-helpers.h:
6206         * lib/rb-preferences.h:
6207         * lib/rb-proxy-config.c:
6208         * lib/rb-stock-icons.c:
6209         * lib/rb-stock-icons.h:
6210         * lib/rb-thread.c:
6211         * lib/rb-thread.h:
6212         * lib/rb-tree-dnd.c:
6213         * lib/rb-tree-dnd.h:
6214         * lib/rb-util.c:
6215         * lib/rb-util.h:
6216         * metadata/rb-metadata-common.c:
6217         * metadata/rb-metadata-dbus-client.c:
6218         * metadata/rb-metadata-dbus-service.c:
6219         * metadata/rb-metadata-dbus.c:
6220         * metadata/rb-metadata-dbus.h:
6221         * metadata/rb-metadata-gst.c:
6222         * metadata/rb-metadata.h:
6223         * metadata/sj-error.c:
6224         * metadata/sj-error.h:
6225         * metadata/sj-metadata-musicbrainz.c:
6226         * metadata/sj-metadata-musicbrainz.h:
6227         * metadata/sj-metadata.c:
6228         * metadata/sj-metadata.h:
6229         * metadata/sj-structures.c:
6230         * metadata/sj-structures.h:
6231         * metadata/test-metadata.c:
6232         * player/rb-player-gst.c:
6233         * player/rb-player.h:
6234         * player/rb-recorder-gst.c:
6235         * player/rb-recorder.h:
6236         * plugins/artdisplay/artdisplay.py:
6237         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
6238         * plugins/ipod/rb-ipod-plugin.c:
6239         * plugins/lirc/rb-lirc-plugin.c:
6240         * plugins/pythonconsole/pythonconsole.py:
6241         * plugins/rb-module.c:
6242         * plugins/rb-module.h:
6243         * plugins/rb-plugin-manager.c:
6244         * plugins/rb-plugin-manager.h:
6245         * plugins/rb-plugin.c:
6246         * plugins/rb-plugin.h:
6247         * plugins/rb-plugins-engine.c:
6248         * plugins/rb-plugins-engine.h:
6249         * plugins/rb-python-module.c:
6250         * plugins/rb-python-module.h:
6251         * plugins/rb-python-plugin.c:
6252         * plugins/rb-python-plugin.h:
6253         * plugins/sample/rb-sample-plugin.c:
6254         * po/de.po:
6255         * po/el.po:
6256         * po/en_CA.po:
6257         * po/eu.po:
6258         * po/fi.po:
6259         * po/fr.po:
6260         * po/it.po:
6261         * po/ja.po:
6262         * po/mk.po:
6263         * po/pt_BR.po:
6264         * po/ru.po:
6265         * podcast/rb-feed-podcast-properties-dialog.c:
6266         * podcast/rb-feed-podcast-properties-dialog.h:
6267         * podcast/rb-new-podcast-dialog.c:
6268         * podcast/rb-new-podcast-dialog.h:
6269         * podcast/rb-podcast-manager.c:
6270         * podcast/rb-podcast-manager.h:
6271         * podcast/rb-podcast-parse.c:
6272         * podcast/rb-podcast-parse.h:
6273         * podcast/rb-podcast-properties-dialog.c:
6274         * podcast/rb-podcast-properties-dialog.h:
6275         * remote/bonobo/libmain.c:
6276         * remote/bonobo/rb-nautilus-context-menu.c:
6277         * remote/bonobo/rb-nautilus-context-menu.h:
6278         * remote/bonobo/rb-remote-bonobo.c:
6279         * remote/bonobo/rb-remote-bonobo.h:
6280         * remote/rb-remote-client-proxy.c:
6281         * remote/rb-remote-client-proxy.h:
6282         * remote/rb-remote-common.c:
6283         * remote/rb-remote-common.h:
6284         * remote/rb-remote-proxy.c:
6285         * remote/rb-remote-proxy.h:
6286         * rhythmdb/gsequence.c:
6287         * rhythmdb/gsequence.h:
6288         * rhythmdb/rb-refstring.c:
6289         * rhythmdb/rb-refstring.h:
6290         * rhythmdb/rhythmdb-gda.c:
6291         * rhythmdb/rhythmdb-gda.h:
6292         * rhythmdb/rhythmdb-private.h:
6293         * rhythmdb/rhythmdb-property-model.c:
6294         * rhythmdb/rhythmdb-property-model.h:
6295         * rhythmdb/rhythmdb-query-model.c:
6296         * rhythmdb/rhythmdb-query-model.h:
6297         * rhythmdb/rhythmdb-query-results.c:
6298         * rhythmdb/rhythmdb-query-results.h:
6299         * rhythmdb/rhythmdb-tree.c:
6300         * rhythmdb/rhythmdb-tree.h:
6301         * rhythmdb/rhythmdb.c:
6302         * rhythmdb/rhythmdb.h:
6303         * shell/main.c:
6304         * shell/rb-audioscrobbler.c:
6305         * shell/rb-audioscrobbler.h:
6306         * shell/rb-history.c:
6307         * shell/rb-history.h:
6308         * shell/rb-play-order-linear-loop.c:
6309         * shell/rb-play-order-linear-loop.h:
6310         * shell/rb-play-order-linear.c:
6311         * shell/rb-play-order-linear.h:
6312         * shell/rb-play-order-queue.c:
6313         * shell/rb-play-order-queue.h:
6314         * shell/rb-play-order-random-by-age-and-rating.c:
6315         * shell/rb-play-order-random-by-age-and-rating.h:
6316         * shell/rb-play-order-random-by-age.c:
6317         * shell/rb-play-order-random-by-age.h:
6318         * shell/rb-play-order-random-by-rating.c:
6319         * shell/rb-play-order-random-by-rating.h:
6320         * shell/rb-play-order-random-equal-weights.c:
6321         * shell/rb-play-order-random-equal-weights.h:
6322         * shell/rb-play-order-random.c:
6323         * shell/rb-play-order-random.h:
6324         * shell/rb-play-order-shuffle.c:
6325         * shell/rb-play-order-shuffle.h:
6326         * shell/rb-play-order.c:
6327         * shell/rb-play-order.h:
6328         * shell/rb-playlist-manager.c:
6329         * shell/rb-playlist-manager.h:
6330         * shell/rb-removable-media-manager.c:
6331         * shell/rb-removable-media-manager.h:
6332         * shell/rb-shell-clipboard.c:
6333         * shell/rb-shell-clipboard.h:
6334         * shell/rb-shell-player.c:
6335         * shell/rb-shell-player.h:
6336         * shell/rb-shell-preferences.c:
6337         * shell/rb-shell-preferences.h:
6338         * shell/rb-shell.c:
6339         * shell/rb-shell.h:
6340         * shell/rb-source-header.c:
6341         * shell/rb-source-header.h:
6342         * shell/rb-statusbar.c:
6343         * shell/rb-statusbar.h:
6344         * shell/rb-tray-icon.c:
6345         * shell/rb-tray-icon.h:
6346         * sources/rb-audiocd-source.c:
6347         * sources/rb-audiocd-source.h:
6348         * sources/rb-auto-playlist-source.c:
6349         * sources/rb-auto-playlist-source.h:
6350         * sources/rb-browser-source.c:
6351         * sources/rb-browser-source.h:
6352         * sources/rb-daap-source.c:
6353         * sources/rb-daap-source.h:
6354         * sources/rb-generic-player-source.c:
6355         * sources/rb-generic-player-source.h:
6356         * sources/rb-import-errors-source.c:
6357         * sources/rb-import-errors-source.h:
6358         * sources/rb-ipod-source.c:
6359         * sources/rb-ipod-source.h:
6360         * sources/rb-iradio-source.c:
6361         * sources/rb-iradio-source.h:
6362         * sources/rb-library-source.c:
6363         * sources/rb-library-source.h:
6364         * sources/rb-missing-files-source.c:
6365         * sources/rb-missing-files-source.h:
6366         * sources/rb-nokia770-source.c:
6367         * sources/rb-nokia770-source.h:
6368         * sources/rb-play-queue-source.c:
6369         * sources/rb-play-queue-source.h:
6370         * sources/rb-playlist-source-recorder.c:
6371         * sources/rb-playlist-source-recorder.h:
6372         * sources/rb-playlist-source.c:
6373         * sources/rb-playlist-source.h:
6374         * sources/rb-playlist-xml.h:
6375         * sources/rb-podcast-source.c:
6376         * sources/rb-podcast-source.h:
6377         * sources/rb-psp-source.c:
6378         * sources/rb-psp-source.h:
6379         * sources/rb-removable-media-source.c:
6380         * sources/rb-removable-media-source.h:
6381         * sources/rb-source.c:
6382         * sources/rb-source.h:
6383         * sources/rb-sourcelist-model.c:
6384         * sources/rb-sourcelist-model.h:
6385         * sources/rb-sourcelist.c:
6386         * sources/rb-sourcelist.h:
6387         * sources/rb-static-playlist-source.c:
6388         * sources/rb-static-playlist-source.h:
6389         * tests/test-cd.c:
6390         * tests/test-cmdline.c:
6391         * tests/test-rhythmdb-indexing.c:
6392         * tests/test-rhythmdb-query.c:
6393         * tests/test-rhythmdb-simple.c:
6394         * tests/test-rhythmdb-tree-deserialization.c:
6395         * tests/test-rhythmdb-tree-serialization.c:
6396         * tests/test-rhythmdb-view.c:
6397         * widgets/bacon-volume.c:
6398         * widgets/bacon-volume.h:
6399         * widgets/disclosure-widget.c:
6400         * widgets/disclosure-widget.h:
6401         * widgets/eel-gconf-extensions.c:
6402         * widgets/eel-gconf-extensions.h:
6403         * widgets/eggtrayicon.c:
6404         * widgets/eggtrayicon.h:
6405         * widgets/libsexy/sexy-icon-entry.c:
6406         * widgets/libsexy/sexy-icon-entry.h:
6407         * widgets/rb-cell-renderer-pixbuf.c:
6408         * widgets/rb-cell-renderer-pixbuf.h:
6409         * widgets/rb-cell-renderer-rating.c:
6410         * widgets/rb-cell-renderer-rating.h:
6411         * widgets/rb-dialog.c:
6412         * widgets/rb-dialog.h:
6413         * widgets/rb-druid.c:
6414         * widgets/rb-druid.h:
6415         * widgets/rb-entry-view.c:
6416         * widgets/rb-entry-view.h:
6417         * widgets/rb-header.c:
6418         * widgets/rb-header.h:
6419         * widgets/rb-library-browser.c:
6420         * widgets/rb-library-browser.h:
6421         * widgets/rb-property-view.c:
6422         * widgets/rb-property-view.h:
6423         * widgets/rb-query-creator-private.h:
6424         * widgets/rb-query-creator-properties.c:
6425         * widgets/rb-query-creator.c:
6426         * widgets/rb-query-creator.h:
6427         * widgets/rb-rating-helper.c:
6428         * widgets/rb-rating-helper.h:
6429         * widgets/rb-rating.c:
6430         * widgets/rb-rating.h:
6431         * widgets/rb-search-entry.c:
6432         * widgets/rb-search-entry.h:
6433         * widgets/rb-song-display-box.c:
6434         * widgets/rb-song-display-box.h:
6435         * widgets/rb-song-info.c:
6436         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
6438 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
6440         patch by: Gareth Murphy, James Livingston
6442         * bindings/python/rb.defs:
6443         * configure.ac:
6444         * plugins/Makefile.am:
6445         * plugins/artdisplay/Makefile.am:
6446         * plugins/artdisplay/artdisplay.py:
6447         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
6448         * plugins/rb-python-module.c: (rb_python_module_init_python):
6449         * shell/rb-shell.c: (construct_widgets),
6450         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
6451         (rb_shell_add_widget), (rb_shell_remove_widget),
6452         (rb_shell_ui_location_get_type):
6453         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
6455 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6457         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
6458         Fix build failure caused by the combination of the previous two
6459         commits.
6461 2006-04-20  James Livingston  <doclivingston@gmail.com>
6463         patch by: Christophe Fergeau  <teuf@gnome.org> to make
6464         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
6465         table to the entry types, which will allow us to get rid of some of
6466         the "if entry type == WHATEVER" code everywhere. From bug 
6468         * bindings/python/rb.defs:
6469         * bindings/python/rb.override:
6470         * bindings/python/rhythmdb.defs:
6471         * bindings/python/rhythmdb.override:
6472         * daapsharing/rb-daap-connection.c:
6473         (rb_daap_connection_class_init), (rb_daap_connection_init),
6474         (rb_daap_connection_set_property),
6475         (rb_daap_connection_get_property):
6476         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
6477         * podcast/rb-podcast-manager.c:
6478         (rb_podcast_manager_entry_downloaded),
6479         (rb_podcast_manager_subscribe_feed),
6480         (rb_podcast_manager_db_entry_added_cb),
6481         (rb_podcast_manager_db_entry_deleted_cb),
6482         (rb_podcast_manager_insert_feed):
6483         * rhythmdb/rhythmdb-private.h:
6484         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
6485         (conjunctive_query):
6486         * rhythmdb/rhythmdb.c: (sync_entry_changed),
6487         (process_added_entries_cb), (rhythmdb_entry_allocate),
6488         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
6489         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
6490         (rhythmdb_process_metadata_load),
6491         (rhythmdb_process_file_created_or_modified), (action_thread_main),
6492         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
6493         (write_encoded_gvalue), (read_encoded_property),
6494         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
6495         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
6496         (rhythmdb_entry_iradio_get_type),
6497         (rhythmdb_entry_podcast_post_get_type),
6498         (rhythmdb_entry_podcast_feed_get_type),
6499         (rhythmdb_entry_import_error_get_type),
6500         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
6501         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
6502         (rhythmdb_entry_type_get_type):
6503         * rhythmdb/rhythmdb.h:
6504         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
6505         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
6506         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
6507         (rb_shell_player_entry_activated_cb), (info_available_cb):
6508         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
6509         (rb_shell_register_entry_type_for_source),
6510         (rb_shell_playing_from_queue_cb),
6511         (rb_shell_playing_entry_changed_cb),
6512         (rb_shell_player_stream_song_changed_cb),
6513         (rb_shell_jump_to_entry_with_source),
6514         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6515         (handle_playlist_entry_cb), (rb_shell_load_uri):
6516         * shell/rb-shell.h:
6517         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
6518         * sources/rb-browser-source.c: (rb_browser_source_class_init),
6519         (rb_browser_source_init), (rb_browser_source_set_property),
6520         (rb_browser_source_get_property):
6521         * sources/rb-ipod-source.c: (impl_paste):
6522         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
6523         (rb_iradio_source_init), (rb_iradio_source_set_property),
6524         (rb_iradio_source_get_property):
6525         * sources/rb-library-source.c: (impl_paste):
6526         * sources/rb-missing-files-source.c:
6527         (rb_missing_files_source_class_init),
6528         (rb_missing_files_source_init),
6529         (rb_missing_files_source_set_property),
6530         (rb_missing_files_source_get_property):
6531         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
6532         (rb_playlist_source_init), (rb_playlist_source_set_property),
6533         (rb_playlist_source_get_property):
6534         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
6535         (rb_podcast_source_init), (rb_podcast_source_set_property),
6536         (rb_podcast_source_get_property):
6537         * sources/rb-static-playlist-source.c:
6538         (rb_static_playlist_source_add_location_internal):
6540 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6542         * rhythmdb/rhythmdb.c: (rhythmdb_init),
6543         (rhythmdb_add_import_error_entry),
6544         (entry_volume_mounted_or_unmounted),
6545         (rhythmdb_volume_unmounted_cb):
6546         When a volume is unmounted, delete import errors for files stored on
6547         it.  When a volume is mounted, stat all tracks stored on it, rather
6548         than assuming they're present.  Fixes #339023.
6550 2006-04-20  James Livingston  <doclivingston@gmail.com>
6552         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
6553         browser visibility for non-gconf-using sources (like playlists). Part
6554         of bug 118862.
6556         * shell/rb-source-header.c: (sourcestate_free),
6557         (rb_source_header_init), (rb_source_header_finalize),
6558         (rb_source_header_source_weak_destroy_cb): switch from storing the
6559         search string to storing a "source state" structure
6561         (rb_source_header_set_source_internal),  (rb_source_state_sync),
6562         (rb_source_header_search_cb), (rb_source_header_clear_search),
6563         (rb_source_header_disclosure_toggled_cb): as well as storing the
6564         string, stop the visibility of the source's browser.
6566 2006-04-20  James Livingston  <doclivingston@gmail.com>
6568         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
6569         library entries back into the library. Fixes bug 339065.
6571 2006-04-20  James Livingston  <doclivingston@gmail.com>
6573         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
6574         only exists in glib 2.10.
6576 2006-04-20  James Livingston  <doclivingston@gmail.com>
6578         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
6579         Solaris. From bug 335318.
6581         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
6582         * shell/rb-audioscrobbler.c:
6583         * sources/rb-psp-source.c:
6585 2006-04-20  James Livingston  <doclivingston@gmail.com>
6587         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
6588         issues for some people.
6590         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
6591         accidental s/suffix/prefix/
6593         * sources/rb-auto-playlist-source.c:
6594         (rb_auto_playlist_source_set_query): fix the invered logic preventing
6595         you from sorting playlists which aren't limited by time.
6597 2006-04-19  James Livingston  <doclivingston@gmail.com>
6599         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
6600         duration or bitrate back to the file, since they are properties of the
6601         audio data, not tags we can set.
6603 2006-04-19  James Livingston  <doclivingston@gmail.com>
6605         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
6606         of libtool, to fix builds which are using a different version. Fixes
6607         bug 338996.
6609         * shell/Makefile.am:
6611 2006-04-19  James Livingston  <doclivingston@gmail.com>
6613         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
6614         to sync data to a file which is uneditable.
6616 2006-04-19  James Livingston  <doclivingston@gmail.com>
6618         patch by: Gavin Stewart  <gavin@brokentrain.net>
6620         * data/glade/playlist-save.glade:
6621         * data/glade/Makefile.am:
6622         * po/POTFILES.in: add the playlist saving dialog.
6624         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
6625         (export_set_extension_cb), (filter_get_export_filter_label),
6626         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
6627         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
6628         formats (PLS and M3U at the moment). Fixes bug 316295.
6630 2006-04-19  James Livingston  <doclivingston@gmail.com>
6632         * shell/rb-playlist-manager.c:
6633         (rb_playlist_manager_set_source_internal): don't let you edit remove
6634         auto playlists.
6636         * sources/rb-auto-playlist-source.c:
6637         (rb_auto_playlist_source_set_query): correctly handle time-limited
6638         playlists.
6640 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6642         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
6644         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
6645         Don't crash if the queue file contains no newlines.
6646         Fixes #338924.
6648 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6650         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
6651         condition
6653 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6655         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
6656         case. Moreover, they may not exist yet, so take that into account when
6657         generating the iPod filename.
6659 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
6661         * sources/rb-ipod-source.c: added support for drag and drop from the
6662         library to the iPod (only enabled if --enable-track-transfer was
6663         passed to configure)
6665 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
6667         * configure.ac:
6668         * lib/rb-marshal.list:
6669         * lib/rb-util.c: 
6670         * lib/rb-util.h:
6671         * plugins/Makefile.am:
6672         * plugins/ipod/Makefile.am:
6673         * plugins/ipod/ipod.rb-plugin.desktop.in:
6674         * plugins/ipod/rb-ipod-plugin.c: 
6675         * plugins/rb-plugin.h:
6676         * shell/Makefile.am:
6677         * shell/rb-removable-media-manager.c:
6678         * shell/rb-removable-media-manager.h:
6679         * shell/rb-shell.c: 
6680         * sources/Makefile.am:
6681         * sources/rb-ipod-source.c: 
6682         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
6683         various iPod related files should be moved to plugins/ipod/ now...
6685 2006-04-17  James Livingston  <doclivingston@gmail.com>
6687         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
6688         and "vic".
6690         * help/C/figures/rb-iradio-main.png:
6691         * help/C/figures/rb-notification-area-menu.png:
6692         * help/C/figures/rb-notification-window.png:
6693         * help/C/figures/rb-notification-zone.png:
6694         * help/C/figures/rb-podcast-main.png:
6695         * help/C/figures/rb-statusbar.png:
6696         * help/C/figures/rb-volume-changer.png:
6697         * help/C/figures/rb-window-small.png:
6698         * help/C/figures/rb-window.png:
6699         * help/C/rhythmbox.xml:
6701 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6703         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
6704         more obviously.
6706         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6707         (make_undecodable_error), (rb_metadata_gst_error_cb),
6708         (rb_metadata_gst_new_decoded_pad_cb),
6709         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
6710         Ignore really small files (<4kB) for which typefinding fails.
6711         Always link decoded pads from decodebin to fakesink.
6712         Shut the pipeline down by posting an error on the bus when decodebin
6713         emits unknown-type signals.  Fixes bug #338062.
6715 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6717         * shell/rb-shell.c: (rb_shell_load_uri):
6718         Fix glaring mistakes in previous commit: actually pass arguments to
6719         rb_debug, and specify the right entry type when adding a new iradio
6720         station so we don't try to add local playlist files to the library.
6722 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6724         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
6725         before trying to add them, as iradio streams often fail rb_uri_exists().
6727         * shell/rb-shell-player.c: (notify_playing_idle),
6728         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
6729         (open_location_thread), (rb_shell_player_open_location),
6730         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
6731         (eos_cb):  When playing an iradio stream using a playlist, keep a list
6732         of all the stream URLs, and try them in turn.  If we get through the
6733         whole playlist too quickly, error out.  Various other fixes that make
6734         iradio work a lot better.
6736         * shell/rb-shell.c: (add_to_library_response_cb),
6737         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6738         (handle_playlist_entry_cb), (rb_shell_load_uri):
6739         Add playlists containing streams as iradio stations.  If the playlist
6740         is local, add each stream URL, but if the playlist is remote, just add
6741         the playlist URL.
6742         
6743         * sources/rb-iradio-source.c: (new_station_location_added):
6744         Add new station URLs as-is, rather than parsing the playlist and
6745         adding the streams.
6746         
6747         * rhythmdb/rhythmdb-query-model.c:
6748         (rhythmdb_query_model_entry_changed_cb),
6749         (rhythmdb_query_model_emit_reorder),
6750         (rhythmdb_query_model_do_reorder):
6751         Emit row-changed notifications when an entry changes but is not
6752         reordered.
6754         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
6755         Display the playback error icon when the entry has an error and
6756         there's nothing else to display.
6757         
6758         Fixes bug #320336 and some of #324402.
6759         
6760 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6762         * sources/rb-ipod-source.c: use a GHashTable for the
6763         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
6764         time, this fixes compilation breakage for people not having libgpod
6765         CVS HEAD
6767 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
6769         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6771         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
6772         (rb_podcast_manager_insert_feed):
6773         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
6774         fixes bug 321945
6776 2006-04-16  James Livingston  <doclivingston@gmail.com>
6778         * sources/rb-library-source.c:
6779         (rb_library_source_library_location_cb): return FALSE like we are
6780         supposed to, not void.
6782         patch by: FreeBSD GNOME Project
6783         * configure.ac: fix some bash-isms.
6785         patch by: Pawel Worach  <pawel.worach@gmail.com>
6786         * metadata/rb-metadata-dbus-client.c:
6787         * rhythmdb/rhythmdb-query-model.c:
6788         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
6791 2006-04-16  James Livingston  <doclivingston@gmail.com>
6793         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
6794         for transcoding to RBEncoderGst.
6796         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
6797         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
6798         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
6799         (add_decoding_pipeline), (encoder_match_mime),
6800         (get_profile_from_mime_type), (extract_track), (transcode_track),
6801         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
6803 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6805         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
6806         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
6807         load_ipod_db_idle_cb to a new separate function
6809 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6811         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
6812         source
6814 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6816         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
6817         variables
6819 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6821         * data/ui/Makefile.am:
6822         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
6823         menu
6824         * lib/rb-util.c: check if the widget we got from the UI manager isn't
6825         NULL before using it as a popup menu
6826         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
6827         'eject' an iPod
6829 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6831         * sources/rb-ipod-source.c: when hal tells us a partition is on an
6832         iPod, check if it contains an iPod database before using it (in case
6833         the iPod was repartitionned somehow). Should fix bug #325034
6835 2006-04-16  Steve Frécinaux  <steve@istique.net>
6837         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
6839         * data/Makefile.am: install application icon into the default theme.
6841         * data/rhythmbox.desktop.in: don't specify icon file extension.
6842         
6843         * shell/main.c: (main): set default window icon from theme.
6844         
6845         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
6846         code concerning window icon, and fix leak by unreferencing the about
6847         logo pixbuf once it's not used anymore.
6849 2006-04-16  James Livingston  <doclivingston@gmail.com>
6851         * configure.ac: bump version to 0.9.4
6852         * NEWS: update NEWS and 0.9.4 insert translations
6854 2006-04-16  James Livingston  <doclivingston@gmail.com>
6856         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
6857         namespace automatically.
6859 2006-04-16  James Livingston  <doclivingston@gmail.com>
6861         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
6863         * doc/reference/Makefile.am:
6864         * doc/reference/rhythmbox.types: make distcheck work again
6866         * doc/reference/tmpl/eggnotificationbubble.sgml:
6867         * doc/reference/tmpl/eggtrayicon.sgml:
6868         * doc/reference/tmpl/rb-debug.sgml:
6869         * doc/reference/tmpl/rb-entry-view.sgml:
6870         * doc/reference/tmpl/rb-enums.sgml:
6871         * doc/reference/tmpl/rb-metadata.sgml:
6872         * doc/reference/tmpl/rb-new-station-dialog.sgml:
6873         * doc/reference/tmpl/rb-playlist-manager.sgml:
6874         * doc/reference/tmpl/rb-refstring.sgml:
6875         * doc/reference/tmpl/rb-shell-player.sgml:
6876         * doc/reference/tmpl/rb-shell-preferences.sgml:
6877         * doc/reference/tmpl/rb-shell.sgml:
6878         * doc/reference/tmpl/rb-song-info.sgml:
6879         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
6880         * doc/reference/tmpl/rb-statusbar.sgml:
6881         * doc/reference/tmpl/rhythmbox-unused.sgml:
6882         * doc/reference/tmpl/rhythmdb-query-model.sgml:
6883         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
6885 2006-04-16  James Livingston  <doclivingston@gmail.com>
6887         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
6889         * po/LINGUAS: don't split the variable across two lines, as it breaks
6890         the build. Fixes bug 338625.
6892 2006-04-15  James Livingston  <doclivingston@gmail.com>
6894         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
6895         add a "sourcelist-model" gobject property.
6897 2006-04-14  William Jon McCann  <mccann@jhu.edu>
6899         * .cvsignore:
6900         * backends/.cvsignore:
6901         * backends/gstreamer/.cvsignore:
6902         * bindings/.cvsignore:
6903         * bindings/python/.cvsignore:
6904         * help/es/.cvsignore:
6905         * metadata/.cvsignore:
6906         * plugins/.cvsignore:
6907         * plugins/audioscrobbler/.cvsignore:
6908         * plugins/lirc/.cvsignore:
6909         * plugins/pythonconsole/.cvsignore:
6910         * plugins/sample-python/.cvsignore:
6911         * plugins/sample/.cvsignore:
6912         * shell/.cvsignore:
6913         * widgets/libsexy/.cvsignore:
6914         Make CVS ignore files.
6916 2006-04-14  James Livingston  <doclivingston@gmail.com>
6918         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
6919         the track-loading thread hold a reference on the source, so it doesn't
6920         explode if the cd is removed before it is done. Fixes bug 337237.
6922 2006-04-14  James Livingston  <doclivingston@gmail.com>
6924         * bindings/python/override_common.c:
6925         (_helper_unwrap_pointer_pylist):
6926         * bindings/python/override_common.h:
6927         * bindings/python/rb.override:
6928         * bindings/python/rhythmdb.override: Bind some more functions and
6929         virtual functions.
6931         * shell/rb-shell.c: (rb_shell_select_source):
6932         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
6933         * sources/rb-audiocd-source.c:
6934         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
6935         * sources/rb-browser-source.c: (impl_get_search_actions):
6936         * sources/rb-iradio-source.c: (impl_get_ui_actions):
6937         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
6938         * sources/rb-playlist-source.c: (impl_get_ui_actions):
6939         * sources/rb-podcast-source.c: (impl_get_ui_actions),
6940         (impl_get_search_actions):
6941         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
6942         the impl_get_ui_actions and impl_get_search_actions functions return
6943         lists that contain copies of the strings, instead of constant ones.
6944         Needed to bindings
6946 2006-04-14  James Livingston  <doclivingston@gmail.com>
6948         * bindings/python/rhythmdb.defs:
6949         * bindings/python/rhythmdb.override: fix the method argument format
6950         specifiers.
6952 2006-04-14  James Livingston  <doclivingston@gmail.com>
6954         * bindings/python/rhythmdb.defs:
6955         * bindings/python/rhythmdb.override:
6956         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
6957         (entry_to_rb_metadata), (record_entry_change),
6958         (rhythmdb_entry_set_visibility):
6959         * rhythmdb/rhythmdb.h:
6960         * shell/rb-shell.c: (rb_shell_get_song_properties): change
6961         rhythmdb_entry_get to take the db as the first parameter. Fixes the
6962         python bindings of it. The rhythmdb_entry_get_* ones are left the same
6963         since they are used in too many places, and not in the Python
6964         bindings.
6966 2006-04-13  William Jon McCann  <mccann@jhu.edu>
6968         * lib/rb-debug.c: (_rb_profile_log):
6969         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
6970         * rhythmdb/rhythmdb.c: (rhythmdb_load):
6971         * shell/main.c: (main):
6972         * shell/rb-shell.c: (rb_shell_constructor),
6973         (rb_shell_set_visibility), (rb_shell_sync_window_state),
6974         (rb_shell_present):
6975         Fix profile output indentation.  Add more profiling points.
6976         Fixes part of #338114
6978 2006-04-13  James Livingston  <doclivingston@gmail.com>
6980         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
6981         library source being deleted, by setting the active source to NULL.
6982         From bug 338116.
6984 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6986         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
6987         Update the last-seen string when hiddenness changes.
6989 2006-04-12  James Livingston  <doclivingston@gmail.com>
6991         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
6992         which caused the first-seen time to be reset when a metadata load was
6993         done. Fixes bug 336874.
6995         * shell/rb-shell.h: remove old function declaration.
6997         * bindings/python/rhythmdb.defs:
6998         * bindings/python/rhythmdb.override: Fix some python binding stuff.
7000 2006-04-11  James Livingston  <doclivingston@gmail.com>
7002         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
7003         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
7004         interaction. Fixes bug 337999.
7006 2006-04-11  James Livingston  <doclivingston@gmail.com>
7008         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
7009         track transfer. Fixes bug 338056.
7011         * shell/Makefile.am:
7013 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7015         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
7017 2006-04-10  William Jon McCann  <mccann@jhu.edu>
7019         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
7020         (_rb_profile_log):
7021         * lib/rb-debug.h:
7022         * shell/rb-shell.c: (construct_db), (construct_widgets),
7023         (construct_sources), (construct_load_ui), (rb_shell_constructor):
7024         Add profiling.  Fixes #337387
7026 2006-04-10  William Jon McCann  <mccann@jhu.edu>
7028         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
7029         * widgets/rb-header.c:
7030         Use italics for artist and album. Fixes #336748
7032 2006-04-10  James Livingston  <doclivingston@gmail.com>
7034         * Makefile.am:
7035         * backends/gstreamer/Makefile.am:
7036         * configure.ac:
7037         * data/glade/library-prefs.glade:
7038         * shell/Makefile.am:
7039         * shell/rb-removable-media-manager.c:
7040         * shell/rb-removable-media-manager.h:
7041         * sources/Makefile.am:
7042         * sources/rb-audiocd-source.c:
7043         * sources/rb-library-source.c: (rb_library_source_class_init),
7044         (rb_library_source_finalize), (impl_get_config_widget),
7045         (rb_library_source_preferences_sync), (impl_can_paste): add a
7046         --enable-track-transfer configure option, abd make cd ripping disabled
7047         by default.
7049         * shell/rb-source-header.c:
7050         * sources/rb-source.c: (rb_source_class_init),
7051         (rb_source_delete_thyself), (default_get_entry_view):
7052         * lib/rb-glade-helpers.c:
7053         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
7054         some compiler warnings, and also bug 337427.
7056 2006-04-10  James Livingston  <doclivingston@gmail.com>
7058         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
7059         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
7060         if the gconf key is missing. Fixes bug 337742.
7062 2006-04-10  James Livingston  <doclivingston@gmail.com>
7064         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
7065         to fix build problems I caused with a commit yesterday. Fixed bug
7066         337806.
7068         * daapsharing/rb-daap-mdns-browser-howl.c:
7069         (rb_daap_mdns_browser_class_init):
7070         * podcast/Makefile.am:
7071         * rhythmdb/Makefile.am:
7072         * widgets/eggtrayicon.h:
7074 2006-04-09  Steve Frécinaux  <steve@istique.net>
7076         * configure.ac:
7077         * po/LINGUAS:
7078         
7079         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
7080         translators' life easier.
7082 2006-04-09  James Livingston  <doclivingston@gmail.com>
7084         * bindings/python/rb.defs:
7085         * bindings/python/rb.override: add bindings for most RBSource virtual
7086         functions.
7088         * sources/rb-source.h:
7089         * sources/rb-source.c: (rb_source_class_init): make
7090         impl_get_browser_key return a non-consht string, since Python can't
7091         really give us constant strings.
7093         * shell/rb-source-header.c: (rb_source_header_finalize),
7094         (rb_source_header_set_source_internal):
7095         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
7096         * sources/rb-iradio-source.c: (impl_get_browser_key):
7097         * sources/rb-library-source.c: (impl_get_browser_key):
7098         * sources/rb-playlist-source.c:
7099         * sources/rb-browser-source.c: (rb_browser_source_constructor),
7100         (rb_browser_source_state_prefs_sync):
7101         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
7102         above change.
7104         * plugins/sample-python/sample-python.py: show how to add a new
7105         source.
7107 2006-04-09  James Livingston  <doclivingston@gmail.com>
7109         * daapsharing/Makefile.am:
7110         * daapsharing/rb-daap-connection.c:
7111         (rb_daap_connection_class_init):
7112         * daapsharing/rb-daap-marshal.list:
7113         * daapsharing/rb-daap-mdns-browser-avahi.c:
7114         (rb_daap_mdns_browser_class_init):
7115         * lib/rb-marshal.list:
7116         * player/Makefile.am:
7117         * player/rb-recorder-gst.c: (rb_recorder_class_init):
7118         * player/rb-recorder-marshal.list:
7119         * podcast/Makefile.am:
7120         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
7121         * podcast/rb-podcast-marshal.list:
7122         * rhythmdb/Makefile.am:
7123         * rhythmdb/rhythmdb-marshal.list:
7124         * rhythmdb/rhythmdb-query-model.c:
7125         (rhythmdb_query_model_class_init):
7126         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
7127         into one file, as there is no point having several of them.
7129 2006-04-09  James Livingston  <doclivingston@gmail.com>
7131         * lib/Makefile.am:
7132         * lib/rb-enums.h:
7133         * widgets/Makefile.am:
7134         * widgets/eggnotificationbubble.c:
7135         * widgets/eggnotificationbubble.h:
7136         * widgets/rb-song-info.c: remove lib/rb-enums.h and
7137         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
7139         * rhythmdb/rhythmdb-property-model.h:
7140         * rhythmdb/rhythmdb-query-model.h:
7141         * rhythmdb/rhythmdb.h:
7142         * shell/rb-playlist-manager.h:
7143         * widgets/rb-cell-renderer-pixbuf.h:
7144         * widgets/rb-cell-renderer-rating.h:
7145         * widgets/rb-rating.h: fix the prototypes of various class-closures.
7147 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7149         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
7150         so we can build without a system-wide installed copy.
7152 2006-04-09  James Livingston  <doclivingston@gmail.com>
7154         * data/glade/general-prefs.glade:
7155         * data/rhythmbox.schemas:
7156         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
7157         (rb_combo_box_hyphen_separator_func):
7158         * lib/rb-glade-helpers.h:
7159         * lib/rb-preferences.h:
7160         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
7161         (rb_shell_preferences_sync),
7162         (rb_shell_preferences_toolbar_style_cb),
7163         (rb_shell_preferences_browser_views_activated_cb):
7164         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
7165         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
7166         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
7168 2006-04-09  James Livingston  <doclivingston@gmail.com>
7170         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
7171         data that MusicBrainz returns to us. Last part of bug 334167.
7173 2006-04-09  James Livingston  <doclivingston@gmail.com>
7175         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
7176         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
7178 2006-04-09  James Livingston  <doclivingston@gmail.com>
7180         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
7181         the entry view properly when the rows are reordered. Fixes bug 337019.
7183 2006-04-09  James Livingston  <doclivingston@gmail.com>
7185         * configure.ac:
7186         * widgets/Makefile.am:
7187         * widgets/libsexy/Makefile.am:
7188         * widgets/libsexy/sexy-icon-entry.c:
7189         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
7190         libsexy, and allow building against it or a system-wide installed
7191         copy.
7194         * widgets/rb-search-entry.c: (rb_search_entry_init),
7195         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
7196         search box. Fixes bug 128109.
7198 2006-04-09  James Livingston  <doclivingston@gmail.com>
7200         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
7202         * widgets/rb-entry-view.c: (rb_entry_view_init),
7203         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
7204         and Pause icons rather than the volume ones in the Now Playing column.
7205         Closes bug 336482.
7207 2006-04-08  James Livingston  <doclivingston@gmail.com>
7209         * bindings/python/override_common.h:
7210         * bindings/python/rb.override:
7211         * bindings/python/rhythmdb.override: bind some more functions 
7213 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7215         * metadata/rb-metadata-dbus-service.c: (_send_error):
7216         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
7217         are sent properly and we don't get 'method doesn't exist' messages
7218         from dbus instead.
7220 2006-04-08  James Livingston  <doclivingston@gmail.com>
7222         * bindings/python/override_common.h:
7223         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
7224         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
7225         more utility functions for C<->Python conversions
7227         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
7228         (rb_entry_view_state_get_type):
7229         * widgets/rb-entry-view.h: make the colume type and entry view state
7230         GTypes
7232         * bindings/python/Makefile.am:
7233         * bindings/python/rb.defs:
7234         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
7235         RBSource.
7237 2006-04-08  James Livingston  <doclivingston@gmail.com>
7239         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
7240         initialiser for a GError
7242         * sources/rb-source.c: (rb_source_eof_type_get_type):
7243         * sources/rb-source.h: add a GType for RBSourceEOFType
7245         * bindings/python/Makefile.am:
7246         * bindings/python/rb.defs:
7247         * bindings/python/rb.override: bind RBSource and RBSourceList
7249 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7251         * shell/rb-shell-player.c: (rb_shell_player_class_init),
7252         (rb_shell_player_get_property),
7253         (rb_shell_player_get_active_source),
7254         (rb_shell_player_set_playing_source_internal):
7255         * shell/rb-shell-player.h:
7256         Change 'playing-from-queue' from being a signal to being a property.
7258         * shell/rb-shell.c: (rb_shell_constructor),
7259         (rb_shell_playing_from_queue_cb),
7260         (rb_shell_view_queue_as_sidebar_changed_cb),
7261         (rb_shell_jump_to_entry_with_source):
7262         When the queue side pane is used, make 'jump to current' jump to the
7263         entry in the registered source for its type, rather than in the queue,
7264         and show it as playing in that source.
7265         
7266         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
7267         * sources/rb-sourcelist.h:
7268         Remove the 'preempted source' stuff, since it wasn't doing anything
7269         anyway.
7271 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7273         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
7274         (download_progress_cb): Canonicalise downloaded file location before
7275         setting the mountpoint property of the corresponding entry.
7276         Fixes #337287 and a couple of memory leaks.
7278 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7280         * metadata/rb-metadata-dbus-service.c: (test_can_save),
7281         (test_load), (main): Call g_set_prgname, report errors more
7282         usefully in test mode.
7283         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
7284         (rb_metadata_load): Don't ignore the have-type signal for non-audio
7285         files.  Run the event loop when the state change fails so we get the
7286         error messages from the bus.  Fixes #336921.
7288 2006-04-05  William Jon McCann  <mccann@jhu.edu>
7290         * data/art/Makefile.am: Install media-eject.
7292         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
7293         return value of rb_file.
7295         Fixes #337209
7297 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7299         Patch by: William Jon McCann  <mccann@jhu.edu>
7301         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
7302         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
7303         Fix GError leak.
7305 2006-04-04  William Jon McCann  <mccann@jhu.edu>
7307         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
7308         Don't try to add a date when we don't have one.  Fixes #336741.
7310         Also fix variable declaration in middle of block.
7312 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7314         * shell/rb-shell-player.c: (rb_shell_player_playpause):
7315         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
7317 2006-04-02  James Livingston  <doclivingston@gmail.com>
7319         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
7320         inverted logic causing imports to fail.
7322 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7324         * shell/main.c: (main): Fix dbusless build.
7326 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
7328         * player/rb-recorder-gst.c: fix packing of the C struct holding a
7329         wav header for non-gcc compilers (not tested much, was only written
7330         according to docs)
7332 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7334         * shell/main.c: (main): Check if we got a dbus connection before
7335         trying to create a proxy for the shell object.  Fixes #336634.
7337 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7339         * doc/reference/Makefile.am:
7340         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
7341         * shell/rb-source-header.c:
7342         * sources/rb-generic-player-source.c:
7343         (default_transform_playlist_uri):
7344         Fix various build issues.  Patch approximately 50% by Alex Lancaster
7345         <alexl@users.sourceforge.net>
7347 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7349         * configure.ac: Detect LIRC.
7350         
7351         * plugins/Makefile.am:
7352         * plugins/lirc/Makefile.am:
7353         * plugins/lirc/lirc.rb-plugin.desktop.in:
7354         * plugins/lirc/rb-lirc-plugin.c:
7355         LIRC plugin.
7357         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
7358         Remove obsolete files.
7360 2006-04-02  James Livingston  <doclivingston@gmail.com>
7362         * sources/rb-generic-player-source.c:
7363         (default_transform_playlist_uri): consider playlist paths as relative
7364         to the volume root by default, since that is what most players use.
7366 2006-04-02  James Livingston  <doclivingston@gmail.com>
7368         * lib/rb-util.c: (rb_mime_get_friendly_name):
7369         * lib/rb-util.h: add helper function to get the "friendly" name for a
7370         mime-type
7372         * metadata/rb-metadata-gst.c: (rb_metadata_init),
7373         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
7374         the user better error messages about undecodable streams, using the
7375         "friendly" name if possible. Fixes bug 128109.
7377 2006-04-02  James Livingston  <doclivingston@gmail.com>
7379         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
7380         (start_pipeline): fix building with gstreamer 0.8
7382 2006-04-02  James Livingston  <doclivingston@gmail.com>
7384         * sources/rb-podcast-source.c: (impl_delete),
7385         (rb_podcast_source_cmd_delete_feed),
7386         (rb_podcast_source_cmd_update_feed): copy the list before traversing
7387         it, since it may change during traversal. Fixes bug 336204.
7389 2006-04-01  James Livingston  <doclivingston@gmail.com>
7391         * data/art/media-eject.png: add the media-eject icon from Banshee
7392         (BSD-licensed), for use when the user's icon theme doesn't have one.
7394         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
7395         bug 334897.
7397 2006-04-01  James Livingston  <doclivingston@gmail.com>
7399         * shell/rb-shell-player.h:
7400         * shell/rb-shell-player.c: (rb_shell_player_play),
7401         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
7402         new rb_shell_player_{play,pause} functions, so everyone doesn't have
7403         to do rb_shell_player_playing followed by rb_shell_player_playpause.
7405         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
7406         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
7407         * shell/rb-shell.h: add rb_shell_get_ui_manager.
7409         * bindings/python/rb.defs: bind the above to Python, and remove some
7410         useless stuff from the bindings.
7412 2006-04-01  James Livingston  <doclivingston@gmail.com>
7414         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
7415         number tag.
7417         * shell/rb-shell.c:
7418         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
7420         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
7421         to true.
7423         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
7424         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
7425         method assigning, so it's understandable
7427         * sources/rb-library-source.c: (rb_library_source_class_init),
7428         (impl_paste): rather than hard-coding the types to ignore, use
7429         rb_source_can_copy.
7431 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7433         * sources/rb-library-source.c:
7434         (rb_library_source_preferences_sync):
7435         Don't crash if no audio profile is selected and the gconf schemas are 
7436         not installed.
7438 2006-03-31  James Livingston  <doclivingston@gmail.com>
7440         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
7441         "*" which caused compilation to fail
7443 2006-03-31  James Livingston  <doclivingston@gmail.com>
7445         * configure.ac:
7446         * Makefile.am:
7447         * backends/Makefile.am:
7448         * backends/gstreamer/Makefile.am:
7449         * backends/gstreamer/rb-encoder-gst.c:
7450         * backends/gstreamer/rb-encoder-gst.h:
7451         * backends/rb-encoder.c:
7452         * backends/rb-encoder.h: add a interface for transcoding, and a
7453         GStreamer implementation of it (based on Sound-Juicer's code).
7455         * shell/Makefile.am:
7456         * shell/rb-removable-media-manager.c:
7457         (rb_removable_media_manager_class_init),
7458         (rb_removable_media_manager_init),
7459         (rb_removable_media_manager_dispose),
7460         (rb_removable_media_manager_finalize),
7461         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
7462         (progress_cb), (completed_cb), (do_transfer),
7463         (rb_removable_media_manager_queue_transfer), (copy_entry),
7464         (rb_removable_media_manager_cmd_copy_tracks):
7465         * shell/rb-removable-media-manager.h: use the encoder interface to
7466         perform transfers of entries to other locations
7468         * shell/rb-shell-player.c: (open_location_thread):
7469         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
7470         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
7471         (rb_shell_quit):
7472         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
7473         progress in the status bar.
7475         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
7476         (rb_shell_preferences_sync),
7477         (rb_shell_preferences_browser_views_activated_cb):
7478         * data/glade/general-prefs.glade: move the browser views setting from
7479         the library tab to the general one.
7481         * data/glade/library-prefs.glade: add settings for the layout of the
7482         user's library, and their preferred encoding format (e.g. for CD
7483         ripping).
7485         * lib/rb-preferences.h:
7486         * data/rhythmbox.schemas: add keys for the above options (and a few
7487         other minor ones)
7489         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
7490         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
7491         entry, that isn't inserted into the database.
7493         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
7494         (rb_audiocd_create_track_entry):
7495         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
7496         cds, and set the mime-type of audio cd tracks correctly.
7498         * sources/rb-library-source.c: (rb_library_source_class_init),
7499         (rb_library_source_finalize),
7500         (rb_library_source_edit_profile_clicked_cb),
7501         (impl_get_config_widget), (rb_library_source_preferences_sync),
7502         (impl_receive_drag), (rb_library_source_path_changed_cb),
7503         (rb_library_source_filename_changed_cb),
7504         (rb_library_source_format_changed_cb), (sanitize_path),
7505         (filepath_parse_pattern), (layout_example_label_update),
7506         (rb_library_source_layout_path_changed),
7507         (rb_library_source_layout_filename_changed), (build_filename),
7508         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
7509         entries to the library. Large chunks of code for determining the
7510         destination file name stolen from Sound-Juicer.
7512         * sources/rb-sourcelist-model.c: (path_is_droppable):
7513         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
7514         * sources/rb-static-playlist-source.c:
7515         (rb_static_playlist_source_class_init):
7516         * sources/rb-removable-media-source.c:
7517         (rb_removable_media_source_class_init):
7518         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
7519         (rb_source_can_paste):
7520         * sources/rb-source.h: add a new _can_paste method, and use it (rather
7521         than _can_copy) to determine whether we can paste into the source.
7524 2006-03-31  Steve Frécinaux  <steve@istique.net>
7526         * plugins/rb-python-module.c: allow import of python modules with a '.'
7527         (gedit's bug 336403). Patch by Johan Dahlin.
7529 2006-03-31  James Livingston  <doclivingston@gmail.com>
7531         * sources/rb-library-source.c: 
7532         * sources/rb-library-source.h:
7533         * sources/rb-browser-source.c:
7534         * sources/rb-browser-source.h: Split RBLibrarySource into two.
7535         RBBrowserSource now contains all the stuff for having a source which
7536         views a particular entry type (including browsers and searching).
7537         RBLibrarySource derives from this, and includes the library-specific
7538         stuff, like importing and library watching. Fixes some issues where
7539         library-derived sources were doing things that should be
7540         library-specific. Fixes bug 335185.
7542         * data/ui/rhythmbox-ui.xml:
7543         * sources/Makefile.am: modifications for the above
7545         * sources/rb-daap-source.c: (rb_daap_source_class_init),
7546         (rb_daap_source_get_paned_key):
7547         * sources/rb-daap-source.h:
7548         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
7549         * sources/rb-removable-media-source.c:
7550         (rb_removable_media_source_class_init):
7551         * sources/rb-removable-media-source.h: derive from RBBrowserSource
7552         instead of RBLibrarySource.
7554 2006-03-31  James Livingston  <doclivingston@gmail.com>
7556         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
7557         I buggered up when changing from GnomeVFSFileSize.
7559 2006-03-30  James Livingston  <doclivingston@gmail.com>
7561         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
7562         for "-Wno-error".
7564         * bindings/python/rb.override:
7565         * bindings/python/Makefile.am: make the RB python bindings depend on
7566         the RhythmDB ones, and use "-Wno-error" since the machine-generated
7567         code sometimes emits warnings.
7569         * shell/rb-shell-player.c: (rb_shell_player_class_init),
7570         (rb_shell_player_error_get_type):
7571         * shell/rb-shell-player.h:
7572         * bindings/python/rb.defs: add bindings for RBShellPlayer
7574         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7575         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
7576         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
7577         * rhythmdb/rhythmdb.h:
7578         * shell/rb-shell.c: (rb_shell_get_song_properties):
7579         * widgets/rb-entry-view.c: (propid_from_name):
7580         * widgets/rb-property-view.c: (rb_property_view_class_init):
7581         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
7582         than just plain GPtrArray, and add bindings for it.
7584         * bindings/python/rhythmdb.override: wrap some functions that use
7585         GValues
7587 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7589         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
7590         Only watch directories from which entries of type SONG have been
7591         added.
7593 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7595         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7596         No need to restore the selection after rebuilding the child model,
7597         since that can't have changed the selection.
7599 2006-03-29  James Livingston  <doclivingston@gmail.com>
7601         * bindings/python/override_common.c:
7602         * bindings/python/override_common.h: add some for missing files to
7603         cvs.
7605 2006-03-29  James Livingston  <doclivingston@gmail.com>
7607         * configure.ac:
7608         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
7609         copied from gedit's autofoo and we don't need it
7611         * bindings/python/rhythmdb.defs:
7612         * bindings/python/rhythmdb.override: add missing files to cvs
7614 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7616         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
7617         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
7618         before running any of the debug/test modes.
7619         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
7620         Make plugin loading work when running uninstalled from the shell/
7621         directory.
7623 2006-03-29  James Livingston  <doclivingston@gmail.com>
7625         * rhythmdb/rhythmdb-property-model.c:
7626         (rhythmdb_property_model_sync),
7627         (rhythmdb_property_model_column_get_type):
7628         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
7630         * rhythmdb/rhythmdb-private.h:
7631         * rhythmdb/rhythmdb-query-model.c:
7632         (rhythmdb_query_model_class_init):
7633         * rhythmdb/rhythmdb-query-model.h:
7634         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
7635         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
7636         (rhythmdb_entry_get_type):
7637         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
7639         * widgets/rb-query-creator-properties.c:
7640         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
7641         was missing.
7643         * bindings/python/Makefile.am:
7644         * bindings/python/rb.defs:
7645         * bindings/python/rb.override:
7646         * plugins/rb-python-module.c: (rb_python_module_init_python): add
7647         Python bindings for RhythmDB.
7649 2006-03-29  James Livingston  <doclivingston@gmail.com>
7651         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
7652         sharing when using --no-registration
7654 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7656         * rhythmdb/rhythmdb-query-model.c:
7657         (rhythmdb_query_model_reapply_query):
7658         Don't remove entries while iterating, as it breaks the sequence
7659         nodes.  Instead, collect a list of removed entries and process it
7660         after iterating the sequence.  Fixes #334642.
7662 2006-03-29  James Livingston  <doclivingston@gmail.com>
7664         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7665         (row_activated_cb), (plugin_manager_toggle_all):
7666         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
7667         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
7668         (button_press_cb), (source_name_edited_cb):
7669         * widgets/rb-property-view.c: (rb_property_view_set_property),
7670         (rb_property_view_post_row_deleted_cb),
7671         (rb_property_view_row_activated_cb),
7672         (rb_property_view_selection_changed_cb),
7673         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
7674         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
7676 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7678         * rhythmdb/rhythmdb-query-model.c:
7679         (rhythmdb_query_model_drag_data_received):
7680         Increment the reference count for entries added by drag and drop.
7681         Fixes #336045.
7683 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7685         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
7686         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
7687         Ignore invalid UTF-8 strings.  Fixes most of #334167.
7689 2006-03-27  James Livingston  <doclivingston@gmail.com>
7691         * shell/rb-shell.c: (rb_shell_constructor),
7692         (rb_shell_sync_window_state): fix a maximise-realise race that would
7693         cause some widgets to be resized after we had explicity set theri
7694         size. Hopefully fixes bug 331927.
7696 2006-03-27  James Livingston  <doclivingston@gmail.com>
7698         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7699         (row_activated_cb), (plugin_manager_set_active),
7700         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
7701         configure button sensitivity when a plugin is enabled/disabled.
7703 2006-03-27  James Livingston  <doclivingston@gmail.com>
7705         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
7706         stop warnings, only the vbos is used anyway
7708         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
7709         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
7710         collection every now an then.
7712         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
7713         if we are finalising because the python object couldn't be created.
7715         * plugins/rb-python-module.c: (rb_python_module_new_object): return
7716         NULL if the python-side object couldn't be created. Stops crashes when
7717         the object is later used when it doesn't exist in Python.
7719         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
7720         (rb_python_shutdown): do better garbage collection when shutting down.
7721         Fixes the problem where Python was holding a reference to the shell,
7722         causing RB not to exit.
7724 2006-03-27  James Livingston  <doclivingston@gmail.com>
7726         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
7727         336131.
7729 2006-03-27  James Livingston  <doclivingston@gmail.com>
7731         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
7732         From bug 334829.
7734 2006-03-26  James Livingston  <doclivingston@gmail.com>
7736         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
7737         library location list to NULL after we free it. Fixes bug 336047.
7739 2006-03-26  James Livingston  <doclivingston@gmail.com>
7741         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7743         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
7744         supplies. Fixes bug 335947.
7746 2006-03-25  James Livingston  <doclivingston@gmail.com>
7748         * data/glade/audioscrobbler-prefs.glade:
7749         * shell/rb-audioscrobbler.c:
7750         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
7751         "submit songs" checkbox, and make it not disable username/password
7752         entry. This will be needed when we support other last.fm stuff
7753         (profile access, radio, etc).
7755 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
7757         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
7758         Volume should not display stock_volume-0 for volume > 0. Fixes bug
7759         335777.
7761 2006-03-24  James Livingston  <doclivingston@gmail.com>
7763         * shell/rb-shell-player.c: (rb_shell_player_set_property),
7764         (rb_shell_player_sync_play_order),
7765         (rb_shell_player_play_order_update_cb),
7766         (actually_set_playing_source): update the next/previous availablility
7767         in places where it was missing. Fixes bug 335490.
7769 2006-03-24  James Livingston  <doclivingston@gmail.com>
7771         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
7772         can't find the widget
7774         * lib/rb-util.c: (rb_uri_list_parse):
7775         * lib/rb-util.h: add function for parsing a URI list into strings.
7777         * metadata/Makefile.am: make the metdata helper build when linking
7778         with --as-needed
7780         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
7781         g_mkdir_with_parents instead of coding our own.
7783         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
7784         <itunes:author> over <generator>, instead of using whichever comes
7785         last.
7787         * rhythmdb/rhythmdb-private.h:
7788         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
7789         field, as we don't ever check it (to detect corruption). Saves a bit
7790         of memory.
7792 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7794         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
7795         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
7796         Escape '&' and '=' in the paths we get back from
7797         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
7799 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7801         * shell/rb-shell.c: (rb_shell_constructor):
7802         Issue startup notification after creating the main window, so
7803         notification is issued whether the window is visible or not.
7804         Fixes #335086.
7806 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7808         * sources/rb-auto-playlist-source.c: (impl_search),
7809         (rb_auto_playlist_source_query_complete_cb),
7810         (rb_auto_playlist_source_do_query):
7811         * sources/rb-library-source.c: (impl_search),
7812         (rb_library_source_query_complete_cb),
7813         (rb_library_source_do_query):
7814         Defer subset searches (where text is appended to an existing search)
7815         until the original query is complete.
7817 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
7819         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
7821         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7822         (rb_refstring_get_sort_key): fixes for strict-aliasing
7824 2006-03-21  James Livingston  <jrl@ids.org.au>
7826         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
7827         importing a single file. Fixes bug 335307.
7829 2006-03-21  James Livingston  <jrl@ids.org.au>
7831         * shell/Makefile.am: remove the reference to backends/ that I
7832         accidently included.
7834 2006-03-21  James Livingston  <jrl@ids.org.au>
7836         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
7837         with Forte (on Solaris). Closes bug 335318.
7839         * configure.ac:
7840         * lib/Makefile.am:
7841         * player/rb-recorder-gst.c:
7842         * podcast/rb-podcast-parse.c:
7843         * remote/bonobo/Makefile.am:
7844         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
7845         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
7846         (rhythmdb_query_model_add_entry),
7847         (rhythmdb_query_model_add_results):
7848         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
7849         * rhythmdb/rhythmdb.h:
7850         * shell/Makefile.am:
7851         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
7852         (update_speed_combobox):
7853         * sources/rb-sourcelist-model.c:
7855 2006-03-21  James Livingston  <jrl@ids.org.au>
7857         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7859         * player/Makefile.am:
7860         * shell/Makefile.am: work correctly with a separate build root.
7862 2006-03-21  James Livingston  <jrl@ids.org.au>
7864         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
7865         get handed NULL.
7867 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7869         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
7870         Only create ignore entries when importing into the library.  
7871         Ignore entries for files in removable media sources don't help.
7873 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7875         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
7876         * shell/rb-source-header.h:
7877         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
7878         * widgets/rb-search-entry.h:
7879         Add functions to make the search box grab focus.
7881         * shell/rb-shell.c: (rb_shell_cmd_view_all):
7882         Focus the search box after handling the 'view all' action.
7884 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7886         * rhythmdb/rhythmdb.h:
7887         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7888         (rhythmdb_execute_multi_stat_info_cb),
7889         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
7890         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
7891         (action_thread_main):
7892         Collect all the get_file_info requests on startup into one gnome-vfs
7893         job to reduce overhead and avoid contention for the rhythmdb lock.
7894         Add a new method to call when all initial query models are set up.
7895         
7896         * shell/rb-shell.c: (idle_handle_load_complete):
7897         Call rhythmdb startup complete function when we've loaded all the
7898         playlists.  Fixes #334106.
7900 2006-03-20  James Livingston  <jrl@ids.org.au>
7902         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
7903         (rb_entry_view_selection_changed_cb),
7904         (rb_entry_view_have_complete_selection): make has_complete_selection
7905         not slow. Fixes a performance issue I added a week or so ago.
7907 2006-03-20  James Livingston  <jrl@ids.org.au>
7909         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
7910         before passing to strcmp. From bug 334559.
7912 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7914         * configure.ac:
7915         * lib/Makefile.am:
7916         * lib/rb-proxy-config.c:
7917         * lib/rb-proxy-config.h:
7918         Add a new object to watch the HTTP proxy configuration and emit
7919         signals when it changes.
7921         * shell/rb-audioscrobbler.c:
7922         * shell/rb-audioscrobbler.h:
7923         Use rb-proxy-config to watch HTTP proxy configuration.
7925         * shell/rb-shell.c:
7926         Construct rb-proxy-config object on startup, and remove all
7927         audioscrobbler references.
7929         * shell/Makefile.am:
7930         * plugins/audioscrobbler/Makefile.am:
7931         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
7932         Move all audioscrobbler code into the plugin.  We should move
7933         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
7934         point.  Don't use a private data structure in the plugin, since the
7935         class definition isn't in a header file.  Fixes #335091.
7937 2006-03-20  James Livingston  <jrl@ids.org.au>
7939         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
7940         don't enable Next if the source has an EOS type other than
7941         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
7943 2006-03-20  James Livingston  <jrl@ids.org.au>
7945         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
7946         (rb_song_info_forward_clicked_cb): deal with there being no
7947         next/previous entry.
7949         (rb_song_info_query_model_inserted_cb),
7950         (rb_song_info_query_model_deleted_cb),
7951         (rb_song_info_query_model_reordered_cb),
7952         (rb_song_info_query_model_changed_cb): monitor the query for changes,
7953         to update the button status. Fixes bug 333293.
7955 2006-03-20  James Livingston  <jrl@ids.org.au>
7957         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
7958         caused by my last commit
7960 2006-03-20  James Livingston  <jrl@ids.org.au>
7962         * bindings/python/Makefile.am:
7963         * bindings/python/rb.defs:
7964         * bindings/python/rb.override: add python bindings of RBRemoteProxy
7966         * shell/rb-shell.c: (rb_shell_constructor),
7967         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
7968         tray-icon detection slightly
7970 2006-03-19  Steve Frécinaux  <steve@istique.net>
7972         * data/ui/rhythmbox-ui.xml:
7973         * shell/rb-shell.c:
7975         Add an empty Tool Menu (hidden by default) containing placeholders for
7976         plugins.
7978         * configure.ac:
7979         * plugins/Makefile.am:
7980         * plugins/pythonconsole/Makefile.am:
7981         * plugins/pythonconsole/pythonconsole.py:
7982         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
7983         
7984         Python Console plugin
7986 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7988         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
7989         Extra step to encode '&' and '=' to match what gnome-vfs does
7990         internally.
7991         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
7992         (rhythmdb_tree_save):
7993         Increment rhythmdb xml version to 1.2, and force another uri
7994         re-canonicalisation when loading v1.1 databases.
7995         Fixes bug #333998.
7997 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7999         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
8000         (avahi_client_init), (browse_cb):
8001         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
8002         (avahi_client_init):
8003         Fix compilation with Avahi 0.5.x (bug #334551).
8005 2006-03-19  James Livingston  <jrl@ids.org.au>
8007         Add Increase/Decrease Volume menu items and keybindings. From bug
8008         123383.
8010         * data/ui/rhythmbox-ui.xml:
8011         * shell/rb-shell-player.c: (rb_shell_player_constructor),
8012         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
8013         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
8015 2006-03-19  James Livingston  <jrl@ids.org.au>
8017         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
8019         * shell/Makefile.am: fix the link order, so that we compile with
8020         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
8022 2006-03-19  James Livingston  <jrl@ids.org.au>
8024         patch by: Adam Petaccia  <adam@tpetaccia.com>
8026         * data/ui/rhythmbox-ui.xml: move preferences below "configure
8027         plugins". Fixes bug 335037.
8029 2006-03-18  James Livingston  <jrl@ids.org.au>
8031         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
8032         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
8033         332992.
8035         * widgets/rb-header.c: don't make artist/album info in the header the
8036         small size, since it's hard to read.
8038 2006-03-16  William Jon McCann  <mccann@jhu.edu>
8040         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
8041         (rhythmdb_finalize): Don't leak the hash tables.
8042         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
8043         (rhythmdb_commit_internal): Make sure to process the deletions.
8044         (rhythmdb_entry_delete): Use a hash.
8046         * podcast/rb-podcast-manager.c: Random analness about char*
8047         (rb_podcast_manager_remove_feed): Add debugging.
8048         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
8049         the result of gnome_vfs_unlink.  Don't leak a uri.
8051         Fixes #334786
8053 2006-03-18  James Livingston  <jrl@ids.org.au>
8055         * NEWS: update NEWS file
8057 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8059         * rhythmdb/rhythmdb-property-model.c:
8060         (rhythmdb_property_model_prop_changed_cb):
8061         Remove entries from the hash table after processing visible->hidden
8062         changes.
8064 2006-03-16  William Jon McCann  <mccann@jhu.edu>
8066         * sources/rb-daap-source.c (connection_connected_cb) 
8067         (connection_disconnected_cb): Add debug.
8068         (rb_daap_source_get_headers): Check for NULL connection.
8070         * daapsharing/rb-daap-src.c (rb_daap_src_open):
8071         Check return value of rb_daap_source_get_headers.
8073         Fixes #332089
8075 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8077         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
8078         Restore the selection after rebuilding the child model, so the
8079         selection is shown correctly after using the 'browse this
8080         album/artist/genre' menu items.
8082 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8084         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
8085         Clear the selection before changing the active model.
8086         Fixes crash reported in bug 334549.
8088 2006-03-15  James Livingston  <jrl@ids.org.au>
8090         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
8091         (rb_tray_icon_sync_action):
8092         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
8093         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
8094         for non-libnotify notification bubbles. Fixes bug 331721.
8096 2006-03-15  James Livingston  <jrl@ids.org.au>
8098         Add search-bar options to playlists. Fixes bug 334407.
8100         * sources/rb-auto-playlist-source.c:
8101         (rb_auto_playlist_source_class_init),
8102         (rb_auto_playlist_source_constructor),
8103         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
8104         (search_action_to_prop), (search_action_changed):
8105         * sources/rb-static-playlist-source.c:
8106         (rb_static_playlist_source_class_init),
8107         (rb_static_playlist_source_constructor),
8108         (construct_query_from_selection), (impl_get_search_actions),
8109         (search_action_to_prop), (search_action_changed):
8111 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8113         * shell/rb-source-header.c (rb_source_header_set_source_internal):
8114         Remove broken attempt at making the search bar buttons not
8115         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
8117 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8119         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
8120         Chain up to parent's dispose instead of finalize.  Fixes #334479.
8122 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8124         * widgets/rb-header.c (rb_header_sync): Escape album and
8125         artist before adding to markup.
8127 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8129         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
8130         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
8131         (rb_header_set_property), (rb_header_get_property),
8132         (rb_header_sync):
8133         Remove the GnomeUrl song links until we can do it properly.
8134         Fixes #334453.
8136 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8138         * shell/rb-source-header.c: (rb_source_header_clear_search):
8139         Remove the stored search text from the hash table, so it doesn't
8140         reappear after switching to another source and back.
8142         * sources/rb-auto-playlist-source.c: (impl_search):
8143         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
8144         * sources/rb-static-playlist-source.c: (impl_search):
8145         Make sure all sources treat impl_search(NULL) and impl_search("") the
8146         same.  Fixes #334525.
8148 2006-03-14  James Livingston  <jrl@ids.org.au>
8150         Store which thread created new entries, and make rhythmdb_commit only
8151         insert the entries for the thread that calls it. This stops one thread
8152         calling rhythmdb_commit inserting entries that are half-way through
8153         construction by another thread (as happens with audio cds). From bug
8154         330226.
8156         * rhythmdb/rhythmdb.c: (rhythmdb_init),
8157         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
8158         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
8159         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
8160         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
8161         (rhythmdb_process_metadata_load),
8162         (rhythmdb_process_queued_entry_set_event),
8163         (rhythmdb_prop_get_type):
8165 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8167         * rhythmdb/rhythmdb-query-model.c:
8168         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
8169         (rhythmdb_query_model_finalize):
8170         Move object unrefs from _finalize into _dispose.
8171         
8172         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
8173         Remove extra g_object_ref that was causing query model leaks.
8174         
8175         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
8176         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
8177         (genre_selection_reset_cb), (rb_iradio_source_do_query):
8178         Remove the cached 'all' query, since it doesn't really help and it
8179         makes the code more complicated.  Attach the genre property view to
8180         the query model build from the search text, so only genres for
8181         stations matching the search terms are displayed.  Preserve the genre
8182         selection across searches.
8184         * widgets/rb-library-browser.c: 
8185         (rb_library_browser_class_init), (rb_library_browser_get_property):
8186         Add properties for the input and output models for the browser, and
8187         remove the 'changed' signal as we can just use notify::output-model.
8188         (ignore_selection_changes),
8189         (selection_restore_data_destroy), (query_complete_cb),
8190         (restore_selection): Helper functions for preserving selections across
8191         query model rebuilds.
8192         (rebuild_output_model):  New function for creating a query model to
8193         use as the display model for a source using the browser.
8194         (rebuild_child_model): Add a call to rebuild_output_model, add missing
8195         g_object_unrefs, reuse the parent's query model when there's no
8196         selection, and use ignore_selection_changes and restore_selection.
8197         (rb_library_browser_set_selection): rebuild_child_model emits the
8198         changed signal, so no need to do it here.
8199         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
8200         ignore_selection_changes and restore_selection. 
8201         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
8202         flag to rb_library_browser_set_model indicating whether the query is
8203         asynchronous.
8205         * sources/rb-static-playlist-source.c:
8206         (rb_static_playlist_source_class_init),
8207         (rb_static_playlist_source_dispose):
8208         (rb_static_playlist_source_constructor):  Add an extra reference on
8209         the base model, so it doesn't vanish when we set a new display model
8210         based on a search or browser selection.
8211         (impl_search): Ensure the search_text field in the source is NULL if
8212         the search box is empty.
8213         (construct_query_from_selection),
8214         (rb_static_playlist_source_do_query): Use the query model constructed
8215         from the search as the input model for the browser.
8216         (rb_static_playlist_source_browser_changed_cb): Use the browser's
8217         output model as the query model for the source.
8219         * sources/rb-auto-playlist-source.c:
8220         (rb_auto_playlist_source_finalize): Free more stuff.
8221         (rb_auto_playlist_source_constructor),
8222         (rb_auto_playlist_source_browser_changed_cb):
8223         Update for rb-library-browser changes, use the browser's output query
8224         model as the query model for the source.
8225         (impl_reset_filters), (impl_search), 
8226         (rb_auto_playlist_source_do_query),
8227         (rb_auto_playlist_source_set_query):
8228         Use the query model constructed from the search text as the input to
8229         the library browser, and when adding text to an existing search, apply
8230         the new query to the existing query model.
8231         
8232         * sources/rb-library-source.c: (rb_library_source_dispose):
8233         (rb_library_source_finalize): Chain dispose up to the parent class.
8234         (rb_library_source_constructor): Update for rb-library-browser
8235         changes. 
8236         (impl_search): Ensure search_text is NULL if the search box is empty,
8237         and use the subset flag to _do_query if text has been appended to an
8238         existing search.
8239         (search_action_changed), (impl_reset_filters):
8240         (rb_library_source_browser_changed_cb),
8241         (rb_library_source_do_query): Use the browser's output model as the
8242         query model for the source.
8244         Rework library and playlist sources to use a single query chain,
8245         and to limit the entries shown in property views based on the search
8246         terms.  Fixes bug #322787.
8248 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8250         * configure.ac:  Enable metadata helper by default, and fix a typo.
8252 2006-03-13  James Livingston  <jrl@ids.org.au>
8254         Make RBRefStrings lazily create the folded and sort-key strings when
8255         they are first used. This will same some memory by not creating ones
8256         that are never used, and delaying some of the others to when the user
8257         resorts or performs a similar action. Fixes bug 332992.
8259         * rhythmdb/rb-refstring.c: (rb_refstring_free),
8260         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
8261         (rb_refstring_get), (rb_refstring_get_folded),
8262         (rb_refstring_get_sort_key), (rb_refstring_hash),
8263         (rb_refstring_equal):
8264         * rhythmdb/rb-refstring.h:
8265         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
8267 2006-03-12  William Jon McCann  <mccann@jhu.edu>
8269         * data/ui/rhythmbox-ui.xml:
8270         * lib/rb-stock-icons.c: (rb_stock_icons_init):
8271         * lib/rb-stock-icons.h:
8272         * shell/rb-shell-player.c:
8273         * shell/rb-shell.c: (rb_shell_constructor):
8274         * shell/rb-source-header.c: (force_no_shadow),
8275         (ui_manager_add_widget_cb), (rb_source_header_constructor),
8276         (rb_source_header_class_init), (rb_source_header_init),
8277         (merge_source_ui_cb), (toolbar_set_homogeneous),
8278         (rb_source_header_set_source_internal),
8279         (rb_source_header_set_property), (rb_source_header_get_property),
8280         (rb_source_header_set_source), (rb_source_header_new),
8281         (rb_source_header_filter_changed_cb):
8282         * shell/rb-source-header.h:
8283         * sources/rb-library-source.c: (rb_library_source_class_init),
8284         (rb_library_source_init), (search_action_to_prop),
8285         (search_action_changed), (rb_library_source_constructor),
8286         (impl_search), (impl_reset_filters), (impl_get_search_actions),
8287         (construct_query_from_selection):
8288         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
8289         (rb_podcast_source_init), (search_action_to_prop),
8290         (search_action_changed), (rb_podcast_source_constructor),
8291         (construct_query_from_selection), (impl_get_ui_actions),
8292         (impl_get_search_actions):
8293         * sources/rb-source.c: (rb_source_class_init),
8294         (rb_source_get_ui_actions), (default_get_search_actions),
8295         (rb_source_get_search_actions):
8296         * sources/rb-source.h:
8298         Add a search bar.  Fixes #328618
8300 2006-03-12  James Livingston  <jrl@ids.org.au>
8302         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
8303         * shell/main.c: (main): make --no-update not stat files checking for
8304         changes, instead of doing nothing. Fixes bug 125177.
8306 2006-03-12  James Livingston  <jrl@ids.org.au>
8308         * podcast/rb-podcast-manager.c:
8309         (rb_podcast_manager_thread_parse_feed):
8310         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
8311         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
8312         having an invalid mime-type. Fixed bug 329813.
8314 2006-03-12  James Livingston  <jrl@ids.org.au>
8316         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
8317         Finally lets us close bug 309609.
8319         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
8320         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
8321         0.10
8323         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
8324         inverted logic of the editable check.
8326 2006-03-12  James Livingston  <jrl@ids.org.au>
8328         Make API doc generation work again. Fixes bug 334276.
8330         * doc/reference/Makefile.am:
8331         * doc/reference/tmpl/rb-debug.sgml:
8332         * doc/reference/tmpl/rb-druid.sgml:
8333         * doc/reference/tmpl/rb-entry-view.sgml:
8334         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
8335         * doc/reference/tmpl/rb-metadata.sgml:
8336         * doc/reference/tmpl/rb-shell.sgml:
8337         * doc/reference/tmpl/rhythmbox-unused.sgml:
8338         * doc/reference/tmpl/rhythmdb.sgml:
8340 2006-03-12  James Livingston  <jrl@ids.org.au>
8342         * shell/rb-shell-clipboard.c:
8343         (rb_shell_clipboard_set_source_internal),
8344         (rb_shell_clipboard_sync): don't try to use the source's entry view if
8345         it doesn't have one. Fixes bug 331673.
8347         * sources/rb-source.c: (rb_source_class_init): provide a default
8348         have_url implementation that returns FALSE.
8350 2006-03-12  James Livingston  <jrl@ids.org.au>
8352         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
8353         doing a distclean. Fixes bug 334221.
8356         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
8358         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
8360 2006-03-11  James Livingston  <jrl@ids.org.au>
8362         * shell/rb-shell.c: (rb_shell_window_state_cb),
8363         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
8364         update the window width/height when iconified. Stops the window
8365         changing size when it is restored from the tray, fixing bug 333824. 
8367 2006-03-11  James Livingston  <jrl@ids.org.au>
8369         Try to get cvs to actually add the necessary files for plugin support
8371 2006-03-11  James Livingston  <jrl@ids.org.au>
8373         Add a plugin framework, with basic support for Python plugins (based
8374         on gedit's). Closes bug 330523.
8376         * Makefile.am:
8377         * shell/Makefile.am:
8378         * configure.ac: necessary autofoo.
8380         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
8382         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
8383         * lib/rb-file-helpers.h:
8385         * data/glade/plugins/glade:
8386         * lib/rb-preferences.h:
8387         * plugins/*:
8388         * bindings/*: plugin framework
8390         * plugins/sample/*:
8391         * plugins/sample-python/*: sample plugins
8393         * plugins/audioscrobbler/*:
8394         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
8395         (rb_audioscrobbler_set_property),
8396         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
8397         submission into a plugin. shell/audioscrobbler.* should really be
8398         moved, but that sucks with cvs.
8400         * shell/rb-shell.h:
8401         * shell/rb-shell.c: (rb_shell_constructor),
8402         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
8403         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
8404         (rb_shell_quit): start and stop plugin framework.
8406 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8408         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
8409         (rhythmdb_entry_delete):
8410         Emit entry-deleted signals when rhythmdb_commit is called, rather than
8411         immediately, so we can't get change notifications afterwards.  
8412         Fixes #331732.
8413         (rhythmdb_process_metadata_load): Add a commit after removing an
8414         entry so we can recreate it with a different type without getting
8415         confused.
8417 2006-03-11  James Livingston  <jrl@ids.org.au>
8419         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
8420         use the drive name for audio CDs, use "Unknown CD".
8422 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8424         patch by:  James Henstridge  <james@jamesh.id.au>
8426         * sources/rb-removable-media-source.c:
8427         (rb_removable_media_source_constructor):
8428         Get the device name from the GnomeVFSDrive if possible,
8429         since this is usually a more descriptive name.  Fixes #333080.
8431 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8433         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8435         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
8436         Don't automatically download episodes when configured for manual
8437         updating.  Fixes #331564.
8439 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8441         * rhythmdb/rhythmdb-property-model.c:
8442         (rhythmdb_property_model_iter_from_string):
8443         Return an iterator for the 'all' property when name == NULL,
8444         and don't write to *iter if iter == NULL.
8446 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8448         * shell/rb-shell-player.c: (rb_shell_player_do_next):
8449         When switching to the play queue, still call _go_next on the normal
8450         play order, so self-emptying auto playlists ("play count = 0" etc.)
8451         don't restart once the queue is empty.
8453         * shell/rb-tray-icon.c:
8454         Change shortcut for 'show notifications' to 'o' so it doesn't clash
8455         with 'next'.
8457 2006-03-05  James Livingston  <jrl@ids.org.au>
8459         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
8460         don't submit tracks which could not be played. Fixed bug 333013.
8462         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
8463         tracks which could not be played.
8465 2006-03-05  James Livingston  <jrl@ids.org.au>
8467         Sync musicbrainz lookup code from Sound-Juicer cvs.
8469         * metadata/sj-metadata-musicbrainz.c:
8470         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
8471         (get_offline_track_listing), (artist_and_title_from_title),
8472         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
8473         (mb_list_albums), (mb_get_submit_url):
8474         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
8475         * metadata/sj-metadata.h:
8476         * metadata/sj-structures.c: (track_details_free),
8477         (album_details_free):
8478         * metadata/sj-structures.h:
8480 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8482         * lib/rb-debug.h:
8483         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
8484         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
8485         (rb_profiler_reset), (rb_profiler_free):
8486         Filter debug output by matching the file and function names against a
8487         match string.
8489         * shell/main.c: (main):
8490         Add -D command line option to specify the debug match string.
8492         * shell/rb-removable-media-manager.c:
8493         (rb_removable_media_manager_mount_volume):
8494         Fix some typos in debug output.
8496 2006-03-03  James Livingston  <jrl@ids.org.au>
8498         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
8499         * shell/rb-shell.c: (rb_shell_load_uri):
8500         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
8501         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
8502         use the new "recurse" property from totem-plparser, if present. Stop
8503         RB hanging for new users who don't have a 'net connection. From bug
8504         331508.
8506 2006-03-02  Bastien Nocera  <hadess@hadess.net>
8508         * shell/rb-removable-media-manager.c:
8509         (rb_removable_media_manager_mount_volume):
8510         * sources/Makefile.am:
8511         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
8512         Fix missing files on make dist (conditional files), only build the
8513         N770 support if there's HAL support, as we have no other ways of
8514         detecting it
8516 2006-03-03  James Livingston  <jrl@ids.org.au>
8518         * shell/rb-shell-clipboard.c:
8519         (rb_shell_clipboard_set_source_internal): really fix it this time.
8520         hopefully.
8522 2006-03-03  James Livingston  <jrl@ids.org.au>
8524         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
8525         with the idle function not being removed.
8527 2006-03-02  James Livingston  <jrl@ids.org.au>
8529         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
8530         * widgets/rb-entry-view.h: add function for determining whether all
8531         entries are selected.
8533         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
8534         (rb_shell_clipboard_set_source_internal),
8535         (rb_shell_clipboard_finalize),
8536         (rb_shell_clipboard_idle_poll_deletions),
8537         (rb_shell_clipboard_entryview_changed_cb),
8538         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
8539         removals, to update things.
8541         (rb_shell_clipboard_sync): update the Select All and Select None
8542         sensitivity, based on what is selected. Fixed bug 172220.
8544 2006-03-02  James Livingston  <jrl@ids.org.au>
8546         * widgets/rb-library-browser.c: (rebuild_child_model): save and
8547         restore the selections of later models. This means that selecting the
8548         artist for the selected album does not reset the album selection.
8550 2006-03-02  James Livingston  <jrl@ids.org.au>
8552         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
8553         Stops it emitting critical warnings.
8555 2006-03-02  James Livingston  <jrl@ids.org.au>
8557         * lib/rb-file-helpers.c: (rb_uri_append_uri):
8558         * lib/rb-file-helpers.h: Add uri concatenation function for when the
8559         second fragment is already escaped.
8561         * sources/rb-generic-player-source.c:
8562         (rb_generic_player_source_class_init),
8563         (rb_generic_player_source_constructor), (impl_show_popup),
8564         (rb_generic_player_source_load_playlists),
8565         (rb_generic_player_source_transform_playlist_uri),
8566         (handle_playlist_entry_cb), (visit_playlist_dirs),
8567         (default_load_playlists), (default_transform_playlist_uri):
8568         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
8569         the device. Allow subclasses to override the playlist loading, and
8570         (playlist uri)->(actual uri) mapping. A lot of devices which have
8571         playlists won't work right now, but people will see them and hopefully
8572         file bugs.
8574         * sources/rb-psp-source.c: (rb_psp_source_class_init),
8575         (rb_psp_source_create_playlists): Adapt the PSP for the above change
8576         
8577         * sources/Makefile.am:
8578         + sources/rb-nokia770-source.{c,h}:
8579         * shell/rb-removable-media-manager.c:
8580         (rb_removable_media_manager_mount_volume): Add support for reading
8581         playlists of Nokia 770s.
8583 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8585         * data/glade/podcast-properties.glade:
8586         * podcast/rb-podcast-properties-dialog.c:
8587         (rb_podcast_properties_dialog_init),
8588         (rb_podcast_properties_dialog_update),
8589         (rb_podcast_properties_dialog_update_location),
8590         (rb_podcast_properties_dialog_update_download_location):
8591         Add 'download location' field showing the path to the downloaded copy.
8592         Fixes #330696.
8594 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8596         * configure.ac: simplify HAVE_HAL define
8598 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8600         * configure.ac:
8601         * lib/rb-file-helpers.c: (rb_uri_append_path):
8602         * lib/rb-file-helpers.h:
8603         * shell/rb-removable-media-manager.c:
8604         (rb_removable_media_manager_mount_volume):
8605         * sources/Makefile.am:
8606         * sources/rb-ipod-source.c:
8607         * sources/rb-psp-source.*:
8608         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
8609         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
8611 2006-03-02  James Livingston  <jrl@ids.org.au>
8613         * shell/rb-shell-player.c: (rb_shell_player_set_property),
8614         (rb_shell_player_play), (rb_shell_player_jump_to_current),
8615         (swap_playing_source), (rb_shell_player_playpause),
8616         (rb_shell_player_sync_buttons), (actually_set_playing_source),
8617         (rb_shell_player_set_playing_source_internal): check for the entry
8618         view being NULL before trying to use it. Lets us support sources which
8619         don't have an entry view. From bug 331673.
8621 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8623         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
8624         use gnome_vfs_read_entire_file with a URI, not a local filename
8626 2006-03-01  James Livingston  <jrl@ids.org.au>
8628         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
8629         first-seen and last-seen when merging duplicate entries.
8631 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8633         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
8634         * widgets/rb-property-view.h:  New function, allowing custom 
8635         interactive search functions for property views.
8636         
8637         * sources/rb-podcast-source.c: 
8638         (feed_select_change_cb): Only do a new query when the selection
8639         actually changes.
8640         (rb_podcast_source_constructor),
8641         (rb_podcast_source_feed_title_search_func):
8642         Interactive search function for podcast feed titles.  Fixes #327451.
8644 2006-03-01  James Livingston  <jrl@ids.org.au>
8646         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
8647         the uri in the callback, since it causes symbols to not be escaped.
8648         Fixes bug 332976.
8650         * data/ui/rhythmbox-ui.xml:
8651         * sources/rb-import-errors-source.c:
8652         (rb_import_errors_source_class_init),
8653         (rb_import_errors_source_constructor), (impl_get_status),
8654         (impl_move_to_trash),
8655         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
8656         import errors source
8657         
8658         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
8659         (rb_entry_view_append_column): unescape the URI for display.
8661 2006-03-01  James Livingston  <jrl@ids.org.au>
8663         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
8664         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
8665         function fails.
8667 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
8669         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
8670         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
8671         * sources/rb-play-queue-source.c:
8672         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
8673         (rb_play_queue_source_update_count):  Use "Play Queue" instead
8674         of "Queued Songs".
8676         Fixes #331637.
8678 2006-03-01  James Livingston  <jrl@ids.org.au>
8680         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
8681         Fixes bug 332913.
8683 2006-03-01  James Livingston  <jrl@ids.org.au>
8685         * daapsharing/rb-daap-mdns-browser-howl.c:
8686         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
8687         * daapsharing/rb-daap-mdns-publisher-avahi.c:
8688         (rb_daap_mdns_publisher_class_init),
8689         (rb_daap_mdns_publisher_finalize):
8690         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
8691         * player/rb-recorder-gst.c: (rb_recorder_class_init),
8692         (rb_recorder_finalize):
8693         * rhythmdb/rhythmdb-query-model.c:
8694         (rhythmdb_query_model_constructor):
8695         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
8696         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
8697         * sources/rb-playlist-source-recorder.c:
8698         (rb_playlist_source_recorder_style_set),
8699         (rb_playlist_source_recorder_class_init),
8700         (rb_playlist_source_recorder_finalize):
8701         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
8702         other classes in the same way, so they don't break when derived from.
8704 2006-03-01  James Livingston  <jrl@ids.org.au>
8706         * sources/rb-generic-player-source.c:
8707         (rb_generic_player_source_constructor): don't get the parent class in
8708         a dumb way, and it breaks when the class is derived from.
8710 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
8712         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
8714 2006-03-01  James Livingston  <jrl@ids.org.au>
8716         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
8717         not work in glib 2.8 systems.
8719 2006-03-01  James Livingston  <jrl@ids.org.au>
8721         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
8722         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
8723         say it is crap.
8725         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
8726         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
8727         podcasts on ion-local places
8729         * rhythmdb/gsequence.c: (g_sequence_node_new),
8730         (g_sequence_node_free): use gslice if we are building against glib
8731         2.10.
8733         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
8734         local files too, so it doesn't block.
8736 2006-02-28  James Livingston  <jrl@ids.org.au>
8738         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
8739         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
8740         stats the file. Stops the UI blocking while stats are done.
8742 2006-02-28  James Livingston  <jrl@ids.org.au>
8744         * sources/rb-static-playlist-source.c:
8745         (rb_static_playlist_source_class_init),
8746         (rb_static_playlist_source_constructor), (impl_reset_filters),
8747         (impl_get_property_views), (impl_browser_toggled),
8748         (rb_static_playlist_source_do_query),
8749         (rb_static_playlist_source_browser_changed_cb): add browsers to static
8750         playlists. From bug 118862.
8752         * sources/rb-play-queue-source.c:
8753         (rb_play_queue_source_class_init): disable them for the play queue.
8755 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
8757         * data/glade/library-prefs.glade:  Add a mnemonic.
8758         * sources/rb-library-source.c:
8759         (rb_library_source_location_button_clicked_cb):  Use title
8760         capitalization for window title.
8762 2006-02-28  James Livingston  <jrl@ids.org.au>
8764         * sources/rb-auto-playlist-source.c:
8765         (construct_query_from_selection): don't create a subquery for only one
8766         criteria, as it's a silly effifiency degredation.
8768 2006-02-28  James Livingston  <jrl@ids.org.au>
8770         * rhythmdb/rhythmdb.h:
8771         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
8772         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
8773         saved to disk
8775         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
8776         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
8777         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
8778         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
8779         IGNORE (e.g. known video stream) create an entry of the Ignore type.
8780         This will make importing files quicker as we don't need to try files
8781         that we know are not going to be interesting - especially useful when
8782         using the library watching facility.
8784         Fixes bug 323179.
8786 2006-02-28  James Livingston  <jrl@ids.org.au>
8788         * shell/rb-shell.c: (rb_shell_constructor),
8789         (rb_shell_set_visibility): fix browser and source-list pane
8790         positioning, that I broke with the "remember visibility" patch.
8792 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8794         * metadata/rb-metadata-dbus-service.c: (main):
8795         Change argument handling so you can use --debug with the --load and
8796         --can-save test modes.
8797         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
8798         Use a separate GMainContext, not the default one.  Probably fixes
8799         #332344.
8801 2006-02-27  James Livingston  <jrl@ids.org.au>
8803         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
8804         first starting up. Fixes bug 330342.
8806 2006-02-27  James Livingston  <jrl@ids.org.au>
8808         * sources/rb-sourcelist-model.c:
8809         (rb_sourcelist_model_set_dnd_targets):
8810         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
8811         COPY action for draging sources and tracks, not MOVE as well. Stops
8812         Nautilus moving file away, and fixes bug 332488.
8814 2006-02-27  James Livingston  <jrl@ids.org.au>
8816         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
8818         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
8819         and Last Played metadata off iPods. Closes bug 324648.
8821 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8823         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
8824         Disable audioscrobbler when run with the --no-registration flag, since
8825         last.fm doesn't allow multiple concurrent clients per user.
8827 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8829         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
8830         Rename renamable sources when F2 is pressed when the sourcelist has
8831         focus.  Fixes #330700.
8833 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8835         * shell/rb-playlist-manager.c: (cleanup_edit_data),
8836         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
8837         (rb_playlist_manager_cmd_edit_automatic_playlist):
8838         Fix various crashes when deleting auto playlists previously edited
8839         by disconnecting signal handlers when the query editor is closed or
8840         the playlist is deleted.
8842 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8844         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
8845         removed load failure dialog, and actually use the friendly file type
8846         name in error messages.
8848 2006-02-24  James Livingston  <jrl@ids.org.au>
8850         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
8852         * sources/rb-library-source.c:
8853         (rb_library_source_location_button_clicked_cb),
8854         (rb_library_source_preferences_sync),
8855         (rb_library_source_library_location_cb): convert the library URI to
8856         for display, and back again. Fixes bug 332356.
8858 2006-02-23  James Livingston  <jrl@ids.org.au>
8860         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
8861         (rhythmdb_process_metadata_load), (monitor_subdirectory),
8862         (rhythmdb_sync_library_location): don't monitor files at all if
8863         watching is turned off. From bug 323096.
8865 2006-02-23  James Livingston  <jrl@ids.org.au>
8867         * data/rhythmbox.schemas:
8868         * lib/rb-preferences.h:
8869         * shell/rb-shell.c: (rb_shell_constructor),
8870         (rb_shell_set_visibility): remember main window visibility between
8871         sessions. Fixes bug 127320.
8873 2006-02-23  James Livingston  <jrl@ids.org.au>
8875         * data/glade/library-prefs.glade:
8876         * sources/rb-library-source.c: (impl_get_config_widget),
8877         (rb_library_source_location_button_clicked_cb),
8878         (rb_library_source_preferences_sync),
8879         (rb_library_source_library_location_cb),
8880         (rb_library_source_watch_toggled_cb): change the library-location
8881         widgets from the file-chooser drop menu to a text entry and Browse
8882         button. This is needed to prevent the location from chaning if the
8883         directory cannot be found. Fixes bug 328414.
8885 2006-02-23  James Livingston  <jrl@ids.org.au>
8887         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
8888         item. Fixes bug 329042.
8890 2006-02-23  James Livingston  <jrl@ids.org.au>
8892         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8894         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
8895         comma in some podcast feeds. Fixes bug 332194.
8897 2006-02-23  James Livingston  <jrl@ids.org.au>
8899         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
8900         lower priority.
8902         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
8903         the internal audio cd URIs from "cdda://device:track" to
8904         "cdda://track#device" as it makes processing much easier.
8906         * shell/rb-shell-player.c: (rb_shell_player_open_location):
8907         * player/rb-player-gst.c: don't have the shell close the player
8908         between songs, as doing that should be backend-specific. Make the
8909         gstreamer backend close before starting a new track, unless the old
8910         and new ones are both tracks on the same audio cd. Just seek in that
8911         case.
8913 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8915         * doc/reference/rhythmbox.types: Fix doc build a bit more.
8917 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8919         * configure.ac: Enable more warnings in my stupid setup too.
8920         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
8921         #332210.
8923 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8925         * sources/rb-missing-files-source.h,
8926         * sources/rb-missing-files-source.c,
8927         * sources/rb-import-errors-source.h,
8928         * sources/rb-import-errors-source.c:
8929         Add library meta-sources, showing missing files and import errors.
8930         Fixes #167763, #142322.
8932         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
8933         * sources/rb-sourcelist-model.h:
8934         * sources/rb-sourcelist.c: (rb_sourcelist_append),
8935         (match_source_to_iter), (rb_sourcelist_source_to_iter),
8936         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
8937         (visibility_notify_cb):
8938         Store source visibility in the sourcelist model, so we can determine
8939         child source counts correctly and get the sourcelist expander column
8940         right.
8941         
8942         * widgets/rb-entry-view.h:
8943         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8944         (rb_entry_view_append_column), (set_column_visibility):
8945         Allow the creator of the entry view to specify which columns are
8946         always visible.
8948         * sources/rb-source.h:
8949         * sources/rb-source.c: (_autohide_update_visibility),
8950         (_rb_autohide_source_row_deleted_cb),
8951         (_rb_autohide_source_row_inserted_cb),
8952         (_rb_source_hide_when_empty):
8953         Allow sources to automatically hide themselves when empty.
8954         
8955         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
8956         * sources/rb-library-source.c: (rb_library_source_constructor):
8957         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8958         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
8959         Explicitly specify which columns are always visible.
8960         
8961         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
8962         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
8963         Remove load error signal handling and load failure dialog.
8964         Create missing files and import errors sources for the library.
8966         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
8967         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
8968         Create DB entries for import errors rather than emitting the 'load
8969         error' signal; mark loaded entries visible.
8970         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
8971         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
8972         (rhythmdb_prop_get_type): Store string form of last seen time for
8973         hidden entries, since it's used in the missing files source.
8974         (rhythmdb_entry_import_error_get_type): 
8975         Add entry type for import errors.
8976         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
8977         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
8978         (rhythmdb_entry_move_to_trash_set_error),
8979         (rhythmdb_entry_move_to_trash):  
8980         Correct spelling, add missing rhythmdb_commit.
8981         * rhythmdb/rhythmdb.h:  
8982         Add import error entry type and last seen string property.
8983         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
8984         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8985         (save_entry):  Ignore string form of 'last seen' property.
8987         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
8988         Don't try to play hidden entries or import error entries.
8990         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
8991         * sources/Makefile.am: Add meta-source files
8992         * widgets/Makefile.am: Remove load failure dialog files
8994 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8996         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
8997         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
8998         few bits and pieces.
9000 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9002         * metadata/test-metadata.c: (load_metadata_cb):
9003         Fix compile warning for ignoring return value from getcwd, #332064.
9005 2006-02-21  James Livingston  <jrl@ids.org.au>
9007         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
9008         (edit_auto_playlist_deleted_cb),
9009         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
9010         playlist editor non-modal. Fixes bug 320030.
9012 2006-02-21  James Livingston  <jrl@ids.org.au>
9014         * shell/rb-shell.c: (rb_shell_constructor):
9015         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
9016         (rb_header_set_show_artist_album):
9017         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
9018         (rb_song_display_box_sync): make the queue sidebar and song display
9019         not get affected by gtk_widget_show_all. Fixes bug 332001.
9021 2006-02-21  James Livingston  <jrl@ids.org.au>
9023         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
9025         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
9026         feeds which use timezone names instead of offsets. Doesn't actually
9027         parse the timezone name since they are not standardised. Fixes bug
9028         331691.
9030 2006-02-21  James Livingston  <jrl@ids.org.au>
9032         * help/C/figures/rb-notification-area.png:
9033         * help/C/figures/rb-sidebar.png:
9034         * help/C/quick-reference.xml: remove obsolete files from CVS.
9036         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
9037         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
9038         (rhythmdb_query_free), (rhythmdb_query_serialize),
9039         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
9040         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
9042         * widgets/rb-query-creator-properties.c: add prefix and suffix
9043         (escapedStringCriteriaGetWidgetData): use better escaping, so it
9044         doesn't escape the ':' separator in uris.
9046 2006-02-21  James Livingston  <jrl@ids.org.au>
9048         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
9049         on startup.
9051 2006-02-21  James Livingston  <jrl@ids.org.au>
9053         * NEWS: update with recent changes
9055 2006-02-21  James Livingston  <jrl@ids.org.au>
9057         * shell/rb-shell.c: (rb_shell_constructor),
9058         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
9059         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
9060         (rb_druid_browse_clicked_cb), (do_response):
9061         * widgets/rb-druid.h: Make running the druid not block RBShell
9062         starting up. This is required so that bonobo registration doesn't time
9063         out. Fixed bug 318766.
9065 2006-02-21  James Livingston  <jrl@ids.org.au>
9067         * rhythmdb/rhythmdb-property-model.c:
9068         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
9069         hash table after using it, not before. Fixed bug 331922.
9071 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9073         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
9074         (rb_shell_view_queue_as_sidebar_changed_cb):
9075         When playing from the queue, only attempt to highlight the queue
9076         source in the source list if it's actually visible there.  Otherwise,
9077         leave the preempted source highlighted.  Mostly fixes #330819.
9079 2006-02-20  James Livingston  <jrl@ids.org.au>
9081         * rhythmdb/rhythmdb-property-model.c:
9082         (rhythmdb_property_model_row_inserted_cb),
9083         (rhythmdb_property_model_prop_changed_cb),
9084         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
9085         store the roperty value in the entry-mapping table, so that receiving
9086         the remove signal from a query model before we get notified of a
9087         change doesn't cause a crash. Fixes bug 331770.
9089 2006-02-20  James Livingston  <jrl@ids.org.au>
9091         * data/ui/rhythmbox-ui.xml:
9092         * sources/rb-play-queue-source.c:
9093         (rb_play_queue_source_class_init),
9094         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
9095         playlist things in the queue popup source. From 330490.
9097         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
9098         previous commit
9100 2006-02-20  James Livingston  <jrl@ids.org.au>
9102         * widgets/rb-song-info.c: (rb_song_info_response_cb),
9103         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
9104         attempt to sync data for non-editable entries when using
9105         next/previous. Don't write our Year if it wasn't changed. Fixes bug
9106         331762.
9108 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
9110         * .cvsignore:
9111         * Makefile.am:
9112         * autogen.sh:
9113         * configure.ac:
9114         * help/.cvsignore:
9115         * help/Makefile.am: ported to gnome-doc-utils
9116         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
9117         * help/ChangeLog: added, for translators
9118         * help/C/rhytmbox-C.omf: removed, no longer used
9119         Know issue: figures are installed, but some are not showed; manual
9120         description added, but not showed in Yelp while browsing. I'll
9121         investigate, maybe are needed some little changes to
9122         help/C/rhythmbox.xml.
9124 2006-02-20  James Livingston  <jrl@ids.org.au>
9126         * data/ui/rhythmbox-ui.xml:
9127         * help/C/figures/rb-adv.png:
9128         * help/C/figures/rb-asst-finish.png:
9129         * help/C/figures/rb-asst-library.png:
9130         * help/C/figures/rb-asst-start.png:
9131         * help/C/figures/rb-basic.png:
9132         * help/C/figures/rb-browser.png:
9133         * help/C/figures/rb-context-menu.png:
9134         * help/C/figures/rb-empty.png:
9135         * help/C/figures/rb-full-play.png:
9136         * help/C/figures/rb-group-auto.png:
9137         * help/C/figures/rb-group-create.png:
9138         * help/C/figures/rb-group.png:
9139         * help/C/figures/rb-imported.png:
9140         * help/C/figures/rb-iradio-add.png:
9141         * help/C/figures/rb-iradio.png:
9142         * help/C/figures/rb-nextprev.png:
9143         * help/C/figures/rb-nobrowse-play.png:
9144         * help/C/figures/rb-notification-area-menu.png:
9145         * help/C/figures/rb-player.png:
9146         * help/C/figures/rb-prefs-general.png:
9147         * help/C/figures/rb-prefs-ipod.png:
9148         * help/C/figures/rb-prefs-library.png:
9149         * help/C/figures/rb-prefs.png:
9150         * help/C/figures/rb-repeat.png:
9151         * help/C/figures/rb-search.png:
9152         * help/C/figures/rb-shuffle.png:
9153         * help/C/figures/rb-stats.png:
9154         * help/C/figures/rb-toolbar-editor.png:
9155         * help/C/figures/rb-volume-mute.png:
9156         * help/C/figures/rhythmbox-group.png:
9157         * help/C/figures/rhythmbox-tray-icon.png:
9158         * help/C/user-guide.xml: remove old stuff from cvs
9160 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9162         * metadata/rb-metadata-dbus-client.c: 
9163         * metadata/rb-metadata-dbus-service.c:
9164         * metadata/rb-metadata-dbus.c:
9165         * metadata/rb-metadata-dbus.h:
9166         New files, adding an external service for reading and writing
9167         metadata, and an implementation of the RBMetaData interface that uses
9168         dbus to communicate with it.
9169         
9170         * metadata/rb-metadata.h,
9171         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
9172         (rb_metadata_get_field_name): Put metadata details in a static array
9173         instead of using a hash table, and add a field for language code (not
9174         used for anything)
9175         * metadata/rb-metadata-gst.c: Updates for changes in
9176         rb-metadata-common.c, fix signal handler closure leak for the typefind
9177         element's have-type signal, and add XML to the list of types we ignore.
9178         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
9179         Update for changes to rb_metadata_get_field_type
9180         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
9181         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
9182         here and there.
9183         
9184         * configure.ac: Add --enable-metadata-helper option (not enabled by
9185         default) to use the external metadata service
9186         * metadata/Makefile.am: Add new files
9187         * metadata/test-metadata.c:  Test program for the metadata service
9189         Fixes #329597. 
9191 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9193         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
9194         * sources/rb-podcast-source.c: (impl_get_ui_actions),
9195         (rb_podcast_source_cmd_new_podcast):
9196         Move 'new podcast' action to the podcast source, and add it to the
9197         toolbar.  Fixes #331562.
9199 2006-02-19  James Livingston  <jrl@ids.org.au>
9201         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
9202         menus, and away from move-to-trash. Fixes bug 331013.
9204 2006-02-19  James Livingston  <jrl@ids.org.au>
9206         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
9207         when deleting last entry. Fixes bug 331712.
9209 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9211         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
9212         (rb_entry_view_button_press_cb):
9213         * widgets/rb-entry-view.h: Emit show-popup when right clicked
9214         anywhere, and include a flag indicating whether the click was over an
9215         entry or not.
9216         
9217         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
9218         (rb_playlist_source_songs_show_popup_cb):
9219         * sources/rb-playlist-source.h:
9220         Add the 'over entry' flag to the class show popup method, and in the
9221         default handler, ignore right clicks when not over an entry.
9222         
9223         * sources/rb-iradio-source.c:
9224         (rb_iradio_source_songs_show_popup_cb):
9225         * sources/rb-library-source.c:
9226         (rb_library_source_songs_show_popup_cb):
9227         * sources/rb-podcast-source.c:
9228         (rb_podcast_source_songs_show_popup_cb):
9229         Show the source list popup menu when right clicked while not over an
9230         entry.
9232         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
9233         For the queue sidebar, always display the popup so the 'clear queue'
9234         action is available regardless of where you click.  For the queue
9235         source, only display the popup when right clicked over an entry.
9236         Fixes #331392.
9238 2006-02-19  James Livingston  <jrl@ids.org.au>
9240         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
9241         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
9242         entry view, when we're not even using it
9244         * rhythmdb/rhythmdb-property-model.c:
9245         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
9246         function, rather than a copy of the code.
9248         * shell/rb-playlist-manager.c:
9249         (rb_playlist_manager_playlist_row_inserted_cb),
9250         (rb_playlist_manager_set_source_internal),
9251         (rb_playlist_manager_playlist_entries_changed): use the query-model
9252         directly, rather than the source's entry view.
9254         * shell/rb-source-header.c: don't use the entry view, just select the
9255         source widget.
9257 2006-02-18  James Livingston  <jrl@ids.org.au>
9259         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
9261         * help/C/figures/rb-iradio-main.png:
9262         * help/C/figures/rb-notification-area-menu.png:
9263         * help/C/figures/rb-notification-window.png:
9264         * help/C/figures/rb-notification-zone.png:
9265         * help/C/figures/rb-podcast-main.png:
9266         * help/C/figures/rb-statusbar.png:
9267         * help/C/figures/rb-toolbar-prevplaynext.png:
9268         * help/C/figures/rb-toolbar-repeat.png:
9269         * help/C/figures/rb-toolbar-shuffle.png:
9270         * help/C/figures/rb-toolbar.png:
9271         * help/C/figures/rb-volume-changer.png:
9272         * help/C/figures/rb-window-small.png:
9273         * help/C/figures/rb-window.png:
9274         * help/C/rhythmbox.xml: Update user guide with some of the changes
9275         that have occurred after 0.8.8. From bug 314001.
9277 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9279         * rhythmdb/rhythmdb-query-results.h,
9280           rhythmdb/rhythmdb-query-results.c:
9281         New interface for objects that accept query results from RhythmDB.
9283         * rhythmdb/rhythmdb-query-model.c:
9284         (rhythmdb_query_model_query_results_init),
9285         (rhythmdb_query_model_set_query),
9286         (rhythmdb_query_model_add_results),
9287         (rhythmdb_query_model_query_complete):
9288         * rhythmdb/rhythmdb-query-model.h:
9289         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
9291         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
9292         (rhythmdb_tree_do_full_query):
9293         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
9294         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
9295         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
9296         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
9297         * rhythmdb/rhythmdb.h:
9298         Pass query results through the RhythmDBQueryResults interface, rather
9299         than directly to a RhythmDBQueryModel.
9301         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
9302         (rb_podcast_manager_db_entry_deleted_cb):
9303         * sources/rb-auto-playlist-source.c:
9304         (rb_auto_playlist_source_do_query),
9305         (rb_auto_playlist_source_set_query):
9306         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
9307         * sources/rb-library-source.c: (rb_library_source_constructor),
9308         (rb_library_source_do_query):
9309         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9310         (rb_podcast_source_do_query):
9311         * rhythmdb/rhythmdb-property-model.c:
9312         (rhythmdb_property_model_drag_data_get):
9313         Cast the query model to RhythmDBQueryResults when passing to one of
9314         the RhythmDB query methods.
9316         * rhythmdb/Makefile.am: Add new files.
9318 2006-02-18  James Livingston  <jrl@ids.org.au>
9320         * data/ui/rhythmbox-ui.xml:
9321         * shell/rb-playlist-manager.c:
9322         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
9323         "queue playlist" item to source context menu. Fixes bug 330490.
9325 2006-02-18  James Livingston  <jrl@ids.org.au>
9327         * data/glade/general-prefs.glade:
9328         * shell/rb-shell-preferences.c:
9329         (rb_shell_preferences_column_check_changed_cb),
9330         (rb_shell_preferences_sync):
9331         * sources/rb-library-source.c: (rb_library_source_constructor):
9332         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9333         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
9334         (rb_entry_view_append_column): Add a "quality" colume which indicates
9335         the bitrate of media. Part of bug 167659.
9337 2006-02-18  James Livingston  <jrl@ids.org.au>
9339         * shell/rb-play-order.c: (do_next_idle_cb),
9340         (default_playing_entry_removed): move to next track when playing entry
9341         is deleted. Fixes bug 131150.
9343         * shell/rb-shell-player.h: remove ancient stuff
9345 2006-02-17  William Jon McCann  <mccann@jhu.edu>
9347         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
9348         (rb_shell_clipboard_set_property): 
9349         * shell/rb-shell.c (rb_shell_sync_party_mode):
9350         Trigger a resync of the clipboard properties when changing party mode.
9352 2006-02-17  William Jon McCann  <mccann@jhu.edu>
9354         * sources/rb-static-playlist-source.c: Fix includes.
9356         * sources/rb-source.c (rb_source_can_rename) 
9357         (rb_source_can_delete, rb_source_can_move_to_trash):
9358         Return FALSE if in party mode.
9360         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
9361         Replace fullscreen with party mode.
9362         (rb_shell_window_delete_cb): Don't quit if in party mode.
9363         (rb_shell_view_party_mode_changed_cb): Setup party mode.
9364         (window_state_event_cb): Try to deiconify shell when iconified
9365         in party mode.
9366         (rb_shell_sync_party_mode): Sync party mode properties.
9367         Currently, that means [de]sensitizing close, quit, and small-display,
9368         going into fullscreen mode with window stuck and kept above, and
9369         toggling queue-only for the shell player.
9370         (rb_shell_sync_smalldisplay): Sensitive party mode.
9371         (rb_shell_get_party_mode): Get party mode setting.
9373         * shell/rb-shell-player.c (rb_shell_player_class_init) 
9374         (rb_shell_player_set_property, rb_shell_player_get_property):
9375         Add queue-only property.
9376         (rb_shell_player_entry_activated_cb): If in party mode
9377         only queue the entry on activation.
9379         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
9380         Break out from set_properties.  Desensitize some actions when
9381         in party mode.
9382         (rb_playlist_manager_set_property): Break out set_source_internal.
9384         * data/rhythmbox.schemas: Remove fullscreen mode.
9386         * data/ui/rhythmbox-ui.xml: Replace fullscreen
9387         action with party mode.
9389         Partial fix for #323933
9391 2006-02-17  James Livingston  <jrl@ids.org.au>
9393         * configure.ac:
9394         * shell/rb-removable-media-manager.c:
9395         (get_nautilus_burn_drive_for_path),
9396         (rb_removable_media_manager_playing_uri_changed_cb): only use
9397         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
9398         over the list when it doesn't.
9400 2006-02-17  James Livingston  <jrl@ids.org.au>
9402         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
9403         (rb_iradio_source_first_time_changed): Only do the import on the
9404         first change from FALSE to TRUE.
9406         * sources/rb-library-source.c:
9407         (rb_library_source_preferences_sync),
9408         (rb_library_source_library_location_cb): set the first-run done flag
9409         if the user presses close and then sets their watches library
9410         location. Fixes bug 325997.
9412 2006-02-17  James Livingston  <jrl@ids.org.au>
9414         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
9415         removable media manager gobject properties
9417         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
9418         (split_drive_from_cdda_uri),
9419         (rb_removable_media_manager_playing_uri_changed_cb),
9420         (rb_removable_media_manager_load_media): stop polling a cd drive
9421         when we are playing from it. Part of bug 330716.
9423 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9425         * rhythmdb/rhythmdb-query-model.c:
9426         (rhythmdb_query_model_set_property),
9427         (rhythmdb_query_model_finalize),
9428         (rhythmdb_query_model_base_entry_removed):
9429         Propagate entry removal from base models out to attached property
9430         models.  Fixes the rest of #331165.
9432 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9434         * rhythmdb/rhythmdb-property-model.c:
9435         (rhythmdb_property_model_row_inserted_cb),
9436         (rhythmdb_property_model_prop_changed_cb),
9437         (rhythmdb_property_model_insert):
9438         Don't store NULL as a hash table value if we want to use
9439         g_hash_table_lookup to check if a key exists, and get the checks for
9440         how and whether to handle entry changes the right way around.
9441         Fixes #331211 and half of #331165.
9443 2006-02-16  James Livingston  <jrl@ids.org.au>
9445         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
9446         the audio cd's TOC in a separate thread, so it doesn't block the UI.
9447         Fixes bug 329942.
9449 2006-02-16  James Livingston  <jrl@ids.org.au>
9451         * widgets/rb-library-browser.c: (reset_view_cb): make View All
9452         actually reset the browsers.
9454 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9456         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9457         Escape the strings we pass into libnotify so we don't get blank
9458         notifications when the song name contains '&' etc.  Fixes #330784.
9460 2006-02-16  James Livingston  <jrl@ids.org.au>
9462         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9463         enable "View All" when there is only a search box and no browser.
9464         Fixes bug 331395.
9466 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9468         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
9469         popup menu, which I forgot to commit with the patch for bug #330014.
9471 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9473         * shell/rb-shell-player.c: (open_location_thread):
9474         Sync button and entry view state once we've started the player, so the
9475         entry view gets into the playing state for iradio.
9477 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9479         * shell/rb-shell-player.c: (open_location_thread):
9480         Take GDK lock before doing anything UI-related.
9482 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9484         * shell/rb-shell.c: Move 'new iradio station' action to
9485         iradio source.
9487         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
9488         (rb_iradio_source_init), (rb_iradio_source_finalize),
9489         (rb_iradio_source_constructor):
9490         Remove some unused stuff.
9492         (guess_uri_scheme), (rb_iradio_source_add_station),
9493         (rb_iradio_source_add_from_playlist),
9494         (impl_get_ui_actions), (new_station_location_added),
9495         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
9496         action, include it in the toolbar, and make sure the URI we add has a
9497         scheme.  Fixes #327059, more or less.
9499 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9501         * sources/rb-play-queue-source.c:
9502         (rb_play_queue_source_class_init),
9503         (rb_play_queue_source_constructor),
9504         (rb_play_queue_source_update_count),
9505         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
9506         Add a toolbar button to clear the play queue, and make it sensitive
9507         only when there are entries in the queue.  Fixes #330014.
9509         * sources/rb-source.c: (_rb_source_register_action_group):
9510         * sources/rb-source.h:  Add helper function to register an
9511         action group for a source.
9513         * sources/rb-library-source.c: (rb_library_source_constructor):
9514         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9515         (register_action_group):  Use _rb_source_register_action_group.
9517 2006-02-15  James Livingston  <jrl@ids.org.au>
9519         * widgets/rb-song-info.c: (rb_song_info_add_completion),
9520         (rb_song_info_constructor), (rb_song_info_set_property): make
9521         tag-editing completion work for albums too.
9523 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9525         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
9526         Check the 'limit' checkbox for time-limited playlists.
9528 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
9530         * widgets/rb-song-info.c: Prove text-completion when editing title,
9531         artist or album
9533 2006-02-14  James Livingston  <jrl@ids.org.au>
9535         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
9536         tray icon popup menu. Fixes bug 331026.
9538 2006-02-14  James Livingston  <jrl@ids.org.au>
9540         * data/iradio-initial.pls: update the Virgin Radio stations to use the
9541         Ogg Vorbis streams, instead of the MP3 ones.
9543 2006-02-14  James Livingston  <jrl@ids.org.au>
9545         * rhythmdb/rhythmdb-property-model.c:
9546         (rhythmdb_property_model_class_init),
9547         (rhythmdb_property_model_drag_data_get):
9548         * rhythmdb/rhythmdb-query-model.c:
9549         (rhythmdb_query_model_title_sort_func):
9550         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
9551         LOCATION as the key. Fixes bug 330601.
9553 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9555         * sources/rb-playlist-source.c: (playlist_iter_func):
9556         Make it compile with older versions of totem-plparser too.      
9558 2006-02-13  James Livingston  <jrl@ids.org.au>
9560         * rhythmdb/rhythmdb.h:
9561         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
9562         structure private, since things should use the accessor functions
9563         rather than manipulating it directly - Only RhythmDB and the
9564         implementation classes should access it directly. Part of the RhythmDB
9565         cleanup of bug 330226.
9567         * iradio/rb-station-properties-dialog.c:
9568         (rb_station_properties_dialog_update_title),
9569         (rb_station_properties_dialog_update_title_entry),
9570         (rb_station_properties_dialog_update_genre),
9571         (rb_station_properties_dialog_update_location),
9572         (rb_station_properties_dialog_update_play_count),
9573         (rb_station_properties_dialog_update_bitrate),
9574         (rb_station_properties_dialog_update_last_played),
9575         (rb_station_properties_dialog_update_rating),
9576         (rb_station_properties_dialog_update_playback_error),
9577         (rb_station_properties_dialog_sync_entries):
9578         * podcast/rb-feed-podcast-properties-dialog.c:
9579         (rb_feed_podcast_properties_dialog_update_title),
9580         (rb_feed_podcast_properties_dialog_update_title_label),
9581         (rb_feed_podcast_properties_dialog_update_author),
9582         (rb_feed_podcast_properties_dialog_update_location),
9583         (rb_feed_podcast_properties_dialog_update_copyright),
9584         (rb_feed_podcast_properties_dialog_update_language),
9585         (rb_feed_podcast_properties_dialog_update_summary):
9586         * podcast/rb-podcast-manager.c:
9587         (rb_podcast_manager_entry_downloaded),
9588         (rb_podcast_manager_db_entry_added_cb),
9589         (download_progress_update_cb),
9590         (rb_podcast_manager_db_entry_deleted_cb):
9591         * podcast/rb-podcast-properties-dialog.c:
9592         (rb_podcast_properties_dialog_update_title),
9593         (rb_podcast_properties_dialog_update_title_label),
9594         (rb_podcast_properties_dialog_update_feed),
9595         (rb_podcast_properties_dialog_update_location),
9596         (rb_podcast_properties_dialog_update_play_count),
9597         (rb_podcast_properties_dialog_update_bitrate),
9598         (rb_podcast_properties_dialog_update_last_played),
9599         (rb_podcast_properties_dialog_update_rating),
9600         (rb_podcast_properties_dialog_update_date),
9601         (rb_podcast_properties_dialog_update_description):
9602         * rhythmdb/rhythmdb-query-model.c:
9603         (rhythmdb_query_model_entry_changed_cb),
9604         (rhythmdb_query_model_remove_from_main_list),
9605         (rhythmdb_query_model_update_limited_entries),
9606         (rhythmdb_query_model_drag_data_get),
9607         (rhythmdb_query_model_album_sort_func):
9608         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9609         (save_entry):
9610         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
9611         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
9612         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
9613         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
9614         (rhythmdb_entry_get_double):
9615         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
9616         * shell/rb-play-order-random-by-age-and-rating.c:
9617         (rb_random_by_age_and_rating_get_entry_weight):
9618         * shell/rb-play-order-random-by-age.c:
9619         (rb_random_by_age_get_entry_weight):
9620         * shell/rb-play-order-random-by-rating.c:
9621         (rb_random_by_rating_get_entry_weight):
9622         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
9623         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
9624         (rb_shell_player_set_playing_entry),
9625         (rb_shell_player_sync_replaygain),
9626         (rb_shell_player_sync_with_source),
9627         (rb_shell_player_get_playing_song_duration), (info_available_cb):
9628         * sources/rb-playlist-source.c: (playlist_iter_func),
9629         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
9630         (rb_playlist_source_entry_added_cb):
9631         * sources/rb-podcast-source.c:
9632         (rb_podcast_source_post_status_cell_data_func):
9633         * sources/rb-source.c: (rb_source_update_play_statistics):
9634         * sources/rb-sourcelist-model.c:
9635         (rb_sourcelist_model_drag_data_get):
9636         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
9637         (rb_static_playlist_source_add_entry),
9638         (rb_static_playlist_source_remove_entry):
9639         * widgets/rb-entry-view.c: (type_ahead_search_func),
9640         (rb_entry_view_playing_cell_data_func),
9641         (rb_entry_view_rating_cell_data_func),
9642         (rb_entry_view_pixbuf_clicked_cb):
9643         * widgets/rb-header.c: (rb_header_get_duration):
9644         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
9645         (rb_song_info_populate_dialog),
9646         (rb_song_info_update_playback_error),
9647         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
9648         (rb_song_info_update_location), (rb_song_info_update_play_count),
9649         (rb_song_info_update_last_played), (rb_song_info_update_rating),
9650         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
9651         (rb_song_info_sync_entry_single): fix the huge number of times that
9652         the internals got accessed directly.
9654 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9656         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
9657         trash' are grouped together.
9658         * shell/main.c: (main): Pass no-registration flag in to RBShell
9659         constructor, rather than mysteriously always passing TRUE.
9660         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
9661         Set dirty flag when entries are removed from the model, so the play
9662         queue is marked dirty appropriately.
9663         * AUTHORS: update my email address
9665 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9667         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
9669         * widgets/rb-druid.c: (path_dialog_response_cb):
9670         If the URI is local, don't display the 'file://' prefix.  
9671         Fixes #330919.
9673 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9675         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9676         Attach the notification to the tray icon widget, so libnotify
9677         positions it less badly.  Fixes #330876.
9679 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9681         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
9682         Reverse the selection list before returning it, so we get it in the
9683         right order.  Fixes #330283 and some other weirdness.
9685 2006-02-11  James Livingston  <jrl@ids.org.au>
9687         * shell/rb-shell.c: (rb_shell_constructor),
9688         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
9689         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9690         make small-mode and fullscreen mutually exclusive, since they don't
9691         work together
9693         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
9694         Mode.
9696 2006-02-10  James Livingston  <jrl@ids.org.au>
9698         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
9699         since it can cause it to be slower than real-time. Should fix bug
9700         322270.
9702 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9704         * rhythmdb/rhythmdb-query-model.c:
9705         (rhythmdb_query_model_set_property):
9706         Think just a little bit harder about that last commit.
9708 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9710         * rhythmdb/rhythmdb-query-model.c:
9711         (rhythmdb_query_model_set_property):
9712         Get the check for hidden entries the right way around.
9713         Fixes #330527, #330514.
9715         (rhythmdb_query_model_set_sort_order):
9716         Ignore no-op sort order changes, so we don't get critical
9717         messages when selecting 'all' in auto playlist browsers.
9719 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9721         Patch by: Christophe Fergeau  <teuf@gnome.org>
9723         * sources/rb-removable-media-source.c:
9724         (rb_removable_media_source_init),
9725         (rb_removable_media_source_constructor):
9726         Move icon setup code to the constructor, as the volume property
9727         haven't been set yet when _init is called.
9729 2006-02-09  William Jon McCann  <mccann@jhu.edu>
9731         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
9732         Make the source pixbuf a dynamic property.
9734         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
9735         (rb_source_set_pixbuf, rb_source_set_property) 
9736         (rb_source_get_property): Add icon property.
9738         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
9739         (rb_auto_playlist_source_init):
9740         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
9741         (rb_static_playlist_source_init):
9742         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
9743         (rb_removable_media_source_init): 
9744         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
9745         (rb_podcast_source_init): 
9746         * sources/rb-library-source.c (rb_library_source_class_init) 
9747         (rb_library_source_set_property, rb_library_source_get_property): 
9748         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
9749         (rb_iradio_source_init): Remove impl_get_pixbuf and
9750         set icon property on source base class.
9752         * sources/rb-daap-source.c (rb_daap_get_icon): Get
9753         a different icon for when the share is password protected
9754         and locked.
9755         (rb_daap_source_new): Set icon property.
9756         (composite_icons): Composite an emblem on a pixbuf.
9757         (create_pixbufs): Load global pixbufs.
9758         (destroy_pixbufs): unref global pixbufs.
9759         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
9760         (connection_auth_cb, connection_connected_cb) 
9761         (connection_disconnected_cb): Update icon when connection
9762         status changes.
9763         (rb_daap_source_activate): Connect signals.
9765         * daapsharing/rb-daap-share.c (name_collision_cb): Run
9766         dialog with parent.
9768         * daapsharing/rb-daap-marshal.list: Add new signal.
9770         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
9771         (rb_daap_collision_dialog_new_run): Set parent of dialog.
9773         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
9774         Add authenticate, connected, and disconnected signals.
9775         (connection_get_password): emit authenticate signal instead
9776         of running dialog directly.
9777         (connection_connected, connection_disconnected): Emit signals.
9778         (handle_login): Emit connected signal.
9779         (handle_logout): Emit disconnected signal.
9780         (rb_daap_connection_do_something): Fix leak.
9782         Fixes #330291
9784 2006-02-09  James Livingston  <jrl@ids.org.au>
9786         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
9787         entries from the base model if we don't have show-hidden set. Fixes
9788         bug 330514.
9790 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9792         * daapsharing/rb-daap-share.c (message_get_session_id):
9793         Ugh. Use strtoul instead of atoi.
9794         (session_id_validate): Add debug statements.
9796 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9798         * daapsharing/rb-daap-connection.c (http_response_handler):
9799         Report the actual uri from the message in debug statements.
9801 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9803         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
9804         Add context argument.
9805         (message_get_session_id): New function to parse session id from
9806         the message.
9807         (message_get_revision_number): Break out function to parse
9808         revision number from the message.
9809         (session_id_validate): New function to validate given session id
9810         is valid for given context (ie. client address).
9811         (session_id_generate): Generate a random session id.
9812         (session_id_create): Create a unique session id and store it.
9813         (session_id_remove): Remove a session id from the store.
9814         (login_cb): Create a session id instead of using a constant one.
9815         (logout_cb): Validate session id.
9816         (update_cb): Use new message_get_revision_number function.
9817         (databases_cb): Validate session id.
9818         (server_cb): Add server context to argument list for callbacks.  It
9819         is needed to look up the remote host.
9820         (db_entry_changed_cb): Use braces.
9821         (soup_auth_callback): Remove FIXME.
9822         (rb_daap_share_server_start): Create session id store.
9823         (rb_daap_share_server_stop): Destroy session id store.
9825         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
9826         Don't base64-encode password here since it needs to be
9827         combined with the username first.
9829         * daapsharing/rb-daap-connection.c (build_message):
9830         Add username to Authorization token.
9831         (handle_login, handle_song_listing) 
9832         (rb_daap_connection_do_something): Session id
9833         must be an unsigned int.
9835         Fixes #329814
9837 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9839         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9840         Don't check if we've got a playing entry, ask the player object (duh).
9841         Might actually fix #329993.     
9843 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9845         * sources/rb-static-playlist-source.c:
9846         (rb_static_playlist_source_add_list_uri):
9847         Canonicalise URIs before trying to add them to the playlist, and 
9848         don't try to add files to the database for which there is 
9849         already an entry.
9851 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9853         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9854         Don't ask the entry view if we're playing, just check if we've got a
9855         playing entry.  Fixes #329993.
9857 2006-02-08  James Livingston  <jrl@ids.org.au>
9859         * rhythmdb/rhythmdb-query-model.c:
9860         (rhythmdb_query_model_set_property),
9861         (rhythmdb_query_model_finalize),
9862         (rhythmdb_query_model_base_complete): remove
9863         rhythmdb_query_model_base_entry_prop_changed, so that two signals
9864         don't get emitted for entry changes. Fixes bug 330301.
9866         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
9867         (rb_library_browser_init), (rb_library_browser_constructor),
9868         (rb_library_browser_new): do stuff in the constructor, not the init
9869         function, so that the db property gets set on RBPropertyViews
9870         correctly. Fixes a crash when dragging properties to a playlist.
9872 2006-02-07  William Jon McCann  <mccann@jhu.edu>
9874         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
9875         Actually stop soup server.  Fixes #329816.
9877 2006-02-07  James Livingston  <jrl@ids.org.au>
9879         * lib/rb-util.h:
9880         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
9881         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
9882         (collate_values_cb), (rb_collate_hash_table_keys),
9883         (rb_collate_hash_table_values): add functions to compare, copy and
9884         free string-lists. add functions to collate the keys or values of a
9885         hash table into a list.
9887         * rhythmdb/rhythmdb-property-model.c:
9888         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
9889         (_remove_entry_cb), (_add_entry_cb),
9890         (rhythmdb_property_model_set_property),
9891         (rhythmdb_property_model_get_property),
9892         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
9893         (rhythmdb_property_model_row_inserted_cb),
9894         (rhythmdb_property_model_prop_changed_cb),
9895         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
9896         that are hidden, storing those that we have counted in a hash-table.
9898         * shell/Makefile.am: fix build order issue
9900         * shell/rb-shell-player.c: (rb_shell_player_set_property):
9901         * sources/rb-source.h:
9902         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9903         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9904         * sources/rb-podcast-source.c: (feed_select_change_cb): add
9905         browser-toggled method, rename _get_exta_views to _get_property_views,
9906         since several things depend on returning only that.
9908         * sources/rb-source.c: (rb_source_class_init),
9909         (rb_source_browser_toggled), (default_get_property_views),
9910         (rb_source_get_property_views), (rb_source_row_deleted_cb),
9911         (rb_source_gather_hash_keys),
9912         (rb_source_gather_selected_properties): above changes, and move some
9913         utility functions up from RBLibraryView
9915         * widgets/rb-property-view.c:
9916         (rb_property_view_selection_changed_cb): fix leak.
9918         * rhythmdb/rhythmdb-query-model.c:
9919         (rhythmdb_query_model_set_property),
9920         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
9921         (rhythmdb_query_model_set_sort_order),
9922         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
9923         query model being resorted.
9925         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
9926         NULL query.
9928         * rhythmdb/rhythmdb.h:
9929         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
9930         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
9931         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
9932         two queries. Add a function to append "property={X,Y,Z,...}" to a
9933         query.
9935         * sources/rb-library-source.c: (rb_library_source_class_init),
9936         (rb_library_source_finalize), (rb_library_source_constructor),
9937         (rb_library_source_cmd_choose_genre),
9938         (rb_library_source_cmd_choose_artist),
9939         (rb_library_source_cmd_choose_album), (impl_search),
9940         (impl_get_property_views), (impl_reset_filters),
9941         (rb_library_source_preferences_sync),
9942         (rb_library_source_browser_views_activated_cb),
9943         (rb_library_source_state_prefs_sync),
9944         (construct_query_from_selection), (rb_library_source_do_query),
9945         (rb_library_source_browser_changed_cb):
9946         * widgets/Makefile.am:
9947         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
9948         browser" widgets, which contains several property views, based on the
9949         code from RBLibrarySource. Make RBLibrarySource use it.
9951         * sources/rb-auto-playlist-source.c:
9952         (rb_auto_playlist_source_class_init),
9953         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
9954         (rb_auto_playlist_source_constructor), (impl_reset_filters),
9955         (impl_get_property_views), (impl_browser_toggled),
9956         (construct_query_from_selection),
9957         (rb_auto_playlist_source_do_query),
9958         (rb_auto_playlist_source_set_query),
9959         (rb_auto_playlist_source_browser_changed_cb): Use the new
9960         library-browser widget to add browsers to automatic playlists.
9962 2006-02-07  James Livingston  <jrl@ids.org.au>
9964         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
9965         properly.
9966         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
9967         type of the source is taken into account. Fixes bug 329621.
9969 2006-02-07  James Livingston  <jrl@ids.org.au>
9971         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9972         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
9973         1.1, and perform URI canonicalistion when first upgrading. This should
9974         fix our remaining canonicalisation issues, such as bug 329988.
9976 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
9978         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
9979         Track the playing entry when the entry view isn't in the playing
9980         state, so we don't have to get the state changes exactly right.
9981         Fixes #330135.
9983 2006-02-06  James Livingston  <jrl@ids.org.au>
9985         * shell/rb-shell-player.c: (open_location_thread),
9986         (rb_shell_player_open_location): fix several iradio issues: having to
9987         press play after double-clicking on a station, not working correctly
9988         without a http:// prefix, and ignoring totem-plparser results other
9989         than success or error (e.g. IGNORE).
9991 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
9993         Addition of dbus methods for dealing with static playlists and the
9994         play queue.  Fixes #329958.
9996         * shell/Makefile.am:
9997         * shell/rb-playlist-manager.h:
9998         * shell/rb-playlist-manager.xml:
9999         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
10000         (rb_playlist_manager_get_playlists),
10001         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
10002         (rb_playlist_manager_create_static_playlist),
10003         (rb_playlist_manager_delete_playlist),
10004         (rb_playlist_manager_add_to_playlist),
10005         (rb_playlist_manager_remove_from_playlist),
10006         (rb_playlist_manager_export_playlist):
10007         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
10008         to create, delete, list, modify, export, and import  static playlists.
10009         
10010         * shell/main.c: (main): Register playlist manager object with dbus.
10012         * shell/rb-shell.h:
10013         * shell/rb-shell.xml:
10014         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
10015         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
10016         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
10017         object, and implement the addToQueue and removeFromQueue methods.
10018         
10019         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
10020         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
10021         formats.
10023 2006-02-05  James Livingston  <jrl@ids.org.au>
10025         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
10026         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
10027         (save_entry): allow storage of booleans in the on-disk db, and
10028         save/load the HIDDEN property.
10030         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
10031         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
10032         to the state it was when RB shutdown. This makes RB appear to start
10033         faster, as tracks can appear before the stat is done. Remote files
10034         still start hidden. From bug 325215.
10036 2006-02-05  James Livingston  <jrl@ids.org.au>
10038         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
10039         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
10040         really cares about the difference from "entry-added", and it isn't
10041         emitted by the tree backend anyway.
10043         * rhythmdb/rhythmdb-query-model.c:
10044         (rhythmdb_query_model_constructor):
10045         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10046         remove the references to the entry-restored signal.
10048 2006-02-05  James Livingston  <jrl@ids.org.au>
10050         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
10051         issue.
10053 2006-02-05  James Livingston  <jrl@ids.org.au>
10055         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
10056         things are NULL before using g_object_unref. Fixes bug 327452.
10058         * player/rb-recorder-gst.c: (rb_recorder_construct):
10059         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
10060         rather than assertion.
10062         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
10063         emit a warning, rather than asserting if an unknown playlist type is
10064         encountered.
10066 2006-02-05  James Livingston  <jrl@ids.org.au>
10068         * widgets/Makefile.am:
10069         * widgets/rb-simple-view.c:
10070         * widgets/rb-simple-view.h: Move the two features that this class
10071         provides into RBPropertyView, and remove this class. Closes bug
10072         327500.
10074         * podcast/rb-feed-podcast-properties-dialog.c:
10075         * podcast/rb-feed-podcast-properties-dialog.h:
10076         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10077         (rb_podcast_source_feeds_show_popup_cb):
10078         * sources/rb-podcast-source.h:
10079         * widgets/rb-property-view.c: (rb_property_view_class_init),
10080         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
10081         (rb_property_view_append_column_custom),
10082         (rb_property_view_button_press_cb):
10083         * widgets/rb-property-view.h: Updated for the above change.
10085 2006-02-04  James Livingston  <jrl@ids.org.au>
10087         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
10088         too close to Move to Trash and people aren't likely to use it often.
10090 2006-02-04  James Livingston  <jrl@ids.org.au>
10092         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
10094 2006-02-04  James Livingston  <jrl@ids.org.au>
10096         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
10097         passed a path instead of a URI.
10099         * sources/rb-generic-player-source.c: (default_get_mount_path):
10100         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
10101         the path. This fixes bug 329723.
10103 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
10105         * daapsharing/rb-daap-structure.c:
10106         (rb_daap_content_code_string_as_int32):
10107         Use network byte order.
10109 2006-02-03  William Jon McCann  <mccann@jhu.edu>
10111         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
10112         Use a hash for source lookup.
10113         (mdns_service_added, mdns_service_removed): Handle
10114         service-added and service-removed signals from RBDaapMdnsBrowser.
10115         (remove_source): GDestroyNotify function for when sources
10116         are removed from the hash.
10117         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
10118         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
10119         (rb_daap_sources_shutdown): Update.
10120         (source_host_find): GHRFunc for finding a source by ip.
10121         (rb_daap_source_find_for_uri): Use the hash source lookup.
10123         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
10124         Namespace keys.
10125         (password_check_button_toggled_cb): Handle password enabled.
10126         (share_name_entry_focus_out_event_cb): Namespace keys.
10127         Handle changes more robustly.
10128         (share_password_entry_focus_out_event_cb): Handle password entry.
10129         (add_daap_preferences): Connect to password signals.
10131         * lib/rb-preferences.h: Add DAAP keys.
10133         * data/glade/daap-prefs.glade: Add password UI.
10135         * data/rhythmbox.schemas: Add password keys.
10137         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
10138         assert with warning.
10140         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
10141         gconf keys to lib/rb-preferences.h.  Namespace
10142         the gconf keys.
10143         (create_share): Add password support.
10144         (enable_sharing_changed_cb): Namespaced keys.
10145         (require_password_changed_cb): Handle key change.
10146         (share_name_changed_cb): Namespaced keys.
10147         (share_password_changed_cb): Handle key change.
10148         (rb_daap_sharing_init): Namespaced keys.
10149         (rb_daap_sharing_shutdown): Ditto.
10151         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
10152         Add password property.
10153         (rb_daap_share_set_name): Break out prop set function.
10154         (published_cb): New RBDaapMdnsPublisher signal handler.
10155         (name_collision_cb): Ditto.
10156         (rb_daap_share_init): Create publisher object and
10157         connect to signals.
10158         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
10159         (rb_daap_share_set_property): Break out prop set functions.
10160         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
10161         Unref publisher.
10162         (rb_daap_share_new): Add password argument.  Start
10163         publishing and DAAP server.
10164         (message_set_from_rb_daap_structure): Change print to debug.
10165         (server_info_cb): Set auth method to publish.
10166         (logout_cb): Handle DAAP client logout.
10167         (update_cb): Remove C++ comments.
10168         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
10169         (server_cb): Add debug.
10170         (soup_auth_callback): Handle auth requests.
10171         (rb_daap_share_server_start): Split up functions for starting
10172         server and publishing.  Add auth handling to server.
10173         (rb_daap_share_server_stop): Split stop server and publish.
10174         No C++ comments.
10175         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
10176         Start and stop publishing.
10177         (rb_daap_share_restart): Restart server and publishing.
10178         (rb_daap_share_maybe_restart): Conditionally restart.
10180         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
10181         (rb_daap_collision_dialog_new_run): Don't use
10182         separators in dialogs.
10184         * daapsharing/rb-daap-connection.h: Add private
10185         data to class structure.
10187         * daapsharing/rb-daap-connection.c: Move
10188         some includes to top of file.  Make private
10189         data struct name consistent with others.
10190         (rb_daap_connection_class_init): Rename
10191         private.
10192         (rb_daap_connection_init): Get and store the pointer
10193         to the private data once instead of in every
10194         function.  Create a username value "Rhythmbox_VERSION".
10195         (connection_get_password): Don't get private.
10196         (build_message): Ditto.
10197         (http_response_handler): Don't init variables in
10198         declaration.  Add debug.  Spacing.
10199         (http_get, entry_set_string_prop, handle_server_info) 
10200         (handle_login, handle_update, handle_database_info) 
10201         (handle_song_listing, handle_playlists, handle_playlist_entries) 
10202         (rb_daap_connection_constructor, rb_daap_connection_logout) 
10203         (rb_daap_connection_state_done): Don't get private.
10204         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
10205         spacing.  Correctly base64 encode the Authentication token.
10206         Add username to auth token.
10207         (rb_daap_connection_get_playlists): Don't get private.
10208         (rb_daap_connection_dispose): Ditto.  Free username.
10209         (rb_daap_connection_set_property) 
10210         (rb_daap_connection_get_property): Don't get private.
10212         * daapsharing/Makefile.am: Conditionally
10213         compile MDNS backends.  Add marshall stuff.
10215         * daapsharing/.cvsignore: Update.
10217         * configure.ac: Add conditional to see which
10218         MDNS backend we should use.
10220         * daapsharing/rb-daap-mdns.[ch]: Removed files.
10222         * daapsharing/rb-daap-marshal.list:
10223         * daapsharing/rb-daap-mdns-browser-avahi.c:
10224         * daapsharing/rb-daap-mdns-browser-howl.c:
10225         * daapsharing/rb-daap-mdns-browser.h:
10226         * daapsharing/rb-daap-mdns-publisher-avahi.c:
10227         * daapsharing/rb-daap-mdns-publisher-howl.c:
10228         * daapsharing/rb-daap-mdns-publisher.h:
10229         Split rb-daap-mdns.c into two classes.  One for
10230         publishing and one for browsing.  Split out
10231         the avahi and howl backends into different files.
10233         Fixes #322966
10234         
10235 2006-02-04  James Livingston  <jrl@ids.org.au>
10237         patch by: Jan Schmidt <thaytan@mad.scientist.com>
10239         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
10240         crash if metadata reader gives us NULL for strings.
10242 2006-02-03  James Livingston  <jrl@ids.org.au>
10244         * shell/rb-shell-player.c: (open_location_thread),
10245         (rb_shell_player_open_location):
10246         retrieve iradio playlists files in a thread, so that with GStreamer
10247         0.10 the UI doesn't block while connecting to stations. The streamer
10248         connection is synchronous with 0.8, so that will still block (a bit).
10249         Fixed bug 128106.
10251         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
10252         because _open_entry does that automatically when it is ready to.
10254 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10256         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10257         (rb_podcast_source_post_status_cell_data_func):
10258         Leave the podcast status column blank for episodes that have not been
10259         downloaded.
10261 2006-02-03  James Livingston  <jrl@ids.org.au>
10263         Add support for source-specific toolbar items, and make the Burn
10264         Playlist item only available for playlists. Also add Update All
10265         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
10267         * data/ui/rhythmbox-ui.xml:
10268         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
10269         (impl_get_ui_actions): make the Burn CD toolbar item only for
10270         playlists
10272         * lib/rb-stock-icons.c: (rb_stock_icons_init):
10273         * lib/rb-stock-icons.h: load the Eject icon as stock.
10275         * shell/rb-removable-media-manager.c: use the eject icon for the eject
10276         action
10278         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
10279         (rb_shell_select_source):
10280         * sources/rb-source.c: (rb_source_class_init),
10281         (rb_source_disconnect), (default_get_ui_actions),
10282         (rb_source_get_ui_actions):
10283         * sources/rb-source.h: add support for source-specific toolbar items
10285         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
10286         Eject and Rip toolbar items
10288         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
10289         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
10290         item.
10292 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10294         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
10295         * shell/main.c: (main):
10296         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
10297         Replace all g_critical calls with g_warning, since none of them are
10298         the sort of thing the process should die over.  Fixes #329398.
10300 2006-02-03  James Livingston  <jrl@ids.org.au>
10302         * configure.ac: mention gst-plugins-base in the error message for not
10303         finding GStreamer 0.10, since not having that will cause it to fail.
10305 2006-02-03  James Livingston  <jrl@ids.org.au>
10307         * configure.ac: fix typo that means you get the wrong error message if
10308         you explicity request a particular playback engine, and it can't be
10309         found.
10311 2006-02-03  James Livingston  <jrl@ids.org.au>
10313         * data/glade/library-prefs.glade: allow the watched library location
10314         to be a non-local place.
10316 ============ Version 0.9.3
10319 2006-02-02  James Livingston  <jrl@ids.org.au>
10321         * NEWS: update NEWS
10322         * configure.ac: bump version to 0.9.3
10324         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
10325         <caillon@redhat.com>, fixed bug 329517. 
10327 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
10329         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
10331         * widgets/rb-song-info.c: (rb_song_info_constructor):
10332         Make year and disc number fields non-editable if tag editing
10333         is disabled.  Fixes #329463.
10335 2006-02-01  James Livingston  <jrl@ids.org.au>
10337         * rhythmdb/rhythmdb-property-model.c:
10338         (rhythmdb_property_model_row_inserted_cb),
10339         (rhythmdb_property_model_prop_changed_cb),
10340         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
10341         correctly. Fixes bug 327061.
10343         * rhythmdb/rhythmdb-query-model.c:
10344         (rhythmdb_query_model_entry_changed_cb): emit change notification of
10345         the HIDDEN property when an entry is removed for being hidden.
10347         * rhythmdb/rhythmdb-query-model.h:
10348         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
10349         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
10350         models's "connected" property. Whatever it was needed for seems to
10351         have gone.
10353 2006-02-01  James Livingston  <jrl@ids.org.au>
10355         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10357         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
10358         (rb_shell_player_playing_changed_cb): block the signal to prevent
10359         re-entrancy. Fixes bug 329329 and fixes the first click of the play
10360         button pausing.
10362 2006-02-01  James Livingston  <jrl@ids.org.au>
10364         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
10365         /should/ now work, if the neccessary plugins get ported.
10367 2006-01-30  James Livingston  <jrl@ids.org.au>
10369         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
10370         string properties to "Unknown" is the string is empty. Kind of fixes
10371         bug 327495.
10373         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
10374         gettext calls once, rather than once per time the function is used.
10375         This stops us making tens of thousands of gettext calls on startup,
10376         which reduces the cpu-time of startup by 10-20%
10378 2006-01-29  James Livingston  <jrl@ids.org.au>
10380         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
10381         (rhythmdb_add_uri):
10382         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
10383         for files containing known video streams.
10386 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10388         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
10389         required.
10391 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10393         * INSTALL.quick: More random updates
10395         * rhythmdb/rhythmdb-query-model.c:
10396         (rhythmdb_query_model_class_init),
10397         (rhythmdb_query_model_set_property),
10398         (rhythmdb_query_model_get_property),
10399         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
10400         Remove user sort data handling, take a property ID and a reverse
10401         flag instead.
10402         (rhythmdb_query_model_insert_into_main_list),
10403         (rhythmdb_query_model_insert_into_limited_list),
10404         (rhythmdb_query_model_do_reorder),
10405         (_reverse_sorting_func):
10406         Handle reverse sorting by calling _reverse_sorting_func, which
10407         calls the real sort function and reverses the result.
10408         (rhythmdb_query_model_set_sort_order):
10409         Allow this to be called to set the initial sort order for limited
10410         queries, and handle reverse sorting when reordering.
10411         (rhythmdb_query_model_location_sort_func),
10412         (rhythmdb_query_model_album_sort_func),
10413         (rhythmdb_query_model_artist_sort_func),
10414         (rhythmdb_query_model_genre_sort_func),
10415         (rhythmdb_query_model_track_sort_func),
10416         (rhythmdb_query_model_double_ceiling_sort_func),
10417         (rhythmdb_query_model_ulong_sort_func),
10418         (rhythmdb_query_model_date_sort_func),
10419         (rhythmdb_query_model_string_sort_func):
10420         Sort functions moved from rb-entry-view.c.
10421         * rhythmdb/rhythmdb-query-model.h:
10422         Add the sort functions, and update the changed functions.
10423         
10424         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
10425         Just call _resort_model when the query model is set, since it
10426         does all the same things.
10427         (rb_entry_view_append_column):
10428         Rework bits so the rating column doesn't have to be so much of a
10429         special case.
10430         (rb_entry_view_append_column_custom):
10431         Take a property ID to sort on, rather than arbitrary custom data.
10432         (rb_entry_view_resort_model):
10433         Query model does all the reverse sort handling now.
10434         * widgets/rb-entry-view.h: Update _append_column_custom.
10436         * sources/rb-play-queue-source.c:
10437         (rb_play_queue_source_constructor):
10438         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10439         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10440         (rb_podcast_source_post_date_cell_sort_func),
10441         (rb_podcast_source_post_status_cell_sort_func),
10442         (rb_podcast_source_post_feed_cell_sort_func):
10443         Updates required by all the other changes.
10445         * rhythmdb/rhythmdb-property-model.c:
10446         (rhythmdb_property_model_drag_data_get):
10447         Sort the query results on the selected property,
10448         so they arrive in the expected order.  All the other changes were made
10449         to make this possible.  Fixes bug #327494.
10451 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10452         
10453         * shell/rb-shell-clipboard.c:
10454         Use GTK_STOCK_REMOVE icon for the remove action in
10455         the play queue too.
10457 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10459         * sources/rb-play-queue-source.c:
10460         (rb_play_queue_source_constructor),
10461         (rb_play_queue_source_update_count):
10462         Don't make the 'queued songs' column clickable,
10463         and add the queued song count to the column title.
10465 2006-01-29  James Livingston  <jrl@ids.org.au>
10467         * configure.ac: remove "experimental" marking from DAAP, and enable by
10468         default if the dependencies are found.
10470 2006-01-29  James Livingston  <jrl@ids.org.au>
10472         * NEWS: update NEWS
10474 2006-01-29  James Livingston  <jrl@ids.org.au>
10476         patch by: William Jon McCann  <mccann@jhu.edu>
10478         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10479         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
10480         property used for the feed list. Fixes problem with feeds with no
10481         episodes not showing up.
10483 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10484         
10485         * shell/rb-play-order-random-by-age-and-rating.c:
10486         (rb_random_by_age_and_rating_get_entry_weight):
10487         Fix compile errors, bug #328978.
10489 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
10491         * INSTALL.quick, README: Random updates
10492         * README.lirc: Add notes on controlling Rhythmbox with LIRC
10494 2006-01-28  James Livingston  <jrl@ids.org.au>
10496         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
10497         default rating back to 0 (from 2.5, which was needed for autorating).
10499         * shell/rb-play-order-random-by-age-and-rating.c:
10500         (rb_random_by_age_and_rating_get_entry_weight):
10501         * shell/rb-play-order-random-by-rating.c:
10502         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
10503         2.5 for the purposes of weighting entries.
10505 2006-01-28  James Livingston  <jrl@ids.org.au>
10507         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
10508         translator comments, to make it clearer what the "friendly time"
10509         formatting strings mean.
10511 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10513         * daapsharing/rb-daap-connection.c: (http_response_handler):
10514         Fix the sense of the overflow check so it'll accept valid input.
10516 2006-01-27  James Livingston  <jrl@ids.org.au>
10518         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
10520         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
10521         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
10523 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10525         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
10526         
10527         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
10528         Don't include the artist field in the window title if it's blank.
10529         Fixes #325973.
10531 2006-01-26  William Jon McCann  <mccann@jhu.edu>
10533         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
10534         Use stock delete icon for move to trash and stock remove
10535         for remove menu item.
10537 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
10539         * shell/rb-shell.c: (rb_shell_constructor),
10540         (idle_handle_load_complete):  Don't start the playlist save
10541         timeout until we've loaded the playlists, otherwise we'll
10542         write an empty playlist file if startup takes too long.
10544 2006-01-25  William Jon McCann  <mccann@jhu.edu>
10546         * shell/rb-shell.c: Make view toolbar toggle use
10547         shift+ctrl+t.  Fixes #327585.
10549 2006-01-25  James Livingston  <jrl@ids.org.au>
10551         patch by: Christope Fergeau  <teuf@gnome.org>
10553         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
10554         (http_response_handler): fix a potential buffer overflow issue.
10556 2006-01-25  James Livingston  <jrl@ids.org.au>
10558         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
10559         Year column wide enough to display "Unknown"
10561 2006-01-25  James Livingston  <jrl@ids.org.au>
10563         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10564         (rb_podcast_source_post_status_cell_data_func): make the episode
10565         status wording better. Part of bug 321607.
10567 2006-01-25  James Livingston  <jrl@ids.org.au>
10569         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
10570         others with a separator.
10572         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
10573         stock Delete icon.
10575 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
10577         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
10579 2006-01-23  James Livingston  <jrl@ids.org.au>
10581         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
10582         0.3.2. Fixed bug 328158.
10584 2006-01-23  James Livingston  <jrl@ids.org.au>
10586         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
10587         (gulong_gst_date_transform), (rb_metadata_class_init):
10588         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
10590 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
10592         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
10593         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
10594         (record_entry_change): Protect added_entries and changed_entries with
10595         a mutex, so it doesn't crash on startup on SMT/SMP machines.
10597 2006-01-23  James Livingston  <jrl@ids.org.au>
10599         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
10600         the browser for audio CDs.
10602 2006-01-22  James Livingston  <jrl@ids.org.au>
10604         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
10605         NEVER_FAIL as it causes the daemon-not-running error to never be
10606         reported, resulting in bug 319438 re-occurring.
10608 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10610         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
10611         Just call the podcast manager's update method.  Unbreaks the 'update
10612         all feeds' command.
10614 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10616         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
10618 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
10620         * configure.ac: Don't disable DAAP with gstreamer 0.10
10622         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
10623         (rb_daap_src_class_init), (rb_daap_src_init),
10624         (rb_daap_src_finalize), (rb_daap_src_set_property),
10625         (rb_daap_src_get_property), (rb_daap_src_write),
10626         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
10627         (_split_uri), (rb_daap_src_open):
10628         * daapsharing/rb-daap-src.h:
10629         Mostly fix seeking, handle chunked transfer encoding, and port to
10630         gstreamer 0.10.
10631         
10632         * player/rb-player-gst.c:
10633         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
10634         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
10636         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
10637         being fixed.
10639 2006-01-21  James Livingston  <jrl@ids.org.au>
10641         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
10642         for Year metadata in DAAP sources. Fixes bug 327700.
10644         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10646 2006-01-20  William Jon McCann  <mccann@jhu.edu>
10648         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
10649         enum values instead of magic numbers.
10651         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
10652         Add number of songs that match each property title into
10653         the cell.  Also show the number of properties that match
10654         in the All entry.
10655         (rb_property_view_constructor): Use enum values instead of
10656         magic numbers.
10658         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
10659         Query podcast posts instead of feeds for browser.  Use
10660         post SUBTITLE which is the location for the property view.
10661         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
10662         (construct_query_from_selection) 
10663         (rb_podcast_source_cmd_delete_feed) 
10664         (rb_podcast_source_cmd_properties_feed) 
10665         (rb_podcast_source_cmd_update_feed): Use variable to make
10666         it clear what the selection data represents.
10667         (rb_podcast_source_feed_title_cell_data_func): Add number
10668         of posts that belong to each feed in the browser.
10670         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
10671         (rhythmdb_property_model_delete_prop): Decrement the refcount
10672         for the All entry.
10673         (rhythmdb_property_model_get_column_type): Use column enum
10674         values instead of magic numbers.  Add NUMBER column.
10675         (rhythmdb_property_model_get_value): Use enum.
10676         Add NUMBER column that represents the refcount for
10677         the title of that property.
10678         (rhythmdb_property_model_perform_sync): Don't fake up
10679         a title for All here.
10681         Fixes #327372.
10682         
10683 2006-01-21  James Livingston  <jrl@ids.org.au>
10685         Make Rhythmbox start faster by not blocking the UI while database
10686         initialisation and loading occurs. Closes bug 323348.
10688         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
10689         start 10 seconds later instead of immediately.
10690         
10691         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
10692         safe to call from any thread.
10694         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
10695         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
10696         so the UI doesn't block.
10698 2006-01-18  James Livingston  <jrl@ids.org.au>
10700         * sources/rb-static-playlist-source.c:
10701         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
10702         cause crashes. Oops. fixes bug 327477.
10704 2006-01-17  William Jon McCann  <mccann@jhu.edu>
10706         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
10707         Set GST element state to NULL before unreffing.
10708         Fixes #327422.
10710 2006-01-18  James Livingston  <jrl@ids.org.au>
10712         * sources/rb-static-playlist-source.c:
10713         (rb_static_playlist_source_do_query): don't filter on the SONG entry
10714         type, since the playlists can contain non-song entries. Fixes bug
10715         327448.
10717         * sources/rb-play-queue-source.c:
10718         (rb_play_queue_source_class_init): disable the search box for the
10719         queue.
10721 2006-01-18  James Livingston  <jrl@ids.org.au>
10723         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
10724         dragging of podcast episodes. Fixed bug 327450.
10726 2006-01-18  James Livingston  <jrl@ids.org.au>
10728         * rhythmdb/rhythmdb-query-model.c:
10729         (rhythmdb_query_model_drag_data_received): fix possible assertion when
10730         dragging to an emoty playlist.
10732 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
10734         * sources/rb-playlist-source-recorder.c:
10735         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
10737 2006-01-17  James Livingston  <jrl@ids.org.au>
10739         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10741         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
10742         different number of tracks than exist on the cd, since that happens
10743         with audio+data hybrid CDs. Part of bug 325046.
10745 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
10747         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10748         Remove useless call to gtk_tree_view_column_set_clickable().
10750         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
10751         Don't store sort data for columns if the sort function is NULL,
10752         so only sortable columns will be in the column sort data map.
10753         (rb_entry_view_set_columns_clickable): Only make columns we can sort
10754         on clickable.
10755         (rb_entry_view_constructor):  The 'playing icon' column is never
10756         clickable, so don't connect a signal handler for it.
10758         Fixes bug 326811.
10760 2006-01-17  James Livingston  <jrl@ids.org.au>
10762         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
10763         are 0.8 only. Fix element detection.
10765         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
10766         saving the new metadata failed
10768 2006-01-17  James Livingston  <jrl@ids.org.au>
10770         * shell/rb-shell-player.c: (do_next_idle),
10771         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
10772         (eos_cb): release audio device when a playlist finishes. Fixes bug
10773         323679.
10775 2006-01-17  James Livingston  <jrl@ids.org.au>
10777         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
10778         canonicalise the URIs when things are added via library watching.
10780 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10782         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10783         Off by one error in default speed index.
10785 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10787         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
10788         (update_speed_combobox, update_speed_combobox):
10789         Get a list of the actually supported write speeds from
10790         n-c-b >= 2.13.90.  Otherwise use fallback list.
10792 2006-01-17  James Livingston  <jrl@ids.org.au>
10794         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
10795         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
10796         don't get stuck on recursive symlinks. Fixed bug 125452.
10798 2006-01-17  James Livingston  <jrl@ids.org.au>
10800         Add support for mass-storage audio players. Players are detected via
10801         either the HAL "audio_player" capability, or a ".is_audio_player" file
10802         in the root of the volume. Closes bug 325602.
10804         * configure.ac: separate using HAL from ipod support.
10806         * lib/rb-file-helpers.c: (rb_uri_is_local):
10807         * lib/rb-file-helpers.h: add function to determine whether a URI is
10808         local.
10810         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
10811         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
10812         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
10813         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
10814         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
10815         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
10816         directories can be scanned for files to add as  non-SONG entries.
10818         * shell/rb-removable-media-manager.c:
10819         (rb_removable_media_manager_mount_volume): add checking for
10820         mass-storage players.
10822         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
10823         * sources/rb-ipod-source.c: (rb_ipod_source_new),
10824         (hal_udi_is_ipod):
10825         * sources/rb-removable-media-source.c:
10826         (rb_removable_media_source_class_init),
10827         (rb_removable_media_source_constructor): move some things up to the
10828         RBRemovableMediaSource, rather than making subclasses do it.
10830         * sources/Makefile.am:
10831         * sources/rb-generic-player-source.c:
10832         * sources/rb-generic-player-source.h: add mass-storage player source.
10834 2006-01-16  James Livingston  <jrl@ids.org.au>
10836         patch by: William Jon McCann  <mccann@jhu.edu>
10838         * rhythmdb/rhythmdb-query-model.c:
10839         (rhythmdb_query_model_base_row_deleted): fix build issue from last
10840         commit.
10842 2006-01-16  James Livingston  <jrl@ids.org.au>
10844         Patch to add support for "chained queries" and putting hidden tracks
10845         in query models. Use chained queries to add search box support to
10846         normal playlists, and to make hidden entries not get lost. Fixes bug
10847         319278.
10849         * rhythmdb/rhythmdb-query-model.h:
10850         * rhythmdb/rhythmdb-query-model.c:
10851         (rhythmdb_query_model_class_init),
10852         (rhythmdb_query_model_set_property),
10853         (rhythmdb_query_model_get_property):
10854         (rhythmdb_query_model_finalize): add "show-hidden" and
10855         "base-model" properties.
10857         (rhythmdb_query_model_set_connected),
10858         (rhythmdb_query_model_has_pending_changes),     
10859         (rhythmdb_query_model_entry_added_cb),
10860         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
10861         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
10862         (rhythmdb_query_model_remove_entry),
10863         (rhythmdb_query_model_drag_data_received),
10864         (rhythmdb_query_model_base_row_inserted),
10865         (rhythmdb_query_model_base_row_deleted),
10866         (rhythmdb_query_model_base_non_entry_dropped),
10867         (rhythmdb_query_model_base_complete),
10868         (rhythmdb_query_model_base_entry_prop_changed),
10869         (rhythmdb_query_model_base_rows_reordered),
10870         (rhythmdb_query_model_row_drop_possible): handle base-model by
10871         chaining events and operations where necessary. Make hidden entries
10872         not get added only if "show-hidden" is false.
10874         (rhythmdb_query_model_child_index_to_base_index),
10875         (rhythmdb_query_model_base_index_to_child_index),
10876         (rhythmdb_query_model_get_entry_index): utility functions for handling
10877         base-model entries.
10879         (rhythmdb_query_model_reapply_query): apply the current query, and
10880         remove entries that don't match it.
10882         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
10883         empty queries.
10885         * sources/rb-source.c: (rb_source_set_property): move the unref later
10886         to fix problem if it is the last reference.
10888         * sources/rb-static-playlist-source.c:
10889         (rb_static_playlist_source_class_init),
10890         (rb_static_playlist_source_init),
10891         (rb_static_playlist_source_finalize),
10892         (rb_static_playlist_source_constructor), (impl_reset_filters),
10893         (impl_search), (rb_static_playlist_source_do_query),
10894         (impl_save_contents_to_xml),
10895         (rb_static_playlist_source_add_location_internal): use a chained query
10896         model to filter out hidden entries and implement the search box.
10898 2006-01-15  James Livingston  <jrl@ids.org.au>
10900         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
10901         the default playlist loading, which I broke earlier.
10903 2006-01-15  James Livingston  <jrl@ids.org.au>
10905         patch by: William Jon McCann  <mccann@jhu.edu>
10907         * sources/rb-playlist-source.c: (playlist_iter_func): use
10908         totem-plparser's new API version macros to check for API changes.
10909         Handle the recent API change.
10911 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10913         * sources/rb-library-source.c: (impl_get_config_widget):
10914         Ref the preferences object to match the unref in the
10915         finalizer.  Fixes some portion of #323505.
10917 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10919         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
10920         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
10921         Fix valgrind warnings about accessing uninitialised values.
10923 2006-01-14  William Jon McCann  <mccann@jhu.edu>
10925         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
10927 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10929         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
10930         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
10931         Stops the 'now playing' icon from being displayed after the play
10932         order finishes.
10934 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10936         * podcast/rb-podcast-manager.c:
10937         (rb_podcast_manager_db_entry_deleted_cb):
10938         Don't try to delete files we never downloaded, and cancel downloads
10939         for deleted episodes.  Fixes bug #326862.
10940         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
10941         Don't complain about NULL data items in the selection list.
10943 2006-01-14  James Livingston  <jrl@ids.org.au>
10945         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
10946         Make the name ofthe queue non editable. Fixes bug 326918.
10948 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10950         * sources/rb-playlist-source-recorder.c (burn_cd) 
10951         (ask_rewrite_disc): Don't use our locally copied functions
10952         if we have at least 2.13.
10954 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10956         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
10957         Correct the argument type for the process_error signal.
10958         May fix bug #323154.
10960 2006-01-13  James Livingston  <jrl@ids.org.au>
10962         save the queue to disk when exiting, and reload on startup. Fixed bug
10963         326677 .
10965         * shell/rb-playlist-manager.c:
10966         (rb_playlist_manager_load_playlists),
10967         (rb_playlist_manager_save_playlists_async): don't disable saving of
10968         the queue
10970         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
10971         add the queue source as a gobject property.
10973         * sources/rb-play-queue-source.c:
10974         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
10975         code to save the queue to xml
10977         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
10978         load the queue from xml.
10979         * sources/rb-playlist-xml.h:
10981         * sources/rb-static-playlist-source.c:
10982         (rb_static_playlist_source_load_from_xml),
10983         (rb_static_playlist_source_new_from_xml):
10984         * sources/rb-static-playlist-source.h: split the playlist xml loading
10985         from the static playlist creation function, so the queue can use it.
10987 2006-01-13  James Livingston  <jrl@ids.org.au>
10989         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
10990         assertion that should be there. Fixes bug 325923.
10991         
10992         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
10993         return NULL if the entry already exists (e.g. as another type).
10994         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10995         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
10996         (rb_podcast_manager_insert_feed):
10997         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
10998         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
10999         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
11000         for the above function returning NULL.
11002 2006-01-12  James Livingston  <jrl@ids.org.au>
11004         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
11005         is enabled. Fixes bug 326673.
11006         
11007         * doc/reference/tmpl/eggtrayicon.sgml:
11008         * doc/reference/tmpl/rb-daap-src.sgml:
11009         * doc/reference/tmpl/rb-source.sgml:
11010         * doc/reference/tmpl/rb-statusbar.sgml:
11011         * doc/reference/tmpl/rb-tree-model-sort.sgml:
11012         * doc/reference/tmpl/rhythmbox-unused.sgml:
11013         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
11015 2006-01-11  James Livingston  <jrl@ids.org.au>
11017         * widgets/rb-song-info.c: (rb_song_info_constructor),
11018         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
11019         (rb_song_info_populate_dialog): fill in the fields if all tracks have
11020         the same value for properties. From bug 326054.
11022 2006-01-11  James Livingston  <jrl@ids.org.au>
11024         * sources/rb-source.h:
11025         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
11026         (rb_shell_player_set_playing_source_internal), (eos_cb):
11027         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
11028         every entry.
11030         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
11031         source use this. Closes bug 322077.
11033 2006-01-10  William Jon McCann  <mccann@jhu.edu>
11035         * widgets/eggtrayicon.c (egg_tray_icon_notify):
11036         In order for set_icon_data_from_pixbuf() to be
11037         effective, one must not set an icon in _new().
11039 2006-01-10  William Jon McCann  <mccann@jhu.edu>
11041         * widgets/eggtrayicon.c (egg_tray_icon_init) 
11042         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
11043         (egg_tray_icon_notify): Add support for libnotify 0.3.
11044         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
11045         * configure.ac: Determine the version of libnotify.
11046         Fixes #326333.
11048 2006-01-08  James Livingston  <jrl@ids.org.au>
11050         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
11051         trying to share a track with unknown length.
11053 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11055         * shell/rb-shell-player.c: (rb_shell_player_init):
11056         Sync volume on startup so it doesn't default to 0.
11058 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11060         * shell/rb-shell-player.c: (rb_shell_player_class_init),
11061         (rb_shell_player_get_property), (rb_shell_player_open_location),
11062         (info_available_cb):  Add the iradio streamed song title as a
11063         property, and emit a signal when it changes.
11065         * shell/rb-shell.c: (rb_shell_constructor),
11066         (rb_shell_player_elapsed_changed_cb),
11067         (rb_shell_player_stream_song_changed_cb):
11068         Issue a notification when the iradio song title changes.
11069         Fixes #326166.
11071 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11073         * shell/rb-shell-player.c: (rb_shell_player_init),
11074         (rb_shell_player_finalize), (rb_shell_player_set_property),
11075         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
11076         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
11077         (rb_shell_player_set_volume_relative),
11078         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
11079         (rb_shell_player_get_mute):
11080         * shell/rb-shell-player.h:
11081         * shell/rb-shell-player.xml:
11082         Store volume as a property on RBShellPlayer, rather than in gconf.
11083         Add some methods to control volume via dbus.
11085         * shell/rb-shell.c: (rb_shell_constructor),
11086         (rb_shell_volume_widget_changed_cb),
11087         (rb_shell_player_volume_changed_cb):
11088         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
11089         Update volume using player properties rather than gconf, and sync the
11090         volume with the volume control button when something else changes it.
11091         Fixes #323840.
11093 2006-01-07  William Jon McCann  <mccann@jhu.edu>
11095         * shell/rb-tray-icon.c (tray_popup_position_menu):
11096         Make tray menu align with edge of panel.
11098         patch from Jaap A. Haitsma <jaap@haitsma.org>
11099         Fixes #319913
11101 2006-01-07  William Jon McCann  <mccann@jhu.edu>
11102         * shell/rb-shell.c (sourcelist_drag_received_cb): 
11103         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
11104         (rb_playlist_manager_new_playlist_from_selection_data):
11105         Make a reasonable default name for playlists created from
11106         dropped data.  Fixes #326116.
11108 2006-01-07  William Jon McCann  <mccann@jhu.edu>
11110         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
11111         Use new gconf key.
11112         (burn_cd): Always eject CD after burning.  Too many drives
11113         get confused if we don't.  Save the speed used if the burn
11114         was completed successfully.
11116         * data/rhythmbox.schemas: Use our own speed instead of from
11117         n-c-b. The situation is that the default_speed for n-c-b is most
11118         likely the maximum write speed.  This is fine for n-c-b because it
11119         has burn-proof turned on.  We can't turn it on for audio CDs
11120         because the results are poor in quality.  So we'll just pick a
11121         default that should work for everyone (4).
11123 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11124         
11125         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
11126         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
11128 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11130         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
11131         in my previous commit.  Fixes #326037.
11133 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
11135         patch by: Jonathan Matthew
11137         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
11138         error on Fedora Rawhide.
11140 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11142         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
11143         Assume HTTP URLs ending with .xml or .rss are podcasts.
11144         (rb_shell_add_uri): Handle adding podcast feeds.
11146         * sources/rb-podcast-source.c: (rb_podcast_source_new):
11147         Register as the source for podcast feeds.
11149 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11151         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
11152         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
11153         (rb_shell_preferences_append_view_page):
11154         * shell/rb-shell-preferences.h:
11155         Fix typo in function name.  Fixes #325992.
11157 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11159         * shell/rb-audioscrobbler.c:
11160         Add '+' to the list of characters to URI-encode, so it doesn't get
11161         interpreted as a space.
11163 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
11165         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
11166         (rb_daap_connection_do_something):  Don't crash if the DAAP server
11167         goes away while we're still trying to log in.
11169 2006-01-06  James Livingston  <jrl@ids.org.au>
11171         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
11173 2006-01-06  James Livingston  <jrl@ids.org.au>
11175         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
11176         support for Year to automatic playlists. Closes bug 321341.
11178         * rhythmdb/rhythmdb-query-model.c:
11179         (rhythmdb_query_model_set_property):
11180         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
11181         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
11182         (rhythmdb_query_free), (rhythmdb_query_serialize),
11183         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
11184         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
11185         * rhythmdb/rhythmdb.h: Support special
11186         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
11187         year in date.
11189         * widgets/rb-query-creator-properties.c:
11190         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
11191         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
11193 2006-01-06  James Livingston  <jrl@ids.org.au>
11195         * configure.ac: make the playback backend selection work correctly
11197         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
11198         (rb_daap_src_class_init), (rb_daap_src_dispose),
11199         (rb_daap_src_change_state), (rb_daap_src_initialize):
11200         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
11201         doesn't work for this class. Fixes bug 325934
11203 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
11205         * configure.ac: Fix check for libnotify.
11207 2006-01-05  William Jon McCann  <mccann@jhu.edu>
11209         * sources/rb-playlist-source.c (xml_get_and_trim_names):
11210         Get name element for current lang and remove all name nodes
11211         from the XML tree.
11212         (get_playlist_name_from_xml): Try to get name element or
11213         fall back to name attribute.
11214         (rb_playlist_source_new_from_xml): Get name before turning over
11215         to sub-types for parsing so that we can remove name elements
11216         from the tree if necessary.
11218         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
11219         Load default playlists file if per user playlists are not found.
11221         * data/playlists.xml.in: 
11222         * data/Makefile.am: 
11223         * data/.cvsignore: Add default set of playlists.
11224         Fixes #323004
11226 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
11228         * shell/main.c: (main): Don't use the dbus interface to show the
11229         window if we're also going to use the bonobo interface.
11231 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
11233         * shell/rb-history.c: (rb_history_set_playing):
11234         Allow setting the playing song to NULL.
11235         (rb_history_append), (rb_history_delete_link):
11236         Don't randomly change position when entries are added and removed,
11237         it confuses play orders.
11238         
11239         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
11240         Random orders always have a next entry if the model is not empty.
11241         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
11242         Go back to the start of the history if we're past its end.
11244         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
11245         (rb_shuffle_play_order_go_next): Go back to the start of the history
11246         if we're past its end.
11247         (rb_shuffle_sync_history_with_query_model): Go back to the start of
11248         the history if the current entry is removed.
11250         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
11251         (rb_play_order_entry_deleted_cb): Only update have next/previous for
11252         the play order when the query has finished. This wasted about 10% CPU
11253         while the query was running.
11255         Fixes #324641: assertion failures when the query model was changed
11256         such that the playing song was no longer present.
11258 2006-01-05  James Livingston  <jrl@ids.org.au>
11260         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
11261         (rb_daap_src_dispose), (rb_daap_src_change_state):
11262         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
11263         (rhythmdb_gda_finalize):
11264         * widgets/rb-cell-renderer-pixbuf.c:
11265         * widgets/rb-cell-renderer-rating.c:
11266         (rb_cell_renderer_rating_class_init),
11267         (rb_cell_renderer_rating_finalize):
11268         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
11269         * widgets/rb-load-failure-dialog.c:
11270         (rb_load_failure_dialog_class_init),
11271         (rb_load_failure_dialog_finalize):
11272         * widgets/rb-rating.c: (rb_rating_class_init),
11273         (rb_rating_finalize):
11274         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
11275         (rb_search_entry_finalize): use G_DEFINE_TYPE
11277         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
11279 2006-01-05  James Livingston  <jrl@ids.org.au>
11281         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
11283         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
11284         the tarball.
11286         * shell/rb-history.c: (rb_history_class_init),
11287         (rb_history_finalize):
11288         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
11289         (rb_playlist_manager_finalize):
11290         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
11291         (rb_remote_init): use G_DEFINE_TYPE.
11293 2006-01-05  James Livingston  <jrl@ids.org.au>
11295         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
11296         changes
11298 2006-01-04  William Jon McCann  <mccann@jhu.edu>
11300         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11301         Disable burn action when source is not a playlist.
11302         Fixes #323578.
11304 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
11306         Optionally use libnotify to display song change and other
11307         notifications, and provide an option to disable notifications.
11308         Fixes #320355 and innumerable informal complaints.
11310         * widgets/eggtrayicon.c: (egg_tray_icon_init),
11311         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
11312         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
11313         (egg_tray_icon_notify):
11314         * widgets/eggtrayicon.h:
11315         * configure.ac:
11316         * shell/Makefile.am:
11317         Optionally use libnotify instead of eggnotificationbubble.
11319         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
11320         (rb_tray_icon_constructor), 
11321         (rb_tray_icon_show_notifications_changed_cb),
11322         (rb_tray_icon_hide_notify_cb)
11323         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
11324         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
11325         EggNotificationBubble pointer to eggtrayicon.
11327         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
11328         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
11329         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
11331 2006-01-04  William Jon McCann  <mccann@jhu.edu>
11333         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
11334         Request a minimum size for the progress bar so that
11335         the window doesn't shrink too small.
11337 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11339         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
11340         (add_db_entry), (db_entry_deleted_cb):
11341         Don't track the number of songs currently present, track the next ID
11342         to assign.  Fixes potential ID conflict problems.
11343         
11344         (db_entry_changed_cb), (rb_daap_share_start_publish),
11345         (rb_daap_share_stop_publish):
11346         Watch for db entry changes, and when songs become non-hidden after
11347         a successful stat, add them to the mapping tables.   Fixes #325178,
11348         making the DAAP server usable again.
11350 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11351         
11352         * shell/rb-statusbar.c: (rb_statusbar_class_init),
11353         (rb_statusbar_construct), (rb_statusbar_init),
11354         (rb_statusbar_finalize), (rb_statusbar_set_property),
11355         (rb_statusbar_get_property), (rb_statusbar_new),
11356         (rb_statusbar_sync_with_source):
11357         * shell/rb-statusbar.h:
11358         Remove visibility management code, stop watching for play order
11359         changes (status bar doesn't show play order any more), remove unused
11360         'player' property, and some other minor cleanup.
11361         
11362         * shell/rb-shell.c: (rb_shell_constructor),
11363         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
11364         (rb_shell_sync_statusbar_visibility):
11365         Manage status bar visibility here rather than in the status bar
11366         itself, so we can take small mode into account.  Fixes #323589.
11368 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11370         * widgets/eggnotificationbubble.c: (draw_bubble):
11371         Move the bubble off the visible screen while setting up bevels.  
11372         Fixes #316810.
11374 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11376         * shell/rb-shell-player.c: (rb_shell_player_init),
11377         (rb_shell_player_finalize): 
11378         Remove unused structure members.
11379         
11380         (do_next_idle), (rb_shell_player_error):
11381         Only queue one call to do_next_idle, so we don't skip tracks if we get
11382         two errors for the same song.  Fixes #325216.
11384 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11386         * data/glade/podcast-feed-properties.glade,
11387          podcast/rb-feed-podcast-properties-dialog.c:
11388         (rb_feed_podcast_properties_dialog_init),
11389         (rb_feed_podcast_properties_dialog_update):
11390         Add 'last episode' field to the podcast feed properties dialog.
11392         * podcast/rb-feed-podcast-properties-dialog.c:
11393         (rb_feed_podcast_properties_dialog_update_last_update),
11394         (rb_feed_podcast_properties_dialog_update_last_episode),
11395          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11396         Use last-seen property for the time at which we last updated the feed,
11397         and post-time for the time the last episode was published.
11399         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
11400         Handle upgrades from 0.9.2; if no post-time was found for a podcast
11401         feed, use last-seen (which in 0.9.2 was the last post time).
11403         Fixes #323894.
11405 2006-01-01  James Livingston  <jrl@ids.org.au>
11407         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
11409         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
11410         year from the ipod database.
11412 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11414         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
11415         Only set the pipeline back to NULL state for really uninteresting
11416         files.  This was causing deadlocks with various video files.
11417         Fixes #324912.
11419 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11421         * data/glade/song-info-multiple.glade:
11422         Add disc number label and field.
11423         * widgets/rb-song-info.c: (rb_song_info_construct_single),
11424         (rb_song_info_constructor): 
11425         Handle widgets for disc number.
11426         (rb_song_info_sync_entries_multiple):
11427         Set disc number property on selected entries.
11428         Fixes #324777.
11430 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11432         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
11433         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
11434         Activate the default widget when enter is pressed in these dialogs.
11435         Fixes #322887.
11437 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11439         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
11440         Use rb_shell_player_get_playing_entry, so we get the right entry
11441         when playing from the queue.  Fixes #325379.
11443 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11445         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11446         Include podcast posts with no publication date.  Typically
11447         seen in static collections rather than feeds.
11449 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11451         * shell/main.c: (main): Don't attempt to handle
11452         bonobo-only arguments if we couldn't get a bonobo
11453         client proxy.
11455 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11457         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
11458         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
11459         abort if daap sharing is disabled and then re-enabled.
11461 2005-12-29  William Jon McCann  <mccann@jhu.edu>
11463         * podcast/rb-podcast-parse.c (rb_insert_item):
11464         Add debugging.
11465         (rb_podcast_parser_start_element): Support itunes:image.
11466         Add debugging.  Don't abuse the break statement.  Warn
11467         if state is unknown.
11468         (rb_podcast_parser_end_element): Add debugging.  Warn
11469         if state is unknown.
11470         (rb_podcast_parser_characters): Warn if state is unknown.
11472         Fixes parsing of feeds that use the itunes:image element.
11473         Fixes #324632
11475 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
11477         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
11478         (stations_view_drag_data_received_cb):
11479         Remove calls to rhythmdb_entry_lookup_by_location, as
11480         rb_iradio_source_add_station does that anyway.
11481         
11482         (rb_iradio_source_add_from_playlist):
11483         If the URL doesn't point to a playlist, add it as the stream
11484         URL instead.
11486 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
11488         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
11489         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
11490         so we don't get an assertion failure.
11491         Fixes #325025.
11493 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
11495         * shell/main.c: (load_uri_args): don't compile this in if
11496         neither bonobo nor dbus are enabled.  Fixes #324890.
11498 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
11500         * sources/rb-audiocd-source.c:
11501         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
11502         so it closes the device.
11504 2005-12-20  James Livingston  <jrl@ids.org.au>
11506         * metadata/rb-metadata-gst.c: make the state changes time-out again,
11507         so that it doesn't spend forever getting stuck on the one file. Don't
11508         report errors for failing to change state on known non-audio files.
11510         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
11511         audio sink creation if we can't create the gconfaudiosink. This lets
11512         it work with only gst-plugins-base on 0.10.
11514 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11516         * rhythmdb/rhythmdb-query-model.c:
11517         (rhythmdb_query_model_set_sort_order):
11518         Fix a tiny memory leak in the previous commit.
11520 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11522         * rhythmdb/rhythmdb-query-model.c:
11523         (rhythmdb_query_model_set_sort_order):
11524         Don't try to emit reorders for empty query models, since it doesn't
11525         achieve anything and it results in a few warnings.
11527 2005-12-19  William Jon McCann  <mccann@jhu.edu>
11529         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
11530         Make burn dialog non-resizable so that the expander can shrink.
11531         Fixes #308951.
11533 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11535         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
11536         add entries without a location, rather than those with one.
11538 2005-12-19  James Livingston  <jrl@ids.org.au>
11540         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
11541         the error isn't set.
11543 2005-12-19  James Livingston  <jrl@ids.org.au>
11544         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
11545         add entries without a location. Fixes bug 324290.
11547         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
11548         without a location.
11550         * shell/main.c: (main): don't crash if dbus initialisation fails
11551         without setting an error
11553 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11555         * sources/rb-library-source.c: Remove unused structure members
11556         (rb_library_source_do_query): Actually use the cached 'all' query.
11557         Fixes #324025.
11558         
11559 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
11561         * sources/rb-audiocd-source.c 
11562         (rb_audiocd_get_cd_info): tab
11563         (rb_audiocd_scan_songs): Return boolean success/failure,
11564         fix error messages a bit.
11565         (metadata_cb): Don't crash if we have no tracks
11566         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
11567         the CD.
11568         Fixes #324222.
11570 2005-12-15  William Jon McCann  <mccann@jhu.edu>
11572         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
11573         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
11574         key.
11576         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11577         Fixes #324157
11579 2005-12-14  William Jon McCann  <mccann@jhu.edu>
11581         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
11582         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
11583         (fullscreen_changed_cb): 
11584         * lib/rb-preferences.h: 
11585         * data/ui/rhythmbox-ui.xml: 
11586         * data/rhythmbox.schemas:
11587         Add fullscreen mode.
11589         Fixes #324075.
11591 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
11593         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
11594         configure.  It was not working with RPM.
11595         * data/Makefile.am: Switched dbus directory location to use
11596         datadir instead of variable that was not working.
11598 2005-12-13  James Livingston  <jrl@ids.org.au>
11600         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11602         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
11603         the podcast browser work again. Closes bug 323856.
11605 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11607         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
11608         Remove C99ism.
11610         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
11611         (rb_utf_friendly_time):
11612         * lib/rb-cut-and-paste-code.h:
11614         * podcast/rb-feed-podcast-properties-dialog.c:
11615         (rb_feed_podcast_properties_dialog_parse_time):
11616         * podcast/rb-podcast-properties-dialog.c:
11617         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
11618         to display the date in a more user friendly way.
11619         For example, if the feed was updated yesterday it will say:
11620         Last updated: Yesterday 10:00 AM
11621         instead of printing the date.
11623 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11625         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
11626         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
11627         (rb_validate_item_propert, rb_podcast_parser_start_element) 
11628         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
11629         Use RB style.  Check for NULL before strcmp.  No C++ comments.
11630         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
11631         Don't set invalid mime type when mime type is NULL.  Fix leaks.
11632         (rb_podcast_parse_date): Add support for some real world
11633         date formats.
11634         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
11635         (rb_podcast_parse_item_free): Style and no need to check
11636         for NULL before g_free.
11638         May fix #323742
11640 2005-12-12  James Livingston  <jrl@ids.org.au>
11642         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
11643         with gstreamer 0.10, which replaced audioscale.
11645         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
11646         function to free the SoupSession
11648         * shell/rb-source-header.c: (rb_source_header_set_property),
11649         (rb_source_header_disclosure_toggled_cb),
11650         (rb_source_header_view_browser_changed_cb),
11651         (rb_source_header_sync_control_state):
11652         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11653         * sources/rb-library-source.c: (rb_library_source_class_init):
11654         * sources/rb-source.c: (rb_source_class_init),
11655         (rb_source_get_status), (default_get_browser_key),
11656         (rb_source_get_browser_key), (rb_source_can_browse),
11657         (rb_source_notify_status_changed),
11658         (rb_source_notify_filter_changed):
11659         * sources/rb-source.h: seperate the enabling of browsers from the use
11660         of a gconf key.
11662 2005-12-11  William Jon McCann  <mccann@jhu.edu>
11664         * data/glade/podcast-feed-properties.glade: 
11665         * data/glade/podcast-properties.glade: Use scrolled viewports
11666         for description text.  Fix regression of #320509.
11668 2005-12-11  James Livingston  <jrl@ids.org.au>
11670         * sources/rb-auto-playlist-source.c:
11671         (rb_auto_playlist_source_class_init), (impl_reset_filters),
11672         (impl_search), (rb_auto_playlist_source_do_query),
11673         (rb_auto_playlist_source_set_query),
11674         (rb_auto_playlist_source_get_query): add support for the search box
11675         to automatic playlists.
11677         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
11678         memory leak.
11680 2005-12-11  James Livingston  <jrl@ids.org.au>
11682         * NEWS: update NEWS
11684 2005-12-11  James Livingston  <jrl@ids.org.au>
11686         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
11687         (rhythmdb_load), (monitor_subdirectory),
11688         (rhythmdb_sync_library_location):  start the library sync and
11689         monitoring in an idle callback.
11691 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11693         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
11694         (rb_podcast_source_constructor): Remove unused pixbuf column.
11695         (rb_podcast_source_set_property, rb_podcast_source_get_property):
11696         Use consistent style.
11698         Fixes #322961.
11700 2005-12-11  James Livingston  <jrl@ids.org.au>
11702         * rhythmdb/rhythmdb-property-model.c:
11703         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
11704         (rhythmdb_property_model_insert),
11705         (rhythmdb_property_model_delete_prop):
11706         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
11707         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
11708         (destroy_tree_property):
11709         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
11710         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
11711         GMemChunks, they are crap and deprecated. Improves startup-time and
11712         memory usage slightly.
11714 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11716         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
11717         Added license and website info.
11719         * MAINTAINERS.old: Add Colin.
11720         * MAINTAINERS: Add James.
11721         * AUTHORS: Put back in order.  Add extra space between name and email
11722         to make it easier to read.  Add James and jonathan.
11724         * widgets/rb-song-info.c (rb_song_info_init) 
11725         (rb_song_info_constructor): Make sure close button is primary/rightmost.
11727 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11729         Play queue implementation. Closes bug 107787.
11731         * data/rhythmbox.schemas: add items for whether the queue should be
11732         displayed as a sidebar, and the height of the sourcelist if it is.
11734         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
11735         playlist, and podcast popups; add 'view queue as sidebar' menu item,
11736         add popups for queue as source and as sidebar.  We need a separate
11737         popup for the sidebar view because otherwise it's hard to tell which
11738         of the visible entry views the action came from.
11740         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
11742         * po/POTFILES.in: Add new file
11744         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
11745         Add helper function for deciding if a podcast episode is available for
11746         playback.
11748         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
11749         reorder entries in the query model.
11750         (idle_process_update): Handle new update type used to insert entries
11751         at a particular position in the query model.
11752         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
11753         parameter to specify the position (-1 meaning 'at the end').
11754         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
11755         parameter.
11756         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
11757         bad entry removal updates for entries that aren't in the model.
11758         (rhythmdb_query_model_emit_reorder): Add helper function for
11759         reordering rows.
11760         (rhythmdb_query_model_move_entry): New method for moving entries
11761         around in the model
11762         (rhythmdb_query_model_entry_added_cb),
11763         (rhythmdb_query_model_update_limited_entries),
11764         (rhythmdb_query_model_do_reorder),
11765         (rhythmdb_query_model_do_insert): Pass through the index parameter,
11766         use rhythmdb_query_model_emit_reorder where appropriate.
11768         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11769         Don't allow the queue to be deleted.
11770         (handle_playlist_entry_cb): Update for method signature change
11771         (rb_playlist_manager_save_playlists_async),
11772         (rb_playlist_manager_get_playlists): Don't save the play queue,
11773         don't report it as a playlist.
11775         * shell/rb-play-order.c: Include queue play order in the list of
11776         available orders.
11778         * shell/rb-shell.c
11779         (rb_shell_class_init), (rb_shell_get_property): Add new property 
11780         for access to the clipboard object.
11781         (rb_shell_constructor): Handle playing-from-queue signal to update the
11782         sourcelist display; add queue sidebar in to UI, listen for queue
11783         sidebar pane changes, and read initial settings from gconf.
11784         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
11785         Only tell the sourcelist the source has changed if the new source is 
11786         not the queue, as we update the sourcelist differently in that case.
11787         (rb_shell_set_window_title): Only use the cached window title if the
11788         playing state was the same when it was created.
11789         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
11790         (rb_shell_sync_pane_visibility): Only hide the side pane if the
11791         sourcelist is hidden and the queue is shown as a source.
11792         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
11793         mode, since it doesn't make any sense.
11794         (sourcelist_visibility_changed_cb): Update the visibility of the pane
11795         too.
11796         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
11797         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
11798         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
11799         playing from queue shown as sidebar.
11801         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
11802         MusicProperties action here from rb-shell-player.c, since it acts like
11803         cut/copy/paste etc.
11804         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
11805         (rb_shell_clipboard_get_property): new property for queue source.
11806         Watch for selection changes in the sidebar entry view as well as the
11807         normal one.
11808         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
11809         actions and MusicProperties.
11810         (rb_shell_clipboard_cmd_queue_delete),
11811         (rb_shell_clipboard_cmd_add_song_to_queue),
11812         (rb_shell_clipboard_cmd_song_info),
11813         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
11815         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
11816         actually came from (could be the playing source, or the queue), add a 
11817         new play order object for the queue, add a property for the queue
11818         source, add a signal for when we switch between playing from the
11819         source and from the queue.
11820         (rb_shell_player_set_property): Handle playing directly from the
11821         queue so we stop once the queue is empty.  Create queue play order
11822         when we get the queue source.
11823         (rb_shell_player_get_playing_source): Return the source we're actually
11824         playing from.
11825         (rb_shell_player_get_playing_entry): Get playing entry from queue if
11826         that's where it is.
11827         (rb_shell_player_set_playing_entry): Update the queue play order if 
11828         that's where we're playing from.
11829         (rb_shell_player_play_order_update_cb): Take has next/previous for the
11830         queue into consideration too.
11831         (swap_playing_source): Helper function for switching the playing
11832         source.
11833         (rb_shell_player_do_previous): Check the queue, even though there's
11834         never a previous entry in it (yet), swap playing source if it changed.
11835         (rb_shell_player_do_next): Check the queue for entries to play before
11836         the normal play order, and swap playing source if it changed.
11837         (rb_shell_player_do_previous_or_seek): Check the queue for previous
11838         entries to go to as well.
11839         (rb_shell_player_playpause): Check the queue before the selection and
11840         the play order, and swap playing source if it changed.
11841         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
11842         (rb_shell_player_entry_activated_cb): Use
11843         rb_podcast_manager_entry_downloaded, do some tapdancing to make
11844         activating queue entries work properly (move the activated entry to
11845         the start of the queue and then play it); if we were playing from the
11846         queue, clear its playing entry so it'll start again from the start
11847         after the activated entry.
11848         (rb_shell_player_sync_buttons): MusicProperties action handler moved
11849         to rb-shell-clipboard.c
11850         (actually_set_playing_source): Add helper for updating the playing
11851         source.
11852         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
11853         signal if we stop or start doing so; use actually_set_playing_source; 
11854         emit playing-source-changed if we actually did change source.
11856         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
11857         rb_static_playlist_source_add_location.
11859         * sources/rb-library-source.c (rb_library_source_class_init): Allow
11860         enqueueing of songs from the library.
11862         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
11863         enqueueing of sonsg from playlists.
11864         (rb_playlist_source_entry_added_cb): Add extra parameter for
11865         rhythmdb_query_model_add_entry.
11866         
11867         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
11868         Implement (can_)add_to_queue for this class.
11869         (rb_podcast_source_entry_activated): Use
11870         rb_podcast_manager_entry_downloaded.
11871         (impl_can_add_to_queue): Return TRUE if at least one entry that has
11872         been downloaded is selected.
11873         (impl_add_to_queue): Only add downloaded entries to the queue.
11875         * sources/rb-source.{c,h}:
11876         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
11877         methods.
11878         (rb_source_class_init): Don't allow enqueueing by default; implement 
11879         add_to_queue though.
11880         (default_add_to_queue): Add all selected entries to the queue.
11881         
11882         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
11883         would be playing if there wasn't anything in the queue).
11884         (set_source_playing): Helper function for manipulating tree store.
11885         (rb_sourcelist_set_playing_source): Use set_source_playing
11886         (rb_sourcelist_preempt_playing_source): Update preempted source
11887         pointer, manipulate source states.
11889         * sources/rb-static-playlist-source.{c,h}:
11890         (rb_static_playlist_source_add_location_internal),
11891         (rb_static_playlist_source_add_location),
11892         (rb_static_playlist_source_add_entry): Add index parameter for
11893         specifying where in the playlist the new entry goes.
11894         (rb_static_playlist_source_new_from_xml), (impl_paste),
11895         (rb_static_playlist_source_add_list_uri),
11896         (rb_static_playlist_source_add_location_swapped),
11897         (rb_static_playlist_source_add_locations),
11898         (rb_static_playlist_source_non_entry_dropped),
11899         (rb_static_playlist_source_row_inserted):
11900         Handle new index parameter everywhere it appears
11901         (rb_static_playlist_source_move_entry): New method for moving entries
11902         around in the playlist.
11904         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
11905         warnings when trying to scroll entry views that have never been
11906         displayed.
11908         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
11909         play order that removes the old entry when switching to a new one.
11911         * sources/rb-play-queue-source.{c,h}: New files, implementing a
11912         static playlist subclass that has a second entry view for the sidebar
11913         view using alternate formatting, and that displays the number of
11914         entries it contains in its source list entry.
11916 2005-12-10  James Livingston  <jrl@ids.org.au>
11918         * rhythmdb/rhythmdb-query-model.c:
11919         (rhythmdb_query_model_add_entry),
11920         (rhythmdb_query_model_drag_data_received):
11921         * sources/rb-static-playlist-source.c:
11922         (rb_static_playlist_source_non_entry_dropped): when things are
11923         dropped, ignore any blank lines in the list of uris. Make the source
11924         responsible for adding new items to the db.
11926         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
11927         empty string.
11929 2005-12-10  James Livingston  <jrl@ids.org.au>
11931         * shell/rb-shell-player.c: (rb_shell_player_set_property),
11932         (rb_shell_player_sync_buttons),
11933         (rb_shell_player_selection_changed_cb): watch for the
11934         "selection-changed" signal, so that the Song Properties get enabled.
11935         Closes bug 323694.
11937 2005-12-10  James Livingston  <jrl@ids.org.au>
11939         * data/rhythmbox.schemas: fix the gconf schema
11941 2005-12-10  James Livingston  <jrl@ids.org.au>
11943         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
11944         the decoded-pad callback with gstreamer 0.8, it causes problems.
11946 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11948         Remove more junk from RBEntryView. Closes bug 323640.
11950         * widgets/rb-entry-view.{c,h}:
11951         Remove unused private structure members, replace 'playing' boolean
11952         with an enum (so we know if we're paused too), and store a pointer to
11953         the RBShellPlayer too.  
11954         (rb_entry_view_class_init), (rb_entry_view_set_property),
11955         (rb_entry_view_get_property):
11956         Remove 'entry-selected' and 'changed' signals and
11957         'playing-entry' property, add 'selection-changed' signal and
11958         'shell-player' and 'playing-state' properties.
11959         (rb_entry_view_new): Take the shell player object reference
11960         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
11961         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
11962         No longer needed, shell player is the place to get this information.
11963         (rb_entry_view_busy), (rb_entry_view_get_duration),
11964         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
11965         (rb_entry_view_get_next_from_entry),
11966         (rb_entry_view_get_previous_from_entry),
11967         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
11968         (rb_entry_view_get_num_entries):
11969         Removed, callers should go to the query model directly.
11970         (rb_entry_view_playing_song_changed): Update active query model, emit
11971         row changed signals to update pixbufs, and scroll to the playing song
11972         when the playing song changes, based on a signal from the shell
11973         player.
11974         (queue_changed_sig), (rb_entry_view_row_changed_cb),
11975         (emit_entry_changed): Evil, removed.
11976         (rb_entry_view_selection_changed_cb): Remove old signals, add new
11977         selection-changed signal.
11978         (rb_entry_view_select_none), (rb_entry_view_select_entry):
11979         Remove selection lock.  It didn't work anyway.
11980         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
11981         (rb_entry_view_emit_row_changed): Simple helper function to emit
11982         row-changed signals.
11984         * widgets/Makefile.am: Entry view needs headers from the shell/
11985         directory.
11986         * widgets/rb-song-info.{c,h}: Use the query model for everything except
11988         scrolling the entry view to show the entry being displayed.
11989         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
11990         'source' property so we can watch for query model changes.
11991         (rb_song_info_finalize): Unref objects, disconnect signal handlers
11992         (rb_song_info_set_property): Watch for query model changes, don't
11993         watch for entry view changes.
11994         (rb_song_info_new): Take source as a parameter, use the source's entry
11995         view unless one was specifically supplied.
11996         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
11997         Use query model rather than entry view to move between songs.
11998         (rb_song_info_update_buttons): Use query model.
11999         (rb_song_info_query_model_changed_cb): Handle query model changes.
12001         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
12002         Only one copy of the code to enable/disable the CD burning action
12003         (rb_playlist_manager_playlist_entries_changed):
12004         Use the query model to get the number of entries, not the entry view.
12006         * shell/rb-play-order-random-by-age-and-rating.c,
12007         shell/rb-play-order-random-by-age.c,
12008         shell/rb-play-order-random-by-rating.c,
12009         shell/rb-play-order-random-equal-weights.c:
12010         Use G_DEFINE_TYPE
12012         * shell/rb-shell-player.{c,h}:
12013         Remove a few unused entries from the structure.
12014         (rb_shell_player_set_property):
12015         Don't use the 'changed' signal on the entry view (it's evil)
12016         (rb_shell_player_have_first): No longer needed
12017         (rb_shell_player_play): Just tell the entry view it's playing
12018         (rb_shell_player_playpause): Tell the entry view it's paused
12019         when pausing.
12020         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
12021         (rb_shell_player_property_row_activated_cb):
12022         Get the entry to play using the query model, not the entry view.
12023         (rb_shell_player_sync_buttons): Update entry view state while we're
12024         here.
12025         (rb_shell_player_set_playing_source_internal): Update entry view state
12026         (rb_shell_player_get_playing): Ask the entry view, not the player.
12027         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
12028         and rb_shell_set_window_title work properly, so you get "(Paused)" in
12029         the window title and tray icon tooltip.
12030         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
12032         * sources/rb-iradio-source.c, sources/rb-library-source.c,
12033         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
12034         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
12035         view constructor, pass the source in to the song info widget
12036         constructor.
12038         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
12039         Use 'selection-changed' instead of 'changed', since that's what the
12040         clipboard cares about.
12041         (rb_shell_clipboard_set_source): Don't die if source == NULL
12043 2005-12-10  James Livingston  <jrl@ids.org.au>
12045         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
12046         * sources/rb-playlist-source-recorder.c:
12047         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
12048         stuff not use the deprecated API when compiled against 2.13
12050 2005-12-10  James Livingston  <jrl@ids.org.au>
12052         patch by: Alex Lancaster <alexl@users.sourceforge.net>
12054         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
12055         problem where the genre tag was getting set to the artist. Closes bug
12056         323642.
12058 2005-12-09  William Jon McCann  <mccann@jhu.edu>
12060         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
12061         Return NULL if can't get first iter.
12063         Fixes #323663
12065 2005-12-09  William Jon McCann  <mccann@jhu.edu>
12067         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
12068         updated rb_station_properties_dialog_new API.
12069         (rb_iradio_source_add_from_playlist): New public function.
12070         (rb_iradio_source_first_time_changed): Use add_from_playlist.
12072         * shell/rb-shell.c (new_station_location_added): Handle
12073         iradio location added signal.
12074         (rb_shell_cmd_new_station): Use new iradio station dialog.
12076         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
12077         (rb_station_properties_dialog_new): Don't squeeze new
12078         station functionality into this class.
12079         (rb_station_properties_dialog_response_cb): ditto.
12080         (rb_station_properties_dialog_update_title): Make
12081         consistent with other properties dialogs.
12082         (rb_station_properties_dialog_location_changed_cb): Do nothing.
12084         * iradio/rb-new-station-dialog.[ch]: 
12085         * iradio/Makefile.am: Add new station dialog.
12087         * data/glade/station-new.glade: New file based on
12088         new podcast feed dialog.
12089         * data/glade/station-properties.glade: Updated to
12090         be consistent with song properties dialog.
12092         Fixes #323306.
12094 2005-12-10  James Livingston  <jrl@ids.org.au>
12096         patch by: Ståle Lyngaas <staale@lyngaas.com>
12098         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
12099         submit songs longer than 30 minutes. Fixes bug 323639.
12101 2005-12-09  William Jon McCann  <mccann@jhu.edu>
12103         * shell/rb-shell.c (idle_save_playlist_manager): Use new
12104         async save function.
12105         (rb_shell_finalize): Remove save timeout sources.  Reorder
12106         steps a bit to make saving db and playlists a bit more
12107         failsafe in case something goes wrong later.
12108         (rb_shell_constructor): Keep track of save timeout source.
12109         (add_to_library_response_cb): Keep track of db save timeout source.
12111         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
12112         g_atomic.
12113         (rb_playlist_manager_shutdown): New function to shutdown
12114         threads etc. before exit.
12115         (rb_playlist_manager_finalize): Moved handling outstanding
12116         threads stuff to shutdown since if there are outstanding threads
12117         they hold a ref and finalize is never called.
12118         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
12119         of signal which may be required for sync save.
12120         (rb_playlist_manager_save_playlists_async): Renamed old
12121         save_playlists to save_playlists_async.  Use g_atomic.
12122         (rb_playlist_manager_save_playlists): New function to
12123         perform sync saves (symmetric with RhythmDB API).
12124         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
12126         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
12127         Style consistency anality.
12128         (rhythmdb_finalize): Remove save timeout source.
12129         (rhythmdb_set_property, rhythmdb_get_property) 
12130         (rhythmdb_process_events): More anality and keep track of
12131         save timeout source.
12132         (action_thread_main): No need to call g_thread_exit.
12133         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
12134         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
12135         (write_encoded_gvalue, read_encoded_property): La la la.
12137         Fixes #322940.
12139 2005-12-10  James Livingston  <jrl@ids.org.au>
12141         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
12142         non-audio files.
12144 2005-12-10  James Livingston  <jrl@ids.org.au>
12146         * Makefile.am:
12147         * configure.ac: remove the rpm spec files, so that automake works.
12148         oops
12150         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
12151         locking issue
12153 2005-12-09  James Livingston  <jrl@ids.org.au>
12155         * debian/: try to get cvs to actually remove the files
12157 2005-12-09  James Livingston  <jrl@ids.org.au>
12159         * rhythmbox.spec.in:
12160         * debian/: remove the distro package stuff, they are *really* old, and
12161         downstream manage it anyway.
12163 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
12165         Rework play orders to work off query models rather than 
12166         entry views, and track the playing entry themselves rather
12167         than relying on the entry view to do it.  This makes the entry
12168         view mostly just a widget. Closes bug 323612.
12170         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
12171         Use query model rather than entry view to get the number
12172         of entries in playlists.
12174         * rhythmdb/rhythmdb-query-model.{c.h}
12175         (rhythmdb_query_model_tree_path_to_entry),
12176         (rhythmdb_query_model_iter_to_entry),
12177         (rhythmdb_query_model_get_next_from_entry),
12178         (rhythmdb_query_model_get_previous_from_entry):
12179         New utility functions for iterating through query models.
12180         (rhythmdb_query_model_compute_status_normal):
12181         Have one copy of this code, not four.
12183         * shell/rb-play-order.{c,h}:
12184         Add signals for when next/previous availability changes, and
12185         when the playing entry is removed, and add a property for
12186         the current playing entry.  Add gtkdoc comments too.
12187         (rb_play_order_class_init): Add new property and signals.
12188         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
12189         (rb_play_orer_query_model_changed_cb),
12190         (rb_play_order_query_model_changed): 
12191         Use query model rather than entry view.
12192         (rb_play_order_set_property), (rb_play_order_get_property):
12193         Handle new playing-entry property.  Call playing_entry_changed virtual
12194         method so subclasses can do any processing required.
12195         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
12196         (rb_play_order_set_playing_entry):
12197         Just use the playing-entry property.
12198         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
12199         Utility methods for subclasses.
12200         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
12201         Update next/previous availability, check if the playing entry
12202         was removed.
12203         (default_playing_entry_removed):
12204         Keep the current behaviour of just stopping playback when the 
12205         playing entry is deleted.
12206         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
12207         these for subclasses that don't have go_next/go_previous, but do
12208         have get_next/get_previous.
12209         (rb_play_order_update_have_next_previous): Emit signal if the
12210         availability of next/previous entries has changed.
12212         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
12213         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
12214         Use G_DEFINE_TYPE, replace entry view iterator with query model 
12215         methods.
12216         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
12217         on the last song in the shuffled order, go back to the start. This
12218         means if you press 'play' again you'll get the whole order again, not
12219         just one song.
12221         * shell/rb-shell-player.c:
12222         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
12223         play order rather than the entry view.
12224         (rb_shell_player_set_property): Update the play order when the
12225         selected source changes and we aren't playing anything.
12226         (rb_shell_player_sync_play_order): Copy the playing entry across to
12227         the new play order so playback continues from the same song, and watch
12228         for updates to have_next/have_previous.
12229         (rb_shell_player_play_order_update_cb): Enable/disable the
12230         next/previous actions when next/previous entry availability changes.
12231         (rb_shell_player_jump_to_current): Just use the play order's idea of
12232         what's playing, not the entry view's; if not playing anything, clear
12233         the selection, so when a playlist ends and you hit play again, it'll
12234         start at the start rather than the end.
12235         (rb_shell_player_do_previous): restructure a bit.
12236         (rb_shell_player_do_next): restructure, jump to new playing entry in
12237         an idle handler instead of directly.
12238         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
12239         song if there is one.
12240         (rb_shell_player_playpause): Jump to playing song, don't update the
12241         play order if we got the song from the selection.
12242         (rb_shell_player_playing_entry_deleted_cb): Not needed.
12243         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
12244         looks after next/previous actions now.  Don't break if called while
12245         there is no selected source.
12246         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
12247         (rb_shell_player_set_playing_source_internal),
12248         (rb_shell_player_error): No need to track the attempted playing entry
12249         any more, since the play order does that.
12251         * shell/rb-shell.c:
12252         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
12253         rb_shell_player_get_playing_entry rather than going through the entry
12254         view.
12256         * shell/rb-statusbar.c (rb_statusbar_set_property),
12257         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
12258         than the entry view for status bar text changes.
12259         (rb_statusbar_sync_status): Ask the query model directly
12261         * sources/rb-source.{c}: Add query model property.
12262         (default_get_status): Get status text from query model, should be
12263         suitable for most sources.
12264         (rb_source_set_property): Listen for changes to the query model 
12265         to update the status text.
12266         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
12267         (idle_emit_status_changed): Emit status-changed signals when query
12268         model changes. 
12270         * sources/rb-library-source.c, sources/rb-podcast-source.c:
12271         (impl_get_status): Not needed, RBSource does this now
12272         (rb_library_source_do_query) (rb_podcast_source_do_query): 
12273         Update RBSource's query model reference.
12275         * sources/rb-playlist-source.c:
12276         Remove query-model property, since RBSource has one now
12277         (impl_get_status): Not needed, RBSource does this now
12278         (rb_playlist_source_row_deleted): Use query model iterator helper
12279         function.
12280         (rb_playlist_source_set_query_model): Update RBSource's query model
12281         reference too.
12283         * sources/rb-iradio-source.c:
12284         (impl_get_status): Ask the query model directly.
12285         (rb_iradio_source_do_query): Update RBSource's query model reference
12286         when we create a new query.
12288         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
12289         Use query model rather than entry view.
12291         * widgets/rb-entry-view.{c,h}: 
12292         Remove playing_entry_deleted signal (now in play order).
12293         (entry_from_tree_path), (entry_from_tree_iter): Not needed
12294          as RhythmDBQueryModel has equivalent helper functions.
12295         (rb_entry_view_*): Use query model helpers instead of the above two
12296         functions.
12298 2005-12-09  James Livingston  <jrl@ids.org.au>
12300         * configure.ac:
12301         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
12302         (rb_recorder_enabled):
12303         * shell/rb-removable-media-manager.c: (poll_tray_opened):
12304         * sources/rb-playlist-source-recorder.c:
12305         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
12306         whether libnautilusburn has the _drive_unref function, and if so use
12307         it. Stops it complaining about deprecated API.
12309 2005-12-09  James Livingston  <jrl@ids.org.au>
12311         * configure.ac: drop the minimum gstreamer version back down, it
12312         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
12314 2005-12-09  James Livingston  <jrl@ids.org.au>
12316         * widgets/rb-song-info.c: (rb_song_info_class_init),
12317         (rb_song_info_show), (rb_song_info_constructor),
12318         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
12319         (rb_song_info_forward_clicked_cb): save metadata changes when the
12320         Next/Previous buttons are pressed (closes bug 320952). use
12321         G_DEFINE_TYPE.
12323 2005-12-09  James Livingston  <jrl@ids.org.au>
12325         Patch by: <jonathan@kaolin.hn.org>
12327         * sources/rb-iradio-source.c:
12328         (stations_view_drag_data_received_cb):
12329         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
12330         of urls. Fixes bug 323610.
12332 2005-12-09  James Livingston  <jrl@ids.org.au>
12334          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
12335          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
12337         * configure.ac:
12338         * metadata/rb-metadata-gst.c:
12339         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
12340         (rb_player_construct), (rb_player_new):
12341         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
12342         (rb_recorder_gst_signal_error), (pipe_message),
12343         (rb_recorder_new_pad_cb), (rb_recorder_construct),
12344         (rb_recorder_new):
12345         * shell/main.c: (main):
12346         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
12347         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
12349 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
12351         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
12353         * shell/rb-playlist-manager.c:
12354           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
12355           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
12356           (rb_playlist_manager_set_automatic_playlist),
12357           (rb_playlist_manager_cmd_new_automatic_playlist),
12358           (rb_playlist_manager_cmd_edit_automatic_playlist):
12359            Use new playlist subclasses.
12360           (rb_playlist_manager_save_playlists): Only read the dirty flag
12361            for local playlists, minor pointless reformatting
12363         * sources/Makefile.am: add new files
12365         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
12366           split lots of stuff out into two
12367           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
12368           make RBPlaylistSource abstract, add virtual methods for showing a
12369           popup for the entry view and saving the playlist to XML.
12370           Other stuff is subclass-specific, or already virtual in RBSource.
12372         * sources/rb-playlist-xml: Define playlist XML tags and attributes
12373           in one place, since they're used across three source files now
12375         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
12376           Use new static playlist class
12378         * sources/rb-ipod-source.c: (add_rb_playlist):
12379           Use new static playlist class
12381         * sources/rb-static-playlist-source.{c,h},
12382         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
12383         files.
12385         * po/POTFILES.in: add new files
12387 2005-12-07  James Livingston  <jrl@ids.org.au>
12389         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
12390         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
12391         metadata loads not attempt to write changes to disk.
12393 2005-12-07  James Livingston  <jrl@ids.org.au>
12395         patch by: Alex Lancaster <alexl@users.sourceforge.net>
12397         * data/glade/song-info-multiple.glade:
12398         * widgets/rb-song-info.c: (rb_song_info_constructor),
12399         (rb_song_info_sync_entries_multiple): allow the year to be changed on
12400         multiple songs at once.
12402 2005-12-06  James Livingston  <jrl@ids.org.au>
12404         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12405         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
12407 2005-12-06  James Livingston  <jrl@ids.org.au>
12409         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
12410         names rather than adding a horizontal scroll bar.
12412 2005-12-06  James Livingston  <jrl@ids.org.au>
12414         * rhythmdb/rhythmdb-query-model.c:
12415         (rhythmdb_query_model_update_limited_entries),
12416         (rhythmdb_query_model_drag_data_received): remove some pointless debug
12417         messages
12419         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
12420         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
12421         always hide rather than remove DB entries, which will make RB not lose
12422         information when tag editing happens or people move files to trash and
12423         then change their mind. Also fix some races where the monitoring code
12424         would notice the temporary files generated by saving metadata.
12426 2005-12-05  William Jon McCann  <mccann@jhu.edu>
12428         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
12429         Hide internals and add tooltips.
12430         (rb_song_display_box_size_allocate): Hide internals.
12431         (sanitize_string, info_url): Copied from rb-header.
12432         (rb_song_display_box_sync): New public function.
12434         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
12435         (rb_header_init): Use a separate row for the seek bar.
12436         (rb_header_finalize): Don't unref widgets.
12437         (rb_header_sync): Use rb_song_display_box_sync.
12438         (rb_header_set_urldata)
12439         (rb_header_set_show_artist_album): Hide instead of remove widgets.
12440         (rb_header_set_show_position_slider): Set visibility of seek bar.
12441         (rb_header_set_show_timeline): Set sensitivity of seek bar.
12442         (rb_header_get_elapsed_string): Don't shift when you first start playback.
12444         * shell/rb-statusbar.c (rb_statusbar_init)
12445         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
12447         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
12448         (rb_shell_constructor): Remove hseparator.  Monitor
12449         toolbar visibility settings.  Add toolbar.  Add
12450         volume button to toolbar.  Add tooltips for volume button.
12451         (rb_shell_view_toolbar_changed_cb) 
12452         (rb_shell_sync_toolbar_visibility)
12453         (toolbar_visibility_changed_cb): Set visibility of
12454         toolbar.
12455         (rb_shell_sync_smalldisplay): Set the toolbar style to
12456         icons only when in small display mode.
12457         (rb_shell_volume_widget_changed_cb): Save volume setting.
12459         * shell/rb-shell-player.c (rb_shell_player_constructor):
12460         Remove pause and stop actions.  Make play action "important"
12461         so that text is visible in horizontal toolbar position.
12462         Remove control buttons.
12463         (rb_shell_player_init) 
12464         (rb_shell_player_sync_song_position_slider_visibility):
12465         Set visbibility of seek bar.
12466         (rb_shell_player_cmd_play, rb_shell_player_playpause):
12467         Make play action a toggle.
12468         (rb_shell_player_sync_volume): Volume control moved
12469         to player.
12470         (gconf_song_position_slider_visibility_changed):
12471         Set visbibility of seek bar.
12472         (rb_shell_player_sync_buttons):
12473         Set sensitivity of actions instead of buttons.
12474         (rb_shell_player_playing_changed_cb): Add callback
12475         for player notify::playing changes.
12477         * lib/rb-preferences.h: Add hide toolbar and seek
12478         bar key names.
12480         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
12481         seek bar menu items.  Remove pause and stop actions
12482         from the control menu.  Add a toolbar.
12484         * data/rhythmbox.schemas: Add toolbar_hidden
12485         song_position_slider_hidden keys.
12487         Patch by: James Livingston  <jrl@ids.org.au>
12488                   William Jon McCann  <mccann@jhu.edu>
12489         Fixes #316238.
12491 2005-12-05  James Livingston  <jrl@ids.org.au>
12493         * data/glade/library-prefs.glade:
12494         * data/rhythmbox.schemas:
12495         * lib/rb-preferences.h:
12496         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
12497         (rhythmdb_sync_library_location):
12498         * sources/rb-library-source.c: (rb_library_source_class_init),
12499         (rb_library_source_finalize), (rb_library_source_constructor),
12500         (impl_get_config_widget), (rb_library_source_preferences_sync),
12501         (rb_library_source_watch_toggled_cb): allow people to disable library
12502         monitoring, because with nothing set the file chooser button selects
12503         the Home folder (and hence that will get monitored).
12505 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
12507         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
12508         attempt to fix problem with RSS parsing showing invalid feed types.
12509         Fixes bug 323153
12511 2005-12-04  James Livingston  <jrl@ids.org.au>
12513         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12514         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
12515         importing a remote directory not block the UI.
12517 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
12519         * data/glade/podcast-feed-properties.glade:
12520         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
12522 2005-12-04  James Livingston  <jrl@ids.org.au>
12524         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12526         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
12527         to && to fix a mistake in the earlier podcast patch.
12529 2005-12-03  James Livingston  <jrl@ids.org.au>
12531         * data/glade/podcast-new.glade:
12532         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
12533         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
12535         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
12536         GValue, which stops occasional errors.
12538         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12539         compile issue.
12541 2005-12-03  James Livingston  <jrl@ids.org.au>
12543         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12545         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12546         crasher with some podcasts feeds.
12548 2005-12-03  James Livingston  <jrl@ids.org.au>
12550         * data/rhythmbox.schemas: fix the gconf schema
12552 2005-12-03  James Livingston  <jrl@ids.org.au>
12554         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
12555         add a selection timeout to the sourcelist. This lets you hold a track
12556         over the playlist source, and then have the view switch so you can
12557         insert the track in the middle of the playlist. Closes bug 323044.
12559         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
12560         (select_on_drag_timeout), (remove_select_on_drag_timeout),
12561         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
12562         (rb_tree_dnd_add_drag_dest_support):
12563         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
12564         timeout.
12566         * sources/rb-sourcelist-model.c:
12567         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
12568         the source list.
12570 2005-12-02  Bastien Nocera  <hadess@hadess.net>
12572         * data/glade/audioscrobbler-prefs.glade: add a space before the web
12573         links, so that the text doesn't touch the button
12575 2005-12-02  James Livingston  <jrl@ids.org.au>
12577         Add full support for gnome-vfs remote files. Closes bug 140355.
12579         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
12580         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
12581         for authentication information from the user doesn't block the UI.
12583         (rhythmdb_entry_set_visibility): don't emit the signal twice.
12585         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
12586         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
12587         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
12588         (rhythmdb_process_stat_event), (emit_load_error_idle),
12589         (rhythmdb_process_metadata_load),
12590         (rhythmdb_process_queued_entry_set_event),
12591         (rhythmdb_process_file_created_or_modified),
12592         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
12593         (queue_stat_uri), (add_thread_main),
12594         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
12595         (rhythmdb_load), (rhythmdb_save_thread_main),
12596         (threadsafe_entry_set), (rhythmdb_query_internal),
12597         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
12598         (rhythmdb_do_full_query_internal),
12599         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
12600         (rhythmdb_volume_unmounted_cb),
12601         (rhythmdb_check_changed_file): trivial changes to support the
12602         asynchronous stats.
12604         * shell/main.c: (main): activate the authentication manager.
12606         * shell/rb-playlist-manager.c:
12607         (rb_playlist_manager_cmd_load_playlist),
12608         (rb_playlist_manager_cmd_save_playlist):
12609         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
12610         (rb_shell_cmd_add_file_to_library):
12611         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
12612         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
12613         remote files.
12615 2005-12-02  James Livingston  <jrl@ids.org.au>
12617         * shell/rb-playlist-manager.c: makes playlist menu items use the
12618         elipses correctly. Fixes bug 322283.
12620 2005-12-02  James Livingston  <jrl@ids.org.au>
12622         * shell/rb-playlist-manager.c:
12623         (rb_playlist_manager_load_playlists): fix silly mistake
12625 2005-12-02  James Livingston  <jrl@ids.org.au>
12627         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
12628         print out metadata-write unless --debug was passed.
12630         * rhythmdb/rhythmdb.c: (rhythmdb_load):
12631         * shell/rb-playlist-manager.c:
12632         (rb_playlist_manager_load_playlists): block writes to disk if they are
12633         still being loaded.
12635 2005-12-02  James Livingston  <jrl@ids.org.au>
12637         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
12638         ctrl-T, because Ctrl-D is used by "small mode"
12640 2005-12-02  James Livingston  <jrl@ids.org.au>
12642         * shell/rb-shell-preferences.c:
12643         (rb_shell_preferences_append_view_page):
12644         * sources/rb-library-source.c: (impl_get_config_widget):
12645         * sources/rb-podcast-source.c: (impl_get_config_widget):
12646         * sources/rb-source.c: (rb_source_get_config_widget):
12647         * sources/rb-source.h: Make the preference actually work.
12649         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
12650         if Rhythmbox is being run for the first time.
12652 2005-12-02  James Livingston  <jrl@ids.org.au>
12654         Add support for Rhythmbox to watch your library, and automatically add
12655         new tracks. Fixes bug 160159.
12657         * data/glade/library-prefs.glade: add "library location" preference
12658         * data/rhythmbox.schemas: add gconf key for the library location
12660         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
12661         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
12662         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
12663         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
12664         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
12665         (rhythmdb_load_thread_main), (rhythmdb_load),
12666         (monitor_subdirectory), (monitor_library_directory),
12667         (monitor_entry_file), (rhythmdb_sync_library_location),
12668         (library_location_changed_cb), (rhythmdb_check_changed_file),
12669         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
12670         specifiec in the gconf key for new additions. Also fix monitoring code
12671         so that it works properly, and notices deletions.
12673         * lib/rb-preferences.h:
12674         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
12675         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
12676         * shell/rb-audioscrobbler.h:
12677         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
12678         (rb_shell_preferences_append_view_page),
12679         (rb_shell_preferences_new):
12680         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
12681         it's preferences pane, so that we don't need #ifdef's through
12682         rb-shell-preferences.
12684         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
12685         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
12686         "preferences" property, so that sources can acccess it. This is needed
12687         because the library location pref needs to take effect when the window
12688         is closed.
12690         * sources/rb-library-source.c:
12691         (rb_library_source_library_location_changed),
12692         (rb_library_source_dispose), (rb_library_source_finalize),
12693         (rb_library_source_constructor), (impl_get_config_widget),
12694         (rb_library_source_preferences_sync),
12695         (rb_library_source_process_library_location_change),
12696         (rb_library_source_prefs_update),
12697         (rb_library_source_process_library_handle_selection),
12698         (rb_library_source_library_location_cb): set up and control the
12699         "library location" preference.
12701         * sources/rb-audiocd-source.c:(rb_source_class_init):
12702         * sources/rb-source.c: (rb_source_class_init): remove some pointless
12703         code.
12705 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12707         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
12708         (rb_feed_podcast_properties_dialog_update_title): 
12709         * data/glade/podcast-feed-properties.glade:
12710         Make the feed properties dialog consistent with the podcast
12711         properties dialog.
12713 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12715         * metadata/.cvsignore: 
12716         * po/.cvsignore: 
12717         * podcast/.cvsignore: Updated.
12719         * shell/main.c (main): Support DBus 0.6 flags.
12721 2005-11-30  Bastien Nocera  <hadess@hadess.net>
12723         * data/ui/rhythmbox-ui.xml:
12724         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
12725         (rhythmbd_entry_move_to_trash_set_error),
12726         (rhythmdb_entry_move_to_trash):
12727         * rhythmdb/rhythmdb.h:
12728         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
12729         (rb_shell_clipboard_cmd_delete),
12730         (rb_shell_clipboard_cmd_move_to_trash):
12731         * sources/rb-library-source.c: (rb_library_source_class_init),
12732         (impl_delete), (impl_move_to_trash):
12733         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12734         (impl_delete), (impl_move_to_trash):
12735         * sources/rb-removable-media-source.c:
12736         (rb_removable_media_source_class_init):
12737         * sources/rb-source.c: (rb_source_class_init),
12738         (rb_source_can_move_to_trash), (rb_source_delete),
12739         (rb_source_move_to_trash):
12740         * sources/rb-source.h:
12741         Add move_to_trash member for the sources, implement move to trash for
12742         the library and playlists
12743         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
12744         local files to the trash, and deleting them from the database
12745         (Closes: #315389)
12747 2005-11-30  William Jon McCann  <mccann@jhu.edu>
12749         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
12750         (rb_tray_icon_init, rb_tray_icon_finalize): 
12751         * shell/rb-statusbar.c (rb_statusbar_class_init) 
12752         (rb_statusbar_init, rb_statusbar_finalize): 
12753         * shell/rb-source-header.c (rb_source_header_class_init) 
12754         (rb_source_header_init, rb_source_header_finalize): 
12755         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
12756         (rb_shell_finalize): 
12757         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
12758         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
12759         * shell/rb-shell-player.c (rb_shell_player_class_init) 
12760         (rb_shell_player_init, rb_shell_player_finalize): 
12761         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
12762         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
12763         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
12764         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
12765         * shell/rb-play-order.c (rb_play_order_class_init) 
12766         (rb_play_order_init, rb_play_order_finalize): 
12767         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
12768         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
12769         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
12770         (rb_random_play_order_init, rb_random_play_order_finalize): 
12771         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
12772         (rb_history_finalize): 
12773         * shell/rb-commander.c (rb_commander_class_init) 
12774         (rb_commander_init, rb_commander_finalize): 
12775         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
12776         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
12777         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
12778         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
12779         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
12780         (rb_podcast_properties_dialog_init) 
12781         (rb_podcast_properties_dialog_finalize): 
12782         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
12783         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
12784         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
12785         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
12786         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
12787         (rb_feed_podcast_properties_dialog_init) 
12788         (rb_feed_podcast_properties_dialog_finalize): 
12789         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
12790         (rb_metadata_init, rb_metadata_finalize): 
12791         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
12792         (rb_station_properties_dialog_init) 
12793         (rb_station_properties_dialog_finalize): 
12794         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
12795         (rb_daap_share_init, rb_daap_share_dispose): 
12797         Use g_type_class_add_private in all classes. Closes bug 313688.
12798         
12799 2005-11-30  James Livingston  <jrl@ids.org.au>
12801         patch by: William Jon McCann <mccann@jhu.edu> to use
12802         g_type_class_add_private in all classes. Closes bug 313688.
12804         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
12805         (rb_thread_finalize):
12806         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
12807         (rb_player_finalize):
12808         * rhythmdb/rhythmdb-property-model.c:
12809         (rhythmdb_property_model_class_init),
12810         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
12811         * rhythmdb/rhythmdb-query-model.c:
12812         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
12813         (rhythmdb_query_model_finalize):
12814         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
12815         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
12816         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
12817         (rhythmdb_finalize):
12818         * sources/rb-daap-source.c: (rb_daap_source_class_init),
12819         (rb_daap_source_init), (rb_daap_source_dispose):
12820         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12821         (rb_iradio_source_init), (rb_iradio_source_finalize):
12822         * sources/rb-library-source.c: (rb_library_source_class_init),
12823         (rb_library_source_init), (rb_library_source_finalize):
12824         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12825         (rb_playlist_source_init), (rb_playlist_source_dispose):
12826         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
12827         (rb_podcast_source_init), (rb_podcast_source_finalize):
12828         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
12829         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
12830         * sources/rb-sourcelist-model.h:
12831         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
12832         (rb_sourcelist_init), (rb_sourcelist_finalize):
12833         * sources/rb-sourcelist.h:
12834         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
12835         * widgets/rb-cell-renderer-rating.c:
12836         (rb_cell_renderer_rating_init),
12837         (rb_cell_renderer_rating_class_init),
12838         (rb_cell_renderer_rating_finalize):
12839         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
12840         (rb_druid_finalize):
12841         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12842         (rb_entry_view_init), (rb_entry_view_finalize):
12843         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
12844         (rb_header_finalize):
12845         * widgets/rb-load-failure-dialog.c:
12846         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
12847         (rb_load_failure_dialog_finalize):
12848         * widgets/rb-property-view.c: (rb_property_view_class_init),
12849         (rb_property_view_init), (rb_property_view_finalize):
12850         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
12851         (rb_rating_finalize):
12852         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
12853         (rb_search_entry_init), (rb_search_entry_finalize):
12854         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12855         (rb_simple_view_init), (rb_simple_view_finalize):
12856         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
12857         (rb_song_display_box_init), (rb_song_display_box_finalize):
12858         * widgets/rb-song-info.c: (rb_song_info_class_init),
12859         (rb_song_info_init), (rb_song_info_finalize):
12860         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
12861         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
12863 2005-11-30  James Livingston  <jrl@ids.org.au>
12865         * iradio/rb-station-properties-dialog.c:
12866         (rb_station_properties_dialog_init),
12867         (rb_station_properties_dialog_new):
12868         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
12869         * lib/rb-glade-helpers.h:
12870         * podcast/rb-feed-podcast-properties-dialog.c:
12871         (rb_feed_podcast_properties_dialog_init),
12872         (rb_feed_podcast_properties_dialog_new):
12873         * podcast/rb-podcast-properties-dialog.c:
12874         (rb_podcast_properties_dialog_init),
12875         (rb_podcast_properties_dialog_new):
12876         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
12877         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
12878         * sources/rb-library-source.c: (impl_get_config_widget):
12879         * sources/rb-playlist-source-recorder.c:
12880         (rb_playlist_source_recorder_init):
12881         * widgets/rb-song-info.c: (rb_song_info_construct_single),
12882         (rb_song_info_constructor): create a single rb_glade_boldify_label()
12883         in rb-glade-helpers, rather than having eight implementation
12884         throughout the code.
12886 2005-11-30  James Livingston  <jrl@ids.org.au>
12888         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
12889         * lib/rb-util.h:
12890         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
12891         move the duration->string function into rb-utils, as it gets used in a
12892         few places.
12894         patch by: William Jon McCann <mccann@jhu.edu>
12896         * data/glade/podcast-properties.glade:
12897         * podcast/rb-podcast-properties-dialog.c:
12898         (rb_podcast_properties_dialog_init),
12899         (rb_podcast_properties_dialog_update),
12900         (rb_podcast_properties_dialog_update_title),
12901         (rb_podcast_properties_dialog_update_feed),
12902         (rb_podcast_properties_dialog_update_duration),
12903         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
12904         info dialog look more like the song info dialog. Use the same "Feed"
12905         value that is displayed in the treeview (ie. the album field), displays
12906         the duration, uses units in the bitrate field, and sort the fields in
12907         the same order.
12909 2005-11-29  James Livingston  <jrl@ids.org.au>
12911         * rhythmdb/rhythmdb-marshal.list:
12912         * rhythmdb/rhythmdb.h:
12913         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
12914         (emit_load_error_idle), (rhythmdb_process_metadata_load),
12915         (entry_to_rb_metadata), (emit_save_error_idle),
12916         (action_thread_main): emit error signal when metadata write fails.
12918         * shell/rb-shell.c: (rb_shell_constructor),
12919         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
12920         "metadata save" error and display it to the user.
12922 2005-11-29  James Livingston  <jrl@ids.org.au>
12924         * data/ui/rhythmbox-ui.xml:
12925         * sources/rb-podcast-source.c:
12926         (rb_podcast_source_songs_show_popup_cb),
12927         (rb_podcast_source_cmd_download_post),
12928         (rb_podcast_source_cmd_cancel_download): split download and cancel
12929         download commands. Replace usage of "Post" with "Esisode". Fixes bug
12930         321653.
12932 2005-11-18  William Jon McCann  <mccann@jhu.edu>
12934         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
12935         title on alert dialogs per the HIG.
12937         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
12938         the term Burn.
12939         (free_song_list): Routine to free song list.
12940         (rb_playlist_source_recorder_finalize): Use free_song_list.
12941         (rb_playlist_source_recorder_add_from_model): Return FALSE
12942         if unable to add all songs.  Check that duration of all
12943         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
12944         Fixes #321753.
12946         * sources/rb-playlist-source-recorder.c (check_media_length)
12947         (rb_playlist_source_recorder_start): Only check the duration
12948         and current media if the playlist length is longer than a
12949         standard CD (74 min).  Otherwise, just let the Recorder do the
12950         check.
12951         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
12952         drive at init.
12953         (rb_recorder_set_device): Don't leak drives.
12954         (rb_recorder_get_media_length): Use drive that was already set.
12955         (rb_recorder_burn): Let the recorder handle checking media type/size.
12956         Fixes bug 321754.
12958 2005-11-29  James Livingston  <jrl@ids.org.au>
12960         * rhythmdb/rhythmdb-query-model.c:
12961         (rhythmdb_query_model_set_sort_order):
12962         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
12963         emitting the tree-model "resorted" signal.
12965         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12966         (rb_entry_view_finalize), (rb_entry_view_set_property),
12967         (rb_entry_view_constructor), (rb_entry_view_resort_model):
12968         * widgets/rb-entry-view.h: add a function to resort the entry view,
12969         using the above function.
12971         * sources/rb-iradio-source.c:
12972         (rb_iradio_source_songs_view_sort_order_changed_cb):
12973         * sources/rb-library-source.c: (rb_library_source_finalize),
12974         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
12975         * sources/rb-playlist-source.c:
12976         (rb_playlist_source_songs_sort_order_changed_cb):
12977         * sources/rb-podcast-source.c:
12978         (rb_podcast_source_posts_view_sort_order_changed_cb),
12979         (rb_podcast_source_do_query): use the above function instead of
12980         re-creating the query model. This makes changing the sorting an order
12981         of magnitude faster, as it uses a single resorted signal rather than
12982         deleting and re-adding everything (which emits 2N signals). Closes bug
12983         315389.
12985 2005-11-29  James Livingston  <jrl@ids.org.au>
12987         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
12988         autosizing, which results in large speedups. Closes bug 312122.
12990         * po/ja.po: change the date format, so that it is a constant width
12992         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
12993         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
12994         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
12995         (rb_entry_view_constructor): make columns use fixed widths,
12996         disable column autosizing, and enable fixed-height mode.
12998         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
12999         (rb_entry_view_get_time_date_column_sample):
13000         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
13001         and get the canonical date format for the locale.
13003 ============ Version 0.9.2
13005 2005-11-28  James Livingston  <jrl@ids.org.au>
13007         * configure.ac: bump version to 0.9.2
13008         * NEWS: update with changes for 0.9.2
13010 2005-11-28  James Livingston  <jrl@ids.org.au>
13012         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13014         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
13015         Disable saving, renaming and delting for DAAP playlists.
13016         Fixes bug 322627.
13018 2005-11-28  James Livingston  <jrl@ids.org.au>
13020         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
13021         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
13022         prevent bug 322619.
13024         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
13025         * sources/rb-removable-media-source.c:
13026         (rb_removable_media_source_class_init): fix ipod browser visibility
13027         problem.
13029 2005-11-28  James Livingston  <jrl@ids.org.au>
13031         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
13032         Avahi 0.6 support actually work. Fixes bug 322519.
13034 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
13036         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
13037         avahi is specified in --with-mdns
13039 2005-11-27  James Livingston  <jrl@ids.org.au>
13041         patch by: Bastien Nocera <hadess@hadess.net>
13043         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
13044         not the private one. Fixes bug 322485.
13046 2005-11-26  James Livingston  <jrl@ids.org.au>
13048         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
13049         Avahi 0.6, as well as 0.5.
13051         * configure.ac:
13052         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
13053         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
13054         (add_service):
13056 2005-11-25  James Livingston  <jrl@ids.org.au>
13058         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
13059         321926.
13061 2005-11-25  James Livingston  <jrl@ids.org.au>
13063         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
13064         correct type for checking the date against 0. Stops a warning when
13065         saving metadata.
13067 2005-11-25  James Livingston  <jrl@ids.org.au>
13069         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
13070         adjustment to be inside the element's limits. Without this songs that
13071         have large ReplayGain values will recieve no increase because they are
13072         outside the acceptable range, causing them to remain quiet.
13074 2005-11-25  James Livingston  <jrl@ids.org.au>
13076         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
13077         * sources/rb-daap-source.c: (rb_daap_source_class_init):
13078         * sources/rb-ipod-source.c:
13079         * sources/rb-source.h:
13080         * sources/rb-library-source.h:
13081         * sources/rb-library-source.c: (rb_library_source_class_init),
13082         (rb_library_source_constructor),
13083         (rb_library_source_has_first_added_column),
13084         (rb_library_source_has_drop_support):
13085         * sources/rb-removable-media-source.c:
13086         (rb_removable_media_source_class_init): Make library-derived sources
13087         not show the Date Added column, as it doesn't make sense. Fixes bug
13088         322269.
13089         Move some of the feature funcs from the ipod and audio cd sources up to
13090         the removable media source.
13092 2005-11-24  James Livingston  <jrl@ids.org.au>
13094         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
13095         errors. oops.
13097 2005-11-24  James Livingston  <jrl@ids.org.au>
13099         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
13100         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
13101         (rb_iradio_source_constructor): Chain up dispose method and use
13102         G_DEFINE_TYPE
13104 2005-11-24  James Livingston  <jrl@ids.org.au>
13106         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
13107         mistake in the last commit that can cause crashes.
13109 2005-11-24  James Livingston  <jrl@ids.org.au>
13111         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
13112         instead of g_printerr.
13114         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
13115         rb_debug instead of g_warning. The message happens every time for
13116         removable media/daap shares, so it's not unusual.
13118 2005-11-24  James Livingston  <jrl@ids.org.au>
13120         patch by: Tom Parker <palfrey@tevp.net>
13122         * configure.ac: fix libsoup test for enabling daap
13124 2005-11-23  James Livingston  <jrl@ids.org.au>
13126         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
13127         (rb_query_creator_init), (rb_query_creator_constructor),
13128         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
13129         empty row to queries with no criteria. Fixes bug 322078. use
13130         G_DEFINE_TYPE.
13132 2005-11-23  James Livingston  <jrl@ids.org.au>
13134         patch by:  <baptiste.millemathias@gmail.com>
13136         * help/C/quick-reference.xml: update the quick reference to have the
13137         correct key bindings.
13139 2005-11-22  James Livingston  <jrl@ids.org.au>
13141         * sources/rb-library-source.c: (genres_selection_reset_cb),
13142         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
13143         reset the query when all browser selections are removed.
13145 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
13147         * podcast/rb-podcast-manager.c:
13148         (rb_podcast_manager_db_entry_deleted_cb):
13149         Use a custom loop to remove podcast posts, rather than
13150         gtk_tree_model_foreach(), as deleting the entries within
13151         that loop causes the iterator to return the first entry
13152         twice.  Instead, we need to find the next entry before
13153         removing the current one. Fixes bug 321956.
13154         (rb_podcast_manager_entry_remove_cb): No longer needed.
13156 2005-11-22  James Livingston  <jrl@ids.org.au>
13158         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13159         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
13160         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
13162 2005-11-22  James Livingston  <jrl@ids.org.au>
13164         * sources/rb-podcast-source.c:
13165         (rb_podcast_source_post_date_cell_sort_func),
13166         (rb_podcast_source_post_status_cell_sort_func),
13167         (rb_podcast_source_post_feed_cell_sort_func):
13168         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
13169         (rb_entry_view_album_sort_func),
13170         (rb_entry_view_double_ceiling_sort_func),
13171         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
13172         the entry's location as a last resort when sorting, so the sort order
13173         is stable. This will stop entries moving around when two entries have
13174         the same sorting, and one of them gets played.
13176 2005-11-22  James Livingston  <jrl@ids.org.au>
13178         * daapsharing/rb-daap-connection.c:
13179         (rb_daap_connection_class_init), (rb_daap_connection_init),
13180         (connection_get_password), (build_message),
13181         (http_response_handler), (http_get), (handle_server_info),
13182         (handle_login), (handle_update), (handle_database_info),
13183         (handle_song_listing), (handle_playlists),
13184         (handle_playlist_entries), (rb_daap_connection_new),
13185         (rb_daap_connection_constructor), (rb_daap_connection_logout),
13186         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
13187         (rb_daap_connection_get_headers),
13188         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
13189         (rb_daap_connection_set_property),
13190         (rb_daap_connection_get_property):
13191         * daapsharing/rb-daap-connection.h:
13192         * sources/rb-daap-source.c: (rb_daap_source_dispose),
13193         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
13194         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
13195         of destroying the object when it is going to be used by a callback and
13196         fixes a double-free. Fixes bugs 321930 and 322007.
13198 2005-11-22  James Livingston  <jrl@ids.org.au>
13200         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
13201         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
13202         notification if there aren't any. Fixes bug 321968.
13204 2005-11-22  James Livingston  <jrl@ids.org.au>
13206         * rhythmdb/rhythmdb-property-model.c:
13207         (rhythmdb_property_model_set_property),
13208         (rhythmdb_property_model_finalize),
13209         (rhythmdb_property_model_compare),
13210         (rhythmdb_property_model_insert),
13211         (rhythmdb_property_model_delete_prop): Fix property model sorting
13212         where the display and sort keys are different. Fixes bug 321980.
13214 2005-11-22  James Livingston  <jrl@ids.org.au>
13216         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
13217         when import as a file or passed on the command line, and load them as
13218         playlists.
13220 2005-11-22  James Livingston  <jrl@ids.org.au>
13222         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
13224         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
13225         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
13226         a broken daap server. Fixes bug 321919.
13228 2005-11-22  James Livingston  <jrl@ids.org.au>
13230         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
13231         drag-and-drop for both the episodes and feeds list.
13232         
13233         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
13234         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
13235         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
13237         * widgets/rb-property-view.c: (rb_property_view_class_init),
13238         (rb_property_view_set_property), (rb_property_view_get_property),
13239         (rb_property_view_new), (rb_property_view_constructor):
13240         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
13241         (rb_simple_view_new), (rb_simple_view_constructor):
13242         * widgets/rb-simple-view.h: add a "draggable" property to property
13243         views and set it to false for the feed list. Fixes bug 321284.
13245 2005-11-22  James Livingston  <jrl@ids.org.au>
13247         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
13249         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
13250         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
13251         * sources/rb-ipod-source.c: (add_rb_playlist):
13252         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13253         (rb_playlist_source_set_property),
13254         (rb_playlist_source_get_property), (rb_playlist_source_new),
13255         (impl_receive_drag), (rb_playlist_source_add_location),
13256         (rb_playlist_source_new_from_xml):
13257         * sources/rb-playlist-source.h: give playlists and (optional)
13258         entry-type, and reject entries that don't match. Fixes bug 322006.
13260 2005-11-21  James Livingston  <jrl@ids.org.au>
13262         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
13263         (rb_source_header_finalize): remove the weak references when the
13264         source header is finalised. Stops the callbacks being called after the
13265         object is destroyed.
13267 2005-11-21  James Livingston  <jrl@ids.org.au>
13269         * shell/main.c: (main): don't try to acquite bonobo/dbus when
13270         --no-registration was passed. It causes warnings that make it
13271         impossible to run with --no-registration --g-fatal-warnings
13273 2005-11-21  James Livingston  <jrl@ids.org.au>
13275         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
13276         of strings when they are still in use. Fixes bug 321547.
13278         (rb_daap_connection_destroy): fix memory leak
13280 2005-11-21  James Livingston  <jrl@ids.org.au>
13282         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
13283         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
13284         (rb_daap_mdns_resolve_cancel), (publish_cb),
13285         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
13286         support.
13288 2005-11-21  James Livingston  <jrl@ids.org.au>
13290         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
13291         sorting by genre
13293 2005-11-20  James Livingston  <jrl@ids.org.au>
13295         * podcast/rb-podcast-manager.c:
13296         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
13297         that we don't leak thread structures. Fixes bug 321636, and probably
13298         321775.
13300 2005-11-20  James Livingston  <jrl@ids.org.au>
13302         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
13303         (lookup_cd):
13304         * podcast/rb-podcast-manager.c: (start_job),
13305         (rb_podcast_manager_db_entry_deleted_cb),
13306         (rb_podcast_manager_entry_remove_cb):
13307         * podcast/rb-podcast-parse.c: (rb_insert_item),
13308         (rb_podcast_parse_load_feed):
13309         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
13310         * shell/rb-removable-media-manager.c:
13311         (rb_removable_media_manager_append_media_source):
13312         * shell/rb-shell.c: (add_to_library_response_cb):
13313         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
13314         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
13315         * sources/rb-iradio-source.c:
13316         (stations_view_drag_data_received_cb):
13317         * sources/rb-library-source.c: (string_list_equal),
13318         (impl_get_extra_views), (impl_receive_drag):
13319         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
13320         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
13321         (impl_receive_drag):
13322         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
13323         (rb_entry_view_append_column_custom), (harvest_entries):
13324         * widgets/rb-property-view.c:
13325         (rb_property_view_selection_changed_cb):
13326         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
13327         switch from using g_list_append to g_list_prepend. This changes
13328         operations from O(n^2) to O(n), which in cases like deleting a lot of
13329         tracks can give huge improvements in speed. Closes bug 321696.
13331 2005-11-20  James Livingston  <jrl@ids.org.au>
13333         * sources/rb-sourcelist.c: (rb_sourcelist_init),
13334         (rb_sourcelist_update_expander_visibility): fix indenting of child
13335         sources.
13337 2005-11-20  James Livingston  <jrl@ids.org.au>
13339         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
13340         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
13341         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
13342         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
13343         (add_service), (entry_group_cb): dynamically allocate memory, rather
13344         than using static variables.
13346         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
13347         re-enable the daap share if the name hasn't changed.
13348         * shell/rb-shell-preferences.c:
13349         (share_name_entry_focus_out_event_cb): don't ask the daap share to
13350         change it's name when the checkbox is disabled. Fixed bug 321748.
13352 2005-11-18  James Livingston  <jrl@ids.org.au>
13354         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
13355         as hidden if it is on the current workspace.
13357 2005-11-17  William Jon McCann  <mccann@jhu.edu>
13359         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
13360         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
13361         (rb_podcast_properties_dialog_parse_time): 
13362         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
13363         (rb_feed_podcast_properties_dialog_parse_time):
13364         Rework the way the last mod time strings are created.  It was using
13365         thread unsafe functions, not creating value UTF, and not not checking
13366         the value of the result before modifying it.  This new method fixes
13367         these problems.
13369 2005-11-18  James Livingston  <jrl@ids.org.au>
13371         Don't reset the search box when viewing a different source, because it
13372         will change what is being played. Closes 321593.
13374         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
13375         the search box
13377         * shell/rb-source-header.c: (rb_source_header_class_init),
13378         (rb_source_header_init), (rb_source_header_finalize): use
13379         G_DEFINE_TYPE.
13381         (rb_source_header_set_property),
13382         (rb_source_header_source_weak_destroy_cb),
13383         (rb_source_header_search_cb): store the search text when leaving a
13384         source and put it in the search box when viewing it again.
13386 2005-11-18  James Livingston  <jrl@ids.org.au>
13388         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13389         (save_entry):
13390         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
13391         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
13392         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
13393         time stamp.
13395         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
13396         last-seen as the timestamp of the last update of the feed. Don't
13397         re-add episodes that have been deleted. Closes 319759.
13399 2005-11-18  James Livingston  <jrl@ids.org.au>
13401         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
13402         that don't have the day name at the start. Closes 321645.
13404 2005-11-18  James Livingston  <jrl@ids.org.au>
13406         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
13407         (rb_podcast_manager_copy_post),
13408         (rb_podcast_manager_get_podcast_dir):
13409         * podcast/rb-podcast-manager.h:
13410         * sources/rb-podcast-source.c: (impl_get_config_widget),
13411         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
13412         download location switching to / if the prefs were opened before
13413         downloading an episode. Closes 321611.
13415 2005-11-18  James Livingston  <jrl@ids.org.au>
13417         * data/glade/podcast-new.glade:
13418         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
13419         (rb_new_podcast_dialog_set_property),
13420         (rb_new_podcast_dialog_get_property),
13421         (rb_new_podcast_dialog_response_cb),
13422         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
13423         for entering new podcast urls in. Closes bug 321610.
13425 2005-11-18  James Livingston  <jrl@ids.org.au>
13427         * sources/rb-podcast-source.c: (construct_query_from_selection),
13428         (rb_podcast_source_do_query): allow podcast list to be re-sorted
13429         without restarting RB. Closes bug 321612.
13431 2005-11-18  James Livingston  <jrl@ids.org.au>
13433         * widgets/rb-entry-view.c: (set_column_visibility),
13434         (rb_entry_view_sync_columns_visible): when changing visibility of one
13435         column, don't hide and re-show all the others. Makes a show/hide
13436         column operation a lot faster.
13438 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
13440         Closes bug 321702.
13442         * iradio/rb-station-properties-dialog.c
13443          (rb_station_properties_dialog_update_bitrate):
13444         Mark the bitrate value as being kbps, using the same
13445         translatable format string as rb-song-info.c
13447         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
13448          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
13450         * shell/rb-shell-player.c (info_available_cb):
13451          Use RB_METADATA_FIELD_BITRATE to update the iradio
13452          station's bitrate value.
13454 2005-11-17  James Livingston  <jrl@ids.org.au>
13456         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
13458         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
13459         free a NULL date.
13461 2005-11-17  James Livingston  <jrl@ids.org.au>
13463         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
13465         * lib/rb-stock-icons.c: emit a single warning rather than multiple
13466         assertions. Lookup the icon size correctly.
13468 2005-11-16  William Jon McCann  <mccann@jhu.edu>
13470         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
13471         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
13472         Fix build errors.
13474 2005-11-16  James Livingston  <jrl@ids.org.au>
13476         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
13477         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
13478         (rb_shell_preferences_sync_column_button): block the toggle signal of
13479         the column checkboxes while setting their initial state. This stops
13480         the visibility being re-set, which causes a lot of time being spent
13481         measuring the columns aagin when opening the prefs window.
13483         Use G_DEFINE_TYPE.
13485 2005-11-16  James Livingston  <jrl@ids.org.au>
13487         * sources/rb-sourcelist.c: (rb_sourcelist_init),
13488         (rb_sourcelist_edit_source_name): don't assume that the editable
13489         source name is in the first column, because it isn't. Fixes bug
13490         320137.
13492 2005-11-16  James Livingston  <jrl@ids.org.au>
13494         * daapsharing/rb-daap-mdns.h:
13495         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
13496         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
13497         parts can know why operations failed. Avahi can report that the daemon
13498         was not running. Howl doesn't do this (yet).
13499         
13500         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
13501         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
13502         (browse_cb): don't display mdns errors to the user, if it wa because
13503         the daemon was not running.
13505 2005-11-16  James Livingston  <jrl@ids.org.au>
13507         * rhythmdb/rhythmdb-property-model.c:
13508         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
13509         (rhythmdb_property_model_compare),
13510         (rhythmdb_property_model_insert),
13511         (rhythmdb_property_model_insert_prop),
13512         (rhythmdb_property_model_delete),
13513         (rhythmdb_property_model_delete_prop),
13514         (rhythmdb_property_model_get_value): use RBRefStrings rather than
13515         copying the string and re-creating the sort key. Saves a little bit of
13516         memory and time.
13518         (rhythmdb_property_model_perform_sync),
13519         (rhythmdb_property_model_sync): perform the count sync in an idle
13520         callback, so that it doesn't have to be re-run once per value when
13521         loading.
13523 2005-11-16  James Livingston  <jrl@ids.org.au>
13525         * rhythmdb/rhythmdb-query-model.c:
13526         (rhythmdb_query_model_entry_deleted_cb),
13527         (rhythmdb_query_model_remove_entry): remove deleted entries from the
13528         limited list. Stops problems if they are deleted, and then things on
13529         the main list are
13531 2005-11-16  James Livingston  <jrl@ids.org.au>
13533         * NEWS: update NEWS
13535         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
13536         button's minimise-to-tray action
13538 2005-11-16  James Livingston  <jrl@ids.org.au>
13540         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
13541         leak. Disable adding newly created files for now, because it doesn't
13542         work properly.
13544         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
13545         (rb_sourcelist_model_finalize):
13546         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
13547         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
13549 2005-11-16  James Livingston  <jrl@ids.org.au>
13551         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
13552         problem where a GError* wasn't being set to NULL. Actually check the
13553         result.
13555 2005-11-16  James Livingston  <jrl@ids.org.au>
13557         * doc/reference/tmpl/rb-entry-view.sgml:
13558         * doc/reference/tmpl/rhythmbox-unused.sgml:
13559         * doc/reference/tmpl/rhythmdb-query-model.sgml:
13560         * doc/reference/tmpl/rhythmdb.sgml:
13561         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
13562         docs, including the patch that was on bug 
13564         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
13565         API, because it should only be used by RhythmDB itself.
13567 2005-11-16  James Livingston  <jrl@ids.org.au>
13569         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
13570         pausing by middle clicking on the tray icon.
13572 2005-11-15  James Livingston  <jrl@ids.org.au>
13574         * configure.ac: enable audioscrobbler support by default, if libsoup
13575         is present.
13577 2005-11-15  James Livingston  <jrl@ids.org.au>
13579         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13580         Closes bug 321157.
13582         * configure.ac:
13583         * daapsharing/rb-daap-connection.c: (build_message),
13584         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
13585         support gzip encoded daap connections.
13587         (handle_song_listing): fix leak
13589 2005-11-15  James Livingston  <jrl@ids.org.au>
13591         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
13592         * sources/rb-podcast-source.c:
13593         (rb_podcast_source_post_date_cell_data_func): make the date format
13594         translatable again, so that translators can choose the best format for
13595         their locale (%x is huge in some locales)
13597 2005-11-15  James Livingston  <jrl@ids.org.au>
13599         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
13600         (end_job): mark podcast episodes as failed, if the metadata load
13601         fails. This will prevent people playing non-audio enclosures, helping
13602         stop bug 320366.
13604 2005-11-14  James Livingston  <jrl@ids.org.au>
13606         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
13607         video sink to fakesink. This will stop problems (potentially crashers)
13608         that will occur if the file contains a video stream.
13610         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
13611         rather than using magic numbers everywhere.
13613         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
13614         * sources/rb-podcast-source.c:
13615         (rb_podcast_source_songs_show_popup_cb),
13616         (rb_podcast_source_cmd_download_post),
13617         (rb_podcast_source_post_status_cell_data_func),
13618         (rb_podcast_source_entry_activated_cb): use the above constants.
13620         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13621         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
13622         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
13623         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
13624         (cancel_job), (download_progress_cb),
13625         (rb_podcast_manager_cancel_download),
13626         (rb_podcast_manager_insert_feed): use the constants, and fix a
13627         trhead-safety issue.
13629 2005-11-14  Bastien Nocera  <hadess@hadess.net>
13631         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
13632         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
13633         entry-changed events after stats on startup, fixes entry deleted from
13634         filtered views not disappearing
13636 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
13638         Fix rhythmdb query model refcount and polling problems. Closes bug
13639         321410.
13641         * rhythmdb/rhythmdb-property-model.c:
13642         (rhythmdb_property_model_finalize):
13643          Unref the query model if we have one.
13645         * rhythmdb/rhythmdb-query-model.h:
13646          Remove poll and cancel methods.  Query cancellation
13647          never did anything anyway.
13649         * rhythmdb/rhythmdb-query-model.c:
13650         (rhythmdb_query_model_init): Remove GAsyncQueues.
13651          Replace the GAsyncQueue-based update processing
13652          with a simpler g_idle_add approach; still has the
13653          same queueing properties, but now we don't poll the
13654          model forever and updates are processed immediately.
13656         (_unref_entry), (rhythmdb_query_model_finalize):
13657          Unref DB entries when finalized
13659         (rhythmdb_query_model_has_pending_changes):
13660          Use our own counter to decide if there are updates pending
13662         (rhythmdb_query_model_process_update), (idle_process_update):
13663          Process updates using g_idle_add, or directly if possible
13665         (rhythmdb_query_model_signal_complete),
13666         (rhythmdb_query_model_add_entries):
13667          Change to new update processing method
13669         (idle_poll_model), (rhythmdb_query_model_poll):
13670          Remove GAsyncQueue-based update processing.
13672         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
13673          No need to poll the model any more - updates are processed
13674          directly for synchronous queries.
13676         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
13677          Property model needs to be unref'd here
13679         * sources/rb-library-source.c: (rb_library_source_do_query):
13680          Don't try to cancel the active query (it never worked anyway),
13681          remove obsolete poll call, unref property models as required,
13682          and don't unref the cached 'all' query, since hold on to it.
13683          We unref it when the sort order changes, which forces the query
13684          to be rerun.
13686         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13687          Unref the property model as required
13689         (rb_podcast_source_do_query):
13690          Treat any query with no selected feeds and no search text as
13691          an 'all' query.  Unref query models except for the cached
13692          'all' query, since we hold on to that.
13694         (rb_podcast_source_cmd_update_all):
13695          Unref the property model as required.
13697         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
13698          Don't try to cancel the query (it never worked anyway)
13700         (rb_entry_view_poll_model):
13701          No need for this any more.
13703         * widgets/rb-entry-view.h:
13704          Remove obsolete function rb_entry_view_poll_model
13706         * widgets/rb-property-view.c: (rb_property_view_set_property):
13707          Ref and unref the property model as required.
13709 2005-11-14  James Livingston  <jrl@ids.org.au>
13711         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13713         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
13714         for error. Closes bug 321416.
13716 2005-11-14  James Livingston  <jrl@ids.org.au>
13718         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13720         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
13721         a crasher if a feed's last-post value isn't set. Closes bug 321353.
13723 2005-11-14  James Livingston  <jrl@ids.org.au>
13725         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
13726         * shell/rb-removable-media-manager.c:
13727         (rb_removable_media_manager_set_uimanager):
13728         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
13729         translation domain for GTK action groups.
13731 2005-11-12  James Livingston  <jrl@ids.org.au>
13733         * po/POTFILES.in: remove the old station-new files
13735 2005-11-12  James Livingston  <jrl@ids.org.au>
13737         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
13738         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
13739         (save_entry): cause Rhythmbox to re-read the metadata from a file,
13740         when upgrading from a pre-Date-supporting version to a version that
13741         supports Date metadata. Closes bug 320760.
13743 2005-11-12  James Livingston  <jrl@ids.org.au>
13745         Add "update all podcast feeds" command. Closes bug 319954.
13747         * data/ui/rhythmbox-ui.xml: add to source context menu.
13749         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13750         (register_action_group), (rb_podcast_source_cmd_download_post),
13751         (rb_podcast_source_cmd_delete_feed),
13752         (rb_podcast_source_cmd_properties_feed),
13753         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
13754         rather than the shell.
13756         (rb_podcast_source_update_feed_func),
13757         (rb_podcast_source_cmd_update_all): update every feed.
13759 2005-11-11  James Livingston  <jrl@ids.org.au>
13761         * shell/rb-shell-player.c: (rb_shell_player_class_init),
13762         (rb_shell_player_constructor), (rb_shell_player_finalize):
13763         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
13764         others follow the HIG recommentations.
13766 2005-11-11  James Livingston  <jrl@ids.org.au>
13768         * podcast/rb-podcast-manager.c:
13769         (rb_podcast_manager_subscribe_feed): check that the url is valid,
13770         before trying to use it.
13772 2005-11-11  James Livingston  <jrl@ids.org.au>
13774         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
13775         (rb_entry_view_append_column): When sorting by year, sort by album
13776         within a particular year.
13778 2005-11-11  James Livingston  <jrl@ids.org.au>
13780         * NEWS: updates
13782 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
13783         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
13784         spelling of "Language."
13786 2005-11-11  James Livingston  <jrl@ids.org.au>
13788         * rhythmdb/rhythmdb-property-model.c:
13789         (rhythmdb_property_model_row_inserted_cb),
13790         (rhythmdb_property_model_prop_changed_cb),
13791         (rhythmdb_property_model_entry_removed_cb),
13792         (rhythmdb_property_model_insert_prop),
13793         (rhythmdb_property_model_sync): display the count after the "All"
13794         entry of a property model.
13796         * widgets/rb-property-view.c: (rb_property_view_class_init),
13797         (rb_property_view_finalize), (rb_property_view_constructor): use
13798         G_DEFINE_TYPE
13800 2005-11-10  James Livingston  <jrl@ids.org.au>
13802         * rhythmdb/rhythmdb-query-model.c:
13803         (rhythmdb_query_model_remove_entry):
13804         * rhythmdb/rhythmdb-query-model.h: make
13805         rhythmdb_query_model_remove_entry return whether the entry was in the
13806         model.
13808         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
13809         don't add non-SONG entries, as it doesn't really work and can cause
13810         crashes.
13812         (rb_playlist_source_remove_location): assert if the playlist and model
13813         differ on whether the entry is in the playlist
13815 2005-11-10  James Livingston  <jrl@ids.org.au>
13817         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13818         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
13819         (rb_podcast_manager_thread_parse_feed),
13820         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
13821         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
13822         emulating one with a list and mutex. Fixes a couple of threading
13823         issues.
13824         
13825         (rb_podcast_manager_insert_feed): fix some problems with ignoring
13826         updated feeds.
13827         
13828         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
13829         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
13830         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
13831         * podcast/rb-podcast-parse.c: (rb_insert_item),
13832         (rb_podcast_parse_channel_free):
13833         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
13834         fix some typos, and make a bit of code clearer.
13836 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
13838         Make the "delete podcast" dialog better. Closes bug 320899.
13840         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
13841         Add PROP_WINDOW for rb_shell_get_property so we can access the
13842         GtkWindow widget of the main window. 
13843         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
13844         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
13845         podcast feed delete dialog less confusing as well.
13847 2005-11-09  James Livingston  <jrl@ids.org.au>
13849         * shell/rb-removable-media-manager.c:
13850         (rb_removable_media_manager_mount_volume),
13851         (rb_removable_media_manager_scan): Fix a crasher where we were getting
13852         NULL for a cd volume.
13854 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13856         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
13857         method return a gboolean indicating whether the changes
13858         to the entry have already been applied.
13860         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
13861         only modify the entry if impl_entry_set returns FALSE.
13863         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
13864         When setting the location of an entry, update the
13865         hash table mapping locations to entries.
13867 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13869         * data/glade/Makefile.am:
13870         * iradio/Makefile.am:
13871           Remove 'new station' dialog.
13873         * iradio/rb-station-properties-dialog.h:
13874         * sources/rb-iradio-source.c: (impl_song_properties):
13875         * shell/rb-shell.c: (rb_shell_cmd_new_station):
13876          Add 'new station' mode parameter to
13877          rb_station_properties_dialog_new.
13879         * (rb_station_properties_dialog_response_cb),
13880         (rb_station_properties_dialog_create_station):
13881          When in 'new station' mode, create the station
13882          when OK button is pressed.
13884         * iradio/rb-station-properties-dialog.c:
13885         (rb_station_properties_dialog_location_changed_cb):
13886          Only enable OK button if a location is specified
13887         (rb_station_properties_dialog_init),
13888         (rb_station_properties_dialog_new),
13889         (rb_station_properties_dialog_update),
13890         (rb_station_properties_dialog_update_title),
13891         (rb_station_properties_dialog_rated_cb),
13892         (rb_station_properties_dialog_update_play_count),
13893         (rb_station_properties_dialog_update_bitrate),
13894         (rb_station_properties_dialog_update_last_played),
13895         (rb_station_properties_dialog_update_rating),
13896         (rb_station_properties_dialog_update_playback_error),
13897         (rb_station_properties_dialog_show):
13898          Handle 'new station' mode, where there's no current
13899          station to edit.
13901 2005-11-08  James Livingston  <jrl@ids.org.au>
13903         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
13904         keybinding for track columns consistent between library and playlist
13905         sources.
13907 2005-11-07  James Livingston  <jrl@ids.org.au>
13909         * data/ui/rhythmbox-ui.xml:
13910         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
13911         "Edit" item to playlist menu. Closes bug 311470.
13913 2005-11-07  James Livingston  <jrl@ids.org.au>
13915         patch by: Jaap A. Haitsma <jaap@haitsma.org>
13917         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
13918         confirmation to save dialogs, with gtk 2.8 or higher.
13920 2005-11-07 James Livingston  <jrl@ids.org.au>
13921         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
13922         requirement to a general on, because people are going to have it for
13923         the other dependencies.
13925 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
13927         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
13928         delete dialog less confusing.  Use HIG recommended button order.
13929         Closes bug 320840.
13931 2005-11-06  James Livingston  <jrl@ids.org.au>
13933         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
13934         drag-and-drop error.
13935         
13936         * sources/rb-library-source.c: (rb_library_source_constructor): only
13937         add drag-and-drop for the Library itself, subclasses can add support
13938         themselves if they want it.
13940         * sources/rb-removable-media-source.c:
13941         (rb_removable_media_source_class_init): by default removable media
13942         sources do not support dnd
13944 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
13946         * data/glade/station-properties.glade:
13947          Add box containing error icon and error message label
13948         * iradio/rb-station-properties-dialog.c:
13949         (rb_station_properties_dialog_class_init),
13950         (rb_station_properties_dialog_finalize):
13951          Change this class to use G_DEFINE_TYPE
13952         (rb_station_properties_dialog_init),
13953         (rb_station_properties_dialog_update),
13954         (rb_station_properties_dialog_update_playback_error):
13955          Display error icon and message when there is one, and hide the error
13956          box otherwise.
13957         (rb_station_properties_dialog_show): Hack widget show
13958          method to update the visibility of the error info box when showing
13959          the widget.  Otherwise the icon is displayed all the time (same thing
13960          is done in rb-song-info). Closes bug 320749.
13962 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
13964         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
13965         parsing of the duration of podcast episodes from the feed. Closes bug
13966         320748.
13968 2005-11-05  James Livingston  <jrl@ids.org.au>
13970         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
13971         release date metadata ("Year"). Closes bug 166093.
13973         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
13974         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
13975         (rb_metadata_gst_add_tag_data):
13976         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13977         (save_entry):
13978         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
13979         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
13980         (set_props_from_metadata), (rhythmdb_entry_set_internal),
13981         (rhythmdb_prop_get_type):
13982         * rhythmdb/rhythmdb.h: add support for "date" property
13983         
13984         * data/glade/general-prefs.glade:
13985         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
13986         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
13987         (rb_entry_view_append_column):
13988         * widgets/rb-entry-view.h:
13989         * sources/rb-library-source.c: (rb_library_source_constructor):
13990         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
13991         "Year" colums
13993         * data/glade/song-info.glade:
13994         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
13995         (rb_song_info_construct_single), (rb_song_info_constructor),
13996         (rb_song_info_populate_dialog), (rb_song_info_update_year),
13997         (rb_song_info_sync_entry_single): Add "Year" to song info window
13999         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
14000         sorted by year.
14002 2005-11-05  James Livingston  <jrl@ids.org.au>
14004         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
14005         description if it's very long.
14007 2005-11-05  James Livingston  <jrl@ids.org.au>
14009         pathc by: Artem Baguinski <femistofel@gmail.com>
14011         * help/C/Makefile.am:
14012         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
14013         Closes bug 320613.
14015 2005-11-05  James Livingston  <jrl@ids.org.au>
14017         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14019         * daapsharing/rb-daap-share.c: (write_next_chunk),
14020         (message_finished), (databases_cb): Use chunked file loading and
14021         sending in the DAAP server. This should reduce the amount of memory
14022         required to send files to the client.
14024 2005-11-05  James Livingston  <jrl@ids.org.au>
14026         * configure.ac: make the nautilus_burn_drive_door_is_open detection
14027         work better on some systems. Closes 320622.
14029 2005-11-05  James Livingston  <jrl@ids.org.au>
14031         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
14032         homepage, so that users can find out what AudioScrobbler is. Add
14033         access keys.
14035         * data/glade/daap-prefs.glade:
14036         * data/glade/general-prefs.glade:
14037         * data/glade/library-prefs.glade: make the indent be more consistent
14039         * data/glade/podcast-prefs.glade: 
14040         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14041         (impl_get_config_widget): move thing out of code into glade, where
14042         they belong
14044 2005-11-05  James Livingston  <jrl@ids.org.au>
14046         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
14047         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
14049 2005-11-04  James Livingston  <jrl@ids.org.au>
14051         * configure.ac: don't print DAAP configure info twice
14053 2005-11-04  James Livingston  <jrl@ids.org.au>
14055         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
14056         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
14057         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
14058         #ifdefs, since we removed the symbol. Oops
14060 2005-11-04  James Livingston  <jrl@ids.org.au>
14062         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
14063         after the connect line, not before. Oops.
14065 2005-11-04  James Livingston  <jrl@ids.org.au>
14067         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
14068         fix some warnings
14070 2005-11-03  James Livingston  <jrl@ids.org.au>
14072         * NEWS: update the news file
14074         * data/glade/general-prefs.glade: make the prefs refer to "time" not
14075         "duration" column.
14077         * data/ui/rhythmbox-ui.xml:
14078         * shell/rb-playlist-manager.c:
14079         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14080         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
14081         and "delete" for feeds.
14083 2005-11-03  James Livingston  <jrl@ids.org.au>
14085         * sources/rb-podcast-source.c: (impl_delete),
14086         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
14087         feed. Closes 319760.
14089 2005-11-03  James Livingston  <jrl@ids.org.au>
14091         Don't start playing from the remote site when a un-downloaded podcast
14092         is activated. Closes 319983.
14093         
14095         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
14096         (write_job_data), (download_progress_cb): write the local location as
14097         soon as any data is recieved
14099         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
14100         the mountpoint to NULL for podcast episodes that haven't yet been
14101         downloaded.
14102         
14103         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
14104         start playing a podcast if it hasn't been downloaded.
14105         
14106         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14107         (rb_podcast_source_entry_activated_cb): begin downloading when the
14108         podcast is activated.
14110 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
14112         * data/glade/general-prefs.glade:  Fix capitalization.
14113         * shell/rb-removable-media-manager.c:  Add a mnemonic.
14114         * sources/rb-podcast-source.c:
14115         (rb_podcast_source_songs_show_popup_cb),
14116         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
14118 2005-11-03  James Livingston  <jrl@ids.org.au>
14120         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
14122         * shell/rb-removable-media-manager.c:
14123         (rb_removable_media_manager_mount_volume): don't check network or
14124         autofs mounts, as they're not going to be removable media. Stops
14125         sending lots of warnings to syslog. Closes 320571.
14127         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
14128         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
14129         320570.
14131 2005-11-03  James Livingston  <jrl@ids.org.au>
14133         Add support for playing audio CDs. Metadata lookup is done using
14134         SoundJuicer's MusicBrainz lookup code, which can be switched to using
14135         the library when it gets broken out of S-J.
14136         
14137         Add a "rescan media" menu item, and commands for ejecting removable
14138         media.
14140         Move nautilus-cd-burner from optional to required depenency.
14142         * configure.ac:
14143         * data/ui/rhythmbox-ui.xml:
14144         * metadata/Makefile.am:
14145         + metadata/sj-error.c:
14146         + metadata/sj-error.h:
14147         + metadata/sj-metadata-marshal.list:
14148         + metadata/sj-metadata-musicbrainz.c:
14149         + metadata/sj-metadata-musicbrainz.h:
14150         + metadata/sj-metadata.c:
14151         + metadata/sj-metadata.h:
14152         + metadata/sj-structures.c:
14153         + metadata/sj-structures.h:
14154         * player/Makefile.am:
14155         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
14156         * po/POTFILES.in:
14157         * shell/Makefile.am:
14158         * shell/rb-removable-media-manager.c:
14159         (rb_removable_media_manager_dispose), (poll_tray_opened),
14160         (end_cd_drive_monitor), (begin_cd_drive_monitor),
14161         (rb_removable_media_manager_load_media),
14162         (rb_removable_media_manager_mount_volume),
14163         (rb_removable_media_manager_cmd_eject_medium),
14164         (rb_removable_media_manager_cmd_scan_media),
14165         (rb_removable_media_manager_check_volume),
14166         (rb_removable_media_manager_unmount_volume_swap),
14167         (rb_removable_media_manager_scan):
14168         * sources/Makefile.am:
14169         + sources/rb-audiocd-source.c:
14170         + sources/rb-audiocd-source.h:
14171         * tests/Makefile.am:
14173 2005-11-02  James Livingston  <jrl@ids.org.au>
14175         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14177         * sources/rb-iradio-source.c:
14178         (stations_view_drag_data_received_cb):
14179         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
14180         don't crash when the second uri is missing frm the drop, which
14181         browsers sometimes do.
14183 2005-11-01  James Livingston  <jrl@ids.org.au>
14185         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
14186         (rb_podcast_manager_insert_feed):
14187         * podcast/rb-podcast-manager.h:
14188         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
14189         (rb_set_item_value), (rb_validate_item_propert),
14190         (rb_podcast_parse_date), (rb_podcast_parse_time):
14191         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
14192         from the feed.
14194 2005-10-31  James Livingston  <jrl@ids.org.au>
14196         * ChangeLog:
14197         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
14198         huge
14200 2005-10-31  James Livingston  <jrl@ids.org.au>
14202         * sources/rb-podcast-source.c:
14203         (rb_podcast_source_post_date_cell_data_func): generate the date string
14204         in a way that is correct in all locales.
14205         
14206         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14207         (rhythmdb_entry_sync_mirrored): make the last played/date added
14208         columns use the same format.
14210 2005-10-30  James Livingston  <jrl@ids.org.au>
14213         * podcast/rb-podcast-manager.c:
14214         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
14215         
14216         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
14217         iradio errors better.
14219 2005-10-30  James Livingston  <jrl@ids.org.au>
14221         patch by: Artem Baguinski <femistofel@gmail.com>
14223         * metadata/rb-metadata-gst.c: (rb_metadata_init):
14225 2005-10-30  James Livingston  <jrl@ids.org.au>
14227         * podcast/rb-podcast-manager.c:
14228         (rb_podcast_manager_subscribe_feed),
14229         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
14230         already been added, usually as a radio station. Closes 319434.
14232 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
14234         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
14235         mnemonics & resize issues)
14236         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
14237         & mnemonics)
14238         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
14239         widget for the "download location" label.
14241         Closes bug 320184.
14243 2005-10-29  James Livingston  <jrl@ids.org.au>
14245         Allow the search box to match words from multiple properties. Closes
14246         bug 139196. Thanks to the person from IRC who did a lot of the initial
14247         work.
14250         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
14251         * lib/rb-util.h: Add functions to split a string into words, and one
14252         to perform "search folding" which is currently like casefolding but
14253         also strips punctuation
14254         
14255         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
14256         (rhythmdb_query_preprocess):
14257         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
14258         against title, artist, album and genre (for the search box)
14259         
14260         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
14261         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14262         (save_entry), (search_match_properties),
14263         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
14264         splitting into words and matching across multiple properties.
14265         
14266         * sources/rb-library-source.c: (construct_query_from_selection): use
14267         the new SEARCH_MATCH property for the search box
14268         
14269         * widgets/rb-entry-view.c: (type_ahead_search_func):
14271 2005-10-29  James Livingston  <jrl@ids.org.au>
14273         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14274         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
14275         
14276         * shell/rb-playlist-manager.c:
14277         * shell/rb-shell.c: use the above stock ids, so that the icons get set
14278         correctly.
14279         
14280         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
14281         initial state of the shuffle/repeat menu items correctly. Patch from
14282         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
14284 2005-10-29  James Livingston  <jrl@ids.org.au>
14286         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
14287         double-free.
14288         
14289         * widgets/rb-cell-renderer-pixbuf.c:
14290         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
14291         icon go black when row is not selected
14292         
14293         * doc/reference/tmpl/rb-daap-connection.sgml:
14294         * doc/reference/tmpl/rhythmdb.sgml: doc updates
14296 2005-10-29  James Livingston  <jrl@ids.org.au>
14298         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
14299         silly mistake, where it could think partial downloads has been
14300         completed.
14302 2005-10-29  James Livingston  <jrl@ids.org.au>
14304         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14306         * data/glade/song-info.glade:
14307         * widgets/rb-song-info.c: (rb_song_info_construct_single),
14308         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
14309         (rb_song_info_sync_entry_single): show the disc number in the song
14310         info window. From bug 311199.
14312 2005-10-29  James Livingston  <jrl@ids.org.au>
14314         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
14315         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
14316         regularly. Closes 155306.
14318 2005-10-29  James Livingston  <jrl@ids.org.au>
14320         * podcast/rb-podcast-manager.c:
14321         (rb_podcast_manager_download_entry),
14322         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
14323         (rb_podcast_manager_insert_feed):
14324         * podcast/rb-podcast-manager.h:
14325         * podcast/rb-podcast-parse.c: (rb_set_item_value),
14326         (rb_podcast_parser_start_element):
14327         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
14328         don't download them again. However, it can't resume
14329         partially-downloaded ones.
14331 2005-10-28  James Livingston  <jrl@ids.org.au>
14333         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
14334         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
14335         work. Don't attempt to write duration as a tag.
14337         Thanks to Artem Baguinski <femistofel@gmail.com>
14339 2005-10-28  James Livingston  <jrl@ids.org.au>
14341         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
14342         don't disable the status-bar menu item when the current source doesn't
14343         use the search box.
14345 2005-10-28  James Livingston  <jrl@ids.org.au>
14347         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
14348         crash if the file has unknown length
14350 2005-10-27  James Livingston  <jrl@ids.org.au>
14352         * daapsharing/rb-daap-connection.c:
14353         (rb_daap_connection_state_done): don't assert when a daap server
14354         doesn't have any playlists
14356 2005-10-27  James Livingston  <jrl@ids.org.au>
14358         * sources/rb-sourcelist-model.c:
14359         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
14360         source for the sourcelist. Closes bug 319817.
14362 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
14364         Patch by: Renato Araujo <renatox@gmail.com>
14366         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
14367           Fix for a crasher caused by previous patch.
14369 2005-10-26  James Livingston  <jrl@ids.org.au>
14371         * data/glade/podcast-prefs.glade:
14372         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
14373         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
14374         * sources/rb-podcast-source.c: (rb_podcast_source_new):
14375         * podcast/rb-podcast-manager.c:
14376         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
14377         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
14378         * shell/rb-shell.c: Change some strings to make them more consistent.
14379         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
14380         makes it clearer which is which. "Episode" may not be the best term,
14381         but it seems to be widely used.
14382         
14383         Also fix some strings that weren't marked as translatable.
14384         
14385         * podcast/rb-feed-podcast-properties-dialog.c:
14386         (rb_feed_podcast_properties_dialog_class_init),
14387         (rb_feed_podcast_properties_dialog_finalize):
14388         * podcast/rb-new-podcast-dialog.c:
14389         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
14390         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
14391         (rb_simple_view_finalize), (rb_simple_view_constructor):
14392         * podcast/rb-podcast-properties-dialog.c:
14393         (rb_podcast_properties_dialog_class_init),
14394         (rb_podcast_properties_dialog_finalize):
14395         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
14396         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
14397         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
14398         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
14399         use G_DEFINE_TYPE, instead of doing it manually.
14401 2005-10-26  James Livingston  <jrl@ids.org.au>
14403         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
14404         <jrl@ids.org.au>
14406         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
14407         (rb_metadata_init): Check that the necessary plugins are present to do
14408         id3 editing.
14409         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
14410         corrupted before replacing the original.
14412 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
14414         reviewed by: James Livingston <jrl@ids.org.au>
14416         Assign sequential IDs to playlists for DAAP rather than using the
14417         address of the playlist object.  Less flaky, and should work on 64bit
14418         platforms. Closes bug 319304.
14420         * daapsharing/rb-daap-share.c: 
14421         (rb_daap_share_set_property): watch for playlist creation
14422         (_find_by_id), (_find_by_source): playlist list search functions
14423         (rb_daap_share_playlist_created),
14424         (rb_daap_share_process_playlist),
14425         (rb_daap_share_playlist_destroyed):
14426          update playlist list as it changes, use weak refs on 
14427          playlists to get notified on destroy.
14428         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
14429          destroy playlist list on shutdown
14430         (add_playlist_to_mlcl): use playlist ID rather than pointer in
14431          DAAP response
14432         (databases_cb): search for playlist ID in list rather than just
14433          converting it to a pointer; return HTTP 404 if playlist not 
14434          found.
14435         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
14436          is already used for the main library
14438 2005-10-26  James Livingston  <jrl@ids.org.au>
14440         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14442         * daapsharing/rb-daap-connection.c: (build_message),
14443         (http_response_handler), (http_get), (handle_server_info),
14444         (handle_login), (handle_update), (handle_database_info),
14445         (handle_song_listing), (handle_playlists),
14446         (handle_playlist_entries), (handle_logout),
14447         (rb_daap_connection_new), (rb_daap_connection_logout),
14448         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
14449         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
14450         * daapsharing/rb-daap-connection.h:
14451         * sources/rb-daap-source.c: (rb_daap_source_activate),
14452         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
14453         (rb_daap_source_disconnect): Make connecting to DAAP sources
14454         asynchronous, so that non-responsive servers don't hang the UI. Closes
14455         316225.
14457 2005-10-26  James Livingston  <jrl@ids.org.au>
14459         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14461         * rhythmdb/rhythmdb-query-model.c:
14462         (rhythmdb_query_model_do_reorder): generate the row re-order map
14463         correctly.
14464         
14465         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
14466         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
14467         Update selection when rows get re-ordered. Closes 319718.
14469 2005-10-26  James Livingston  <jrl@ids.org.au>
14471         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
14473         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
14474         actually set the db pointer in play orders. Closes 319818.
14476 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
14478         Patch by: Renato Araujo <renatox@gmail.com>
14480         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
14481         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
14482         (rb_podcast_manager_update_synctime),
14483         (rb_podcast_manager_config_changed),
14484         (rb_podcast_manager_insert_feed):
14485         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14486         (save_entry):
14487         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
14488         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
14489         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
14491 2005-10-25  James Livingston  <jrl@ids.org.au>
14493         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
14494         (db_entry_deleted_cb): don't share tracks that are hidden because the
14495         file is missing.
14497 2005-10-22  James Livingston  <jrl@ids.org.au>
14499         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
14500         crash if an entry couldn't be playerd, without streamer setting an
14501         error.
14503         
14504         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14506         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
14507         (rb_new_podcast_dialog_text_changed): enable the add button when a url
14508         is pasted into the dialog.
14509         
14510         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
14511         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14512         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
14513         (rb_podcast_parse_channel_free):
14514         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
14515         feeds
14517 2005-10-22  James Livingston  <jrl@ids.org.au>
14519         * sources/rb-iradio-source.c:
14520         (rb_iradio_source_first_time_changed): Make merging the default
14521         stations actually work.
14522         
14523         * sources/rb-podcast-source.c:
14524         (rb_podcast_source_post_status_cell_data_func): fix problem where some
14525         people weren't seing the percentages in the stats column.
14527 2005-10-21  James Livingston  <jrl@ids.org.au>
14529         Patch from Caio Marcelo <cmarcelo@gmail.com>
14531         * shell/rb-shell.c: (rb_shell_window_state_cb),
14532         (rb_shell_get_visibility), (idle_hide_mainwindow),
14533         (rb_shell_set_visibility): Make the "show window" item in the tray
14534         icon menu show the toggle state correctly. Use a better policy on
14535         deciding whether the window is "visible" or not. Closes bug 308053.
14537 2005-10-21  James Livingston  <jrl@ids.org.au>
14539         * doc/reference/tmpl/rb-shell-preferences.sgml:
14540         * shell/Makefile.am: fix building with gtk-doc
14542         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
14543         don't submit podcasts to audioscrobbler
14544         
14545         
14546         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14547         
14548         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14549         (rb_set_item_value): strip spaces surrounding podcast urls
14550         
14552         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14553         
14554         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
14556 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
14558         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
14559          Audioscrobbler/Last.fm support
14561         * configure.ac:
14562         * data/glade/Makefile.am:
14563         * data/glade/audioscrobbler-prefs.glade:
14564         * data/rhythmbox.schemas:
14565         * lib/Makefile.am:
14566         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
14567         * lib/md5.h:
14568         * lib/rb-preferences.h:
14569         * po/POTFILES.in:
14570         * shell/Makefile.am:
14571         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
14572         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
14573         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
14574         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
14575         (rb_audioscrobbler_timeout_cb), (mkmd5),
14576         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
14577         (rb_audioscrobbler_do_handshake),
14578         (rb_audioscrobbler_do_handshake_cb),
14579         (rb_audioscrobbler_submit_queue),
14580         (rb_audioscrobbler_submit_queue_cb),
14581         (rb_audioscrobbler_import_settings),
14582         (rb_audioscrobbler_preferences_sync),
14583         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
14584         (rb_audioscrobbler_gconf_changed_cb),
14585         (rb_audioscrobbler_song_changed_cb),
14586         (rb_audioscrobbler_username_entry_changed_cb),
14587         (rb_audioscrobbler_username_entry_activate_cb),
14588         (rb_audioscrobbler_password_entry_changed_cb),
14589         (rb_audioscrobbler_password_entry_activate_cb),
14590         (rb_audioscrobbler_enabled_check_changed_cb),
14591         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
14592         (rb_audioscrobbler_load_entry_from_string),
14593         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
14594         (rb_audioscrobbler_print_queue),
14595         (rb_audioscrobbler_free_queue_entries):
14596         * shell/rb-audioscrobbler.h:
14597         * shell/rb-shell-preferences.c:
14598         (rb_shell_preferences_append_audioscrobbler_config):
14599         * shell/rb-shell-preferences.h:
14600         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14601         (rb_shell_select_source), (rb_shell_cmd_preferences):
14602         * sources/Makefile.am:
14604 2005-10-21  James Livingston  <jrl@ids.org.au>
14606         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
14608         * Makefile.am:
14609         * NEWS:
14610         * configure.ac:
14611         * data/art/Makefile.am:
14612         * data/glade/Makefile.am:
14613         * data/rhythmbox.schemas:
14614         * data/ui/rhythmbox-ui.xml:
14615         * doc/reference/Makefile.am:
14616         * doc/reference/tmpl/rhythmdb.sgml:
14617         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14618         * lib/rb-stock-icons.h:
14619         * po/POTFILES.in:
14620         * podcast/Makefile.am:
14621         + podcast/rb-feed-podcast-properties-dialog.c:
14622         + podcast/rb-feed-podcast-properties-dialog.h:
14623         + podcast/rb-new-podcast-dialog.c:
14624         + podcast/rb-new-podcast-dialog.h:
14625         + podcast/rb-podcast-manager.c:
14626         + podcast/rb-podcast-manager.h:
14627         + podcast/rb-podcast-marshal.list:
14628         + podcast/rb-podcast-parse.c:
14629         + podcast/rb-podcast-parse.h:
14630         + podcast/rb-podcast-properties-dialog.c:
14631         + podcast/rb-podcast-properties-dialog.h:
14632         * rhythmdb/rhythmdb-property-model.c:
14633         (rhythmdb_property_model_set_property),
14634         (rhythmdb_property_model_enable_drag):
14635         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
14636         (rhythmdb_tree_parser_end_element), (save_entry),
14637         (rhythmdb_tree_save):
14638         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14639         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
14640         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
14641         (rhythmdb_entry_podcast_feed_get_type):
14642         * rhythmdb/rhythmdb.h:
14643         * shell/Makefile.am:
14644         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
14645         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14646         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
14647         (rb_shell_quit):
14648         * sources/Makefile.am:
14649         + sources/rb-podcast-source.c:
14650         + sources/rb-podcast-source.h:
14651         * widgets/Makefile.am:
14652         * widgets/rb-property-view.c: (rb_property_view_class_init),
14653         (rb_property_view_constructor),
14654         (rb_property_view_selection_changed_cb),
14655         (rb_property_view_get_treeview):
14656         * widgets/rb-property-view.h:
14657         + widgets/rb-simple-view.c:
14658         + widgets/rb-simple-view.h:
14660 2005-10-20  James Livingston  <jrl@ids.org.au>
14662         * NEWS: update with changes since 0.9.1
14664         * configure.ac: check whether collate_key_for_filename is available
14665         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
14666         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
14667         it if it isn't available in glib (i.e. building against 2.6)
14668         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
14669         collation to get "natural sorting". Closes bug 158599.
14671 2005-10-20  James Livingston  <jrl@ids.org.au>
14673         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14675         * doc/reference/tmpl/rb-shell-player.sgml:
14676         * shell/rb-shell-player.c: (rb_shell_player_class_init),
14677         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
14678         (rb_shell_player_get_playing),
14679         (rb_shell_player_get_playing_time_string),
14680         (rb_shell_player_get_playing_time),
14681         (rb_shell_player_set_playing_time), (tick_cb),
14682         (rb_shell_player_get_playing_path), (filter_mmkeys):
14683         * shell/rb-shell-player.h:
14684         * shell/rb-shell-player.xml:
14685         * shell/rb-shell.c: (rb_shell_constructor),
14686         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
14687         (rb_shell_set_window_title), (rb_shell_playing_impl),
14688         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
14689         Merge the duration_changed and elapsed_changed DBUS signals into one
14690         elapsed_changed signal. Check that the output argument isn't NULL
14691         before trying to put things in it.
14693 2005-10-20  James Livingston  <jrl@ids.org.au>
14695         * rhythmdb/rhythmdb-query-model.c:
14696         (rhythmdb_query_model_entry_added_cb),
14697         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
14698         problem where hidden entries could be shown in playlists.
14699         
14700         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
14701         issues when switching in and out of small mode.
14703 2005-10-19  James Livingston  <jrl@ids.org.au>
14705         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
14706         (rb_shell_constructor), (rb_shell_window_state_cb),
14707         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
14708         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
14709         (rb_shell_view_smalldisplay_changed_cb),
14710         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
14711         (rb_shell_sync_paned): remove gconf window-state races, prevent
14712         changing small mode too often, fix window event races. Closes 122806.
14714         
14715         Patch from Caio Marcelo <cmarcelo@gmail.com>
14717         * data/rhythmbox.schemas:
14718         * shell/rb-shell.c: (rb_shell_window_state_cb),
14719         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
14720         Remember the position of the window. Closes 315289.
14722 2005-10-19  James Livingston  <jrl@ids.org.au>
14724         Patch from Christophe Fergeau  <teuf@gnome.org>
14726         * configure.ac: determine whether libgpod is present when neither
14727         --with-ipod nor --without-ipod is passed
14729 2005-10-19  James Livingston  <jrl@ids.org.au>
14731         Patch from Caio Marcelo <cmarcelo@gmail.com>
14733         * shell/rb-shell-player.c: (do_next_idle),
14734         (rb_shell_player_do_previous), (rb_shell_player_do_next),
14735         (rb_shell_player_do_previous_or_seek),
14736         (rb_shell_player_previous_button_cb),
14737         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14738         (rb_shell_player_cmd_next), (eos_cb):
14739         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
14740         end of the playlist is reached.
14742 2005-10-19  Christopher Aillon  <caillon@redhat.com>
14744         * lib/rb-thread.c: fix a few GSource leaks
14746 2005-10-19  James Livingston  <jrl@ids.org.au>
14748         * doc/reference/tmpl/bacon-volume.sgml:
14749         * doc/reference/tmpl/disclosure-widget.sgml:
14750         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14751         * doc/reference/tmpl/eggnotificationbubble.sgml:
14752         * doc/reference/tmpl/eggtrayicon.sgml:
14753         * doc/reference/tmpl/gsequence.sgml:
14754         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14755         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14756         * doc/reference/tmpl/rb-daap-connection.sgml:
14757         * doc/reference/tmpl/rb-daap-dialog.sgml:
14758         * doc/reference/tmpl/rb-daap-mdns.sgml:
14759         * doc/reference/tmpl/rb-daap-share.sgml:
14760         * doc/reference/tmpl/rb-daap-sharing.sgml:
14761         * doc/reference/tmpl/rb-daap-source.sgml:
14762         * doc/reference/tmpl/rb-daap-src.sgml:
14763         * doc/reference/tmpl/rb-daap-structure.sgml:
14764         * doc/reference/tmpl/rb-debug.sgml:
14765         * doc/reference/tmpl/rb-dialog.sgml:
14766         * doc/reference/tmpl/rb-druid.sgml:
14767         * doc/reference/tmpl/rb-entry-view.sgml:
14768         * doc/reference/tmpl/rb-enums.sgml:
14769         * doc/reference/tmpl/rb-file-helpers.sgml:
14770         * doc/reference/tmpl/rb-glade-helpers.sgml:
14771         * doc/reference/tmpl/rb-header.sgml:
14772         * doc/reference/tmpl/rb-history.sgml:
14773         * doc/reference/tmpl/rb-ipod-source.sgml:
14774         * doc/reference/tmpl/rb-iradio-source.sgml:
14775         * doc/reference/tmpl/rb-library-source.sgml:
14776         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14777         * doc/reference/tmpl/rb-metadata.sgml:
14778         * doc/reference/tmpl/rb-new-station-dialog.sgml:
14779         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14780         * doc/reference/tmpl/rb-play-order-linear.sgml:
14781         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14782         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14783         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14784         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14785         * doc/reference/tmpl/rb-play-order-random.sgml:
14786         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14787         * doc/reference/tmpl/rb-play-order.sgml:
14788         * doc/reference/tmpl/rb-player.sgml:
14789         * doc/reference/tmpl/rb-playlist-manager.sgml:
14790         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14791         * doc/reference/tmpl/rb-playlist-source.sgml:
14792         * doc/reference/tmpl/rb-preferences.sgml:
14793         * doc/reference/tmpl/rb-property-view.sgml:
14794         * doc/reference/tmpl/rb-query-creator-private.sgml:
14795         * doc/reference/tmpl/rb-query-creator.sgml:
14796         * doc/reference/tmpl/rb-rating-helper.sgml:
14797         * doc/reference/tmpl/rb-rating.sgml:
14798         * doc/reference/tmpl/rb-recorder.sgml:
14799         * doc/reference/tmpl/rb-refstring.sgml:
14800         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14801         * doc/reference/tmpl/rb-removable-media-source.sgml:
14802         * doc/reference/tmpl/rb-search-entry.sgml:
14803         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14804         * doc/reference/tmpl/rb-shell-glue.sgml:
14805         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14806         * doc/reference/tmpl/rb-shell-player.sgml:
14807         * doc/reference/tmpl/rb-shell-preferences.sgml:
14808         * doc/reference/tmpl/rb-shell.sgml:
14809         * doc/reference/tmpl/rb-song-display-box.sgml:
14810         * doc/reference/tmpl/rb-song-info.sgml:
14811         * doc/reference/tmpl/rb-source-header.sgml:
14812         * doc/reference/tmpl/rb-source.sgml:
14813         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14814         * doc/reference/tmpl/rb-sourcelist.sgml:
14815         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14816         * doc/reference/tmpl/rb-statusbar.sgml:
14817         * doc/reference/tmpl/rb-stock-icons.sgml:
14818         * doc/reference/tmpl/rb-string-helpers.sgml:
14819         * doc/reference/tmpl/rb-thread.sgml:
14820         * doc/reference/tmpl/rb-tray-icon.sgml:
14821         * doc/reference/tmpl/rb-tree-dnd.sgml:
14822         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14823         * doc/reference/tmpl/rb-util.sgml:
14824         * doc/reference/tmpl/rhythmbox-unused.sgml:
14825         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14826         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14827         * doc/reference/tmpl/rhythmdb-tree.sgml:
14828         * doc/reference/tmpl/rhythmdb.sgml: update for changes
14829         
14830         * doc/reference/Makefile.am: make docs build with changed ipod support
14831         
14832         * po/POTFILES.in: remove sources/itunesdb
14834 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
14836         * sources/itunesdb.c:
14837         * sources/itunesdb.h: removed now useless files
14839 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
14841         * configure.ac:
14842         * shell/Makefile.am:
14843         * sources/Makefile.am:
14844         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
14845         code
14846         [1]: http://www.gtkpod.org/libgpod.html
14849 2005-10-18  James Livingston  <jrl@ids.org.au>
14851         patch from Funda Wang <fundawang@linux.net.cn>
14853         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
14854         the notification bubble string translatable.
14856 ============ Version 0.9.1
14858 2005-10-16  James Livingston  <jrl@ids.org.au>
14860         * configure.ac: bump version to 0.9.1
14861         * NEWS: update translation credits
14863 2005-10-16  James Livingston  <jrl@ids.org.au>
14865         * rhythmdb/rhythmdb-query-model.c:
14866         (rhythmdb_query_model_class_init),
14867         (rhythmdb_query_model_drag_data_received): 
14868         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
14869         notified when things are dropped into the entry view.
14870         
14871         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
14872         (rb_playlist_source_add_location_swapped),
14873         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
14874         (rb_playlist_source_non_entry_dropped),
14875         (rb_playlist_source_row_inserted): Use the new signal so that dropping
14876         things onto a playlist's entry view work correctly, and doesn't cause
14877         crashes. Allow folders to be dropped as well. (Closes 318308)
14879 2005-10-16  James Livingston  <jrl@ids.org.au>
14881         * NEWS: Update some more
14883         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14884         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
14885         with the paned size, so that it doesn't move when the window is
14886         maximised/restored. Closes bug 315852.
14888         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
14889         display the playcount column, as it's useless (it never get changed).
14891 2005-10-14  James Livingston  <jrl@ids.org.au>
14893         * Makefile.am:
14894         * data/Makefile.am:
14895         * doc/reference/Makefile.am: get "make distcheck" to pass again
14897 2005-10-11  James Livingston  <jrl@ids.org.au>
14899         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
14900         destroy the connection when retrieving the playlists fails, because
14901         tracks have already been added. Closes 318380.
14903 2005-10-11  James Livingston  <jrl@ids.org.au>
14905         * sources/rb-sourcelist.c: (rb_sourcelist_append),
14906         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
14907         (source_name_edited_cb): Ask for the columns to be resized when a
14908         source is added, deleted or changes name.
14910 2005-10-11  James Livingston  <jrl@ids.org.au>
14912         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
14913         create a thread when processing a directory. This stops up created one
14914         thread for each file in a playlist we're trying to load. Closes
14915         317850.
14917         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
14918         typo that made sort-by-artist not work correctly.
14920 2005-10-11  James Livingston  <jrl@ids.org.au>
14922         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
14923         support is enabled
14925 2005-10-11  James Livingston  <jrl@ids.org.au>
14927         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
14928         * lib/rb-file-helpers.h: add a function to turn uris into our
14929         canonical path-escaped form
14930         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
14931         above function when import playlists. This will fix the problem of
14932         duplicate entries due to different representations of the uri (bug
14933         158211).
14935 2005-10-11  James Livingston  <jrl@ids.org.au>
14937         * shell/rb-shell.c: (rb_shell_get_visibility),
14938         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
14939         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
14940         window hiding so that Alt-F4 works again.
14942         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
14943         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
14944         (rb_entry_view_string_sort_func): Stop some crashes where a string
14945         property was set to NULL.
14947 2005-10-10  James Livingston  <jrl@ids.org.au>
14949         * doc/reference/rhythmbox.types: fix gtk-doc generation
14951 2005-10-09  James Livingston  <jrl@ids.org.au>
14953         * sources/rb-sourcelist.c: (rb_sourcelist_init):
14954         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
14955         accelerators, so that we don't have as many conflicting keys.
14957 2005-10-08  James Livingston  <jrl@ids.org.au>
14959         * data/iradio-initial.pls: Update the list of radio stations. Thanks
14960         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
14961         bug 129285.
14963 2005-10-07  James Livingston  <jrl@ids.org.au>
14965         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
14966         local path names in the same way as every other URI. This should stop
14967         duplicates occurring due to different escapings. Closes bug 158211.
14969 2005-10-06  James Livingston  <jrl@ids.org.au>
14971         * NEWS: more updates
14972         
14973         patch from Jaap Haitsma <jaap@haitsma.org>:
14975         * configure.ac:
14976         * data/Makefile.am:
14977         * data/art/Makefile.am:
14978         - data/art/rhythmbox-paused.png:
14979         - data/art/rhythmbox-playback-error.png:
14980         - data/art/rhythmbox-playing.png:
14981         - data/art-clearlooks/:
14982         * lib/rb-file-helpers.c: (rb_file):
14983         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14984         * lib/rb-stock-icons.h:
14985         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
14986         * widgets/rb-cell-renderer-pixbuf.c:
14987         (rb_cell_renderer_pixbuf_render):
14988         * widgets/rb-entry-view.c: (rb_entry_view_init),
14989         (rb_entry_view_set_playing):
14990         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
14991         stock icons instead of custom art. Drop remanents of art-clearlooks.
14993 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
14995         * configure.ac: Added ne in ALL_LINGUAS
14997 2005-10-02  James Livingston  <jrl@ids.org.au>
14999         * data/glade/Makefile.am: actually install the daap prefs glade file
15001 2005-09-30  James Livingston  <jrl@ids.org.au>
15003         * po/POTFILES.in: mremove rb-string-helper.c from the list of
15004         translatable files, so that make check works and we don't annoy the
15005         translators.
15006         
15007         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
15008         sanity checking, in case a db entry is missing some properties.
15010 2005-09-29  James Livingston  <jrl@ids.org.au>
15012         - lib/rb-string-helpers.c:
15013         - lib/rb-string-helpers.h:
15014         * lib/Makefile.am:
15015         * rhythmdb/rhythmdb-tree.c:
15016         * rhythmdb/rhythmdb.c:
15017         * shell/main.c: (main):
15018         * shell/rb-shell.c:
15019         * widgets/rb-entry-view.c:
15020         * widgets/rb-property-view.c: remove rb-string-helpers, as they
15021         utility functions haven't been used in a while.
15023 2005-09-27  James Livingston  <jrl@ids.org.au>
15025         * data/art-clearlooks/Makefile.am:
15026         - data/art-clearlooks/rhythmbox-album.png:
15027         - data/art-clearlooks/rhythmbox-audiocd.png:
15028         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
15029         - data/art-clearlooks/rhythmbox-dnd.png:
15030         - data/art-clearlooks/rhythmbox-ipod.png:
15031         - data/art-clearlooks/rhythmbox-iradio.png:
15032         - data/art-clearlooks/rhythmbox-library.png:
15033         - data/art-clearlooks/rhythmbox-next.png:
15034         - data/art-clearlooks/rhythmbox-pause.png:
15035         - data/art-clearlooks/rhythmbox-play.png:
15036         - data/art-clearlooks/rhythmbox-playlist-menu.png:
15037         - data/art-clearlooks/rhythmbox-playlist.png:
15038         - data/art-clearlooks/rhythmbox-previous.png:
15039         - data/art-clearlooks/rhythmbox-repeat.png:
15040         - data/art-clearlooks/rhythmbox-rewind.png:
15041         - data/art-clearlooks/rhythmbox-shuffle.png:
15042         - data/art-clearlooks/rhythmbox-stop.png:
15043         - data/art-clearlooks/rhythmbox-visuals.png:
15044         - data/art-clearlooks/rhythmbox-volume-max.png:
15045         - data/art-clearlooks/rhythmbox-volume-medium.png:
15046         - data/art-clearlooks/rhythmbox-volume-min.png:
15047         - data/art-clearlooks/rhythmbox-volume-mute.png:
15048         - data/art-clearlooks/rhythmbox-volume-zero.png:
15049         * data/art/Makefile.am:
15050         - data/art/rhythmbox-album.png:
15051         - data/art/rhythmbox-audiocd.png:
15052         - data/art/rhythmbox-automatic-playlist.png:
15053         - data/art/rhythmbox-dnd.png:
15054         - data/art/rhythmbox-ipod.png:
15055         - data/art/rhythmbox-iradio.png:
15056         - data/art/rhythmbox-library.png:
15057         - data/art/rhythmbox-next.png:
15058         - data/art/rhythmbox-pause.png:
15059         - data/art/rhythmbox-play.png:
15060         - data/art/rhythmbox-playlist-menu.png:
15061         - data/art/rhythmbox-playlist.png:
15062         - data/art/rhythmbox-previous.png:
15063         - data/art/rhythmbox-repeat.png:
15064         - data/art/rhythmbox-rewind.png:
15065         - data/art/rhythmbox-shuffle.png:
15066         - data/art/rhythmbox-stop.png:
15067         - data/art/rhythmbox-visuals.png:
15068         - data/art/rhythmbox-volume-max.png:
15069         - data/art/rhythmbox-volume-medium.png:
15070         - data/art/rhythmbox-volume-min.png:
15071         - data/art/rhythmbox-volume-mute.png:
15072         - data/art/rhythmbox-volume-zero.png:
15073         * lib/rb-stock-icons.c: (rb_stock_icons_init):
15074         * lib/rb-stock-icons.h:
15075         * shell/rb-playlist-manager.c:
15076         * shell/rb-shell-player.c:
15077         * sources/rb-daap-source.c: (rb_daap_get_icon):
15078         * sources/rb-ipod-source.c:
15079         * sources/rb-iradio-source.c: (rb_iradio_source_init):
15080         * sources/rb-library-source.c: (rb_library_source_new):
15081         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
15082         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
15083         that hasn't been used in a LONG time, and also remove art that are
15084         now stock icons.
15086 2005-09-27  James Livingston  <jrl@ids.org.au>
15088         * README: point to the gnome.org web sites, and update the example
15089         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
15090         
15091         * rhythmdb/rhythmdb-query-model.c:
15092         (rhythmdb_query_model_set_property),
15093         (rhythmdb_query_model_get_property),
15094         (rhythmdb_query_model_finalize):
15095         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
15096         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
15097         * rhythmdb/rhythmdb.h:
15098         * sources/rb-iradio-source.c: (impl_search):
15099         * sources/rb-library-source.c: (impl_search): Add query
15100         "preprocessing", which performs operations such as casefolding any
15101         strings that will be compared to any of the *_FOLDED properties.
15102         Closes bug 316039
15104 2005-09-27  James Livingston  <jrl@ids.org.au>
15106         * data/glade/daap-prefs.glade:
15107         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
15108         file for the daap preferences pane
15109         
15110         * sources/rb-sourcelist.c: (rb_sourcelist_init),
15111         (rb_sourcelist_append), (rb_sourcelist_remove),
15112         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
15113         don't display the column for source expanders unless there is an
15114         expandable source.
15116 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
15118         * .cvsignore:
15119         * Makefile.am:
15120         * configure.ac:
15121         * doc/.cvsignore:
15122         * doc/Makefile.am:
15123         * doc/reference/.cvsignore:
15124         * doc/reference/Makefile.am:
15125         * doc/reference/rhythmbox-docs.sgml:
15126         * doc/reference/rhythmbox-sections.txt:
15127         * doc/reference/rhythmbox.types:
15128         * doc/reference/tmpl/bacon-volume.sgml:
15129         * doc/reference/tmpl/disclosure-widget.sgml:
15130         * doc/reference/tmpl/eel-gconf-extensions.sgml:
15131         * doc/reference/tmpl/eggnotificationbubble.sgml:
15132         * doc/reference/tmpl/eggtrayicon.sgml:
15133         * doc/reference/tmpl/gsequence.sgml:
15134         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
15135         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
15136         * doc/reference/tmpl/rb-daap-connection.sgml:
15137         * doc/reference/tmpl/rb-daap-dialog.sgml:
15138         * doc/reference/tmpl/rb-daap-mdns.sgml:
15139         * doc/reference/tmpl/rb-daap-share.sgml:
15140         * doc/reference/tmpl/rb-daap-sharing.sgml:
15141         * doc/reference/tmpl/rb-daap-source.sgml:
15142         * doc/reference/tmpl/rb-daap-src.sgml:
15143         * doc/reference/tmpl/rb-daap-structure.sgml:
15144         * doc/reference/tmpl/rb-debug.sgml:
15145         * doc/reference/tmpl/rb-dialog.sgml:
15146         * doc/reference/tmpl/rb-druid.sgml:
15147         * doc/reference/tmpl/rb-entry-view.sgml:
15148         * doc/reference/tmpl/rb-enums.sgml:
15149         * doc/reference/tmpl/rb-file-helpers.sgml:
15150         * doc/reference/tmpl/rb-glade-helpers.sgml:
15151         * doc/reference/tmpl/rb-header.sgml:
15152         * doc/reference/tmpl/rb-history.sgml:
15153         * doc/reference/tmpl/rb-ipod-source.sgml:
15154         * doc/reference/tmpl/rb-iradio-source.sgml:
15155         * doc/reference/tmpl/rb-library-source.sgml:
15156         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
15157         * doc/reference/tmpl/rb-metadata.sgml:
15158         * doc/reference/tmpl/rb-new-station-dialog.sgml:
15159         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
15160         * doc/reference/tmpl/rb-play-order-linear.sgml:
15161         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
15162         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
15163         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
15164         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
15165         * doc/reference/tmpl/rb-play-order-random.sgml:
15166         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
15167         * doc/reference/tmpl/rb-play-order.sgml:
15168         * doc/reference/tmpl/rb-player.sgml:
15169         * doc/reference/tmpl/rb-playlist-manager.sgml:
15170         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
15171         * doc/reference/tmpl/rb-playlist-source.sgml:
15172         * doc/reference/tmpl/rb-preferences.sgml:
15173         * doc/reference/tmpl/rb-property-view.sgml:
15174         * doc/reference/tmpl/rb-query-creator-private.sgml:
15175         * doc/reference/tmpl/rb-query-creator.sgml:
15176         * doc/reference/tmpl/rb-rating-helper.sgml:
15177         * doc/reference/tmpl/rb-rating.sgml:
15178         * doc/reference/tmpl/rb-recorder.sgml:
15179         * doc/reference/tmpl/rb-refstring.sgml:
15180         * doc/reference/tmpl/rb-removable-media-manager.sgml:
15181         * doc/reference/tmpl/rb-removable-media-source.sgml:
15182         * doc/reference/tmpl/rb-search-entry.sgml:
15183         * doc/reference/tmpl/rb-shell-clipboard.sgml:
15184         * doc/reference/tmpl/rb-shell-glue.sgml:
15185         * doc/reference/tmpl/rb-shell-player-glue.sgml:
15186         * doc/reference/tmpl/rb-shell-player.sgml:
15187         * doc/reference/tmpl/rb-shell-preferences.sgml:
15188         * doc/reference/tmpl/rb-shell.sgml:
15189         * doc/reference/tmpl/rb-song-display-box.sgml:
15190         * doc/reference/tmpl/rb-song-info.sgml:
15191         * doc/reference/tmpl/rb-source-header.sgml:
15192         * doc/reference/tmpl/rb-source.sgml:
15193         * doc/reference/tmpl/rb-sourcelist-model.sgml:
15194         * doc/reference/tmpl/rb-sourcelist.sgml:
15195         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
15196         * doc/reference/tmpl/rb-statusbar.sgml:
15197         * doc/reference/tmpl/rb-stock-icons.sgml:
15198         * doc/reference/tmpl/rb-string-helpers.sgml:
15199         * doc/reference/tmpl/rb-thread.sgml:
15200         * doc/reference/tmpl/rb-tray-icon.sgml:
15201         * doc/reference/tmpl/rb-tree-dnd.sgml:
15202         * doc/reference/tmpl/rb-tree-model-sort.sgml:
15203         * doc/reference/tmpl/rb-util.sgml:
15204         * doc/reference/tmpl/rhythmdb-property-model.sgml:
15205         * doc/reference/tmpl/rhythmdb-query-model.sgml:
15206         * doc/reference/tmpl/rhythmdb-tree.sgml:
15207         * doc/reference/tmpl/rhythmdb.sgml:
15208         * macros/.cvsignore:
15209         * shell/Makefile.am:
15210         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
15211         (rb_source_finalize), (rb_source_set_property),
15212         (rb_source_get_property), (default_get_pixbuf),
15213         (_rb_source_show_popup):
15214         * sources/rb-source.h:
15215         Add support for gtk-doc in rhythmbox.
15216         Convert RBSource to use newer glib functions, such as add_private.
15217         Gives RBSource a default get_pixbuf implementation.
15219 2005-09-25  James Livingston  <jrl@ids.org.au>
15221         * NEWS: Update with about a months worth of changes
15223         * data/glade/song-info-multiple.glade:
15224         * data/glade/song-info.glade:
15225         * data/rhythmbox.schemas:
15226         * lib/rb-preferences.h:
15227         * rhythmdb/rhythmdb.h:
15228         * shell/rb-shell-player.c:
15229         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
15230         few remaining parts of autorating.
15232 2005-09-24  James Livingston  <jrl@ids.org.au>
15234         * shell/rb-shell.c: (rb_shell_constructor),
15235         (rb_shell_window_state_cb), (rb_shell_set_visibility),
15236         (rb_shell_window_configure_cb): store window state in the gconf keys,
15237         so that it gets used. Closes bugs 313893 and 137068.
15239 2005-09-20  James Livingston  <jrl@ids.org.au>
15241         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
15242         crash if the entry has a NULL string in a property
15243         
15244         * shell/rb-removable-media-manager.c:
15245         (rb_removable_media_manager_load_media): fix some memory leaks
15246         
15247         (rb_removable_media_manager_mount_volume),
15248         (rb_removable_media_manager_eject_medium_cb),
15249         (rb_removable_media_manager_cmd_eject_medium): use
15250         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
15251         
15252         * sources/rb-removable-media-source.c:
15253         (rb_removable_media_source_set_property),
15254         (rb_removable_media_source_get_property): use
15255         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
15257 2005-09-18  James Livingston  <jrl@ids.org.au>
15259         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
15260         column
15262         * data/glade/general-prefs.glade:
15263         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
15264         (rb_shell_preferences_column_check_changed_cb),
15265         (rb_shell_preferences_sync): add checkbox to control visibility
15266         of the column
15267         
15268         
15269         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
15270         (save_entry):
15271         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
15272         (rhythmdb_prop_get_type):
15273         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
15274         was as "last played" is handled
15275         
15276         * sources/rb-library-source.c: (rb_library_source_constructor):
15277         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
15278         Make the column show in the library and playlists
15279         
15280         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
15281         * widgets/rb-entry-view.h: add the column
15282         
15283         * widgets/rb-query-creator-properties.c: allow automatic playlists to
15284         be sorted by the column
15286 2005-09-16  James Livingston  <jrl@ids.org.au>
15288         * shell/rb-shell-player.c: (rb_shell_player_init),
15289         (rb_shell_player_do_previous_or_seek),
15290         (rb_shell_player_previous_button_cb),
15291         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
15292         (rb_shell_player_playpause_button_cb): Make the previous button act
15293         the same as the menu item. Fix an inversion of the "previous track or
15294         seek" logic.
15295         
15296         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15297         
15298         (rb_shell_player_playpause): make --play-pause stop source that can't
15299         be paused
15301 2005-09-15  James Livingston  <jrl@ids.org.au>
15303         * configure.ac: increase totem-plparser requirements to 1.1.5
15305         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
15306         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
15307         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
15308         use the newer playlist APIs to save the name of the playlist, and use
15309         the name of a loaded playlist.
15311         Closes bug 309817.
15313 2005-09-15  James Livingston  <jrl@ids.org.au>
15315         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15317         * shell/Makefile.am: stop some linker warnings
15319         * shell/main.c: (main): make --no-registration work with dbus
15321 2005-09-15  James Livingston  <jrl@ids.org.au>
15323         * daapsharing/rb-daap-sharing.c: (create_share):
15324         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
15325         reference sinking and counting issues that I caused.
15327 2005-09-15  James Livingston  <jrl@ids.org.au>
15329         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
15330         playing" icon in the "now playing" column header.
15332 2005-09-14  James Livingston  <jrl@ids.org.au>
15334         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
15335         daap shares, when sharing is turned off.
15337 2005-09-12  Bastien Nocera  <hadess@hadess.net>
15339         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
15340         the GConf value's default, especially for badly installed schema
15341         files
15343 2005-09-12  James Livingston  <jrl@ids.org.au>
15345         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
15347         Patch from Paolo Borelli <pborelli@katamail.com>
15349         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
15350         grip when maximised. Closes bug 316055.
15352 2005-09-11  James Livingston  <jrl@ids.org.au>
15354         Patch from William Jon McCann <mccann@jhu.edu>
15356         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
15357         subclass of GtkStatusbar instead of GtkHBox.
15358         (rb_statusbar_construct): Don't set border width.
15359         (rb_statusbar_init): Use resize grip.  Don't use
15360         markup.
15361         (set_statusbar_tooltip, unset_statusbar_tooltip) 
15362         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
15363         Connect tooltips for actions.
15364         (rb_statusbar_sync_status): Push new message to statusbar.
15365         (rb_statusbar_set_progress): Don't use markup.
15366         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
15367         flag here since it prevents actually showing or hiding.
15368         (rb_statusbar_sync_with_source): Push new message to statusbar.
15370 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15372         * daapsharing/rb-daap-structure.c:
15373         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
15374         around debugging definition.
15376 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15377         
15378         * daapsharing/rb-daap-structure.c:
15379         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
15380         type = version.
15382         * daapsharing/rb-daap-mdns.c/h:
15383         (resolve_cb): Updated mDNS resolve callback to send service-name &
15384         name (read from Machine Name in the TXT data or equal to service-name
15385         if not in TXT).
15387         * daapsharing/rb-daap-source.c:
15388         (rb_daap_source_class_init), (rb_daap_source_set_property), 
15389         (rb_daap_source_get_property), (rb_daap_source_new),
15390         (find_source_by_service_name), (resolve_cb), (browse_cb), 
15391         (stop_resolver), (start_browsing), (stop_browsing), 
15392         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
15393         and added 'host' and 'port' gobject properties.  Updated to use new
15394         mDNS resolve callback sending service-name & name arguments.
15396 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15398         * daapsharing/rb-daap-mdns.c:
15399         (howl_strerror): New function to report errors from Howl
15400         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
15401         (get_sw_discovery), (get_avahi_client): Better error reporting from
15402         Howl & Avahi.
15404         * sources/rb-daap-source.:
15405         (start_browsing), (stop_browsing): Fixed a bug where browsing would
15406         not get started or stopped in some situations.
15407         
15408 2005-09-12  James Livingston  <jrl@ids.org.au>
15410         * shell/rb-removable-media-manager.c: add a missing include, that
15411         would stop compilation if ipod support wasn't turned on
15413 2005-09-11  James Livingston  <jrl@ids.org.au>
15415         * daapsharing/rb-daap-dialog.c: (encode_base64),
15416         (rb_daap_password_dialog_new_run),
15417         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
15418         it is no broken in to two pieces, and remove a use of a goto
15419         
15420         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
15421         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
15422         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
15423         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
15424         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
15425         memory leaks, and some code style things.
15426         
15427         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
15428         (rb_daap_share_init), (rb_daap_share_set_property),
15429         (rb_daap_share_dispose), (rb_daap_share_new),
15430         (rb_daap_share_get_property): make the DB and the playlist manager
15431         gobject properties.
15432         
15433         (message_add_standard_headers),
15434         (message_set_from_rb_daap_structure), (server_info_cb),
15435         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
15436         (server_cb), (add_db_entry), (db_entry_added_cb),
15437         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
15438         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
15439         style and use CONF_PREFIX in the gconf keys
15440         
15441         * daapsharing/rb-daap-sharing.c: (create_share),
15442         (enable_sharing_changed_cb), (share_name_changed_cb),
15443         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
15444         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
15445         (rb_daap_src_instance_init), (rb_daap_src_dispose),
15446         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
15447         (rb_daap_src_get_property), (rb_daap_src_getcaps),
15448         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
15449         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
15450         (rb_daap_src_get_time): Deal with gconf callbacks where the key
15451         hasn't actually changed, fix some memory leaks, code style and release
15452         gconf notifications when the object is destroyed.
15453         
15454         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
15455         (rb_daap_source_class_init), (rb_daap_source_init),
15456         (rb_daap_source_dispose), (rb_daap_source_set_property),
15457         (rb_daap_source_get_property), (rb_daap_source_new),
15458         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
15459         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
15460         (rb_daap_sources_init), (rb_daap_sources_shutdown),
15461         (rb_daap_source_activate), (rb_daap_source_disconnect),
15462         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
15463         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
15464         release gconf notifications, handle gconf callbacks where the key
15465         hasn't changed, make "real name" and "password protected" gobject
15466         properties, fix some code style and fix a memory leak.
15468 2005-09-11  James Livingston  <jrl@ids.org.au>
15470         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15472         * shell/rb-playlist-manager.c:
15473         (rb_playlist_manager_save_playlists),
15474         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
15475         when we aren't supposed to. (Closes bug 315886)
15477 2005-09-11  James Livingston  <jrl@ids.org.au>
15479         * shell/rb-removable-media-manager.c:
15480         (rb_removable_media_manager_class_init),
15481         (rb_removable_media_manager_init),
15482         (rb_removable_media_manager_dispose),
15483         (rb_removable_media_manager_set_property),
15484         (rb_removable_media_manager_get_property),
15485         (rb_removable_media_manager_new),
15486         (rb_removable_media_manager_load_media),
15487         (rb_removable_media_manager_volume_mounted_cb),
15488         (rb_removable_media_manager_volume_unmounted_cb),
15489         (rb_removable_media_manager_mount_volume),
15490         (rb_removable_media_manager_unmount_volume),
15491         (rb_removable_media_manager_source_deleted_cb),
15492         (rb_removable_media_manager_append_media_source),
15493         (rb_removable_media_manager_set_uimanager),
15494         (rb_removable_media_manager_eject_medium_cb),
15495         (rb_removable_media_manager_cmd_eject_medium):
15496         * shell/rb-removable-media-manager.h:
15497         * sources/rb-removable-media-source.c:
15498         (rb_removable_media_source_class_init),
15499         (rb_removable_media_source_init),
15500         (rb_removable_media_source_dispose),
15501         (rb_removable_media_source_set_property),
15502         (rb_removable_media_source_get_property), (impl_get_pixbuf),
15503         (impl_delete_thyself):
15504         * sources/rb-removable-media-source.h: Add the four files that I
15505         somehow managed not to add to cvs in the last commit. Oops.
15507 2005-09-11  James Livingston  <jrl@ids.org.au>
15509         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
15510         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
15511         
15512         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
15513         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
15514         removable-media-manager on startup, and handle creation of sources.
15515         
15516         * sources/rb-ipod-source.h:
15517         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
15518         (rb_ipod_source_init), (rb_ipod_source_constructor),
15519         (rb_ipod_source_dispose), (rb_ipod_source_new),
15520         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
15521         the iPod source over to the removable media framework.
15522         
15523         * sources/rb-library-source.c: (paned_size_allocate_cb),
15524         (rb_library_source_get_paned_key): fix a potential bug is a
15525         library-derived source doesn't have a paned-key
15527 2005-09-11  Bastien Nocera  <hadess@hadess.net>
15529         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
15530         mp3 when we can't get the suffix of a file (Closes: #315941)
15532 2005-09-10  James Livingston  <jrl@ids.org.au>
15534         * configure.ac: fix the mdns tests, so that it doesn't complain about
15535         not finding one, if daap support isn't being compiled in
15537 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
15539         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
15541         * daapsharing/rb-daap-dialog.c:
15542         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
15543         HIG compliancy & images.
15545         * daapsharing/rb-daap-mdns.c:
15546         (browse_cb), (resolve_cb): Better detection of local services.  
15547         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
15548         Howl's limitations.  Fix the way collision handling is done under
15549         Avahi.
15551         * daapsharing/rb-daap-share.c:
15552         (publish_cb): Better name collision handling (at least for Avahi).
15554 2005-09-10  James Livingston  <jrl@ids.org.au>
15556         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
15557         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
15558         preferences more HIG compliant (Closes #315889)
15559         
15560         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
15561         list of files to be translated
15563 2005-09-10  James Livingston  <jrl@ids.org.au>
15565         * configure.ac: fix it so that --enable-daap=no works
15566         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
15567         uninstalled
15569 2005-09-10  James Livingston  <jrl@ids.org.au>
15571         Patch from Christophe Fergeau <teuf@gnome.org>
15573         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
15574         the ipod code.
15576 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15577         * README.daap: Updating documentation
15579 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15580         * AUTHORS: Added myself.
15582         * daapsharing/rb-daap-connection.c:
15583         (connection_login), (rb_connection_new): Reorganized password
15584         handling.
15586         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
15588         * shell/rb-shell.c:
15589         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
15591         * sources/rb-daap-source.c:
15592         (rb_daap_source_activate): Better error handling when we are unable to
15593         connect.
15594         
15595 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15596         * README.daap: Fixed some terminology.
15598         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
15599         New --with-mdns=auto|howl|avahi flag to specify.
15601         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
15602         name collision dialogs.
15604         * daapsharing/rb-daap-connection.c:
15605         (connection_get_password), (build_message), (http_get)
15606         (connection_login): Ask for & use a password if the share demands it.
15608         * daapsharing/rb-daap-connection.h: Changed prototype of
15609         rb_daap_connection_new.
15610         
15611         * daapsharing/rb-daap-mdns.c: 
15612         (resolve_cb): Better detection of your own music share so it doesn't 
15613         appear in the sourcelist.
15615         * daapsharing/rb-daap-share.c:
15616         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
15617         that start on any available port.
15619         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
15621         * sources/rb-daap-source.c:
15622         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
15623         (browse_cb): Handle passworded shares. Resolve the host immediately
15624         instead of when activated.
15625         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
15626         (rb_daap_source_new): New GConf keys for UI state.
15627         (rb_daap_source_activate): Use RBPlaylistSource instead of
15628         RBDAAPPlaylistSource
15629         
15630         * sources/rb-daap-playlist-source.c/h: Removed
15632         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
15633         if the playlist is local (i.e. not DAAP or iPod).
15634         
15635         * shell/rb-playlist-manager.c:
15636         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
15637         wouldn't get saved if the last playlist hadn't changed.  Only save
15638         local playlists.
15639         
15640 2005-09-09  James Livingston  <jrl@ids.org.au>
15642         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
15643         iPod preferences pane, as it already uses the browser views as the
15644         library.
15646 2005-09-09  James Livingston  <jrl@ids.org.au>
15648         * sources/rb-library-source.c: (rb_library_source_finalize),
15649         (rb_library_source_constructor): fix gconf monitoring of library
15650         preference keys.
15651         * sources/rb-library-source.h: remove declaration of function that
15652         does not exist
15654 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15656         * player/rb-player-gst.c:
15657         (rb_player_set_time): Fix seeking in daap streams.
15659 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15661         * data/rhythmbox.schemas: Turn music share browsing on by default.
15663 2005-09-07  James Livingston  <jrl@ids.org.au>
15665         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
15667 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15668         * player/rb-player-gst.c: 
15669         (rb_player_get_time): Fix for extra << & == that accidentally made
15670         it in.
15672         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
15673         
15674 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15675         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
15676         it in last time.  Sorry.
15678 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15679         
15680         * player/rb-player-gst.c:
15681         (rb_player_get_time): Fix a small crash appearing when
15682         the uri isn't set in the player, but rb_player_get_time() is
15683         still called.
15685         * configure.ac: Also check for libsoup 2.4, which is what ships with
15686         Gnome 2.12.
15688         * po/POTFILES.in: Added music sharing files that have translatable 
15689         strings.
15691         * README.daap: New file explaining "How Music Sharing Works"  
15693 2005-09-06  Bastien Nocera  <hadess@hadess.net>
15695         * daapsharing/.cvsignore: added
15697 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15699         * daapsharing/*: Music sharing library.
15700         
15701         * sources/rb-daap-source.c/h: Music share RBSource.
15702         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
15704         * configure.ac: --enable-daap flag to turn on music sharing. Requires
15705         libsoup and a mutlicast DNS implementation (howl or avahi).
15707         * data/rhythmbox.schemas: New GConf keys for music sharing.
15709         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
15710         source right click menu.
15712         * player/rb-player-gst.c: Changes to properly play & seek in remote
15713         music share files.
15715         * shell/rb-playlist-manager.c/h:
15716         (rb_playlist_manager_get_playlists): New function to get a GList * of
15717         the playlists.
15718         (rb_playlist_manager_save_playlists): Don't save music share playlists
15719         and fixed a GObject reference leak.
15721         * shell/rb-shell.c/h:
15722         (rb_shell_append_source): No longer a local function.  Now takes a
15723         parent RBSource * argument, NULL to append a toplevel source.
15724         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
15725         source (useful for disconnecting from remote music share,
15726         specifically).
15727         (rb_shell_quit): Stop music sharing/browsing.
15728         (rb_shell_playlist_added_cb): Work with tree source structure.
15729         (rb_shell_get_property): "playlist-manager" property accessor.
15730         (rb_shell_class_init): New "playlist-manager" property.
15731         (rb_shell_construor): Append sources as toplevel sources.  Initialize
15732         daap sharing/browsing.
15733         (rb_shell_select_source): Notify source of activation/deactivation.
15735         * shell/rb-shell-prefernces.c: Music sharing preferences.
15737         * sources/rb-source.c/h: New activate, deactivate and disconnect
15738         class functions.  Activate & deactivate are notification style 
15739         functions that will tell a source when it is selected/unselected.
15740         Disconnect can be hooked up to a UI object to disconnect the source.
15742         * sources/rb-sourcelist-model.c:
15743         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
15744         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
15745         append a toplevel source.
15747 2005-09-05  James Livingston  <jrl@ids.org.au>
15749         * rhythmdb/rhythmdb-query-model.c:
15750         (rhythmdb_query_model_entry_changed_cb),
15751         (rhythmdb_query_model_do_reorder): Update the query model's totals if
15752         the duration of filesize of an entry changes.  Emit the row-changed
15753         signals that I forgot to put back in, when I was doing query sorting.
15755         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
15756         out "0 minutes" or "0 bytes".
15758 2005-09-04  James Livingston  <jrl@ids.org.au>
15760         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
15761         remove a leftover bit of the "internal-name" property of sources.
15763 2005-09-03  James Livingston  <jrl@ids.org.au>
15765         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
15766         extraneous debug message
15767         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
15768         crasher would affect any library-derived sources (which was also a
15769         memory leak).
15771 2005-09-02  Colin Walters  <walters@verbum.org>
15773         * configure.ac: Fix sytnax error.
15775         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
15776         code to disable minimization icons - need to figure out
15777         why it doesn't work...
15779 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
15781         * data/glade/song-info-multiple.glade:
15782         * data/glade/song-info.glade:
15783         * widgets/rb-song-info.c: (rb_song_info_constructor):
15784         Add a mnemonic to the newly added "Automatically rate" label
15785         in the properties dialog and use a bold typeface like all the 
15786         other labels in the dialog. (Closes bug 315089)
15788 2005-09-03  James Livingston  <jrl@ids.org.au>
15790         * sources/rb-library-source.c: (rb_library_source_class_init),
15791         (rb_library_source_finalize), (rb_library_source_constructor),
15792         (rb_library_source_set_property), (rb_library_source_get_property),
15793         (impl_get_paned_key), (paned_size_allocate_cb),
15794         (rb_library_source_state_prefs_sync), (impl_show_popup),
15795         (rb_library_source_get_paned_key):
15796         * sources/rb-library-source.h: Allow sources derived from
15797         RBLibrarySource to use different gconf keys for sort order, browser
15798         visibility and browser pane position. Fix a crasher if a derived
15799         source overrides _get_pixbuf.
15801 2005-09-02  Colin Walters  <walters@verbum.org>
15803         * shell/rb-shell.c (rb_shell_set_visibility): Move
15804         hint setting which seems to avoid races more.
15805         
15806 2005-09-03  James Livingston  <jrl@ids.org.au>
15808         * shell/rb-shell.c: fix compilation with iPod support enabled
15809         
15810 2005-09-02  Colin Walters  <walters@verbum.org>
15812         * shell/rb-shell.c (struct RBShellPrivate): Add
15813         idle_hide_mainwindow_id.
15814         (rb_shell_constructor): Move taskbar skipping hint into
15815         rb_shell_set_visibility.
15816         (idle_hide_mainwindow): New function.
15817         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
15818         racy hack to avoid rb appearing in taskbar when minimized.
15820 2005-09-01  Colin Walters  <walters@verbum.org>
15822         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
15824         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
15825         from gtkstatusicion.c.
15827         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
15829         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
15830         TrayShowWindow entry.
15831         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
15832         (rb_tray_icon_constructor): Create action group here.
15833         (rb_tray_icon_finalize): Destroy action group.
15834         (rb_tray_icon_set_property): Don't take an action group.
15835         (rb_tray_icon_new): Ditto.
15836         (tray_popup_position_menu): Some mostly boilerplate code
15837         to position menu.
15838         (rb_tray_icon_button_press_event_cb): Position menu.
15839         (rb_tray_icon_get_geom): New function used for the shell
15840         to set minimization hints.
15842         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
15844         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
15845         (struct RBShellPrivate): Change visible to iconified.
15846         (set_icon_geometry): New function from Søren Sandmann to
15847         tell Metacity where to draw the minimization animiation.
15848         (rb_shell_window_state_cb): Update iconified.
15849         (rb_shell_get_visibility): New function to say whether
15850         or not we're currently visible.
15851         (rb_shell_set_visibility): Update to minimize to
15852         tray or present as appropriate.
15853         (rb_shell_window_delete_cb): On window close, just
15854         minimize to tray if we're deleted.
15855         (rb_shell_set_window_title): Kill old notification code.
15856         (rb_shell_toggle_visibility): Nwe function.
15857         (rb_shell_cmd_toggle_visibility): Call it.
15858         (rb_shell_constructor): Skip the taskbar.
15859         (tray_destroy_cb): Better debugging.
15860         
15861 2005-09-01  Colin Walters  <walters@verbum.org>
15863         * data/ui/rhythmbox-ui.xml: Add MusicClose.
15865         * configure.ac: Enable bonobo by default.
15866         
15867 2005-09-01  Colin Walters  <walters@verbum.org>
15869         * configure.ac: Default to old art.  Add macros subdir.
15871         * Makefile.am (SUBDIRS): Add macros.
15873         * macros/Makefile.am: New.
15874         
15875 2005-09-01  Colin Walters  <walters@verbum.org>
15877         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
15878         rb-shell-player.xml.
15880         * remote/dbus/rb-remote-dbus.h: Deleted.
15881         
15882         * remote/dbus/Makefile.am: Delete all the junk, just dist
15883         rb-print-playing.py and rb-set-rating.py.
15885         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
15887         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
15889 2005-09-02  James Livingston  <jrl@ids.org.au>
15891         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
15892         file from cvs
15894         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
15895         (rb_shell_constructor): Patches from Jonathan Matthew
15896         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
15897         a crash when using "browse this artist".
15899 2005-08-31  Colin Walters  <walters@verbum.org>
15901         * configure.ac: Add --with-old-art configure switch.  Also
15902         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
15903         but it doesn't work.
15905         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
15906         Don't use eel_create_colorized_pixbuf for new art.
15907         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
15909         * data/art-clearlooks: New artwork.
15910         
15911 2005-08-31  Colin Walters  <walters@verbum.org>
15913         * shell/main.c (main): Fix Bastien's commit to continue to focus
15914         the window with GTK+ 2.8 at least.
15915         
15916 2005-08-31  Colin Walters  <walters@verbum.org>
15918         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
15919         is already loaded.
15921         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
15923 2005-08-31  Bastien Nocera  <hadess@hadess.net>
15925         * README: remove mentions of the xine-lib backend
15926         * shell/main.c: (main): make it compilable with gtk+ < 2.8
15928 2005-08-30  Colin Walters  <walters@verbum.org>
15930         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
15931         Make non-visible sources insensitive.
15932         
15933 2005-08-30  Colin Walters  <walters@verbum.org>
15935         * shell/rb-shell.c: Don't use GConf for selected source; it's
15936         confusing to have the selected source change after startup,
15937         and since we don't save other things it's not worth saving this.
15939         * sources/rb-playlist-source.c:
15940         * sources/rb-library-source.c:
15941         * sources/rb-iradio-source.c:
15942         * sources/rb-ipod-source.c: Delete internal-name property usage.
15943         * sources/rb-source.c: Delete internal-name property.
15945         * data/rhythmbox.schemas: Delete selected_source.
15946         
15947 2005-08-30  Colin Walters  <walters@verbum.org>
15949         * sources/rb-sourcelist.c: Make playing source bold instead of
15950         displaying a pixbuf; it's much less ugly.
15951         
15952 2005-08-30  Colin Walters  <walters@verbum.org>
15954         * sources/rb-source.c:
15955         * sources/rb-source.h: New virtual method try_playlist.
15957         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
15958         impl_try_playlist.
15959         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
15960         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
15961         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
15962         need to.
15963         (stations_view_drag_data_received_cb): Don't check for iradio uris;
15964         in theory we should though...
15966         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
15967         list in rb_shell_construct now.
15968         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
15969         RBiPodSource.
15970         (rb_shell_constructor): Create library, iradio, ipod here.
15971         (rb_shell_source_deleted_cb): Use source directly instead of
15972         indirecting through type.
15973         (rb_shell_sync_selected_source): Ditto.
15974         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
15975         from the type instead of special-casing.
15976         (rb_shell_guess_type_for_uri) 
15977         (rb_shell_add_uri)
15978         (handle_one_uri_with_possible_metadata): New functions.
15979         (rb_shell_load_uri): Refactor to allow loading playlists again,
15980         also use other URI infrastructure.
15982         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
15983         (rb_shell_player_error): Always set entry error on error, instead
15984         of depending on EOF behavior.
15986         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
15987         to just invoke rb_shell_add_uri.
15988         (rb_playlist_manager_parse_file): Return error instead of tossing
15989         up dialog box directly.
15990         (load_playlist_response_cb): Display error here.
15991         (add_uri_to_playlist): Delete.
15992         (handle_playlist_entry_into_playlist_cb): Renamed to
15993         handle_playlist_entry_cb.
15995         * shell/rb-playlist-manager.h: Add error, update prototype.
15997         * lib/rb-file-helpers.c:
15998         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
16000 2005-08-29  Colin Walters  <walters@verbum.org>
16002         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
16003         if entry already exists.  Use rhythmdb_entry_set_uninserted.
16005         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
16006         needlessly duping string, and use rhythmdb_entry_set_uninserted.
16007         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
16009         * shell/rb-shell.h (enum RBShellError): Add some more errors.
16010         Prototype rb_shell_set_song_property.
16012         * shell/rb-shell.xml: Export setSongProperty.
16014         * shell/rb-shell.c (rb_shell_set_song_property): New function.
16015         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
16016         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
16018         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
16019         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
16020         want to notify of the change.
16021         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
16023         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
16024         logic error; idle functions would be enqueued for each set.
16025         (rhythmdb_entry_set): Fix assertion logic error.
16027         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
16028         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
16029         Return if the entry already exists.
16030         
16031 2005-08-29  Colin Walters  <walters@verbum.org>
16033         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
16034         "inserted" member which we use to keep track of
16035         whether or not an entry is in the DB.  Prototype
16036         rhythmdb_entry_set_uninserted.
16038         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
16039         flag.
16040         (rhythmdb_entry_insert): Assert entry is not already inserted.
16041         (rhythmdb_process_metadata_load): Update to call _set_uninserted
16042         just after creating entry.
16043         (rhythmdb_entry_set): Document, and fail on uninserted entries.
16044         (rhythmdb_entry_set_nonotify): Ditto.
16045         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
16046         entries.
16047         (rhythmdb_entry_set_internal): Change notify flag to
16048         notify_if_inserted.  Also move notification after assertions.
16050         Update all existing callers of rhythmdb_entry_set_internal
16051         to give TRUE for notify_if_inserted; this should be what
16052         we want but may be an efficiency hit.
16053         
16054 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
16056         * shell/rb-shell-player.c: (rb_shell_player_init),
16057         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
16058         (rb_shell_player_set_playing_source_internal),
16059         (rb_shell_player_sync_with_selected_source): Notify the player when an
16060         entry has updated the title, album or artist field, and resync the big
16061         display.
16062         
16063         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
16064         * sources/rb-library-source.c: (rb_library_source_class_init),
16065         (impl_get_config_widget):
16066         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
16067         * sources/rb-source.c:
16068         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
16069         get_album functions in rb-source and adapted other sources accordingly.
16070         
16071 2005-08-29  Colin Walters  <walters@verbum.org>
16073         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
16074         signal_change member.
16075         (threadsafe_entry_set): New function.
16076         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
16077         (rhythmdb_entry_set_nonotify): New function; just call
16078         threadsafe_entry_set with FALSE.
16079         (rhythmdb_entry_set_internal): Take a notify flag; if true
16080         add the change to our pending set.
16082         Also update all internal callers of rhythmdb_entry_set_internal
16083         to pass FALSE.  Some of these may be bugs however and need to
16084         pass TRUE...
16086         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
16087         rhythmdb_entry_set, and rename rhythmdb_entry_set to
16088         rhythmdb_entry_set_nonotify.
16090         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
16091         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
16093         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
16095         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
16096         * sources/rb-source.c (rb_source_update_play_statistics): 
16097         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
16098         * sources/rb-ipod-source.c (entry_set_string_prop) 
16099         (load_ipod_db_idle_cb): 
16100         * shell/rb-shell.c (rb_shell_set_rating_impl): 
16101         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
16102         (info_available_cb): 
16103         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
16104         (rb_station_properties_dialog_sync_entries): 
16105         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
16107         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
16108         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
16109         
16110 2005-08-29  Colin Walters  <walters@verbum.org>
16112         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
16114         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
16115         linking insanity.
16117         * widgets/rb-header.c (sanitize_string): New function, extracted
16118         from old info_url.  Be sure to always strip the string.
16119         (info_url): Rewrite to take artist/album, and generate a sane
16120         URL for them from last.fm, which is better than allmusic.com in
16121         that they support Rhythmbox, and have a *SANE* URL scheme.
16122         (artist_info_url, album_info_url): Delete.
16123         (rb_header_sync): Use info_url.
16125 2005-08-29  James Livingston  <jrl@ids.org.au>
16127         * sources/rb-source.c: (rb_source_search): Check to ensure that this
16128         is implemented before calling it. Many sources don't implement the
16129         method.
16131 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
16133         * data/glade/create-playlist.glade:  Cleanup the layout,
16134         and add a few more mnemonics.
16135         * shell/rb-playlist-manager.c:
16136         (rb_playlist_manager_cmd_load_playlist),
16137         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
16138         capitalization for window titles.
16139         * widgets/rb-query-creator-properties.c: Add mnemonics
16140         to checkbutton labels.
16141         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
16142         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
16144 2005-08-28  Colin Walters  <walters@verbum.org>
16146         * data/rhythmbox.schemas: Delete search_text for library
16147         and iradio; this isn't a persistent value anymore.
16148         Closes #313757.
16149         
16150         * sources/rb-source.h:
16151         * sources/rb-source.c: Delete impl_can_search.
16153         * sources/rb-iradio-source.c: Delete search_text usage.
16154         * sources/rb-library-source.c: Ditto.
16156         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
16157         search when source is set, and just do rb_source_search in
16158         rb_source_header_search_cb.
16160         * shell/rb-shell.c (rb_shell_append_source): Don't
16161         initiate search.
16163         * shell/Makefile.am: Don't dist dashboard.c.
16165 2005-08-28  Colin Walters  <walters@verbum.org>
16167         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
16168         
16169 2005-08-28  Colin Walters  <walters@verbum.org>
16171         * data/org.gnome.Rhythmbox.service.in: New.
16173         * data/Makefile.am: Install service file.
16175         * configure.ac: Define DBUS_SERVICES_DIR.
16177         * autogen.sh: Set ACLOCAL_FLAGS.
16179         * macros/acinclude.m4: New.
16180         
16181 2005-08-28  Colin Walters  <walters@verbum.org>
16183         Initial patch from Jonathan Matthew; closes 313684.
16185         * rhythmdb/rhythmdb-tree.c:
16186         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
16187         (save_entry): Return on error.
16188         (rhythmdb_tree_save): Handle error when saving the
16189         db; additionally, handle errors from fclose and unlink,
16190         and print error too.
16192 2005-08-28  Colin Walters  <walters@verbum.org>
16194         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
16195         extra _.
16196         
16197 2005-08-28  Colin Walters  <walters@verbum.org>
16199         * configure.ac: Change iPod support to --with-ipod;
16200           automatically enable it if we have HAL.  Try to
16201           support both HAL 0.5 and HAL 0.2.  Break out
16202           totem-plparser into its own check so later we
16203           can do version tests there too.
16204           Kill dashboard support.
16205         
16206         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
16207         to support HAL > 0.5, but preserve the old code for HAL < 0.5
16208         Closes #310017.
16209         
16210         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
16211         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
16213         * sources/Makefile.am: Also handle
16214         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
16216         * shell/dashboard.c: Delete; someone should just write a little
16217         python shim which lists on the D-BUS interface and writes the
16218         stuff to Dashboard.  Even better Dashboard should be ported
16219         to D-BUS and do the listening itself, perhaps on an abstract
16220         "org.gnome.MusicPlayer" interface or something.
16222         * shell/rb-shell.c: Kill dashboard support.
16224 2005-08-28  Colin Walters  <walters@verbum.org>
16226         * remote/dbus/rb-print-playing.py: New file.
16228 2005-08-28  Colin Walters  <walters@verbum.org>
16230         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
16231         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
16233         * shell/rb-shell-player.h:
16234         * shell/rb-shell-player.c: Add playing-uri-changed signal.
16235         * shell/rb-shell-player.xml: Export it.
16237         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
16238         (rb_shell_error_quark): New.
16240         * shell/rb-shell.h: Prototype.  Also add RBShellError.
16241         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
16242         
16243 2005-08-28  Colin Walters  <walters@verbum.org>
16245         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
16246         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
16247         bonobo_unlock.
16248         (rb_remote_bonobo_preinit): Lock setting moved here.
16249         (rb_remote_bonobo_init): From here.
16251         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
16252         Also invoke handle_cmdline in the right place.
16253         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
16254         GFunc.
16256 2005-08-28  James Livingston  <jrl@ids.org.au>
16258         * NEWS: keep the NEWS file up to date, so we don't have to do it all
16259         when 0.9.1 comes around.
16261 2005-08-28  James Livingston  <jrl@ids.org.au>
16263         * iradio/rb-new-station-dialog.c:
16264         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
16265         bug 314477.
16267 2005-08-28  James Livingston  <jrl@ids.org.au>
16269         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
16271         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
16272         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
16273         is a song is longer than 60 minutes. Closes bug 313311.
16275 2005-08-27  James Livingston  <jrl@ids.org.au>
16277         * data/glade/create-playlist.glade:
16278         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
16279         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
16280         "minutes" as an option in the playlist limit menu.
16282         * rhythmdb/rhythmdb-query-model.c:
16283         (rhythmdb_query_model_class_init),
16284         (rhythmdb_query_model_set_property),
16285         (rhythmdb_query_model_get_property),
16286         (rhythmdb_query_model_update_limited_entries): Allow query models to
16287         have a time limit
16288         
16289         * shell/rb-playlist-manager.c:
16290         (rb_playlist_manager_set_automatic_playlist),
16291         (rb_playlist_manager_cmd_edit_automatic_playlist):
16292         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
16293         (rb_playlist_source_get_query), (impl_receive_drag),
16294         (rb_playlist_source_new_from_xml),
16295         (rb_playlist_source_save_to_xml),
16296         (rb_playlist_source_songs_sort_order_changed_cb),
16297         (rb_playlist_source_do_query):
16298         * sources/rb-playlist-source.h:
16299         * widgets/rb-query-creator.h: Allow playlists to be limited by time
16301 2005-08-27  James Livingston  <jrl@ids.org.au>
16303         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
16305         * configure.ac:
16306         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
16307         non-standard location. Closes bug 314640.
16309 2005-08-26  Colin Walters  <walters@verbum.org>
16310         
16311         Patch from Olivier Blin <oblin@mandriva.com>
16313         * widgets/eggnotificationbubble.c (draw_bubble): 
16314         Handle extreme-left case as well.
16315         
16316 2005-08-26  Colin Walters  <walters@verbum.org>
16318         * shell/rb-shell.c (idle_save_state): Don't do this.
16319         (rb_shell_construct): Remove idle calls to idle_save_state.
16320         We should save the playlists automatically when they're
16321         modified.
16322         (rb_shell_load_uri): Don't try to re-stat entry if it already
16323         exists.
16325         * shell/rb-shell-player.c: Keep track of entry we are attempting
16326         to play.
16327         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
16328         Don't double-free error.
16329         (rb_shell_player_play_entry): Signal errors.
16330         (rb_shell_player_entry_activated_cb): Ditto.
16331         (rb_shell_player_property_row_activated_cb): Ditto.
16332         (rb_shell_player_set_playing_source_internal): Unset attempted
16333         playing entry.
16334         (rb_shell_player_error): Refactor to be usable both sync and
16335         async.  Handle case where displayed entry differs from entry.
16336         (error_cb): Move GDK locking here.
16338         * shell/main.c (main): Drop most commandline arguments for D-BUS;
16339         people can just use dbus-send or python.  We only support focusing
16340         and loading files.
16341         (load_uri_args): New function, extracted from handle_cmdline.
16342         (dbus_load_uri, bonobo_load_uri): New functions.
16344         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
16345         appropriate.
16347         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
16348         * remote/dbus/rb-remote-dbus.c: Deleted.
16350         * player/rb-player-gst.c: Clear any pending idle handlers when we
16351         close the player.  Signal errors generated during open/play etc
16352         as synchronous errors.
16354         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
16355         
16356 2005-08-26  Colin Walters  <walters@verbum.org>
16358         * shell/rb-shell.c (rb_shell_present): Try harder.
16360 2005-08-26  Colin Walters  <walters@verbum.org>
16362         * shell/rb-shell.c (rb_shell_present): Try to handle
16363         GTK_MINOR_VERSION < 8.
16365 2005-08-26  James Livingston  <jrl@ids.org.au>
16367         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
16368         <pbrobinson@gmail.com>
16370 2005-08-26  Colin Walters  <walters@verbum.org>
16372         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
16374 2005-08-25  Colin Walters  <walters@verbum.org>
16376         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
16377         Delete.
16378         (rb_shell_player_do_next_with_rating): Move back into
16379         rb_shell_player_do_next.
16380         (rb_shell_player_entry_activated_cb): Remove call to
16381         rb_shell_player_auto_adjust_rating.
16382         (do_next_idle): Just call rb_shell_player_do_next.
16384         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
16386 2005-08-25  Colin Walters  <walters@verbum.org>
16388         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
16389         before gtk_window_present_with_time.
16390         
16391 2005-08-25  Colin Walters  <walters@verbum.org>
16393         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
16394         default.
16396         * shell/rb-shell.c (rb_shell_constructor): Adapted from
16397         rb_shell_construct.  This is so we only have to do g_object_new.
16398         (rb_shell_get_player): New function.
16399         (rb_shell_get_player_path): Ditto.
16400         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
16401         
16402         * shell/rb-shell.h: Prototype them.
16404         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
16405         export over D-BUS.
16406         (reemit_playing_signal): New function.
16407         (rb_shell_player_open_playlist_location): Use return values from
16408         rb_player_open, rb_player_close, etc. instead of checking "error".
16409         Return a gboolean on failure.
16410         (rb_shell_player_open_entry): Just open entry location, don't
16411         print to stderr.
16412         (rb_shell_player_play): Handle retval from rb_player_play.  Return
16413         a gboolean.
16414         (do_next_idle): Move logic for handling of end of playlist here.
16415         (rb_shell_player_set_playing_entry): Take a GError, return a
16416         gboolean.  Update to use gboolean return values.
16417         (rb_shell_player_do_previous): Delete lots of crazy duplicate
16418         logic.  Signal an error on end of playlist.  Also signal error if
16419         we're not playing.  Move heuristic for replaying the song into
16420         rb_shell_player_cmd_previous.
16421         (rb_shell_player_do_next_with_rating): Signal error on end of
16422         playlist.
16423         (rb_shell_player_do_next): Return errors.
16424         (rb_shell_player_cmd_previous): Heuristic for restarting song
16425         moved here; the idea is you generally only want that from the GUI.
16426         (rb_shell_player_cmd_play): Handle error.
16427         (rb_shell_player_playpause): Signal errors.
16428         (filter_mmkeys): Use rb_shell_player_cmd_previous and
16429         rb_shell_player_cmd_next in favor of the internal _do functions.
16430         
16431         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
16432         errors.  Update prototypes for above changes.
16434         * shell/main.c: More tightly integrate D-BUS; register various
16435         major singleton objects here.  Fix handle_cmdline so we only
16436         process extra arguments, not every argument.
16438         * shell/Makefile.am: Generate D-BUS glue headers.
16440         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
16441         into shell/main.c.  Now this file just acts as a client library.
16442         Not heavily tested.
16444         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
16445         Moved here.
16446         (rb_remote_bonobo_init): Move long CORBA rant here along with
16447         setting of lock functions.
16449         * player/rb-player-gst.c (rb_player_construct)
16450         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
16451         on error.
16453         * player/rb-player.h: Update prototypes.
16455         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
16456         rb-remote-bonobo.c.
16457         (rb_threads_init): Don't set gdk lock functions here.
16459 2005-08-25  James Livingston  <jrl@ids.org.au>
16461         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
16463         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
16464         * lib/rb-tree-dnd.h:
16465         * rhythmdb/rhythmdb-property-model.c:
16466         (rhythmdb_property_model_class_init),
16467         (rhythmdb_property_model_drag_source_init),
16468         (rhythmdb_property_model_iter_parent),
16469         (rhythmdb_property_model_row_draggable),
16470         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
16471         (rhythmdb_property_model_drag_data_get),
16472         (rhythmdb_property_model_enable_drag):
16473         * rhythmdb/rhythmdb-property-model.h:
16474         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
16475         (rb_playlist_manager_set_property), (append_new_playlist_source),
16476         (rb_playlist_manager_save_playlists):
16477         * shell/rb-shell.c: (rb_shell_construct),
16478         (sourcelist_drag_received_cb):
16479         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
16480         * sources/rb-playlist-source.c: (impl_receive_drag):
16481         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
16482         (rb_sourcelist_model_drag_dest_init),
16483         (rb_sourcelist_model_set_dnd_targets),
16484         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
16485         (rb_sourcelist_model_row_drop_position),
16486         (rb_sourcelist_model_get_drag_target),
16487         (rb_sourcelist_model_drag_data_get):
16488         * sources/rb-sourcelist-model.h:
16489         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
16490         (rb_sourcelist_init), (rb_sourcelist_get_property),
16491         (rb_sourcelist_selection_changed_cb):
16492         * sources/rb-sourcelist.h:
16493         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
16494         improve drag-n-drop support. Allow dragging of item from property
16495         views to the source list, to create new automatic playlists. Allow
16496         playlist re-ordering. Fix dragging from Rhythmbox to other
16497         applications. (Closes bug 147337)
16499 2005-08-24  Colin Walters  <walters@verbum.org>
16501         Patch from Olivier Blin <oblin@mandriva.com>
16503         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
16504         correctly in the case where the window is next to monitor edge.
16506 2005-08-24  James Livingston  <jrl@ids.org.au>
16508         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
16509         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
16510         a gobject property to get the query model that backs the playlist.
16512 2005-08-24  James Livingston  <jrl@ids.org.au>
16514         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
16515         (handle_playlist_entry_into_playlist_cb),
16516         (rb_playlist_manager_playlist_entries_changed): Disable the "create
16517         audio cd" menu item when a non-playlist source is selected, or the
16518         playlist is empty. (Closes Bug 313253)
16520 2005-08-24  James Livingston  <jrl@ids.org.au>
16522         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16523         Fix the playlist length checkso it doesn't report 0 for automatic
16524         playlists. This was stopping automati playlists being burnt to cd.
16526 2005-08-24  James Livingston  <jrl@ids.org.au>
16528         * configure.ac:
16529         * sources/rb-playlist-source-recorder.c: (burn_cd):
16530         * sources/rb-playlist-source.c:
16531         (rb_playlist_source_songs_sort_order_changed_cb):
16532         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
16533         more warnings that occur when compiling RPMs on Fedora.
16535 2005-08-24  James Livingston  <jrl@ids.org.au>
16537         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
16538         was stopping some distros gcc version compiling.
16540 2005-08-24  James Livingston  <jrl@ids.org.au>
16542         * NEWS:
16543         * data/glade/create-playlist.glade:
16544         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
16545         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
16546         (rhythmdb_query_free), (rhythmdb_query_serialize),
16547         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
16548         * rhythmdb/rhythmdb.h:
16549         * shell/rb-playlist-manager.c:
16550         (rb_playlist_manager_set_automatic_playlist),
16551         (rb_playlist_manager_cmd_edit_automatic_playlist):
16552         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
16553         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
16554         (impl_receive_drag), (rb_playlist_source_new_from_xml),
16555         (rb_playlist_source_save_to_xml),
16556         (rb_playlist_source_songs_sort_order_changed_cb),
16557         (rb_playlist_source_do_query):
16558         * sources/rb-playlist-source.h:
16559         * widgets/Makefile.am:
16560         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
16561         (rb_entry_view_set_sorting_order):
16562         * widgets/rb-query-creator-private.h:
16563         * widgets/rb-query-creator-properties.c:
16564         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
16565         (stringCriteriaGetWidgetData),
16566         (escapedStringCriteriaSetWidgetData),
16567         (escapedStringCriteriaGetWidgetData), (set_rating_score),
16568         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
16569         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
16570         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
16571         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
16572         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
16573         (relativeTimeCriteriaCreateWidget),
16574         (relativeTimeCriteriaSetWidgetData),
16575         (relativeTimeCriteriaGetWidgetData):
16576         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
16577         (rb_query_creator_class_init), (rb_query_creator_constructor),
16578         (rb_query_creator_dispose), (rb_query_creator_set_property),
16579         (rb_query_creator_get_property), (rb_query_creator_load_query),
16580         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
16581         (get_entry_for_property), (rb_query_creator_get_query),
16582         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
16583         (limit_toggled_cb), (lookup_row_by_widget),
16584         (remove_button_click_cb), (append_row),
16585         (get_property_index_from_proptype), (select_criteria_from_value),
16586         (property_option_menu_changed), (create_property_option_menu),
16587         (create_criteria_option_menu), (sort_option_menu_changed),
16588         (setup_sort_option_menu):
16589         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
16590         playlists. The two most notable improvements are 1) adding more
16591         properties to the query creator, making it much easier to add more in
16592         the future, and 2) allow playlists to be sorted, from the query editor
16593         if they gave limits, and by clicking on column headers if they don't.
16595         Files added: widgets/rb-query-creator-private.h,
16596         sources/rb-query-creator-properties.c
16598 2005-08-21  James Livingston  <jrl@ids.org.au>
16600         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
16601         error=NULL. This stops some crashes.
16603 2005-08-19  Colin Walters  <walters@verbum.org>
16605         Patch from Olivier Blin <oblin@mandriva.com>
16607         * widgets/eggnotificationbubble.c (force_window): Support top
16608         orientation.
16609         * widgets/eggnotificationbubble.h: Remove
16610         egg_notification_bubble_force_window from header.
16611         
16612 2005-08-18  James Livingston  <jrl@ids.org.au>
16614         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
16615         with the changes since then.
16617 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
16619         * shell/rb-shell-player.c: (rb_shell_player_init),
16620         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
16621         (rb_shell_player_volume_widget_changed_cb):
16622         * sources/rb-iradio-source.c:
16623         * sources/rb-library-source.c:
16624         * sources/rb-playlist-source.c:
16625         * widgets/Makefile.am:
16626         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
16627         (bacon_volume_button_class_init), (bacon_volume_button_init),
16628         (bacon_volume_button_dispose), (bacon_volume_button_new),
16629         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
16630         (bacon_volume_button_scroll), (bacon_volume_button_press),
16631         (cb_button_timeout), (cb_button_press), (cb_button_release),
16632         (bacon_volume_release_grab), (cb_dock_press),
16633         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
16634         (bacon_volume_scale_new), (bacon_volume_scale_press),
16635         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
16636         * widgets/bacon-volume.h:
16637         * widgets/rb-volume.c:
16638         * widgets/rb-volume.h:
16639           Use BaconVolumeButton (#300867).
16641 2005-08-17  James Livingston  <jrl@ids.org.au>
16643         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
16644         (rhythmdb_process_metadata_load): don't reset the First Seen time
16645         whenever we recheck the metadata.
16647 2005-08-17  James Livingston  <jrl@ids.org.au>
16649         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16650         temporary workaround to stop crashes when trying to burn an empty
16651         playlist. Doesn't disable the menu item which is the better solution
16652         (Bug 313253).
16654 2005-08-15  James Livingston  <jrl@ids.org.au>
16656         * shell/rb-source-header.c: (rb_source_header_init),
16657         (rb_source_header_sync_control_state),
16658         (rb_source_header_search_activate_cb):
16659         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
16660         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
16661         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
16662         (rb_search_entry_init), (rb_search_entry_searching),
16663         (rb_search_entry_activate_cb):
16664         * widgets/rb-search-entry.h: Move focus to the entry view when user
16665         presses enter in the search box. Patch from Paolo Borelli
16666         <pborelli@katamail.com> (Closes bug 128110)
16668 2005-08-15  James Livingston  <jrl@ids.org.au>
16670         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
16671         (rb_playlist_manager_new_playlist):
16672         * shell/rb-playlist-manager.h:
16673         * shell/rb-shell.c: (rb_shell_construct),
16674         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
16675         the source list to be shown when a new playlist is created. (Closes
16676         bug 161935)
16678 2005-08-15  James Livingston  <jrl@ids.org.au>
16680         * widgets/rb-header.c: (rb_header_init),
16681         (rb_header_set_show_timeline): disable the seek slider, rather than
16682         hiding it, which more closely follows the HIG. (Closes bug 139102)
16684 2005-08-13  Colin Walters  <walters@verbum.org>
16686         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
16687         rb_shell_hidden_notify.
16688         (rb_shell_hidden_notify): Notify if the shell is hidden.
16689         (rb_shell_set_visibility_impl): Debug goo.
16691         * shell/rb-shell.h: Export rb_shell_hidden_notify.
16693         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
16694         when the user clicks on notification.
16696         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
16697         CD burn is complete.
16698         (rb_playlist_source_recorder_finalize): Unref shell.
16699         (rb_playlist_source_recorder_new): Take shell.
16701         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
16702         Pass shell to RBPlaylistSourceRecorder.
16703         
16704 2005-08-13  Colin Walters  <walters@verbum.org>
16706         * lib/rb-thread.c:
16707         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
16708           time to convert.
16710 2005-08-13  Colin Walters  <walters@verbum.org>
16712         * widgets/eggnotificationbubble.h:
16713         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
16714         * widgets/eggtrayicon.c:
16715         * widgets/eggtrayicon.h: Add notification API.
16716         * shell/rb-tray-icon.c:
16717         * shell/rb-tray-icon.h: Add notification API.
16718         * shell/rb-shell.c: Notify on song change.
16720 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
16722         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
16723         Correct an inversion of two lines causing NULL to be unreffed
16725 ============ Version 0.9.0
16727 2005-08-10  Bastien Nocera  <hadess@hadess.net>
16729         * configure.ac: 0.9.0, whee!
16730         * NEWS: badly updated
16731         * remote/bonobo/Makefile.am:
16732         * remote/bonobo/rb-remote-bonobo.h:
16733         * shell/Makefile.am:
16734         * shell/main.c: make distcheck fixes