2006-11-29 James Livingston <doclivingston@gmail.com>
[rhythmbox.git] / ChangeLog
blob8e74759828bd6df171acdb7480ce87c8818892b3
1 2006-11-29  James Livingston  <doclivingston@gmail.com>
3         patch by: Thomas Thurman  <thomas@thurman.org.uk>
5         * data/glade/song-info-multiple.glade:
6         * data/glade/song-info.glade:
7         * data/glade/station-properties.glade: Make the return key close these
8         dialogs. Fixes #379148
10 2006-11-29  James Livingston  <doclivingston@gmail.com>
12         patch by: Ingo Planz  <planz@mi-fu-berlin.de>
14         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Make the
15         podcast plugin set unknown dates to the current time, not the start of
16         the epoch. Fixes #367572.
18 2006-11-29  James Livingston  <doclivingston@gmail.com>
20         * lib/rb-tree-dnd.c: (rb_tree_drag_source_row_draggable),
21         (rb_tree_drag_source_drag_data_delete),
22         (rb_tree_drag_source_drag_data_get),
23         (rb_tree_drag_dest_drag_data_received),
24         (rb_tree_drag_dest_row_drop_possible),
25         (rb_tree_drag_dest_row_drop_position), (rb_tree_dnd_drag_drop_cb):
26         * lib/rb-tree-dnd.h:
27         * rhythmdb/rhythmdb-property-model.c:
28         (rhythmdb_property_model_drag_source_init):
29         * rhythmdb/rhythmdb-query-model.c:
30         (rhythmdb_query_model_drag_source_init),
31         (rhythmdb_query_model_drag_dest_init):
32         * sources/rb-sourcelist-model.c:
33         (rb_sourcelist_model_drag_dest_init),
34         (rb_sourcelist_model_drag_source_init): don't use the same method
35         names as the GtkTreeDnd ones, since it break bindings to other
36         languages.
38         * shell/rb-shell.c: (_scan_idle), (rb_shell_constructor): run the
39         removable media scan in an idle callback.
41 2006-11-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
43         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_construct):
44         Use the right variable name when setting the "profile" property on the
45         sink.  Fixes #379532 and closes #379314 again.
47 2006-11-27  James Livingston  <doclivingston@gmail.com>
49         patch by: Adam Zimmerman <adam_zimmerman@sfu.ca>
51         * plugins/magnatune/magnatune/MagnatuneSource.py: fix a race condition
52         in the Magnatune plugin, from #373684.
54 2006-11-26  James Livingston  <doclivingston@gmail.com>
56         patch from Alex Jones  <alex@weej.com>
58         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_construct): set
59         the "profile" on the audio sink, if it's present. Fixes #379314.
61 2006-11-23  James Livingston  <doclivingston@gmail.com>
63         * bindings/python/rhythmdb.defs:
64         * bindings/python/rhythmdb.override: fix some binding stuff.
66 2006-11-23  James Livingston  <doclivingston@gmail.com>
68         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
70         * plugins/magnatune/magnatune/MagnatuneSource.py: remove credit card
71         details from debug output. Fixes #378355.
73 2006-11-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
75         * shell/rb-shell-player.c: (rb_shell_player_play):
76         Don't crash if current_playing_source is NULL.  Fixes #378195.
77         
78         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
79         rb_shell_player_play isn't very useful, use _playpause if not
80         already playing instead.
82 2006-11-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
84         * rhythmdb/rhythmdb-property-model.c: (query_model_cb),
85         (rhythmdb_property_model_drag_data_get):
86         * rhythmdb/rhythmdb-query-model.c:
87         (rhythmdb_query_model_drag_data_get),
88         (rhythmdb_query_model_drag_data_received):
89         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
90         (rhythmdb_tree_init), (rhythmdb_tree_finalize),
91         (rhythmdb_tree_entry_new_internal), (rhythmdb_tree_entry_delete),
92         (remove_one_song), (rhythmdb_tree_entry_lookup_by_id),
93         (rhythmdb_tree_entry_foreach), (rhythmdb_tree_entry_count),
94         (rhythmdb_tree_entry_foreach_by_type), (count_entries),
95         (rhythmdb_tree_entry_count_by_type):
96         * rhythmdb/rhythmdb.c:
97         * rhythmdb/rhythmdb.h:
98         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
99         (rb_daap_share_set_property), (rb_daap_share_get_property),
100         (rb_daap_share_new), (add_entry_to_mlcl), (send_chunked_file),
101         (send_mapped_file), (databases_cb), (db_entry_added_cb),
102         (db_entry_deleted_cb), (rb_daap_share_server_start),
103         (rb_daap_share_server_stop):
104         * daapsharing/rb-daap-share.h:
105         * daapsharing/rb-daap-sharing.c: (create_share):
106         Move id-to-entry map from daap share into rhythmdb.
108         * shell/rb-playlist-manager.c: (create_name_from_selection_data),
109         (rb_playlist_manager_new_playlist_from_selection_data):
110         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
111         * sources/rb-browser-source.c: (rb_browser_source_constructor):
112         * sources/rb-sourcelist-model.c:
113         (rb_sourcelist_model_drag_data_received),
114         (rb_sourcelist_model_row_drop_position),
115         (rb_sourcelist_model_get_drag_target),
116         (rb_sourcelist_model_drag_data_get):
117         * sources/rb-static-playlist-source.c: (impl_receive_drag),
118         (rb_static_playlist_source_add_id_list),
119         (rb_static_playlist_source_add_uri_list):
120         * widgets/rb-entry-view.c:
121         * widgets/rb-property-view.c:
122         Add a new drag-and-drop type: application/x-rhythmbox-entry
123         containing a list of entry IDs, and use it for DnD within the
124         application.  Avoids having to pick a URI to use for an entry, so we
125         can make DnD of podcast entries (and anything else where playback URI
126         is not the same as the entry location) work as expected.
127         Fixes #343537.
129 2006-11-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
131         * shell/rb-shell.c: (rb_shell_present):
132         Clear the skip-taskbar hint when presenting the window. Fixes #377963.
134 2006-11-20  James Livingston  <doclivingston@gmail.com>
136         * sources/rb-library-source.c: (impl_paste): don't explode if we can't
137         find the responsible source. Fixes #377029
139 2006-11-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
141         * lib/rb-file-helpers.c: (rb_uri_append_path), (rb_uri_append_uri),
142         (rb_uri_get_dir_name), (rb_uri_get_short_path_name):
143         * lib/rb-file-helpers.h:
144         * sources/rb-ipod-source.c: (ipod_get_filename_for_uri):
145         Implement rb_uri_get_short_path_name to replace
146         gnome_vfs_uri_extract_short_path name with something that doesn't
147         reject unknown URI schemes such as daap://.  Fixes #361077.
149         * tests/Makefile.am:
150         * tests/test-file-helpers.c: (test_get_short_path_name),
151         (START_TEST), (rb_file_helpers_suite), (main):
152         Add tests for the above.
154 2006-11-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
156         * widgets/bacon-volume.c: (bacon_volume_button_class_init),
157         (bacon_volume_button_new), (bacon_volume_button_style_set),
158         (bacon_volume_scale_class_init), (bacon_volume_button_update_icon),
159         (bacon_volume_scale_value_changed),
160         (bacon_volume_button_load_icons):
161         * widgets/bacon-volume.h:
162         Update bacon-volume from libbacon CVS again.
164 2006-11-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
166         * widgets/bacon-volume.c: (bacon_volume_load_icons):
167         Fall back to old icon names if the icon naming spec compliant
168         names don't work.  From #369491.
170 2006-11-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
172         * plugins/audiocd/Makefile.am:
173         Stop automake complaining about duplicate definitions.
175 2006-11-17  James Livingston  <doclivingston@gmail.com>
177         * sources/rb-ipod-source.c: (rb_ipod_source_dispose),
178         (load_ipod_db_idle_cb), (rb_ipod_load_songs): remove the idle callback
179         when disposing of the source. Fixes #376155
181         * plugins/daap/Makefile.am: fix some distcheck brokenness.
183 2006-11-17  James Livingston  <doclivingston@gmail.com>
185         * po/POTFILES.in: add missing files to POTFILES.in. Fixes #375978
187 2006-11-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
189         * shell/rb-playlist-manager.c: (*):
190         General cleanup, add appropriate object references and implement
191         dispose method.  Should fix #357099.
193 2006-11-15  James Livingston  <doclivingston@gmail.com>
195         patch by: William Lachance  <wrlach@gmail.com>
197         * rhythmdb/rhythmdb-query-model.c:
198         (rhythmdb_query_model_album_sort_func): improve sorting when some
199         tracks are missing track/disc number info. Fixes #371322
201 2006-11-14  James Livingston  <doclivingston@gmail.com>
203         patch by: Alex Lancaster
205         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): support podcast
206         episode dates which are missing the seconds. Fixes #373845
208 2006-11-13  James Livingston  <doclivingston@gmail.com>
210         * bindings/python/rhythmdb.override: bidn a few other pieces of
211         rhythmdb.
213 2006-11-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
215         * shell/rb-statusbar.c: (rb_statusbar_class_init),
216         (rb_statusbar_dispose), (rb_statusbar_finalize),
217         (rb_statusbar_set_property):
218         Remove idle handler in dispose, rather than finalize.
219         Keep references on all referenced objects (duh?).
220         Fixes #374443.
222 2006-11-12  James Livingston  <doclivingston@gmail.com>
224         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
226         * shell/rb-statusbar.c: (rb_statusbar_init): Make the progress bar in
227         the status bar smaller, so it isn't too big. Fixes #368757.
229 2006-11-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
231         * plugins/daap/rb-daap-plugin.c: (mdns_service_added),
232         (mdns_service_removed):
233         Take GDK lock in mDNS callbacks.  Fixes UI hangs when DAAP shares
234         disappear.
236 2006-11-12  James Livingston  <doclivingston@gmail.com>
238         * plugins/audioscrobbler/rb-lastfm-source.c:
239         (rb_lastfm_source_constructor), (rb_lastfm_source_add_station_cb): add
240         more supported last.fm radio things. From #373622
242 2006-11-12  James Livingston  <doclivingston@gmail.com>
244         * rhythmdb/rhythmdb.c: check the URI isn't NULL, in case ti got
245         through the earlier checks. Fixes #373605
247 2006-11-12  James Livingston  <doclivingston@gmail.com>
249         * sources/rb-library-source.c:
250         (rb_library_source_add_child_source): sort the child-library sources
251         the same as the library by default.
253 2006-11-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
255         * daapsharing/rb-daap-src.c: (rb_daap_src_open):
256         Don't try to report the size if we didn't get one.
257         Fixes server-side decoded playback from mt-daapd (but seeking doesn't
258         work), from #350276.
260 2006-11-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
262         * daapsharing/rb-daap-sharing.c:
263         (rb_daap_sharing_default_share_name), (create_share),
264         (share_name_changed_cb):
265         * daapsharing/rb-daap-sharing.h:
266         * plugins/daap/rb-daap-plugin.c: (update_config_widget),
267         (make_config_widget), (impl_create_configure_dialog):
268         Update DAAP preferences widget when displaying it, and
269         populate the share name entry with the default if there's nothing
270         there already.  Fixes #340279.
272 2006-11-11  James Livingston  <doclivingston@gmail.com>
274         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
276         * plugins/magnatune/magnatune/MagnatuneSource.py:
277         * plugins/magnatune/magnatune/__init__.py: Add toolbar actions for
278         Magnatune stuff. From #345783
280 2006-11-10  James Livingston  <doclivingston@gmail.com>
282         * plugins/generic-player/rb-nokia770-source.c:
283         (hal_udi_is_nokia770):
284         * plugins/generic-player/rb-psp-source.c: (hal_udi_is_psp):
285         * sources/rb-ipod-source.c: (hal_udi_is_ipod): don't shutdown the HAL
286         context if it wasn't inited. Fixes #372824
288 2006-11-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
290         * plugins/daap/rb-daap-plugin.h:
291         Add the file I missed last time.
293 2006-11-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
295         * CVS-SURGERY:
296         * backends/gstreamer/Makefile.am:
297         * backends/gstreamer/rb-player-gst.c:
298         * configure.ac:
299         * daapsharing/Makefile.am:
300         * daapsharing/rb-daap-connection.c:
301         (rb_daap_connection_disconnect):
302         * daapsharing/rb-daap-src.c: (rb_daap_src_set_plugin),
303         (rb_daap_src_open):
304         * daapsharing/rb-daap-src.h:
305         * data/glade/Makefile.am:
306         * data/rhythmbox.schemas:
307         * data/ui/Makefile.am:
308         * plugins/Makefile.am:
309         * plugins/daap/.cvsignore:
310         * plugins/daap/Makefile.am:
311         * plugins/daap/daap.rb-plugin.desktop.in:
312         * plugins/daap/rb-daap-plugin.c:
313         * shell/Makefile.am:
314         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
315         * shell/rb-shell.c: (construct_sources), (rb_shell_quit):
316         * sources/Makefile.am:
317         * sources/rb-daap-source.c: (rb_daap_source_class_init),
318         (rb_daap_source_new), (connection_auth_cb),
319         (connection_connecting_cb), (connection_disconnected_cb),
320         (release_connection), (rb_daap_source_disconnect),
321         (rb_daap_source_show_popup):
322         * sources/rb-daap-source.h:
323         Mangle DAAP into a plugin.  This disables DAAP with GStreamer 0.8.
324         Fixes #336150.
326 2006-11-09  James Livingston  <doclivingston@gmail.com>
328         * rhythmdb/rhythmdb.c: take the ref before calling the delete
329         implementation, not after. From #372851.
331 2006-11-09  James Livingston  <doclivingston@gmail.com>
333         patch by: Gilles Dartiguelongue  <dartigug@esiee.fr>
335         * plugins/Makefile.am:
336         * plugins/audiocd/Makefile.am: fix build when linking with --as-needed
337         fixes #371178.
339 2006-11-09  James Livingston  <doclivingston@gmail.com>
341         * plugins/audiocd/rb-audiocd-plugin.c: (impl_activate): use
342         g_signal_connect_object not g_signal_object, which stops it beign
343         called after the plugin is disposed.
345 2006-11-09  James Livingston  <doclivingston@gmail.com>
347         * plugins/audioscrobbler/rb-audioscrobbler.c:
348         (rb_audioscrobbler_finalize):don't attempt to use the SoupSession
349         after we're finalised. Should fix #370513
351 2006-11-08  James Livingston  <doclivingston@gmail.com>
353         patch by: Jerry Tan  <jerry.tan@sun.com>
355         * data/glade/song-info.glade: set more a11y properties on the
356         label-for/labelled-by info. Fixes #368179.
358 2006-11-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
360         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
361         (rb_entry_view_dispose), (rb_entry_view_finalize):
362         Unref objects and remove idle handlers in dispose rather than
363         finalize.  Should fix #364783.
365 2006-11-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
367         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
368         Rename 'ctxt' to 'parser' to avoid confusion, fix the check for
369         xmlCreateMemoryParserCtxt returning NULL that was previously checking
370         the wrong variable.  Really fixes #336842.
372 2006-11-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
374         * plugins/iradio/Makefile.am:
375         Actually install the UI file.
377 2006-11-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
379         * plugins/generic-player/rb-generic-player-source.c:
380         (rb_generic_player_source_constructor),
381         (rb_generic_player_source_dispose),
382         (rb_generic_player_source_load_playlists):
383         Don't crash if the source is destroyed before it gets a chance
384         to load playlists.
386 2006-11-06  James Livingston  <doclivingston@gmail.com>
388         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_monitor_uri_path):
389         * rhythmdb/rhythmdb.c: some leak fixes
391 2006-11-06  James Livingston  <doclivingston@gmail.com>
393         * bindings/python/rb.override: change the right function in the last
394         commit.
396 2006-11-06  James Livingston  <doclivingston@gmail.com>
398         * bindings/python/rb.override: unwrap the python string instead of
399         wrapping it. Oops.
401 2006-11-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
403         * tests/test-utils.c: (test_rhythmdb_setup):
404         Fix build break, #371106.
406 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
408         * tests/Makefile.am:
409         * tests/test-rhythmdb-property-model.c: (_get_property_count),
410         (START_TEST), (rhythmdb_property_model_suite), (main):
411         * tests/test-rhythmdb-query-model.c: (START_TEST),
412         (rhythmdb_query_model_suite), (main):
413         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite):
414         * tests/test-utils.c: (start_test_case), (end_step),
415         (end_test_case), (mark_signal), (set_waiting_signal),
416         (wait_for_signal), (test_rhythmdb_setup), (test_rhythmdb_shutdown),
417         (set_entry_string), (set_entry_ulong), (set_entry_hidden):
418         * tests/test-utils.h:
419         Split up rhythmdb tests, add tests for RhythmDBPropertyModel.
421 2006-11-04  James Livingston  <doclivingston@gmail.com>
423         * lib/rb-glade-helpers.c: (rb_glade_xml_new): don't use rb_file() is
424         we were passed a absolute path, e.g. from the plugin file find
425         function.
427 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
429         patch somewhat by:  Oskari Saarenmaa  <os@sumu.org>
431         * remote/dbus/rb-client.c: (main):
432         * shell/rb-shell.c: (rb_shell_hidden_notify), (rb_shell_do_notify):
433         * shell/rb-shell.h:
434         * shell/rb-shell.xml:
435         Add dbus method to request a notification for the playing song, and
436         an argument to rhythmbox-client to use it.  Fixes #359593.
438 2006-11-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
440         * remote/dbus/rb-print-playing.py:
441         Revert changes I accidentally committed a while ago.
443 2006-11-03  James Livingston  <doclivingston@gmail.com>
445         * data/glade/song-info.glade: make more labels selectable, from #368641
447 2006-11-03  James Livingston  <doclivingston@gmail.com>
449         * shell/rb-shell-clipboard.c: (get_focussed_widget),
450         (rb_shell_clipboard_cmd_select_all),
451         (rb_shell_clipboard_cmd_select_none): make Select All select text in
452         the focussed widget if it's a text entry. Fixes #364590
454 2006-11-03  James Livingston  <doclivingston@gmail.com>
456         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
457         (bacon_volume_button_init), (bacon_volume_button_dispose),
458         (bacon_volume_button_new), (bacon_volume_button_realize),
459         (bacon_volume_button_press), (bacon_volume_key_release),
460         (bacon_volume_release_grab), (cb_dock_key_release),
461         (bacon_volume_scale_get_type), (bacon_volume_scale_value_changed),
462         (bacon_volume_theme_changed), (bacon_volume_load_icons):
463         * widgets/bacon-volume.h: update bacon-volume-widget from cvs.
464         Fixes #369491
466 2006-10-31  James Livingston  <doclivingston@gmail.com>
468         * configure.ac: remove spaces around '=' where they shouldn't be,
469         fixes building when you have libgpod 0.3.x
471 2006-10-31  James Livingston  <doclivingston@gmail.com>
473         patch by: Nguyen Thai Ngoc Duy  <pclouds@gmail.com>
475         * rhythmdb/rhythmdb.c: don't remove stale db entries when the grace
476         period is 0. Fixes #351425
478 2006-10-31  James Livingston  <doclivingston@gmail.com>
480         patch by: Luca Ferretti  <elle.uca@libero.it>
482         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
483         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
484         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
485         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
486         * plugins/ipod/ipod.rb-plugin.desktop.in:
487         * plugins/iradio/iradio.rb-plugin.desktop.in:
488         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
489         * plugins/sample-python/sample-python.rb-plugin.desktop.in:
490         * plugins/sample/sample.rb-plugin.desktop.in: Improve the descriptions
491         of the plugins. Fixes #365326
493 2006-10-31  James Livingston  <doclivingston@gmail.com>
495         * plugins/audiocd/Makefile.am: fix build on Solaris, fixes #367989.
497 2006-10-31  James Livingston  <doclivingston@gmail.com>
499         * data/glade/song-info.glade: set the mnemonic target for the labels
500         in the details tab. Fixes #368179.
502 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
504         * configure.ac:
505         When complaining about GStreamer being too old, use the right variable
506         name for the version we want.
508 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
510         * shell/rb-shell.h:
511         * shell/rb-tray-icon.c: (rb_tray_icon_notify):
512         * shell/rb-tray-icon.h:
513         * bindings/python/rb.defs:
514         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
515         (rb_shell_notify_playing_entry), (rb_shell_hidden_notify):
516         * sources/rb-playlist-source-recorder.c: (burn_cd):
517         * sources/rb-podcast-source.c:
518         (rb_podcast_source_start_download_cb),
519         (rb_podcast_source_finish_download_cb),
520         (rb_podcast_source_feed_updates_avaliable_cb):
521         Change the various notification functions to take a parameter
522         specifying whether the notification was explicitly requested by the
523         user.  Add a function to display a notification for an entry,
524         including streaming song metadata.
526         * shell/rb-shell-player.c: (rb_shell_player_stop):
527         Emit playing-song-changed and playing-uri-changed when stopping
528         playback.
530         * sources/Makefile.am:
531         * sources/rb-streaming-source.c:
532         * sources/rb-streaming-source.h:
533         Add a base class for streaming sources, handling streaming song
534         metadata and buffering messages, emitting notifications on song
535         changes, and updating play count statistics when playback stops.
537         * plugins/audioscrobbler/Makefile.am:
538         * plugins/audioscrobbler/rb-lastfm-source.c:
539         (rb_lastfm_source_class_init), (rb_lastfm_source_finalize),
540         (rb_lastfm_source_constructor), (impl_get_status),
541         (rb_lastfm_message_cb), (rb_lastfm_source_new_station),
542         (rb_lastfm_source_title_from_uri),
543         (rb_lastfm_source_entry_added_cb), (rb_lastfm_source_metadata_cb),
544         (rb_lastfm_song_changed_cb), (impl_activate):
545         * plugins/audioscrobbler/rb-lastfm-source.h:
546         * plugins/iradio/Makefile.am:
547         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
548         (rb_iradio_source_constructor), (impl_get_status),
549         (info_available_cb), (playing_source_changed_cb):
550         * sources/rb-iradio-source.h:
551         Use the new streaming source base class for iradio and last.fm
552         sources.  Fixes #364094.
554 2006-10-30  James Livingston  <doclivingston@gmail.com>
556         * podcast/rb-podcast-manager.c:
557         (rb_podcast_manager_db_entry_deleted_cb): when deleting a feed, cancel
558         any downloads from it before deleting the post entry. Fixes #366567.
560 2006-10-30  James Livingston  <doclivingston@gmail.com>
562         * shell/rb-shell-clipboard.c: remove the Control-T shortcut from
563         move-to-trash, since there have been reports of people accidently
564         deleting tracks and it probably isn't a common enough operation to be
565         worth a shortcut.
567 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
569         * backends/gstreamer/rb-player-gst.c:
570         * configure.ac:
571         * daapsharing/rb-daap-src.c: (rb_daap_src_init):
572         Fix GStreamer 0.8 build (and some typos in configure.ac).
574 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
576         patch largely by:  Edgar Luna  <eald@linuxuanl.org>
578         * sources/rb-source.c: (rb_source_class_init),
579         (rb_source_set_property), (rb_source_get_property):
580         Add a property to RBSource for plugin-created sources to have a
581         pointer to the RBPlugin object that created them.
583         * plugins/audiocd/Makefile.am:
584         * plugins/audiocd/multiple-album.glade:
585         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
586         * sources/Makefile.am:
587         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
588         * sources/rb-audiocd-source.h:
589         If musicbrainz returns multiple albums, present the user with a
590         choice between them.  Fixes #333215.
592         * configure.ac:
593         * plugins/Makefile.am:
594         Remove unused old audio CD stuff, only build audiocd plugin if we have
595         libnautilus-burn.  Fixes #367440.
597 2006-10-30  James Livingston  <doclivingston@gmail.com>
599         patch by: Brian McKenna  <puffnfresh@gmail.com>
601         * plugins/pythonconsole/pythonconsole.py: allow the python colsole to
602         handle blocks. Fixes #366696.
604 2006-10-30  James Livingston  <doclivingston@gmail.com>
606         * rhythmdb/rhythmdb.c: make the DB busy when processing files. From #349148
608 2006-10-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
610         * shell/rb-shell-player.c: (rb_shell_player_class_init),
611         (rb_shell_player_sync_with_source),
612         (rb_shell_player_get_playing_time_string), (tick_cb):
613         * widgets/rb-header.c: (rb_header_sync_time),
614         (slider_moved_callback), (rb_header_update_elapsed),
615         (rb_header_elapsed_changed_cb):
616         Revert dbus interface breakage introduced in the fix for #365908.
618 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
620         patch by: Luca Ferretti  <elle.uca@libero.it>
622         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
623         Remove the access keys from the podcast-specific column headers.
624         Fixes #360640 again.
626 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
628         patch by: James Livingston <doclivingston@gmail.com>
630         * sources/rb-browser-source.c: (rb_browser_source_constructor):
631         Only register the search actions once.  From #346801.
633 2006-10-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
635         * shell/rb-shell-player.c: (rb_shell_player_error):
636         When handling an error, try playing the next stream URL if we have
637         one, rather than stopping playback.  From #358140.
639 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
641         * shell/rb-shell.c: (handle_playlist_entry_cb):
642         Don't crash if we can't guess a source for a URI in the playlist.
643         Fixes #366261.
645 2006-10-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
647         * shell/rb-shell-player.c: (rb_shell_player_class_init),
648         (rb_shell_player_sync_with_source),
649         (rb_shell_player_get_playing_time_string), (rb_shell_player_seek),
650         (tick_cb):
651         * widgets/rb-header.c: (rb_header_sync_time),
652         (rb_header_elapsed_changed_cb):
653         Treat elapsed time as signed, since rb_player_get_time returns a
654         signed value.  When actually using the value, mostly treat negative
655         values as 0.  Fixes #365908.
657 2006-10-27  James Livingston  <doclivingston@gmail.com>
659         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
661         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): handle MusicBrainz
662         returning 0 for the year/month/day. Fixes #364837.
664 2006-10-27  James Livingston  <doclivingston@gmail.com>
666         patch by: Luca Ferretti  <elle.uca@libero.it>
668         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
669         access keys from the entry view columns headers - they cause
670         keybindings conflicts, headaches for translators and the HIG says
671         they are bad. Fixes #360640.
673 2006-10-27  James Livingston  <doclivingston@gmail.com>
675         patch by: Luca Ferretti  <elle.uca@libero.it>
677         * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
678         access keys from the entry view columns headers - they cause
679         keybindings conflicts, headaches for translators and the HIG says
680         they are bad. Fixes #360640.
682 2006-10-27  James Livingston  <doclivingston@gmail.com>
684         * rhythmdb/rhythmdb-private.h:
685         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): fix some glib 2.8 build
686         issues
688 2006-10-27  James Livingston  <doclivingston@gmail.com>
690         * plugins/artdisplay/Makefile.am:
691         * plugins/audioscrobbler/Makefile.am:
692         * plugins/iradio/Makefile.am: fix make clean
694 2006-10-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
696         * rhythmdb/rhythmdb-query.c: (rhythmdb_read_encoded_property):
697         Fall back to strtod() if g_ascii_strtod() doesn't work.
699         * rhythmdb/rhythmdb-tree.c: (save_entry_double):
700         Write floating point values using g_ascii_dtostr() to avoid
701         problems with locale-specific representations.  From #353205.
703 2006-10-25  James Livingston  <doclivingston@gmail.com>
705         * plugins/artdisplay/Makefile.am:
706         * plugins/audioscrobbler/Makefile.am:
707         * plugins/iradio/Makefile.am: fix "make distcheck"
709 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
711         patch by: Brian Cameron <brian.cameron@sun.com>
713         * plugins/audiocd/Makefile.am:
714         Link audiocd plugin with libnautilus-burn as required to get it to work
715         on Solaris.  Fixes #363288.
717 2006-10-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
719         patch by:  Gabor Kelemen  <kelemeng@gnome.hu>
721         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
722         Clarify that we don't submit actual songs to last.fm, just information
723         on what you're listening to.  Fixes #364014.
725 2006-10-24  Bastien Nocera  <hadess@hadess.net>
727         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
728         (bacon_volume_button_class_init), (bacon_volume_button_new),
729         (bacon_volume_key_release), (cb_button_timeout), (cb_button_press),
730         (cb_dock_button_press), (cb_dock_key_release), (cb_dock_key_press),
731         (bacon_volume_scale_value_changed): update from libbacon, to get
732         better accessibility support (Closes: #364637)
734 2006-10-24  James Livingston  <doclivingston@gmail.com>
736         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
738         * configure.ac: fix some typos and leftovers from disabled->enabled
739         changes. Fixes #364217
741 2006-10-23  William Jon McCann  <mccann@jhu.edu>
743         * shell/rb-source-header.c (rb_source_header_init):
744         Don't require source header cells to be homogeneous.
745         Patch from #359188
747 2006-10-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
749         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
750         Pause the pipeline while buffering.  Fixes #358290.
752 2006-10-23  Bastien Nocera  <hadess@hadess.net>
754         * configure.ac: update required libgpod version to avoid crashes
755         when starting up with an iPod connect (Closes: #352972)
756         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path),
757         (hal_udi_is_ipod): remove outdated ifdefs
759 2006-10-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
761         * plugins/Makefile.am:
762         * plugins/power-manager/rb-power-manager-plugin.c:
763         Don't try to build the power-manager plugin with dbus < 0.35.
765 2006-10-22  James Livingston  <doclivingston@gmail.com>
767         patch by: Ed Catmur  <ed@catmur.co.uk>
769         * plugins/artdisplay/Makefile.am:
770         * plugins/artdisplay/artdisplay/__init__.py:
771         * plugins/artdisplay/rhythmbox-missing-artwork.svg: display some
772         placeholder art when none is available, to avoid having the widget pop
773         in and out of existance.
775 2006-10-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
777         * plugins/lyrics/lyrics.py:
778         Set the lyrics window transient for the main window so it can
779         actually be seen in party mode.  Fixes #362981.
781 2006-10-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
783         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
784         * sources/rb-source.c: (rb_source_class_init),
785         (rb_source_can_show_properties), (rb_source_song_properties):
786         * sources/rb-source.h:
787         Only enable the 'properties' item in the 'music' menu if the selected
788         source implements the show_properties method.  Fixes #356485.
790 2006-10-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
792         * shell/rb-shell-player.c:
793         (rb_shell_player_property_row_activated_cb):
794         Take the entry to play from the play order, rather than grabbing the
795         first entry in the query model.  Fixes #362042.
797 2006-10-16  James Livingston  <doclivingston@gmail.com>
799         * shell/main.c: (main): save custom menu accelerators before exiting.
800         Fixed #362300
802 2006-10-13  Ryan P Skadberg  <skadz@stigmata.org>
804         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
805         I HATE adding this patch, but I'm sick of hitting Yes once
806         and hour.  Working around brain-dead podcasts.
808 2006-10-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
810         * plugins/lyrics/lyrics.py:
811         Disconnect the create-song-info handler when deactivated.
812         Fixes #361882.
814 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
816         * widgets/rb-search-entry.c: (rb_search_entry_changed_cb):
817         Reset the style when clearing the search text.  Fixes #361295.
819 2006-10-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
821         * rhythmdb/rhythmdb-query-model.c:
822         (rhythmdb_query_model_entry_changed_cb):
823         Don't emit entry-prop-changed for hidden signals from chained query
824         models, as the model will also propagate the parent model's
825         entry-prop-changed signal.  Fixes mysteriously unreported crashes.
827 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
829         * sources/rb-ipod-source.c: (generate_ipod_filename):
830         * lib/rb-cut-and-paste-code.c: (rb_make_valid_utf8):
831         * lib/rb-cut-and-paste-code.h:
832         Move eel_make_valid_utf8 to lib/, make the replacement
833         character a parameter.
835         * rhythmdb/rhythmdb.c: (make_access_failed_error),
836         (rhythmdb_execute_multi_stat_info_cb),
837         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_load):
838         When constructing an error message that includes a URI, make sure the
839         URI is valid utf-8.  Fixes #353588.
841 2006-10-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
843         * player/rb-recorder-gst.c: (rb_recorder_construct),
844         (acb_wave_time):
845         Add an extra audioconvert element to allow endianness conversion on
846         big-endian machines, and fix a few endianness issues in the .wav
847         reading code.  Fixes #355611.
849 2006-10-09  James Livingston  <doclivingston@gmail.com>
851         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
853         * widgets/eggtrayicon.c: (egg_tray_icon_notify): work around a
854         libnotify 0.3.0 bug, as it doesn't handle escaped messages properly.
855         Fixes #357553.
857 2006-10-09  James Livingston  <doclivingston@gmail.com>
859         patch by: Luca Ferretti  <elle.uca@libero.it>
861         * data/glade/song-info-multiple.glade:
862         * data/glade/song-info.glade: Fix a few HIG issues.
864 2006-10-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
866         * plugins/audioscrobbler/rb-lastfm-source.c:
867         (rb_lastfm_source_class_init):
868         Return TRUE from impl_try_playlist so playback starts in a separate
869         thread.
871 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
873         * shell/main.c: (main):
874         Call bind_textdomain_codeset ("gstreamer-0.10", "UTF-8") so we get
875         UTF-8 GStreamer messages.  Fixes #357973.
877 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
879         * shell/rb-shell.c: (rb_shell_constructor):
880         Remove a line that accidentally slipped in from some other universe.
882 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
884         * plugins/audiocd/rb-audiocd-plugin.c: (_delete_cb):
885         Don't remove sources from the hash table while iterating it on
886         shutdown.  Fixes #359583.
888 2006-10-07  James Livingston  <doclivingston@gmail.com>
890         patch from Alex Lancaster  <alexl@users.sourceforge.net>
892         * shell/rb-shell.c: change the keybinding for "Plugins" to not
893         conflict with others. Fixes #355904
895 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
897         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_dispose),
898         (rhythmdb_query_model_chain),
899         (rhythmdb_query_model_entry_changed_cb),
900         (rhythmdb_query_model_base_entry_prop_changed),
901         (rhythmdb_query_model_base_entry_removed):
902         For chained models, propagate the parent model's entry-prop-changed
903         signal rather than emitting one from the db entry-changed handler.
904         This ensures that when the change filters the entry out of the parent
905         model, property models attached to the child model get the entry
906         change signal before the post-entry-delete signal, so they can
907         decrement the refcount for the right property value.  Fixes #359083.
909 2006-10-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
911         * plugins/audioscrobbler/Makefile.am:
912         define NULL
914 2006-10-07  James Livingston  <doclivingston@gmail.com>
916         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
917         (rb_lastfm_src_uri_get_protocols), (rb_lastfm_src_uri_set_uri):
918         * plugins/audioscrobbler/rb-lastfm-source.c:
919         (rb_lastfm_source_get_playback_uri): work around GStreamer not support
920         hypens in URI schemes.
922 2006-10-06  William Jon McCann  <mccann@jhu.edu>
924         * plugins/iradio/Makefile.am:
925         * plugins/audioscrobbler/Makefile.am:
926         * plugins/cd-recorder/Makefile.am:
927         Don't clean all plugin_DATA.
928         Fixes #360210
930 2006-10-06  James Livingston  <doclivingston@gmail.com>
932         patch from Matt N  <fisxoj@gmail.com>
934         * backends/gstreamer/rb-player-gst.c: (emit_signal_idle),
935         (rb_player_gst_bus_cb):
936         * backends/rb-player.c: (rb_player_interface_init),
937         (_rb_player_emit_tick), (_rb_player_emit_event):
938         * backends/rb-player.h: let the backend emit named "events", for
939         things that the core shouldn't know about.
941         * rhythmdb/rhythmdb.h:
942         * widgets/rb-header.c: (get_extra_metadata), (rb_header_sync): add
943         support for streams containing album metadata.
945         * plugins/audioscrobbler/Makefile.am:
946         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
947         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
948         (impl_activate), (impl_deactivate), (impl_create_configure_dialog):
949         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
950         * plugins/audioscrobbler/rb-lastfm-source.c:
951         * plugins/audioscrobbler/rb-lastfm-source.h: Add support for playback
952         of last.fm streams. From #313049.
954 2006-10-06  James Livingston  <doclivingston@gmail.com>
956         * plugins/magnatune/magnatune/Makefile.am: add a file I missed
957         committing. Oops.
959 2006-10-06  James Livingston  <doclivingston@gmail.com>
961         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
963         * configure.ac:
964         * data/rhythmbox.schemas:
965         * plugins/Makefile.am:
966         * plugins/magnatune/Makefile.am:
967         * plugins/magnatune/magnatune-loading.glade:
968         * plugins/magnatune/magnatune-prefs.glade:
969         * plugins/magnatune/magnatune-purchase.glade:
970         * plugins/magnatune/magnatune.rb-plugin.desktop.in:
971         * plugins/magnatune/magnatune/BuyAlbumHandler.py:
972         * plugins/magnatune/magnatune/MagnatuneSource.py:
973         * plugins/magnatune/magnatune/TrackListHandler.py:
974         * plugins/magnatune/magnatune/__init__.py:
975         * plugins/magnatune/magnatune_circle_small.png:
976         * plugins/magnatune/magnatune_logo_color_small.png:
977         * plugins/magnatune/magnatune_logo_color_tiny.png: add a plugin to
978         play and download tracks from the MagnaTune online music store. From
979         #345783.
981 2006-10-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
983         * lib/rb-proxy-config.c: (rb_proxy_config_init),
984         (rb_proxy_config_dispose), (rb_proxy_config_finalize),
985         (check_auto_proxy_config), (get_proxy_config):
986         Don't crash when eel_gconf_get_string returns NULL.
987         Fixes #359974.
989 2006-10-04  James Livingston  <doclivingston@gmail.com>
991         patch by: Fryderyk Dziarmagowski  <freetz@gmx.net>
993         * plugins/audiocd/Makefile.am: fix the plugin when linking with
994         --as-needed. Fixes #358730
996 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
998         patch by:  William Jon McCann  <mccann@jhu.edu>
1000         * sources/rb-iradio-source.c: (playing_source_changed_cb):
1001         Fix some stupidity I introduced that caused crashes on shutdown.
1002         Fixes #359181.
1004 2006-10-02  William Jon McCann  <mccann@jhu.edu>
1006         * plugins/audiocd/Makefile.am:
1007         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
1008         * plugins/iradio/.cvsignore:
1009         * plugins/iradio/Makefile.am:
1010         * plugins/iradio/rb-iradio-plugin.c: (impl_activate),
1011         (impl_deactivate):
1012         * plugins/power-manager/.cvsignore:
1013         Install missing iradio ui file.  Don't leak ui filename.
1014         Fix iradio install dir. Fix audiocd install dir.
1015         Remove unused code from audio cd plugin.
1017         Fixes #359170
1019 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1021         * sources/rb-ipod-source.c: (impl_move_to_trash):
1022         Uncomment rhythmdb_entry_move_to_trash call that I accidentally
1023         commented out while fixing bug 355235.  Oops.
1025 2006-10-03  James Livingston  <doclivingston@gmail.com>
1027         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold): downgrade
1028         non-unicode warnings to debug statements, since they can occur with
1029         slightly broken files.
1031         * plugins/iradio/rb-iradio-plugin.c: (impl_deactivate):
1032         * shell/rb-shell.c: (rb_shell_source_deleted_cb): fix a crasher if the
1033         iradio plugin is disabled and re-enabled.
1035 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1037         * rhythmdb/rhythmdb.c: (rhythmdb_register_core_entry_types),
1038         (rhythmdb_entry_podcast_post_get_type):
1039         * rhythmdb/rhythmdb.h:
1040         * tests/bench-rhythmdb-load.c: (main):
1041         Add definitions for some common extra-metadata fields,
1042         remove iradio entry type definition, add the concept of entry type
1043         categories, define categories for the core entry types.
1044         Categories are used to decide if an entry can be copied to a removable
1045         device, if it should be reported to audioscrobbler, etc.
1047         * shell/Makefile.am:
1048         * shell/rb-shell-player.c: (rb_shell_player_class_init),
1049         (rb_shell_player_constructor), (rb_shell_player_init),
1050         (rb_shell_player_get_property), (open_location_thread),
1051         (rb_shell_player_open_location),
1052         (rb_shell_player_sync_with_source),
1053         (rb_shell_player_set_playing_source_internal), (tick_cb):
1054         * shell/rb-shell.c: (construct_widgets), (construct_sources),
1055         (rb_shell_player_elapsed_changed_cb):
1056         Remove iradio-specific code, use extra metadata fields for streaming
1057         title and artist name.
1059         * data/ui/rhythmbox-ui.xml:
1060         Add a placeholder for 'new ...' menu items.
1062         * Makefile.am:
1063         * sources/Makefile.am:
1064         * configure.ac:
1065         * data/rhythmbox.schemas:
1066         * plugins/Makefile.am:
1067         * plugins/iradio/Makefile.am:
1068         * plugins/iradio/iradio-ui.xml:
1069         * plugins/iradio/iradio.rb-plugin.desktop.in:
1070         * plugins/iradio/rb-iradio-plugin.c: (rb_iradio_plugin_init),
1071         (rb_iradio_plugin_finalize), (impl_activate), (impl_deactivate),
1072         (rb_iradio_plugin_class_init):
1073         iradio plugin, enabled and hidden by default.
1075         * plugins/audioscrobbler/rb-audioscrobbler.c:
1076         (rb_audioscrobbler_song_changed_cb):
1077         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
1078         * sources/rb-daap-source.c: (rb_daap_source_new):
1079         * sources/rb-ipod-source.c: (rb_ipod_source_new), (impl_paste):
1080         Define entry type categories, and use them where appropriate.
1082         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
1083         (rb_iradio_source_constructor), (rb_iradio_source_new),
1084         (impl_get_status), (impl_want_uri), (buffering_cb),
1085         (check_entry_type), (streaming_title_request_cb),
1086         (streaming_artist_request_cb), (extra_metadata_gather_cb),
1087         (info_available_cb), (playing_entry_changed_cb),
1088         (playing_source_changed_cb):
1089         Move streaming metadata and buffering handling here from
1090         rb-shell-player.c.  Emit extra-metadata notify signals when the streaming
1091         title or artist changes, and handle request and gather signals for
1092         those.
1094         * widgets/rb-header.c: (rb_header_class_init),
1095         (rb_header_set_property), (rb_header_get_property),
1096         (rb_header_new), (append_and_free), (rb_header_sync):
1097         * widgets/rb-header.h:
1098         Rework to use streaming artist and title extra-metadata.
1099         streaming-artist overrides entry artist, and streaming-title means
1100         entry title is a stream name, displayed in brackets.
1102         * doc/reference/Makefile.am:
1103         * doc/reference/rhythmbox.types:
1104         Remove iradio stuff from gtk-doc build.
1106         Fixed #347097.
1108 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1110         patch mostly by: Ed Catmur  <ed@catmur.co.uk>
1112         * bindings/python/rhythmdb.defs:
1113         * lib/rb-marshal.list:
1114         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
1115         (rhythmdb_emit_entry_deleted),
1116         (rhythmdb_entry_extra_metadata_accumulator),
1117         (rhythmdb_entry_request_extra_metadata),
1118         (rhythmdb_emit_entry_extra_metadata_notify),
1119         (unset_and_free_g_value), (rhythmdb_entry_gather_metadata):
1120         * rhythmdb/rhythmdb.h:
1121         Add signals for dealing with transient metadata outside the set stored
1122         in RhythmDBEntry:
1123         - entry_extra_metadata_request returns a value for the requested
1124           metadata field
1125         - entry_extra_metadata_notify notifies observers of a change to an
1126           extra metadata field
1127         - entry_extra_metadata_gather returns the values of all extra metadata
1128           fields
1130         * shell/rb-shell-player.c: (rb_shell_player_set_db_internal),
1131         (rb_shell_player_extra_metadata_cb):
1132         Sync the display on extra metadata changes and emit dbus signals when
1133         we can marshal the value.
1135         * shell/rb-shell.c: (rb_shell_get_song_properties):
1136         Implement rb_shell_song_get_properties using
1137         rhythmdb_entry_gather_metadata.
1139         * plugins/rb-python-module.c: (pyg_value_g_value_as_pyobject),
1140         (pyg_value_g_value_from_pyobject), (rb_python_module_init_python):
1141         * configure.ac:
1142         Add GValue marshaller for python (until bug 351072 is fixed)
1144         From #345592.
1146 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1148         * configure.ac:
1149         * data/rhythmbox.schemas:
1150         * plugins/Makefile.am:
1151         * plugins/power-manager/Makefile.am:
1152         * plugins/power-manager/power-manager.rb-plugin.desktop.in:
1153         * plugins/power-manager/rb-power-manager-plugin.c:
1154         (rb_gpm_plugin_class_init), (rb_gpm_plugin_init), (ignore_error),
1155         (inhibit_cb), (inhibit), (uninhibit_cb), (uninhibit),
1156         (playing_changed_cb), (impl_activate), (impl_deactivate):
1157         gnome-power-manager integration: inhibit suspend while playing.
1158         Fixes #344979.
1160 2006-10-02  James Livingston  <doclivingston@gmail.com>
1162         update by: Aloriel  <jorge.gonzalez.gonzalez@hispalinux.es>
1163         and Alex Lancaster  <alexl@users.sourceforge.net>
1165         * help/C/rhythmbox.xml: fix some mispellings and grammer.
1166         Fixes #353143, #353146 and #353147.
1168 ============ Version 0.9.6
1170 2006-10-01  James Livingston  <doclivingston@gmail.com>
1172         * configure.ac: bump version to 0.9.6. enable tag-writing and
1173         ipod-writing by default
1175         * NEWS: update NEWS
1177 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1179         patch by:  William Jon McCann  <mccann@jhu.edu>
1181         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
1182         Use a local GError in case no error pointer pointer is passed in.
1183         From bug #358396.
1185 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1187         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
1188         Don't reference members of freed structures.
1190 2006-09-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1192         patch by:  William Jon McCann  <mccann@jhu.edu>
1194         * player/rb-recorder-gst.c: (rb_recorder_burn):
1195         Drop GDK lock before entering n-c-b.  Fixes #353894?
1197 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1199         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
1200         (impl_activate):
1201         Handle error/hangup conditions on the LIRC connection.  Fixes #358049.
1203 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1205         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
1206         Call lirc_init before lirc_readconfig so we don't crash if the user's
1207         .lircrc file has any mode sections. Fixes #357419.
1209 2006-09-24  James Livingston  <doclivingston@gmail.com>
1211         * sources/rb-daap-source.c: (rb_daap_sources_shutdown): don't assert
1212         if we get called twice, as that can happen. Fixes #357214.
1214 2006-09-24  James Livingston  <doclivingston@gmail.com>
1216         * backends/rb-encoder.h: add "file access" error
1218         * lib/rb-file-helpers.c: (rb_dot_dir):
1219         * podcast/rb-podcast-manager.c:
1220         (rb_podcast_manager_download_file_info_cb): remove directory creation
1221         race condition.
1223         * backends/gstreamer/rb-encoder-gst.c: (create_parent_dirs_uri),
1224         (create_parent_dirs), (rb_encoder_gst_encode): check result of
1225         directory creation. Fixes #347743
1227 2006-09-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1229         * plugins/audioscrobbler/rb-audioscrobbler.c: (*):
1230         Strip trailing whitespace
1232 2006-09-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1234         * rhythmdb/Makefile.am:
1235         * rhythmdb/rhythmdb-private.h:
1236         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_error_quark),
1237         (rhythmdb_tree_parser_start_element), (rhythmdb_tree_load):
1238         * rhythmdb/rhythmdb-tree.h:
1239         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_load_error_cb),
1240         (rhythmdb_load_thread_main), (rhythmdb_save_thread_main):
1241         * rhythmdb/rhythmdb.h:
1242         Rather than aborting, show an error and refuse to load the database when
1243         it appears to come from the future.  From bug #350304.
1245 2006-09-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1247         * bindings/python/rhythmdb.override:
1248         Make entry_foreach usable.
1250 2006-09-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1252         * sources/rb-podcast-source.c: (rb_podcast_source_init):
1253         Scale the icon so it matches the rest of the sources.
1254         Fixes #351410.
1256 2006-09-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1258         * rhythmdb/rhythmdb-property-model.c: (_remove_entry_cb),
1259         (rhythmdb_property_model_set_query_model_internal),
1260         (rhythmdb_property_model_row_inserted_cb),
1261         (rhythmdb_property_model_prop_changed_cb),
1262         (rhythmdb_property_model_entry_removed_cb),
1263         (rhythmdb_property_model_delete),
1264         (rhythmdb_property_model_perform_sync):
1265         Use the hash table to track hidden entries, rather than visible
1266         entries.  Cuts memory usage fairly significantly.  From bug #347425.
1268 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1270         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting):
1271         Patch from Christian Becke to fix compilation with -O3, bug #355945.
1273 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1275         * sources/rb-ipod-source.c: (add_rb_playlist),
1276         (impl_move_to_trash), (impl_delete_thyself):
1277         Delete ipod playlists when the ipod source is deleted.  Fixes #355235.
1279         * sources/rb-sourcelist.c: (rb_sourcelist_remove):
1280         Make sure we don't leave the sourcelist thinking a deleted source is
1281         still playing.  Fixes nothing.
1283 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1285         * shell/rb-shell.c:
1286         Use GTK_STOCK_OPEN instead of GTK_STOCK_DIRECTORY for the
1287         'Music->Import Folder' menu item for better icon theme coverage.
1288         Fixes #354575.
1290 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1292         * rhythmdb/rhythmdb-private.h:
1293         * rhythmdb/rhythmdb.c: (rhythmdb_init),
1294         (rhythmdb_start_action_thread), (rhythmdb_finalize),
1295         (rhythmdb_thread_create), (rhythmdb_add_uri_with_type),
1296         (rhythmdb_load), (rhythmdb_save_async):
1297         Use a limited thread pool for adding URIs to the database.
1298         Fixes #352494.
1300 2006-09-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1302         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
1303         Do something like the previous change, but for gstreamer 0.10
1304         this time.  Oops.  Really fixes #349569.
1306 2006-09-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1308         * backends/gstreamer/rb-player-gst.c: (error_cb):
1309         Ignore 'internal data flow error' messages if we've already got an
1310         error for the file.  Fixes #349569.
1312 2006-09-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1314         * shell/rb-shell-clipboard.c:
1315         (rb_shell_clipboard_playlist_deleted_cb):
1316         Rebuild 'add to playlist' menu before removing actions for deleted
1317         playlists, and don't unref the action, as we never had a reference on
1318         it to begin with.  Fixes #354599.
1320 2006-09-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1322         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
1323         (sexy_icon_entry_unmap), (draw_icon), (sexy_icon_entry_set_icon):
1324         Apply fix for bug #354149 to our internal copy of sexy-icon-entry.c.
1326 2006-09-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1328         * daapsharing/rb-daap-connection.c: (handle_playlists):
1329         Reverse the list of playlists on the DAAP server so it ends up in the
1330         right order.  Fixes #353926.
1332 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1334         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
1335         Fully process each code so the LIRC client returns to its normal state
1336         when we're done.  Makes LIRC actually work properly for me.
1338 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1340         patch by: Ed Catmur  <ed@catmur.co.uk>
1342         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
1343         (sexy_icon_entry_unmap), (sexy_icon_entry_set_icon):
1344         Don't show unused GdkWindows in SexyIconEntry.  Fixes #353671.
1346 2006-09-02  William Jon McCann  <mccann@jhu.edu>
1348         patch by: James Livingston <doclivingston@gmail.com>
1350         * configure.ac:
1351         * data/rhythmbox.schemas:
1352         * metadata/Makefile.am:
1353         * plugins/Makefile.am:
1354         * plugins/audiocd/.cvsignore:
1355         * plugins/audiocd/Makefile.am:
1356         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
1357         * plugins/audiocd/rb-audiocd-plugin.c:
1358         (rb_audiocd_plugin_class_init), (rb_audiocd_plugin_init),
1359         (rb_audiocd_plugin_finalize), (rb_audiocd_plugin_mount_volume),
1360         (rb_audiocd_plugin_unmount_volume), (poll_tray_opened),
1361         (end_cd_drive_monitor), (begin_cd_drive_monitor),
1362         (get_nautilus_burn_drive_for_path), (split_drive_from_cdda_uri),
1363         (rb_audiocd_plugin_playing_uri_changed_cb),
1364         (nautilus_burn_drive_get_device),
1365         (rb_audiocd_plugin_source_deleted), (create_source_cb),
1366         (impl_activate), (_delete_cb), (impl_deactivate):
1367         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
1368         (rb_cd_recorder_plugin_init), (rb_cd_recorder_plugin_finalize):
1369         * shell/main.c: (main):
1370         * shell/rb-removable-media-manager.c:
1371         (rb_removable_media_manager_finalize),
1372         (rb_removable_media_manager_load_media),
1373         (rb_removable_media_manager_mount_volume),
1374         (rb_removable_media_manager_scan):
1375         * sources/Makefile.am:
1376         * sources/rb-audiocd-source.c:
1377         * sources/rb-audiocd-source.h:
1378         Make auto CD support a plugin.
1380         Fixes #349415.
1382 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1384         * daapsharing/rb-daap-connection.c: (handle_song_listing):
1385         Add a final rhythmdb_commit to make sure all songs from the share show
1386         up in the daap source.  Fixes #353913.
1388 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1390         * sources/rb-sourcelist-model.c:
1391         (rb_sourcelist_model_drag_data_received),
1392         (rb_sourcelist_model_row_drop_possible):
1393         Re-enable dragging of a set of tracks to the source list to create a
1394         new static playlist.  Fixes #353893.
1396 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1398         * widgets/bacon-volume.c: (cb_button_timeout):
1399         Actually drop the GDK lock, rather than returning while holding it.
1400         Fixes #353895.
1402 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1404         * plugins/generic-player/rb-generic-player-source.c:
1405         (rb_generic_player_source_constructor),
1406         (rb_generic_player_source_get_device_info), (impl_delete_thyself),
1407         (rb_generic_player_source_load_songs), (load_playlist_file),
1408         (default_load_playlists), (get_hal_context):
1409         Only call libhal_ctx_shutdown if libhal_ctx_init succeeds.
1410         Fixes #353483.
1412 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1414         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_directory_change_cb):
1415         Canonicalise URIs received from gnome-vfs file monitor.
1416         Fixes #353447.
1418 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1420         * help/C/rhythmbox.xml: unbreak help build
1421         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
1422         Unbuffer the IO channel.  Fixes some weirdness for me.
1424 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1426         * help/C/rhythmbox.xml:
1427         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
1428         (impl_activate), (impl_deactivate):
1429         Add 'playpause' LIRC command.
1431 2006-08-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1433         * sources/rb-source.c: (rb_source_class_init), (rb_source_dispose),
1434         (rb_source_finalize):
1435         Remove idle callbacks in dispose, rather than finalize. Fixes crashes
1436         when disconnecting generic audio players.
1438 2006-08-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1440         patch by: Paolo Borelli  <pborelli@katamail.com>
1442         * plugins/rb-python-plugin.c: (rb_python_object_get_type):
1443         Fix a small leak.
1445 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1447         * backends/gstreamer/rb-player-gst.c:
1448         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
1449         Don't actually disable the seek bar for non-seekable songs,
1450         because we can't reliably tell yet.
1452 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1454         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
1455         (add_playlist_entry_to_mlcl), (databases_cb), (db_entry_added_cb),
1456         (db_entry_deleted_cb), (rb_daap_share_server_start),
1457         (rb_daap_share_server_stop):
1458         * rhythmdb/rhythmdb-private.h:
1459         * rhythmdb/rhythmdb-tree.c: (save_entry):
1460         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
1461         (rhythmdb_entry_set_internal), (rhythmdb_prop_type_get_type),
1462         (rhythmdb_entry_get_ulong):
1463         * rhythmdb/rhythmdb.h:
1464         Give db entries a numeric ID property, replacing the daap server's
1465         entry->id map.  From #347665.
1467 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1469         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
1470         * widgets/rb-header.c: (rb_header_class_init),
1471         (rb_header_set_property), (rb_header_get_property),
1472         (rb_header_set_playing_entry), (rb_header_sync),
1473         (rb_header_sync_time):
1474         * widgets/rb-header.h:
1475         Add a 'seekable' property on RBHeader, and use it to make the seek bar
1476         insensitive when the player backend tells us we can't seek in the
1477         current song.  From #330410.
1479 2006-08-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1481         * widgets/rb-song-info.c: (rb_song_info_update_buttons):
1482         Don't try to unref previous/next entries if they aren't there.
1483         Fixes #351806.
1485 2006-08-15  James Livingston  <doclivingston@gmail.com>
1487         * rhythmdb/rhythmdb-monitor.c: (entry_volume_mounted_or_unmounted),
1488         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb): turn the
1489         mountpoint into a RBRefString and compare equality of those, rather
1490         than doign lots of strcmp()s.
1492         * sources/rb-source.c: (rb_source_finalize), (_update_status_idle),
1493         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb): do
1494         status notification as well as the visibility update in an idle
1495         callback. Makes it take much less time to update after a volume
1496         mount/unmount event.
1498 2006-08-15  James Livingston  <doclivingston@gmail.com>
1500         patch by: Christian Becke  <christianbecke@web.de>
1502         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library): allow
1503         multiple selections in the Import Folder dialog. Fixes #351414.
1505 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1507         * shell/rb-shell.c: (construct_widgets):
1508         * shell/rb-statusbar.c: (rb_statusbar_class_init),
1509         (rb_statusbar_connect_ui_manager), (rb_statusbar_set_property),
1510         (rb_statusbar_get_property), (rb_statusbar_new):
1511         * shell/rb-statusbar.h:
1512         Use the connect-proxy signal from the UI manager, which covers all
1513         action groups, rather than just one.  Fixes #351280.
1515 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1517         * widgets/rb-library-browser.c: (rebuild_child_model):
1518         Fix query model reference counts (bug #349601).
1520 2006-08-15  James Livingston  <doclivingston@gmail.com>
1522         * backends/rb-player.c: (rb_player_interface_init): make the EOS and
1523         Error signals be non-recursive. Fixes a highly-unlikely issue that
1524         could have caused #322972.
1526 2006-08-14  James Livingston  <doclivingston@gmail.com>
1528         * sources/rb-auto-playlist-source.c:
1529         (rb_auto_playlist_source_init):
1530         * sources/rb-static-playlist-source.c:
1531         (rb_static_playlist_source_init):
1533 2006-08-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1535         * sources/rb-browser-source.c:
1536         * sources/rb-import-errors-source.c:
1537         * sources/rb-iradio-source.c:
1538         * sources/rb-library-source.c:
1539         * sources/rb-missing-files-source.c:
1540         * sources/rb-play-queue-source.c:
1541         * sources/rb-playlist-source.c:
1542         * sources/rb-podcast-source.c:
1543         * sources/rb-source.c:
1544         Make entry-type a property on RBSource, rather than on most of its
1545         subclasses.  Fixes #347288.
1547 2006-08-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1549         * remote/dbus/rb-client.c: (parse_pattern),
1550         (create_rb_shell_proxies), (main):
1551         Actually implement %ag and %aG (genre) for --print-playing-format
1553 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1555         * lib/rb-debug.c: (rb_debug_real):
1556         No point allocating a buffer for the timestamp when we can just put it
1557         on the stack.
1559 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1561         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
1562         Don't ignore SIGPIPE.  gnome-vfs does it for us anyway.
1564 2006-08-11  James Livingston  <doclivingston@gmail.com>
1566         * podcast/rb-podcast-manager.c:
1567         (rb_podcast_manager_update_synctime): fix accidental commit in the
1568         last, which caused a warning.
1570 2006-08-11  James Livingston  <doclivingston@gmail.com>
1572         * data/rhythmbox.schemas:
1573         * podcast/rb-podcast-manager.c:
1574         (rb_podcast_manager_update_synctime): change the schema's
1575         update-inteval value from 0 to 1, which causes it to update on
1576         startup, rather than never. Should fixs #343818.
1578 2006-08-11  James Livingston  <doclivingston@gmail.com>
1580         * configure.ac:
1581         * data/Makefile.am:
1582         - data/rhythmbox.desktop.in:
1583         + data/rhythmbox.desktop.in.in: add mroe indirection to the build, so
1584         the @VERSION@ can be substituted in. Fix some issues with newer
1585         bug-buddy versions. Fixes #348853.
1587 2006-08-10  William Jon McCann  <mccann@jhu.edu>
1589         * data/rhythmbox.schemas:
1590         * plugins/Makefile.am:
1591         * plugins/artdisplay/Makefile.am:
1592         * plugins/audioscrobbler/Makefile.am:
1593         * plugins/cd-recorder/Makefile.am:
1594         * plugins/generic-player/Makefile.am:
1595         * plugins/ipod/Makefile.am:
1596         * plugins/lirc/Makefile.am:
1597         * plugins/lyrics/Makefile.am:
1598         * plugins/pythonconsole/Makefile.am:
1599         * plugins/rb-module.c:
1600         * plugins/rb-module.h:
1601         * plugins/rb-plugin-manager.c: (configure_button_cb),
1602         (plugin_manager_view_cell_cb), (cursor_changed_cb),
1603         (plugin_manager_populate_lists), (plugin_manager_set_active),
1604         (plugin_manager_toggle_active),
1605         (plugin_manager_get_selected_plugin), (rb_plugin_manager_init),
1606         (rb_plugin_manager_finalize):
1607         * plugins/rb-plugin-manager.h:
1608         * plugins/rb-plugin.c: (rb_get_plugin_paths),
1609         (rb_plugin_find_file):
1610         * plugins/rb-plugin.h:
1611         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load),
1612         (rb_plugins_engine_load_cb), (rb_plugins_engine_load_all),
1613         (rb_plugins_engine_init), (rb_plugin_info_free),
1614         (load_plugin_module), (rb_plugins_engine_activate_plugin),
1615         (rb_plugins_engine_deactivate_plugin),
1616         (rb_plugins_engine_plugin_is_active),
1617         (rb_plugins_engine_plugin_is_visible),
1618         (rb_plugins_engine_plugin_is_configurable),
1619         (rb_plugins_engine_configure_plugin),
1620         (rb_plugins_engine_get_plugin_name),
1621         (rb_plugins_engine_get_plugin_description),
1622         (rb_plugins_engine_get_plugin_authors),
1623         (rb_plugins_engine_get_plugin_website),
1624         (rb_plugins_engine_get_plugin_copyright),
1625         (rb_plugins_engine_get_plugin_icon):
1626         * plugins/rb-plugins-engine.h:
1627         * plugins/rb-python-module.c: (rb_python_module_init_python),
1628         (rb_python_module_load), (rb_python_module_unload),
1629         (rb_python_module_class_init), (rb_python_module_new),
1630         (finalise_collect_cb), (rb_python_shutdown):
1631         * plugins/rb-python-module.h:
1632         * plugins/rb-python-plugin.c: (call_python_method),
1633         (impl_deactivate), (impl_activate), (impl_create_configure_dialog),
1634         (impl_is_configurable), (rb_python_object_get_type):
1635         * plugins/rb-python-plugin.h:
1636         * plugins/rb/Makefile.am:
1638         Use TRUE/FALSE in schemas to make it easier to read.  Remove
1639         spurious whitespace.  Don't use libgnome explicitly.  Replace the
1640         crack USER_RB_PLUGINS_LOCATION API with rb_get_plugin_paths().
1641         Remove unused RB_PLUGINS_ENGINE_BASE_KEY CONF_PREFIX etc.  Don't
1642         special case loading of dirs.  Install plugins to subdirectors of
1643         PLUGINDIR so they don't interfere.  Install rb plugin to LIBDIR
1644         not DATADIR.  Fixes #350352
1646 2006-08-10  James Livingston  <doclivingston@gmail.com>
1648         * daapsharing/rb-daap-connection.c: (connection_connected),
1649         (connection_disconnected), (connection_operation_done):
1650         * daapsharing/rb-daap-share.c: (name_collision_cb):
1651         * plugins/generic-player/rb-generic-player-source.c:
1652         (rb_generic_player_source_load_playlists):
1653         * podcast/rb-podcast-manager.c:
1654         (rb_podcast_manager_download_entry),
1655         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_next_file),
1656         (end_job), (rb_podcast_manager_event_loop):
1657         * rhythmdb/rhythmdb-property-model.c:
1658         (rhythmdb_property_model_perform_sync):
1659         * rhythmdb/rhythmdb-query-model.c: (idle_process_update_idle),
1660         (rhythmdb_query_model_process_update), (idle_process_update),
1661         (rhythmdb_query_model_reapply_query_cb):
1662         * shell/rb-play-order.c: (sync_playing_entry_cb):
1663         * shell/rb-removable-media-manager.c:
1664         (rb_removable_media_manager_load_media):
1665         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync_idle),
1666         (rb_shell_clipboard_sync),
1667         (rb_shell_clipboard_entryview_changed_cb),
1668         (rb_shell_clipboard_entries_changed_cb),
1669         (rb_shell_clipboard_playlist_deleted_cb), (rebuild_playlist_menu),
1670         (rebuild_playlist_menu_idle),
1671         (rb_shell_clipboard_playlist_added_cb):
1672         * shell/rb-shell-player.c: (notify_playing_idle),
1673         (rb_shell_player_jump_to_current_idle), (_idle_unblock_signal_cb):
1674         * shell/rb-shell.c: (idle_save_playlist_manager), (quit_timeout),
1675         (rb_shell_quit):
1676         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
1677         * sources/rb-library-source.c: (add_child_sources_idle):
1678         * sources/rb-playlist-source-recorder.c: (response_idle_cb),
1679         (burn_cd_idle):
1680         * sources/rb-source.c: (update_visibility_idle):
1681         * widgets/bacon-volume.c: (button_timeout), (cb_button_timeout),
1682         (cb_button_press):
1683         * widgets/rb-druid.c: (idle_set_sensitive):
1684         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed):
1685         take the GDK lock when we should be, from #348588
1687 2006-08-09  James Livingston  <doclivingston@gmail.com>
1689         * rhythmdb/rhythmdb-property-model.c:
1690         (rhythmdb_property_model_get_path),
1691         (rhythmdb_property_model_get_value),
1692         (rhythmdb_property_model_iter_next): don't attempt to verify the
1693         iterator if it's the All value, since it isn't valid. Fixes a
1694         potential crasher.
1696 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1698         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
1699         (rb_podcast_manager_download_file_info_cb),
1700         (rb_podcast_manager_abort_download), (download_info_free),
1701         (download_info_new):
1702         Use gnome_vfs_async_get_file_info to figure out the local filename for
1703         a podcast episode, so we get the filename from the target of any
1704         redirects, rather than the source.  When creating the GnomeVFSURI, hide
1705         the query string, then append it later, to stop gnome-vfs from
1706         converting 'http://' to 'http:/'.  If the local filename ends with the
1707         query string, remove it.  Fixes #330766 and #321991.
1709 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1711         * sources/rb-library-source.c: (impl_want_uri):
1712         * sources/rb-static-playlist-source.c: (impl_want_uri):
1713         Treat sftp:// URIs as likely indicators of songness.
1715 2006-08-07  James Livingston  <doclivingston@gmail.com>
1717         * rhythmdb/rhythmdb.c: (process_added_entries_cb): don't auto-hide
1718         remote tracks with GStreamer 0.10, and remember their visibility like
1719         local ones.
1721 2006-08-07  James Livingston  <doclivingston@gmail.com>
1723         * remote/dbus/rb-client.c: (main): don't unref the bus instance, since
1724         apparently it's a borrowed reference. Should fix #347072.
1726 2006-08-06  James Livingston  <doclivingston@gmail.com>
1728         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_finalize),
1729         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1730         (rb_shuffle_play_order_get_previous),
1731         (rb_shuffle_play_order_go_previous), (handle_query_model_changed),
1732         (remove_from_history), (add_randomly_to_history),
1733         (rb_shuffle_sync_history_with_query_model),
1734         (rb_shuffle_playing_entry_changed), (rb_shuffle_db_entry_deleted),
1735         (query_model_and_history_contents_match): remove the tentatative
1736         history stuff, which is from older code, like we did for -random a few
1737         weeks ago.
1739 2006-08-06  James Livingston  <doclivingston@gmail.com>
1741         * shell/rb-play-order-queue.c: (rb_queue_play_order_go_next),
1742         (rb_queue_play_order_get_previous):
1743         * shell/rb-play-order-random.c: (rb_random_play_order_get_next),
1744         (rb_random_play_order_go_next),
1745         (rb_random_play_order_get_previous), (rb_random_db_changed):
1746         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
1747         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1748         (rb_shuffle_play_order_get_previous), (add_randomly_to_history),
1749         (rb_shuffle_db_changed), (rb_shuffle_entry_added),
1750         (rb_shuffle_entry_removed),
1751         (query_model_and_history_contents_match):
1752         * shell/rb-play-order.c: (rb_play_order_query_model_changed),
1753         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1754         (default_has_next), (default_has_previous),
1755         (rb_play_order_model_not_empty): Fix assorted refcounting issues in
1756         various play orders, after reviewing the code. Should fix #349601.
1758 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1760         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
1761         Pass the items_per_notification parameter to
1762         gnomevfs.async.load_directory, fixing 'argument 4 impossible' errors
1763         with some versions of python.
1765 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1767         * widgets/libsexy/sexy-icon-entry.c: (draw_icon):
1768         Don't try to draw the icon if the drawable area is too small.
1769         Fixes #349838.
1771 2006-08-04  Ryan P Skadberg  <skadz@stigmata.org>
1773         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
1775         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): seems to fix 348783
1777 2006-08-05  James Livingston  <doclivingston@gmail.com>
1779         * configure.ac: tell libtool not to check for C++/fortran/ etc
1780         compilers
1782         * plugins/rb-plugins-engine.c: (rb_plugin_info_free): remove the right
1783         watch, to fix some gconf warnings.
1785 2006-08-04  James Livingston  <doclivingston@gmail.com>
1787         patch by: William Jon McCann  <mccann@jhu.edu>
1789         * shell/main.c: (main): use GOption instead of popt. Fixes #346930
1791 2006-08-04  James Livingston  <doclivingston@gmail.com>
1793         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): try to
1794         actually fix #349722 this time
1796 2006-08-04  James Livingston  <doclivingston@gmail.com>
1798         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: don't attempt
1799         to seach for local art from http:// URIs, or those gnome-vfs doesn't
1800         know about. Fixes #348571.
1802 2006-08-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>
1804         various fixes for valgrind complaints:
1805         * lib/rb-tree-dnd.c: (rb_tree_dnd_data_free),
1806         (init_rb_tree_dnd_data):
1807           free the associated target list, too
1808         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_realize):
1809           initialize allocation.{x,y,width,height} correctly
1810         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting),
1811         (rb_entry_view_constructor):
1812           free strings when no longer needed
1814 2006-08-03  James Livingston  <doclivingston@gmail.com>
1816         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): use the
1817         real GtkTreeModel not the filter. Fixes #349722
1819 2006-08-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1821         * backends/gstreamer/rb-player-gst.c:
1822         Only use DAAP seek hacks for GStreamer 0.8 builds.
1824         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
1825         (rb_daap_src_open):
1826         * daapsharing/rb-daap-src.h:
1827         Implement normal GStreamer seeking for GStreamer 0.10 builds.
1829         * sources/rb-daap-source.c: (rb_daap_source_class_init),
1830         (rb_daap_source_get_headers):
1831         * sources/rb-daap-source.h:
1832         Reimplement rb_daap_source_get_headers for the case where we've
1833         already got the byte offset.  Add a small hack to
1834         rb_daap_source_class_init to prevent the linker from dropping
1835         rb-daap-src.o entirely.
1837         Fixes client-side DAAP seeking (for MP3, at least), bug #330410.
1839 2006-08-02  James Livingston  <doclivingston@gmail.com>
1841         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
1842         (handle_song_listing), (handle_playlist_entries),
1843         (rb_daap_connection_dispose):
1844         * sources/rb-daap-source.c: (_add_location_to_playlist),
1845         (rb_daap_source_connection_cb): make the daap code use RBRefStrings
1846         for playlist URIs, not pointless duplicate strings. From #347425.
1848 2006-08-02  James Livingston  <doclivingston@gmail.com>
1850         * data/rhythmbox.schemas:
1851         * lib/rb-preferences.h:
1852         * plugins/rb-plugin-manager.c: (rb_plugin_manager_class_init),
1853         (plugin_manager_view_cell_cb), (plugin_manager_populate_lists),
1854         (plugin_manager_set_active), (plugin_manager_toggle_active),
1855         (plugin_manager_get_selected_plugin), (name_search_cb),
1856         (plugin_manager_construct_tree), (rb_plugin_manager_new),
1857         (rb_plugin_manager_finalize):
1858         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
1859         (rb_plugins_engine_load_all), (rb_plugin_info_free),
1860         (rb_plugins_engine_plugin_is_visible),
1861         (rb_plugins_engine_plugin_visible_cb):
1862         * plugins/rb-plugins-engine.h: add gconf options to 1) disable loading
1863         per-user plugins, and 2) hide plugins from the manager UI. From #349395
1865 2006-08-02  James Livingston  <doclivingston@gmail.com>
1867         * sources/rb-sourcelist-model.c:
1868         (rb_sourcelist_model_drag_data_received): don't crash if we didn't
1869         drop on a source. Fixes #349580.
1871 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1873         * configure.ac:
1874         * daapsharing/rb-daap-dialog.c:
1875         * daapsharing/rb-daap-dialog.h:
1876         * shell/Makefile.am:
1877         * sources/Makefile.am:
1878         * sources/rb-daap-source.c: (connection_auth_cb),
1879         (rb_daap_source_connection_cb), (rb_daap_source_activate):
1880         Add gnome-keyring support for DAAP passwords and use
1881         gnome-password-dialog instead of our own.  
1882         Patch mostly by James Livingston.  Fixes bug #330346.
1884 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1886         * shell/rb-shell-player.c:
1887         (rb_shell_player_set_playing_source_internal),
1888         (rb_shell_player_sync_with_selected_source):
1889         Remove call to rb_source_have_url, as we never did anything with the
1890         result.
1892         * sources/rb-browser-source.c: (rb_browser_source_class_init):
1893         * sources/rb-import-errors-source.c:
1894         (rb_import_errors_source_class_init):
1895         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
1896         (impl_song_properties), (impl_want_uri), (impl_add_uri):
1897         * sources/rb-library-source.c: (rb_library_source_class_init),
1898         (impl_want_uri), (impl_add_uri):
1899         * sources/rb-missing-files-source.c:
1900         (rb_missing_files_source_class_init):
1901         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
1902         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
1903         (impl_want_uri), (impl_add_uri):
1904         * sources/rb-source.c: (rb_source_class_init),
1905         (rb_source_want_uri), (rb_source_add_uri), (rb_source_handle_eos):
1906         * sources/rb-source.h:
1907         * sources/rb-static-playlist-source.c:
1908         (rb_static_playlist_source_class_init), (search_action_changed),
1909         (impl_want_uri):
1910         Remove unused 'have_url' vfunc, add 'want_uri' and 'add_uri' vfuncs.
1911         When adding a URI, want_uri gets called for each source; the one that
1912         wants it most gets the URI passed to its add_uri method.
1913         
1914         * shell/rb-shell.h:
1915         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
1916         (rb_shell_guess_source_for_uri), (rb_shell_add_uri),
1917         (handle_playlist_entry_cb), (rb_shell_load_uri):
1918         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
1919         Use want_uri and add_uri to simplify and make generic
1920         rb_shell_add_uri, rb_shell_load_uri, various playlist parsing code.
1922         If a source that returns TRUE from try_playlist wants all the URIs in
1923         the playlist, give it the playlist URI instead.  This retains the
1924         existing behaviour for adding iradio playlists.
1926         * bindings/python/rb.defs: Update for above changes.
1928         From bug #347097.
1930 2006-07-31  James Livingston  <doclivingston@gmail.com>
1932         * data/Makefile.am:
1933         * data/generate-keys.sh: fix the build I broke with the last commit.
1934         Oops.
1936 2006-07-31  James Livingston  <doclivingston@gmail.com>
1938         * data/rhythmbox.applications: remove from cvs, as it hasn't been used
1939         in a long time. Fixes #349179.
1941 2006-07-30  James Livingston  <doclivingston@gmail.com>
1943         * lib/rb-util.c: (rb_gvalue_compare), (rb_value_array_append_data):
1944         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
1945         * rhythmdb/rhythmdb.c: (rhythmdb_finalize): more minor leak fixes
1947 2006-07-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1949         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1950         Don't tell the browser the query is still pending when doing a subset
1951         search.  Fixes #348617 again.
1953 2006-07-30  James Livingston  <doclivingston@gmail.com>
1955         * bindings/python/rb.override: remove an extraneous _wrap_ from the
1956         override definition. Fixes #348893.
1958 2006-07-30  James Livingston  <doclivingston@gmail.com>
1960         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error): don't use
1961         rb_error_dialog, as it's above this in the stack.
1963         * lib/rb-util.c: (rb_gvalue_compare):
1964         * lib/rb-util.h: change the return type to int, as we're returning
1965         -1/0/1
1967         * rhythmdb/rhythmdb.c: (rhythmdb_finalize):
1968         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1969         (rb_query_creator_set_sorting): minor leak fixes
1971 2006-07-28  James Livingston  <doclivingston@gmail.com>
1973         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1974         (rhythmdb_tree_finalize), (rhythmdb_tree_parser_end_element),
1975         (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_new_internal),
1976         (get_or_create_genre), (remove_entry_from_album),
1977         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1978         (rhythmdb_tree_entry_delete_by_type), (conjunctive_query),
1979         (rhythmdb_tree_entry_lookup_by_location),
1980         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1981         (rhythmdb_hash_tree_foreach),
1982         (rhythmdb_tree_entry_type_registered): actually make RhythmDBTree
1983         threadsafe. Fix a nasty problem if the _foreach callback function
1984         caused the addition/removal of entries.
1986 2006-07-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1988         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal):
1989         Clear selection before changing our idea of the model.  Fixes crashes
1990         on model changes while playing.
1992 2006-07-27  James Livingston  <doclivingston@gmail.com>
1994         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_type_registered): add
1995         a missing rb_refstring_unref.
1997         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
1998         (rhythmdb_process_file_deleted): use rb_refstring_unref not g_free:
1999         oops. should hopefully fix the crash reported on #347425.
2001 2006-07-27  James Livingston  <doclivingston@gmail.com>
2003         * backends/gstreamer/rb-encoder-gst.c:
2004         (get_profile_from_mime_type): fix encoding error issue, from #310774.
2006         * rhythmdb/rb-refstring.c: (rb_refstring_unref): Fix potential
2007         thread-safety issue.
2009 2006-07-27  James Livingston  <doclivingston@gmail.com>
2011         * rhythmdb/rb-refstring.c: (rb_refstring_find):
2012         * rhythmdb/rb-refstring.h: add a new function which returns the
2013         RBRefString that matches a string, but never creates a new one.
2015         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
2016         (monitor_entry_file), (rhythmdb_check_changed_file),
2017         (rhythmdb_directory_change_cb):
2018         * rhythmdb/rhythmdb-private.h:
2019         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
2020         (unparent_entries), (free_unknown_entries),
2021         (rhythmdb_tree_parser_start_element),
2022         (rhythmdb_tree_parser_end_element), (save_entry),
2023         (save_unknown_entry_type), (rhythmdb_tree_entry_new),
2024         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2025         (remove_one_song), (rhythmdb_tree_entry_lookup_by_location),
2026         (rhythmdb_tree_entry_type_registered):
2027         * rhythmdb/rhythmdb.c: (rhythmdb_execute_multi_stat_info_cb),
2028         (rhythmdb_event_free), (sync_entry_changed), (rhythmdb_entry_new),
2029         (rhythmdb_entry_example_new), (rhythmdb_entry_finalize),
2030         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2031         (rhythmdb_process_metadata_load),
2032         (rhythmdb_process_file_created_or_modified),
2033         (rhythmdb_process_file_deleted), (rhythmdb_execute_stat_info_cb),
2034         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
2035         (action_thread_main), (rhythmdb_entry_set_internal),
2036         (rhythmdb_entry_move_to_trash_set_error),
2037         (rhythmdb_entry_move_to_trash),
2038         (rhythmdb_entry_lookup_by_location),
2039         (rhythmdb_entry_lookup_by_location_refstring),
2040         (default_sync_metadata), (rhythmdb_entry_get_string),
2041         (rhythmdb_entry_get_refstring):
2042         * rhythmdb/rhythmdb.h:
2043         * shell/rb-shell.c: (rb_shell_db_entry_added_cb):
2044         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
2045         (rb_playlist_source_row_deleted),
2046         (rb_playlist_source_entry_added_cb),
2047         (rb_playlist_source_location_in_map),
2048         (rb_playlist_source_add_to_map): Make the LOCATION field of
2049         RhythmDBEntry be a RBRefString instead, which reduces some of the
2050         memory-fragmentation on startup and saves RBStaticPlaylistSource
2051         duplicating all the strings.
2053 2006-07-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2055         * rhythmdb/rhythmdb-query-model.c:
2056         (rhythmdb_query_model_copy_contents), (rhythmdb_query_model_chain):
2057         * rhythmdb/rhythmdb-query-model.h:
2058         Add function to copy contents from one query model to another,
2059         filtered by the destination model's query.
2061         * sources/rb-browser-source.c: (rb_browser_source_do_query):
2062         Use the above to create a new query model for subset searches, rather
2063         than filtering the existing model. Fixes #348617.
2065 2006-07-25  James Livingston  <doclivingston@gmail.com>
2067         * rhythmdb/rhythmdb-query-model.c:
2068         (rhythmdb_query_model_entry_changed_cb): Make hidden entries not get
2069         lost from static playlists. Yet again. Fixes #323095.
2071         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite): add a test
2072         case for the above, so that we should know if a change will break it
2073         again.
2075 2006-07-25  William Jon McCann  <mccann@jhu.edu>
2077         * data/rhythmbox.schemas: Fix for last commit.
2079         * podcast/rb-podcast-manager.c:
2080         (rb_podcast_manager_download_entry),
2081         (rb_podcast_manager_start_sync), (rb_podcast_manager_update_feeds),
2082         (rb_podcast_manager_db_entry_deleted_cb):
2083         * rhythmdb/rhythmdb-property-model.c:
2084         (rhythmdb_property_model_set_query_model_internal),
2085         (rhythmdb_property_model_set_property),
2086         (rhythmdb_property_model_finalize),
2087         (rhythmdb_property_model_drag_data_get):
2088         * rhythmdb/rhythmdb-query-model.c:
2089         (rhythmdb_query_model_set_query_internal),
2090         (rhythmdb_query_model_set_property),
2091         (rhythmdb_query_model_get_property), (rhythmdb_query_model_chain):
2092         * rhythmdb/rhythmdb-query-model.h:
2093         * sources/rb-browser-source.c: (rb_browser_source_dispose),
2094         (rb_browser_source_do_query):
2095         * sources/rb-import-errors-source.c:
2096         (rb_import_errors_source_constructor):
2097         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
2098         (rb_iradio_source_constructor), (rb_iradio_source_set_property),
2099         (rb_iradio_source_get_property), (rb_iradio_source_add_station),
2100         (impl_search), (impl_get_status),
2101         (rb_iradio_source_songs_show_popup_cb), (genre_selection_reset_cb),
2102         (rb_iradio_source_show_browser), (rb_iradio_source_do_query),
2103         (handle_playlist_entry_cb), (rb_iradio_source_add_from_playlist):
2104         * sources/rb-missing-files-source.c:
2105         (rb_missing_files_source_constructor),
2106         (rb_missing_files_source_dispose), (rb_missing_files_source_new):
2107         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize):
2108         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
2109         (rb_playlist_source_dispose), (rb_playlist_source_finalize),
2110         (rb_playlist_source_save_playlist),
2111         (rb_playlist_source_new_from_xml),
2112         (rb_playlist_source_save_to_xml),
2113         (rb_playlist_source_setup_entry_view),
2114         (rb_playlist_source_set_query_model), (rb_playlist_source_get_db),
2115         (rb_playlist_source_get_query_model),
2116         (rb_playlist_source_mark_dirty),
2117         (rb_playlist_source_location_in_map),
2118         (rb_playlist_source_add_to_map):
2119         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
2120         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
2121         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
2122         (impl_delete), (rb_podcast_source_state_prefs_sync),
2123         (rb_podcast_source_show_browser), (rb_podcast_source_do_query),
2124         (impl_get_config_widget), (rb_podcast_source_add_feed),
2125         (rb_podcast_source_cmd_download_post),
2126         (rb_podcast_source_cmd_cancel_download),
2127         (rb_podcast_source_cmd_delete_feed),
2128         (rb_podcast_source_cmd_update_feed),
2129         (rb_podcast_source_cmd_update_all),
2130         (rb_podcast_source_cb_interval_changed_cb),
2131         (rb_podcast_source_load_finish_cb), (rb_podcast_source_shutdown),
2132         (rb_podcast_source_entry_activated_cb):
2133         * sources/rb-source.c: (rb_source_finalize),
2134         (rb_source_set_query_model_internal), (rb_source_set_property),
2135         (default_get_status):
2136         * sources/rb-static-playlist-source.c:
2137         (rb_static_playlist_source_dispose),
2138         (rb_static_playlist_source_finalize),
2139         (rb_static_playlist_source_constructor),
2140         (rb_static_playlist_source_do_query):
2141         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
2142         (rb_entry_view_set_shell_player_internal),
2143         (rb_entry_view_set_model_internal), (rb_entry_view_get_property),
2144         (rb_entry_view_set_model), (rb_entry_view_append_column),
2145         (rb_entry_view_insert_column_custom), (rb_entry_view_constructor),
2146         (rb_entry_view_set_state):
2147         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
2148         (rb_library_browser_finalize), (rb_library_browser_new),
2149         (update_browser_property_visibilty), (view_selection_reset_cb),
2150         (reset_view_cb), (construct_query_cb), (ignore_selection_changes),
2151         (restore_selection), (rebuild_child_model),
2152         (rb_library_browser_set_selection), (rb_library_browser_set_model):
2153         * widgets/rb-property-view.c:
2154         (rb_property_view_set_model_internal),
2155         (rb_property_view_set_selection_mode), (rb_property_view_reset),
2156         (rb_property_view_get_model), (rb_property_view_set_model),
2157         (rb_property_view_get_num_properties),
2158         (rb_property_view_set_selection),
2159         (rb_property_view_append_column_custom),
2160         (rb_property_view_set_search_func):
2161         Fix some more leaks.  Mostly RhythmDBQueryModel ref leaks.
2162         From #347446
2164 2006-07-25  William Jon McCann  <mccann@jhu.edu>
2166         * sources/rb-playlist-source-recorder.c: (update_speed_combobox):
2167         Work around a small n-c-b API change.
2169 2006-07-25  James Livingston  <doclivingston@gmail.com>
2171         * data/rhythmbox.schemas: fix the schema to use the right plugin keys
2173         * rhythmdb/rhythmdb.c: (rhythmdb_finalize),
2174         (rhythmdb_load_thread_main), (rhythmdb_load): release entry refs when
2175         aborting entry-emission on finalise
2177 2006-07-25  James Livingston  <doclivingston@gmail.com>
2179         * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix
2180         warning when entry is NULL.
2182 2006-07-25  James Livingston  <doclivingston@gmail.com>
2184         * help/sv/.cvsignore:
2185         * lib/.cvsignore:
2186         * plugins/generic-player/.cvsignore:
2187         * remote/.cvsignore:
2188         * remote/dbus/.cvsignore:
2189         * shell/.cvsignore:
2190         * tests/.cvsignore: more .cvsignore updates
2192 2006-07-24  James Livingston  <doclivingston@gmail.com>
2194         * widgets/eggtrayicon.c: (egg_tray_icon_class_init),
2195         (transparent_expose_event), (make_transparent_again),
2196         (make_transparent), (egg_tray_icon_realize), (egg_tray_icon_add):
2197         apply a patch for EggTrayIcon so that it handled transparent panels
2198         correctly. Patch by DanWinship  <danw@novell.com> from bug 150726.
2199         Fixes #348208.
2201 2006-07-24  James Livingston  <doclivingston@gmail.com>
2203         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_parse_valist): copy
2204         queries rather than taking ownership when parsing a subquery. Fixed a
2205         crash exposed by the recent leak fixes.
2207         * doc/reference/tmpl/disclosure-widget.sgml:
2208         * doc/reference/tmpl/rb-debug.sgml:
2209         * doc/reference/tmpl/rb-metadata.sgml:
2210         * doc/reference/tmpl/rb-play-order.sgml:
2211         * doc/reference/tmpl/rb-playlist-manager.sgml:
2212         * doc/reference/tmpl/rb-playlist-source.sgml:
2213         * doc/reference/tmpl/rb-shell-player.sgml:
2214         * doc/reference/tmpl/rb-shell.sgml:
2215         * doc/reference/tmpl/rb-song-display-box.sgml:
2216         * doc/reference/tmpl/rhythmbox-unused.sgml:
2217         * doc/reference/tmpl/rhythmdb.sgml: Update all the gtk-doc crap
2219 2006-07-24  James Livingston  <doclivingston@gmail.com>
2221         * lib/.cvsignore:
2222         * plugins/artdisplay/.cvsignore:
2223         * plugins/artdisplay/artdisplay/.cvsignore:
2224         * plugins/lyrics/.cvsignore:
2225         * plugins/pythonconsole/.cvsignore:
2226         * plugins/rb/.cvsignore: add/update various .cvsignore files
2228 2006-07-24  James Livingston  <doclivingston@gmail.com>
2230         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
2231         (rb_refstring_ref): don't emit critical warnings when the refstring
2232         is NULL, as that happens often for podcast metadata.
2234         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence): add
2235         missing rhythmdb_entry_ref call
2237 2006-07-23  William Jon McCann  <mccann@jhu.edu>
2239         * bindings/python/rb.override:
2240         * daapsharing/rb-daap-share.c: (add_playlist_entry_to_mlcl):
2241         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
2242         (playlist_row_inserted_cb):
2243         * plugins/generic-player/rb-psp-source.c: (visit_playlist_dirs):
2244         * plugins/rb-plugin-manager.c:
2245         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
2246         (rb_podcast_manager_copy_post),
2247         (rb_podcast_manager_db_entry_deleted_cb),
2248         (rb_podcast_manager_insert_feed):
2249         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
2250         (rb_refstring_ref), (rb_refstring_get_sort_key):
2251         * rhythmdb/rhythmdb-private.h:
2252         * rhythmdb/rhythmdb-property-model.c:
2253         (rhythmdb_property_model_set_property),
2254         (rhythmdb_property_model_get_property),
2255         (rhythmdb_property_model_finalize), (rhythmdb_property_model_new),
2256         (rhythmdb_property_model_row_inserted_cb),
2257         (rhythmdb_property_model_prop_changed_cb),
2258         (rhythmdb_property_model_compare),
2259         (rhythmdb_property_model_insert),
2260         (rhythmdb_property_model_iter_from_string),
2261         (rhythmdb_property_model_get_column_type),
2262         (rhythmdb_property_model_get_iter),
2263         (rhythmdb_property_model_get_value),
2264         (rhythmdb_property_model_iter_nth_child), (query_model_cb),
2265         (rhythmdb_property_model_enable_drag):
2266         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init),
2267         (rhythmdb_query_model_constructor), (rhythmdb_query_model_dispose),
2268         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
2269         (rhythmdb_query_model_chain),
2270         (rhythmdb_query_model_entry_added_cb),
2271         (rhythmdb_query_model_entry_changed_cb),
2272         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
2273         (rhythmdb_query_model_add_entry),
2274         (rhythmdb_query_model_insert_into_main_list),
2275         (rhythmdb_query_model_insert_into_limited_list),
2276         (rhythmdb_query_model_remove_from_main_list),
2277         (rhythmdb_query_model_remove_from_limited_list),
2278         (rhythmdb_query_model_update_limited_entries),
2279         (rhythmdb_query_model_emit_reorder),
2280         (rhythmdb_query_model_do_reorder),
2281         (rhythmdb_query_model_do_insert),
2282         (rhythmdb_query_model_move_entry),
2283         (rhythmdb_query_model_remove_entry),
2284         (rhythmdb_query_model_entry_to_iter),
2285         (rhythmdb_query_model_iter_to_entry),
2286         (rhythmdb_query_model_get_previous_from_entry),
2287         (rhythmdb_query_model_row_draggable),
2288         (rhythmdb_query_model_drag_data_delete),
2289         (rhythmdb_query_model_drag_data_get),
2290         (rhythmdb_query_model_drag_data_received),
2291         (rhythmdb_query_model_row_drop_possible),
2292         (rhythmdb_query_model_row_drop_position),
2293         (rhythmdb_query_model_add_results),
2294         (rhythmdb_query_model_query_complete),
2295         (rhythmdb_query_model_get_column_type),
2296         (rhythmdb_query_model_get_iter), (rhythmdb_query_model_get_value),
2297         (rhythmdb_query_model_iter_nth_child),
2298         (apply_updated_entry_sequence),
2299         (rhythmdb_query_model_child_index_to_base_index),
2300         (rhythmdb_query_model_get_entry_index),
2301         (rhythmdb_query_model_base_row_inserted),
2302         (rhythmdb_query_model_base_row_deleted),
2303         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
2304         (rhythmdb_query_model_location_sort_func),
2305         (rhythmdb_query_model_title_sort_func),
2306         (rhythmdb_query_model_album_sort_func),
2307         (rhythmdb_query_model_artist_sort_func),
2308         (rhythmdb_query_model_track_sort_func),
2309         (rhythmdb_query_model_double_ceiling_sort_func),
2310         (rhythmdb_query_model_ulong_sort_func),
2311         (rhythmdb_query_model_date_sort_func),
2312         (rhythmdb_query_model_string_sort_func),
2313         (rhythmdb_query_model_within_limit):
2314         * rhythmdb/rhythmdb-tree.c: (unparent_entries),
2315         (rhythmdb_tree_parser_start_element),
2316         (rhythmdb_tree_parser_end_element),
2317         (rhythmdb_tree_parser_characters), (rhythmdb_tree_load),
2318         (write_elt_name_open), (write_elt_name_close), (save_entry_string),
2319         (save_entry_int), (save_entry_ulong), (save_entry_boolean),
2320         (save_entry_uint64), (save_entry_double), (save_entry),
2321         (set_entry_album), (rhythmdb_tree_entry_new),
2322         (get_genres_hash_for_type), (get_or_create_genre),
2323         (get_or_create_artist), (get_or_create_album), (remove_child),
2324         (remove_entry_from_album), (rhythmdb_tree_entry_set),
2325         (rhythmdb_tree_entry_delete), (remove_one_song),
2326         (rhythmdb_tree_entry_delete_by_type),
2327         (rhythmdb_tree_evaluate_query), (search_match_properties),
2328         (evaluate_conjunctive_subquery), (do_conjunction),
2329         (conjunctive_query_songs), (clone_remove_ptr_array_index),
2330         (conjunctive_query_albums), (conjunctive_query_artists),
2331         (conjunctive_query_genre), (conjunctive_query),
2332         (split_query_by_disjunctions), (do_query_recurse),
2333         (handle_entry_match), (rhythmdb_tree_entry_lookup_by_location),
2334         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
2335         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
2336         (hash_tree_artists_foreach), (hash_tree_genres_foreach):
2337         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
2338         (extract_gtype_from_enum_entry),
2339         (extract_nice_name_from_enum_entry), (rhythmdb_init),
2340         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_action_free),
2341         (rhythmdb_event_free), (rhythmdb_finalize),
2342         (rhythmdb_set_property), (rhythmdb_get_property),
2343         (rhythmdb_thread_create), (free_entry_changes),
2344         (emit_entry_changed), (sync_entry_changed),
2345         (process_added_entries_cb), (process_deleted_entries_cb),
2346         (rhythmdb_commit_internal), (rhythmdb_add_timeout_commit),
2347         (rhythmdb_entry_allocate), (rhythmdb_entry_get_type_data),
2348         (rhythmdb_entry_insert), (rhythmdb_entry_new),
2349         (rhythmdb_entry_example_new), (rhythmdb_entry_ref),
2350         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
2351         (rhythmdb_entry_is_editable), (set_props_from_metadata),
2352         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2353         (rhythmdb_process_metadata_load),
2354         (rhythmdb_process_file_created_or_modified),
2355         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
2356         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat),
2357         (queue_stat_uri), (queue_stat_uri_tad), (rhythmdb_execute_load),
2358         (rhythmdb_entry_get), (entry_to_rb_metadata), (rhythmdb_add_uri),
2359         (rhythmdb_add_uri_with_type), (rhythmdb_entry_set),
2360         (record_entry_change), (rhythmdb_entry_set_internal),
2361         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
2362         (rhythmdb_entry_move_to_trash_cb),
2363         (rhythmdb_entry_move_to_trash_set_error),
2364         (rhythmdb_entry_move_to_trash), (rhythmdb_entry_delete_by_type),
2365         (rhythmdb_nice_elt_name_from_propid),
2366         (rhythmdb_propid_from_nice_elt_name),
2367         (rhythmdb_entry_lookup_by_location), (rhythmdb_entry_foreach),
2368         (rhythmdb_evaluate_query), (rhythmdb_emit_entry_deleted),
2369         (rhythmdb_compute_status_normal), (default_sync_metadata),
2370         (rhythmdb_entry_register_type), (rhythmdb_entry_type_foreach),
2371         (rhythmdb_entry_type_get_by_name), (song_can_sync_metadata),
2372         (podcast_get_playback_uri), (podcast_data_destroy),
2373         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
2374         (rhythmdb_entry_dup_string), (rhythmdb_entry_get_string),
2375         (rhythmdb_entry_get_boolean), (rhythmdb_entry_get_uint64),
2376         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
2377         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_double),
2378         (rhythmdb_entry_get_playback_uri), (rhythmdb_get_property_type):
2379         * rhythmdb/rhythmdb.h:
2380         * shell/rb-play-order-linear-loop.c:
2381         (rb_linear_play_order_loop_get_next),
2382         (rb_linear_play_order_loop_get_previous):
2383         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
2384         (rb_linear_play_order_get_previous):
2385         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_previous):
2386         * shell/rb-play-order-random.c: (get_query_model_contents):
2387         * shell/rb-play-order-shuffle.c: (handle_query_model_changed),
2388         (get_query_model_contents):
2389         * shell/rb-play-order.c: (rb_play_order_constructor),
2390         (rb_play_order_finalize),
2391         (rb_play_order_set_playing_entry_internal),
2392         (rb_play_order_set_property), (rb_play_order_new),
2393         (rb_play_order_get_player), (rb_play_order_get_source),
2394         (rb_play_order_get_db), (rb_play_order_get_query_model),
2395         (rb_play_order_player_is_playing),
2396         (rb_play_order_set_playing_entry),
2397         (rb_play_order_get_playing_entry),
2398         (rb_play_order_playing_source_changed),
2399         (rb_play_order_query_model_changed),
2400         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
2401         (default_has_next), (default_has_previous),
2402         (sync_playing_entry_cb), (default_playing_entry_removed),
2403         (rb_play_order_has_next), (rb_play_order_get_next),
2404         (rb_play_order_go_next), (rb_play_order_has_previous),
2405         (rb_play_order_get_previous), (rb_play_order_go_previous),
2406         (rb_play_order_model_not_empty),
2407         (rb_play_order_update_have_next_previous):
2408         * shell/rb-playlist-manager.c: (rb_playlist_manager_is_dirty),
2409         (rb_playlist_manager_save_playlists),
2410         (rb_playlist_manager_set_automatic_playlist),
2411         (rb_playlist_manager_cmd_edit_automatic_playlist),
2412         (_queue_track_cb), (rb_playlist_manager_get_playlists),
2413         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name):
2414         * shell/rb-shell-clipboard.c: (add_playlist_to_menu):
2415         * shell/rb-shell-player.c: (rb_shell_player_constructor),
2416         (volume_pre_unmount_cb), (reemit_playing_signal),
2417         (notify_playing_idle), (rb_shell_player_open_playlist_url),
2418         (rb_shell_player_handle_eos_unlocked),
2419         (rb_shell_player_handle_eos), (rb_shell_player_init),
2420         (rb_shell_player_new), (rb_shell_player_get_playing_entry),
2421         (playlist_entry_cb), (rb_shell_player_open_entry),
2422         (rb_shell_player_play), (do_next_idle), (gconf_play_order_changed),
2423         (rb_shell_player_set_play_order),
2424         (rb_shell_player_set_playback_state),
2425         (rb_shell_player_sync_play_order),
2426         (rb_shell_player_play_order_update_cb),
2427         (rb_shell_player_jump_to_current), (swap_playing_source),
2428         (rb_shell_player_do_previous), (rb_shell_player_do_next),
2429         (rb_shell_player_do_previous_or_seek), (rb_shell_player_playpause),
2430         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
2431         (rb_shell_player_entry_activated_cb),
2432         (rb_shell_player_property_row_activated_cb),
2433         (rb_shell_player_entry_changed_cb),
2434         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
2435         (rb_shell_player_pause),
2436         (rb_shell_player_get_playing_song_duration),
2437         (rb_shell_player_error), (error_cb), (tick_cb),
2438         (info_available_cb), (buffering_cb),
2439         (rb_shell_player_get_playing_path), (grab_mmkey), (filter_mmkeys):
2440         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
2441         (rb_shell_jump_to_current):
2442         * sources/rb-auto-playlist-source.c:
2443         (rb_auto_playlist_source_finalize), (impl_receive_drag),
2444         (impl_save_contents_to_xml), (rb_auto_playlist_source_set_query),
2445         (rb_auto_playlist_source_get_query):
2446         * sources/rb-auto-playlist-source.h:
2447         * sources/rb-browser-source.c: (rb_browser_source_do_query):
2448         * sources/rb-import-errors-source.c:
2449         (rb_import_errors_source_constructor):
2450         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
2451         * sources/rb-library-source.c: (filepath_parse_pattern):
2452         * sources/rb-missing-files-source.c:
2453         (rb_missing_files_source_constructor):
2454         * sources/rb-play-queue-source.c:
2455         (rb_play_queue_source_clear_queue),
2456         (rb_play_queue_source_track_info_cell_data_func):
2457         * sources/rb-playlist-source.c: (rb_playlist_source_set_property),
2458         (rb_playlist_source_get_property), (playlist_iter_func),
2459         (rb_playlist_source_save_to_xml), (rb_playlist_source_row_deleted),
2460         (rb_playlist_source_track_cell_data_func):
2461         * sources/rb-podcast-source.c: (construct_query_from_selection),
2462         (rb_podcast_source_post_status_cell_data_func),
2463         (rb_podcast_source_post_feed_cell_data_func),
2464         (rb_podcast_source_feed_title_search_func),
2465         (rb_podcast_source_post_date_cell_data_func):
2466         * sources/rb-source.c: (default_get_status),
2467         (rb_source_get_status), (rb_source_browser_toggled),
2468         (rb_source_update_play_statistics), (rb_source_search),
2469         (rb_source_get_config_widget), (default_add_to_queue),
2470         (rb_source_add_to_queue), (rb_source_receive_drag),
2471         (rb_source_gather_hash_keys):
2472         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2473         (rb_sourcelist_model_is_row_visible),
2474         (rb_sourcelist_model_row_is_separator),
2475         (rb_sourcelist_model_drag_data_received), (path_is_droppable),
2476         (path_is_reorderable), (rb_sourcelist_model_row_draggable),
2477         (rb_sourcelist_model_drag_data_get):
2478         * sources/rb-sourcelist.c: (rb_sourcelist_append),
2479         (match_source_to_iter), (rb_sourcelist_source_to_iter),
2480         (rb_sourcelist_visible_source_to_iter),
2481         (rb_sourcelist_edit_source_name), (set_source_playing),
2482         (rb_sourcelist_set_playing_source), (rb_sourcelist_remove),
2483         (rb_sourcelist_select), (rb_sourcelist_selection_changed_cb),
2484         (drop_received_cb), (row_activated_cb), (emit_show_popup),
2485         (key_release_cb), (name_notify_cb), (visibility_notify_cb),
2486         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
2487         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
2488         (rb_static_playlist_source_add_location_internal),
2489         (rb_static_playlist_source_row_inserted):
2490         * widgets/rb-entry-view.c: (type_ahead_search_func),
2491         (rb_entry_view_finalize), (rb_entry_view_set_model),
2492         (rb_entry_view_playing_cell_data_func),
2493         (rb_entry_view_rating_cell_data_func),
2494         (rb_entry_view_long_cell_data_func),
2495         (rb_entry_view_play_count_cell_data_func),
2496         (rb_entry_view_duration_cell_data_func),
2497         (rb_entry_view_year_cell_data_func),
2498         (rb_entry_view_quality_cell_data_func),
2499         (rb_entry_view_location_cell_data_func),
2500         (rb_entry_view_string_cell_data_func),
2501         (rb_entry_view_sync_sorting), (rb_entry_view_set_sorting_type),
2502         (rb_entry_view_get_sorting_order),
2503         (rb_entry_view_set_sorting_order), (rb_entry_view_append_column),
2504         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
2505         (rb_entry_view_rated_cb), (rb_entry_view_pixbuf_clicked_cb),
2506         (rb_entry_view_playing_song_changed), (harvest_entries),
2507         (rb_entry_view_button_press_cb), (rb_entry_view_row_activated_cb),
2508         (rb_entry_view_row_inserted_cb), (rb_entry_view_row_deleted_cb),
2509         (set_column_visibility):
2510         * widgets/rb-entry-view.h:
2511         * widgets/rb-header.c: (rb_header_new),
2512         (rb_header_set_playing_entry), (rb_header_set_title):
2513         * widgets/rb-library-browser.c: (rebuild_child_model),
2514         (rb_library_browser_set_model):
2515         * widgets/rb-property-view.c:
2516         (rb_property_view_set_model_internal), (rb_property_view_finalize),
2517         (rb_property_view_set_property), (rb_property_view_get_property),
2518         (rb_property_view_reset), (rb_property_view_get_model),
2519         (rb_property_view_set_model), (rb_property_view_row_activated_cb),
2520         (rb_property_view_button_press_cb):
2521         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2522         (rb_query_creator_get_property), (rb_query_creator_load_query),
2523         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
2524         (rb_query_creator_get_query), (rb_query_creator_get_limit),
2525         (rb_query_creator_get_sort_order), (limit_toggled_cb),
2526         (lookup_row_by_widget), (remove_button_click_cb),
2527         (add_button_click_cb), (create_property_option_menu):
2528         * widgets/rb-song-info.c: (rb_song_info_constructor),
2529         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
2530         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
2531         (rb_song_info_update_rating), (rb_song_info_sync_entry_single):
2532         Fix more leaks.  Mostly RhythmDBEntry ref leaks.  From #347446
2534 2006-07-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2536         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2537         (rb_shell_player_get_property):
2538         Add a property providing access to the player backend object.
2540 2006-07-23  James Livingston  <doclivingston@gmail.com>
2542         * shell/rb-play-order-random.c: (rb_random_play_order_finalize),
2543         (get_history), (rb_random_filter_history),
2544         (rb_random_playing_entry_changed), (rb_random_db_entry_deleted):
2545         remove the tentative history, since it appears to be a remanent from
2546         older play order code. The only thing it was doing was using up
2547         CPU-time and memory. From #345857
2549 2006-07-23  James Livingston  <doclivingston@gmail.com>
2551         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
2553         * shell/main.c: (main):
2554         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2555         (rb_playlist_manager_finalize), (rb_playlist_manager_set_property),
2556         (rb_playlist_manager_get_property), (rb_playlist_manager_new),
2557         (rb_playlist_manager_load_playlists),
2558         (rb_playlist_manager_save_data):
2559         * shell/rb-playlist-manager.h:
2560         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
2561         (rb_shell_get_property), (rb_shell_sync_state),
2562         (idle_save_playlist_manager), (rb_shell_finalize), (rb_shell_new),
2563         (construct_sources), (idle_handle_load_complete):
2564         * shell/rb-shell.h: Add a command-line option for changing the
2565         playlist xml file to use, similar to the rhythmdb one. Fixes #343659.
2567 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2569         * daapsharing/rb-daap-share.c: (databases_cb):
2570         Make sure we set status codes on HTTP responses.
2572 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2574         * configure.ac:
2575         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
2576         (chunked_message_finished), (send_chunked_file),
2577         (mapped_file_message_finished), (send_mapped_file), (databases_cb):
2578         Use GMappedFile to send local files to DAAP clients where possible.  
2579         iTunes can't seek properly in files sent using chunked transfer 
2580         encoding.  Also remove the useless bitrate calculation code, as we
2581         never even used the result anyway.  From #330410.
2583 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2585         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
2587         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
2588         Enable multiple selection for 'import file'.  Fixes #347478.
2590 2006-07-20  Claudio Saavedra  <csaavedra@alumnos.utalca.cl>
2592         * metadata/rb-metadata-dbus-client.c: (kill_metadata_service):
2593         * metadata/rb-metadata-dbus-service.c: (main): Replace calls to 
2594         deprecated dbus_connection_disconnect () with dbus_connection_close ().
2595         Fixes #348098.
2597 2006-07-20  James Livingston  <doclivingston@gmail.com>
2599         * widgets/rb-entry-view.c: (type_ahead_search_func): check the strings
2600         aren't NULL before calling strstr. Fixes #347998.
2602 2006-07-19  James Livingston  <doclivingston@gmail.com>
2604         patch by: Alex Lancaster   <alexl@users.sourceforge.net>
2606         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): accept dates from
2607         MB that only have years. Fixes #347906.
2609 2006-07-19  James Livingston  <doclivingston@gmail.com>
2611         * rhythmdb/rhythmdb-private.h:
2612         * rhythmdb/rhythmdb.c: (rhythmdb_init),
2613         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2614         (_shutdown_foreach_swapped), (rhythmdb_shutdown),
2615         (rhythmdb_finalize), (timeout_rhythmdb_commit),
2616         (rhythmdb_add_timeout_commit), (rhythmdb_execute_stat_info_cb),
2617         (rhythmdb_execute_stat), (queue_stat_uri),
2618         (rhythmdb_sync_library_idle), (rhythmdb_load_thread_main),
2619         (rhythmdb_load), (rhythmdb_entry_register_type),
2620         (rhythmdb_entry_register_type_alias): Keep track of outstanding
2621         asynchronous vfs operations, and cancel them when shutting down the
2622         DB. Also remove outstanding timeoud/idle callbacks. Fixes #347985
2624         * tests/test-rhythmdb.c: (mark_signal), (set_waiting_signal),
2625         (test_rhythmdb_shutdown): wait until the db has been finalised before
2626         continuing on to the next test.
2628 2006-07-19  James Livingston  <doclivingston@gmail.com>
2630         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): use the
2631         right thing in the #ifdef. From #347832.
2633 2006-07-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2635         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
2636         Fix compile warning.
2638 2006-07-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2640         * rhythmdb/rhythmdb-query-model.c:
2641         (rhythmdb_query_model_set_property),
2642         (rhythmdb_query_model_reapply_query_cb):
2643         Ignore old query == new query case.
2644         Fixes auto playlists with time-relative queries.
2646         * rhythmdb/rhythmdb-query.c: (prop_gvalue_to_string),
2647         (write_encoded_gvalue), (rhythmdb_query_is_time_relative),
2648         (rhythmdb_query_to_string):
2649         * rhythmdb/rhythmdb.h:
2650         Add debug helper for printing queries in case someone needs it again.
2652 2006-07-18  James Livingston  <doclivingston@gmail.com>
2654         patch by: Ståle Lyngaas  <staale@lyngaas.com>
2655         * sources/rb-audiocd-source.c: store the MB track ids in the database.
2656         Fixes #347832
2658         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): and
2659         write then into files.
2661 2006-07-17  William Jon McCann  <mccann@jhu.edu>
2663         * daapsharing/rb-daap-connection.c:
2664         (rb_daap_connection_set_property):
2665         * daapsharing/rb-daap-share.c: (rb_daap_share_set_db),
2666         (rb_daap_share_set_playlist_manager), (rb_daap_share_set_property),
2667         (add_playlist_to_mlcl), (databases_cb):
2668         * daapsharing/rb-daap-sharing.c: (create_share):
2669         * iradio/rb-new-station-dialog.c:
2670         (rb_new_station_dialog_class_init), (rb_new_station_dialog_new):
2671         * iradio/rb-station-properties-dialog.c:
2672         (rb_station_properties_dialog_finalize),
2673         (rb_station_properties_dialog_set_property),
2674         (rb_station_properties_dialog_get_current_entry):
2675         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
2676         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data):
2677         * plugins/generic-player/rb-generic-player-source.c:
2678         (rb_generic_player_source_dispose), (rb_generic_player_source_new),
2679         (handle_playlist_entry_cb):
2680         * plugins/generic-player/rb-nokia770-source.c:
2681         (rb_nokia770_source_new), (hal_udi_is_nokia770):
2682         * plugins/generic-player/rb-psp-source.c: (impl_get_mount_path),
2683         (visit_playlist_dirs), (hal_udi_is_psp):
2684         * podcast/rb-podcast-manager.c:
2685         * podcast/rb-podcast-properties-dialog.c:
2686         (rb_podcast_properties_dialog_finalize),
2687         (rb_podcast_properties_dialog_set_entry_view),
2688         (rb_podcast_properties_dialog_set_property):
2689         * rhythmdb/rhythmdb-property-model.c:
2690         * rhythmdb/rhythmdb-query-model.c:
2691         (rhythmdb_query_model_set_property),
2692         (rhythmdb_query_model_reapply_query_cb):
2693         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_deserialize):
2694         * rhythmdb/rhythmdb-tree.c: (split_query_by_disjunctions):
2695         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
2696         (rhythmdb_event_free), (rhythmdb_shutdown),
2697         (rhythmdb_thread_create), (action_thread_main),
2698         (rhythmdb_do_full_query_async_parsed),
2699         (rhythmdb_do_full_query_internal):
2700         * shell/main.c: (main):
2701         * shell/rb-play-order-random.c: (rb_random_play_order_go_next):
2702         * shell/rb-play-order.c: (rb_play_order_finalize),
2703         (rb_play_order_set_player),
2704         (rb_play_order_set_playing_entry_internal),
2705         (rb_play_order_set_property),
2706         (rb_play_order_playing_source_changed),
2707         (rb_play_order_query_model_changed):
2708         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
2709         (rb_playlist_manager_set_source),
2710         (rb_playlist_manager_set_shell_internal),
2711         (rb_playlist_manager_set_property):
2712         * shell/rb-removable-media-manager.c:
2713         (rb_removable_media_manager_set_property),
2714         (rb_removable_media_manager_set_uimanager),
2715         (rb_removable_media_manager_cmd_eject_medium),
2716         (rb_removable_media_manager_cmd_copy_tracks):
2717         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_finalize),
2718         (rb_shell_clipboard_new), (rb_shell_clipboard_sync),
2719         (rb_shell_clipboard_set),
2720         (rb_shell_clipboard_cmd_add_to_playlist_new),
2721         (rb_shell_clipboard_playlist_add_cb),
2722         (rb_shell_clipboard_playlist_renamed_cb),
2723         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
2724         (rebuild_playlist_menu):
2725         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2726         (rb_shell_player_set_queue_source_internal),
2727         (rb_shell_player_finalize), (rb_shell_player_set_play_order),
2728         (rb_shell_player_entry_activated_cb),
2729         (rb_shell_player_property_row_activated_cb),
2730         (_idle_unblock_signal_cb), (rb_shell_player_playing_changed_cb):
2731         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
2732         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2733         (rb_shell_finalize), (construct_widgets),
2734         (rb_shell_playing_from_queue_cb),
2735         (rb_shell_player_stream_song_changed_cb),
2736         (rb_shell_player_volume_changed_cb):
2737         * shell/rb-statusbar.c: (rb_statusbar_new):
2738         * shell/rb-tray-icon.c: (rb_tray_icon_finalize),
2739         (rb_tray_icon_sync_action), (rb_tray_icon_set_property):
2740         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
2741         * sources/rb-auto-playlist-source.c:
2742         (rb_auto_playlist_source_class_init),
2743         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
2744         (rb_auto_playlist_source_constructor), (impl_receive_drag),
2745         (rb_auto_playlist_source_do_query),
2746         (rb_auto_playlist_source_set_query),
2747         (rb_auto_playlist_source_browser_changed_cb),
2748         (search_action_changed):
2749         * sources/rb-auto-playlist-source.h:
2750         * sources/rb-browser-source.c: (rb_browser_source_finalize),
2751         (search_action_changed), (rb_browser_source_constructor),
2752         (rb_browser_source_cmd_choose_artist), (impl_delete),
2753         (rb_browser_source_browser_changed_cb),
2754         (rb_browser_source_do_query):
2755         * sources/rb-daap-source.c: (rb_daap_source_dispose),
2756         (rb_daap_source_finalize), (rb_daap_source_class_init),
2757         (rb_daap_get_icon), (rb_daap_source_new), (destroy_pixbufs),
2758         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2759         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2760         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect),
2761         (rb_daap_source_get_headers):
2762         * sources/rb-import-errors-source.c:
2763         (rb_import_errors_source_constructor),
2764         (rb_import_errors_source_new), (impl_delete), (impl_get_status):
2765         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2766         (rb_ipod_source_new), (add_rb_playlist), (add_ipod_song_to_db),
2767         (get_db_for_source), (load_ipod_db_idle_cb), (rb_ipod_load_songs),
2768         (hal_udi_is_ipod), (impl_move_to_trash), (completed_cb),
2769         (impl_paste), (impl_receive_drag):
2770         * sources/rb-iradio-source.c: (rb_iradio_source_finalize),
2771         (rb_iradio_source_constructor), (impl_get_status), (impl_delete),
2772         (impl_song_properties):
2773         * sources/rb-library-source.c: (rb_library_source_constructor),
2774         (rb_library_source_new), (impl_paste),
2775         (rb_library_source_add_child_source):
2776         * sources/rb-missing-files-source.c: (impl_delete),
2777         (impl_get_status):
2778         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize),
2779         (rb_play_queue_source_class_init),
2780         (rb_play_queue_source_constructor):
2781         * sources/rb-playlist-source.c: (rb_playlist_source_init),
2782         (rb_playlist_source_set_db), (rb_playlist_source_constructor),
2783         (rb_playlist_source_dispose), (rb_playlist_source_save_playlist),
2784         (rb_playlist_source_new_from_xml),
2785         (rb_playlist_source_save_to_xml):
2786         * sources/rb-podcast-source.c: (rb_podcast_source_init),
2787         (rb_podcast_source_dispose), (rb_podcast_source_finalize),
2788         (search_action_changed), (rb_podcast_source_constructor),
2789         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2790         (construct_query_from_selection),
2791         (rb_podcast_source_cmd_download_post),
2792         (rb_podcast_source_cmd_cancel_download),
2793         (rb_podcast_source_cmd_delete_feed),
2794         (rb_podcast_source_start_download_cb),
2795         (rb_podcast_source_finish_download_cb),
2796         (rb_podcast_source_feed_updates_avaliable_cb),
2797         (rb_podcast_source_get_shell), (impl_can_add_to_queue),
2798         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2799         (impl_get_status):
2800         * sources/rb-removable-media-source.c: (impl_delete_thyself):
2801         * sources/rb-source.c: (rb_source_get_property),
2802         (default_add_to_queue), (default_move_to_trash),
2803         (_rb_source_show_popup), (rb_source_gather_selected_properties),
2804         (_rb_source_register_action_group):
2805         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2806         (rb_sourcelist_model_is_row_visible),
2807         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
2808         (rb_sourcelist_model_row_draggable),
2809         (rb_sourcelist_model_drag_data_get):
2810         * sources/rb-sourcelist.c: (rb_sourcelist_finalize),
2811         (icon_notify_cb), (rb_sourcelist_append), (set_source_playing),
2812         (rb_sourcelist_remove), (button_press_cb), (name_notify_cb),
2813         (visibility_notify_cb):
2814         * sources/rb-static-playlist-source.c:
2815         (rb_static_playlist_source_class_init),
2816         (rb_static_playlist_source_init),
2817         (rb_static_playlist_source_finalize),
2818         (rb_static_playlist_source_constructor), (impl_delete),
2819         (rb_static_playlist_source_browser_changed_cb),
2820         (rb_static_playlist_source_add_location_internal),
2821         (search_action_changed):
2822         * sources/rb-static-playlist-source.h:
2823         * widgets/rb-druid.c:
2824         * widgets/rb-entry-view.c:
2825         (rb_entry_view_set_shell_player_internal),
2826         (rb_entry_view_set_model_internal), (rb_entry_view_set_property),
2827         (rb_entry_view_get_property), (rb_entry_view_new),
2828         (rb_entry_view_button_press_cb):
2829         * widgets/rb-library-browser.c: (rb_library_browser_finalize),
2830         (rb_library_browser_set_property),
2831         (rb_library_browser_get_property):
2832         * widgets/rb-query-creator.c: (rb_query_creator_new_from_query),
2833         (get_entry_for_property), (get_property_index_from_proptype):
2834         * widgets/rb-song-info.c: (rb_song_info_constructor),
2835         (rb_song_info_finalize), (rb_song_info_set_source_internal),
2836         (rb_song_info_set_property), (rb_song_info_get_property):
2838         More leak and reference counting fixes.  From bug #347446.
2840 2006-07-17  James Livingston  <doclivingston@gmail.com>
2842         * sources/rb-auto-playlist-source.c:
2843         (rb_auto_playlist_source_do_query): use rbythmdb_query_model_chain
2844         rather than setting the base model, as that lets us not import all the
2845         entries from the base model. This fixes some issues whether the search
2846         box wasn't filting automatic playlists.
2848 2006-07-17  James Livingston  <doclivingston@gmail.com>
2850         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix a syntax
2851         error, which caused blacklist creation to fail.
2853 2006-07-17  James Livingston  <doclivingston@gmail.com>
2855         * shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when
2856         running with -n, because we don't start it then. Fixes a crash on
2857         exit.
2859 2006-07-17  James Livingston  <doclivingston@gmail.com>
2861         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2863         * data/glade/playlist-save.glade: Make the "playlist save" dialog use
2864         Save not Open for the button. Fixes #345816
2866 2006-07-17  James Livingston  <doclivingston@gmail.com>
2868         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2870         * sources/rb-library-source.c: (impl_get_config_widget): Fix the build
2871         when track transfer is disabled. Fixes #347705
2873 2006-07-17  James Livingston  <doclivingston@gmail.com>
2875         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
2877         * sources/rb-library-source.c: (impl_get_config_widget): fix build
2878         with track transfer disabled. Fixes #347705
2880 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2882         * rhythmdb/rhythmdb-query-model.c:
2883         (rhythmdb_query_model_set_property):
2884         * shell/main.c: (main):
2885         * shell/rb-shell-clipboard.c: (unset_source_internal),
2886         (rb_shell_clipboard_finalize),
2887         (rb_shell_clipboard_set_source_internal),
2888         (rb_shell_clipboard_set_property), (rebuild_playlist_menu):
2889         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2890         (rb_shell_player_set_db_internal),
2891         (rb_shell_player_set_queue_source_internal),
2892         (rb_shell_player_finalize), (rb_shell_player_set_property):
2893         * shell/rb-shell.c: (rb_shell_finalize), (construct_sources):
2894         * sources/rb-auto-playlist-source.c:
2895         (rb_auto_playlist_source_constructor),
2896         (rb_auto_playlist_source_new_from_xml):
2897         * sources/rb-daap-source.c: (create_pixbufs):
2898         * sources/rb-ipod-source.c:
2899         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
2900         * sources/rb-library-source.c:
2901         (rb_library_source_add_child_source):
2902         * sources/rb-play-queue-source.c:
2903         (rb_play_queue_sync_playing_state),
2904         (rb_play_queue_source_track_info_cell_data_func):
2905         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
2906         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
2907         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
2908         (impl_can_add_to_queue), (impl_add_to_queue):
2909         * sources/rb-source.c: (rb_source_set_property):
2910         * sources/rb-sourcelist.c: (rb_sourcelist_append):
2911         * sources/rb-static-playlist-source.c:
2912         (rb_static_playlist_source_constructor),
2913         (rb_static_playlist_source_load_from_xml):
2914         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
2915         * widgets/rb-entry-view.c: (rb_entry_view_init),
2916         (rb_entry_view_finalize), (rb_entry_view_append_column),
2917         (rb_entry_view_constructor):
2918         * widgets/rb-song-info.c: (rb_song_info_set_property):
2919         Fix leaks.  From bug #347446.
2921 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2923         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize),
2924         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
2925         (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry),
2926         (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb),
2927         (add_decoding_pipeline), (profile_bin_find_encoder),
2928         (get_profile_from_mime_type), (extract_track), (transcode_track),
2929         (rb_encoder_gst_encode):
2930         * backends/gstreamer/rb-encoder-gst.h:
2931         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init),
2932         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
2933         (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb),
2934         (rb_player_gst_construct):
2935         * backends/gstreamer/rb-player-gst.h:
2936         * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel):
2937         * backends/rb-encoder.h:
2938         * backends/rb-player.c: (_rb_player_emit_tick):
2939         * backends/rb-player.h:
2940         * daapsharing/rb-daap-connection.c: (build_message),
2941         (actual_http_response_handler), (http_response_handler),
2942         (http_get), (entry_set_string_prop), (emit_progress_idle),
2943         (handle_server_info), (handle_database_info),
2944         (handle_song_listing), (handle_playlists),
2945         (handle_playlist_entries), (rb_daap_connection_new),
2946         (connected_cb), (rb_daap_connection_do_something),
2947         (rb_daap_connection_get_headers), (rb_daap_connection_dispose),
2948         (rb_daap_connection_get_property):
2949         * daapsharing/rb-daap-connection.h:
2950         * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run),
2951         (rb_daap_collision_dialog_new_run):
2952         * daapsharing/rb-daap-dialog.h:
2953         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
2954         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
2955         (DigestToString), (rb_daap_hash_generate):
2956         * daapsharing/rb-daap-hash.h:
2957         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
2958         (resolve_cb), (browse_cb):
2959         * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb),
2960         (resolve_cb), (rb_daap_mdns_browser_resolve),
2961         (rb_daap_mdns_browser_start), (resolver_free):
2962         * daapsharing/rb-daap-mdns-browser.h:
2963         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb):
2964         * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb),
2965         (publish_cb):
2966         * daapsharing/rb-daap-mdns-publisher.h:
2967         * daapsharing/rb-daap-share.c: (name_collision_cb),
2968         (rb_daap_share_process_playlist), (rb_daap_share_dispose),
2969         (message_set_from_rb_daap_structure), (content_codes_cb),
2970         (session_id_validate), (logout_cb), (update_cb),
2971         (add_entry_to_mlcl), (add_playlist_to_mlcl),
2972         (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb),
2973         (rb_daap_share_server_start), (rb_daap_share_server_stop),
2974         (rb_daap_share_publish_start):
2975         * daapsharing/rb-daap-share.h:
2976         * daapsharing/rb-daap-sharing.c: (share_name_changed_cb),
2977         (share_password_changed_cb), (rb_daap_sharing_shutdown):
2978         * daapsharing/rb-daap-sharing.h:
2979         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init),
2980         (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps),
2981         (rb_daap_src_open):
2982         * daapsharing/rb-daap-structure.c: (rb_daap_structure_add),
2983         (rb_daap_structure_node_serialize), (rb_daap_structure_serialize),
2984         (rb_daap_structure_parse_container_buffer),
2985         (rb_daap_structure_parse), (gnode_find_node),
2986         (rb_daap_structure_find_item), (rb_daap_structure_find_node),
2987         (print_rb_daap_item):
2988         * daapsharing/rb-daap-structure.h:
2989         * iradio/rb-new-station-dialog.c:
2990         (rb_new_station_dialog_class_init), (rb_new_station_dialog_init),
2991         (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb),
2992         (rb_new_station_dialog_text_changed):
2993         * iradio/rb-station-properties-dialog.c:
2994         (rb_station_properties_dialog_init),
2995         (rb_station_properties_dialog_new),
2996         (rb_station_properties_dialog_response_cb),
2997         (rb_station_properties_dialog_get_current_entry),
2998         (rb_station_properties_dialog_rated_cb),
2999         (rb_station_properties_dialog_update_rating),
3000         (rb_station_properties_dialog_update_playback_error),
3001         (rb_station_properties_dialog_sync_entries):
3002         * metadata/rb-metadata-common.c: (rb_metadata_error_quark):
3003         * metadata/rb-metadata-dbus-client.c: (ping_metadata_service),
3004         (start_metadata_service), (rb_metadata_load), (rb_metadata_set),
3005         (rb_metadata_can_save), (rb_metadata_save):
3006         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load),
3007         (rb_metadata_dbus_can_save), (rb_metadata_dbus_save),
3008         (_handle_message), (_new_connection), (main):
3009         * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message),
3010         (rb_metadata_dbus_read_from_message):
3011         * metadata/rb-metadata-dbus.h:
3012         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb),
3013         (rb_add_id3_tagger), (rb_metadata_init),
3014         (rb_metadata_gst_tag_to_field), (make_undecodable_error),
3015         (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb),
3016         (rb_metadata_gst_new_decoded_pad_cb),
3017         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
3018         * metadata/sj-error.c: (sj_error_quark):
3019         * metadata/sj-error.h:
3020         * metadata/sj-metadata-musicbrainz.c:
3021         (sj_metadata_musicbrainz_instance_init),
3022         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
3023         (get_rdf), (lookup_cd):
3024         * metadata/sj-metadata.c: (sj_metadata_get_type):
3025         * metadata/sj-structures.c:
3026         * metadata/sj-structures.h:
3027         * metadata/test-metadata.c: (load_metadata_cb), (main):
3028         * podcast/rb-feed-podcast-properties-dialog.c:
3029         (rb_feed_podcast_properties_dialog_init),
3030         (rb_feed_podcast_properties_dialog_update_title):
3031         * podcast/rb-feed-podcast-properties-dialog.h:
3032         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
3033         (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb),
3034         (rb_new_podcast_dialog_text_changed):
3035         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
3036         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
3037         (rb_podcast_manager_set_property),
3038         (rb_podcast_manager_get_property), (rb_podcast_manager_new),
3039         (rb_podcast_manager_download_entry),
3040         (rb_podcast_manager_update_feeds),
3041         (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file),
3042         (rb_podcast_manager_copy_post),
3043         (rb_podcast_manager_thread_parse_feed),
3044         (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata),
3045         (rb_podcast_manager_db_entry_added_cb), (write_job_data),
3046         (download_info_free), (download_info_new), (start_job),
3047         (rb_podcast_manager_cancel_all), (end_job), (cancel_job),
3048         (download_progress_cb), (download_progress_update_cb),
3049         (rb_podcast_manager_remove_feed),
3050         (rb_podcast_manager_db_entry_deleted_cb),
3051         (rb_podcast_manager_cancel_download),
3052         (rb_podcast_manager_update_synctime),
3053         (rb_podcast_manager_set_remove_files),
3054         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
3055         (rb_podcast_manager_abort_subscribe),
3056         (rb_podcast_manager_get_podcast_dir):
3057         * podcast/rb-podcast-manager.h:
3058         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
3059         (rb_validate_channel_propert), (rb_validate_item_propert),
3060         (rb_podcast_parser_start_element), (rb_podcast_parser_end_element),
3061         (rb_podcast_parser_characters), (rb_podcast_parse_load_feed),
3062         (rb_podcast_parse_date), (rb_podcast_parse_time),
3063         (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free):
3064         * podcast/rb-podcast-parse.h:
3065         * podcast/rb-podcast-properties-dialog.c:
3066         (rb_podcast_properties_dialog_init),
3067         (rb_podcast_properties_dialog_get_current_entry),
3068         (rb_podcast_properties_dialog_update_title),
3069         (rb_podcast_properties_dialog_update_duration),
3070         (rb_podcast_properties_dialog_update_date):
3071         * podcast/rb-podcast-properties-dialog.h:
3072         * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend),
3073         (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate),
3074         (g_sequence_remove_range), (g_sequence_get_ptr_at_pos),
3075         (g_sequence_ptr_move), (g_sequence_ptr_sort_changed),
3076         (g_sequence_search), (g_sequence_set_aggregate_data),
3077         (g_sequence_node_update_fields), (g_sequence_node_rotate),
3078         (find_min), (g_sequence_node_find_by_pos),
3079         (g_sequence_node_find_closest), (g_sequence_node_free),
3080         (g_sequence_node_split), (g_sequence_node_insert_before),
3081         (g_sequence_node_get_length), (g_sequence_node_remove),
3082         (g_sequence_node_calc_height), (g_sequence_node_insert_sorted),
3083         (g_sequence_calc_tree_height):
3084         * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown),
3085         (rb_refstring_get):
3086         * rhythmdb/rb-refstring.h:
3087         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
3088         (rhythmdb_gda_init), (dump_model), (execute_query),
3089         (execute_nonquery), (ensure_table_exists), (collect_value_for_sql),
3090         (collect_value_from_sql), (_initialize), (rhythmdb_gda_new),
3091         (rhythmdb_gda_load), (rhythmdb_gda_entry_new),
3092         (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get),
3093         (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location),
3094         (translate_query), (do_query), (rhythmdb_gda_do_full_query):
3095         * rhythmdb/rhythmdb-gda.h:
3096         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
3097         (rhythmdb_finalize_monitoring), (monitor_entry_file),
3098         (monitor_library_directory), (rhythmdb_check_changed_file),
3099         (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb),
3100         (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted),
3101         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb):
3102         * rhythmdb/rhythmdb-private.h:
3103         * rhythmdb/rhythmdb-property-model.c:
3104         (rhythmdb_property_model_set_property),
3105         (rhythmdb_property_model_row_inserted_cb),
3106         (rhythmdb_property_model_prop_changed_cb),
3107         (rhythmdb_property_model_compare),
3108         (rhythmdb_property_model_get_value),
3109         (rhythmdb_property_model_iter_nth_child),
3110         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
3111         (rhythmdb_property_model_drag_data_get),
3112         (rhythmdb_property_model_enable_drag),
3113         (rhythmdb_property_model_column_get_type):
3114         * rhythmdb/rhythmdb-property-model.h:
3115         * rhythmdb/rhythmdb-query-model.c:
3116         (rhythmdb_query_model_class_init),
3117         (rhythmdb_query_model_set_property),
3118         (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain),
3119         (rhythmdb_query_model_has_pending_changes),
3120         (rhythmdb_query_model_entry_changed_cb),
3121         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
3122         (rhythmdb_query_model_add_entry),
3123         (rhythmdb_query_model_remove_from_main_list),
3124         (rhythmdb_query_model_remove_entry),
3125         (rhythmdb_query_model_drag_data_received),
3126         (rhythmdb_query_model_row_drop_possible),
3127         (rhythmdb_query_model_compute_status_normal),
3128         (rhythmdb_query_model_set_sort_order),
3129         (rhythmdb_query_model_get_entry_index),
3130         (rhythmdb_query_model_base_row_inserted),
3131         (rhythmdb_query_model_base_row_deleted),
3132         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
3133         (rhythmdb_query_model_date_sort_func),
3134         (rhythmdb_query_model_within_limit):
3135         * rhythmdb/rhythmdb-query-model.h:
3136         * rhythmdb/rhythmdb-query-results.c:
3137         (rhythmdb_query_results_query_complete):
3138         * rhythmdb/rhythmdb-query-results.h:
3139         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy),
3140         (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist),
3141         (rhythmdb_query_free), (rhythmdb_read_encoded_property),
3142         (rhythmdb_query_serialize), (rhythmdb_query_deserialize),
3143         (rhythmdb_query_preprocess), (rhythmdb_query_get_type):
3144         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize),
3145         (rhythmdb_tree_parser_start_element),
3146         (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load),
3147         (save_entry), (save_entry_type), (save_unknown_entry_type),
3148         (rhythmdb_tree_save), (rhythmdb_tree_entry_new),
3149         (rhythmdb_tree_property_new), (get_genres_hash_for_type),
3150         (get_or_create_genre), (remove_entry_from_album),
3151         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
3152         (remove_one_song), (rhythmdb_tree_entry_delete_by_type),
3153         (search_match_properties), (evaluate_conjunctive_subquery),
3154         (clone_remove_ptr_array_index), (conjunctive_query_albums),
3155         (conjunctive_query_artists), (conjunctive_query_genre),
3156         (conjunctive_query), (split_query_by_disjunctions),
3157         (do_query_recurse), (rhythmdb_tree_entry_foreach),
3158         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
3159         (hash_tree_artists_foreach), (hash_tree_genres_foreach),
3160         (rhythmdb_hash_tree_foreach),
3161         (rhythmdb_tree_entry_type_registered):
3162         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
3163         (metadata_field_from_prop), (extract_gtype_from_enum_entry),
3164         (extract_nice_name_from_enum_entry), (rhythmdb_init),
3165         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
3166         (rhythmdb_shutdown), (rhythmdb_finalize),
3167         (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb),
3168         (rhythmdb_entry_insert), (rhythmdb_entry_new),
3169         (rhythmdb_entry_example_new),
3170         (set_metadata_string_default_unknown), (is_ghost_entry),
3171         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
3172         (rhythmdb_process_metadata_load),
3173         (rhythmdb_process_queued_entry_set_event),
3174         (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb),
3175         (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata),
3176         (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main),
3177         (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save),
3178         (rhythmdb_entry_set), (rhythmdb_entry_set_internal),
3179         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
3180         (rhythmdb_entry_delete_by_type),
3181         (rhythmdb_propid_from_nice_elt_name),
3182         (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query),
3183         (rhythmdb_compute_status_normal),
3184         (rhythmdb_entry_register_type_alias),
3185         (rhythmdb_entry_type_foreach), (song_can_sync_metadata),
3186         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
3187         (rhythmdb_entry_import_error_get_type),
3188         (rhythmdb_entry_podcast_post_get_type),
3189         (rhythmdb_entry_podcast_feed_get_type),
3190         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
3191         (rhythmdb_sync_library_location), (rhythmdb_entry_get_string),
3192         (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type):
3193         * rhythmdb/rhythmdb.h:
3194         * shell/main.c: (main), (load_uri_args), (handle_dbus_message):
3195         * shell/rb-history.c: (rb_history_new), (rb_history_set_playing),
3196         (rb_history_limit_size):
3197         * shell/rb-history.h:
3198         * shell/rb-play-order-linear-loop.c:
3199         (rb_linear_play_order_loop_get_next):
3200         * shell/rb-play-order-linear-loop.h:
3201         * shell/rb-play-order-linear.c:
3202         * shell/rb-play-order-linear.h:
3203         * shell/rb-play-order-queue.c:
3204         (rb_queue_play_order_playing_entry_removed):
3205         * shell/rb-play-order-queue.h:
3206         * shell/rb-play-order-random-by-age-and-rating.c:
3207         * shell/rb-play-order-random-by-age-and-rating.h:
3208         * shell/rb-play-order-random-by-age.c:
3209         (rb_random_by_age_get_entry_weight):
3210         * shell/rb-play-order-random-by-age.h:
3211         * shell/rb-play-order-random-by-rating.c:
3212         * shell/rb-play-order-random-by-rating.h:
3213         * shell/rb-play-order-random-equal-weights.c:
3214         * shell/rb-play-order-random-equal-weights.h:
3215         * shell/rb-play-order-random.c: (rb_random_filter_history),
3216         (rb_random_get_total_weight), (rb_random_play_order_get_next),
3217         (rb_random_db_changed), (rb_random_playing_entry_changed),
3218         (rb_random_db_entry_deleted):
3219         * shell/rb-play-order-shuffle.c: (remove_from_history),
3220         (add_randomly_to_history), (get_query_model_contents),
3221         (rb_shuffle_playing_entry_changed):
3222         * shell/rb-play-order-shuffle.h:
3223         * shell/rb-play-order.c: (rb_play_order_class_init),
3224         (rb_play_order_set_property),
3225         (rb_play_order_playing_source_changed),
3226         (rb_play_order_query_model_changed_cb),
3227         (rb_play_order_query_model_changed),
3228         (rb_play_order_entry_added_cb), (default_playing_entry_removed):
3229         * shell/rb-play-order.h:
3230         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
3231         (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager),
3232         (rb_playlist_manager_set_property),
3233         (rb_playlist_manager_parse_file),
3234         (rb_playlist_manager_load_playlists),
3235         (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data),
3236         (rb_playlist_manager_save_playlists),
3237         (rb_playlist_manager_new_playlist),
3238         (rb_playlist_manager_new_playlist_from_selection_data),
3239         (rb_playlist_manager_cmd_new_automatic_playlist),
3240         (rb_playlist_manager_cmd_edit_automatic_playlist),
3241         (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist),
3242         (save_playlist_response_cb), (export_set_extension_cb),
3243         (filter_get_export_filter_label), (setup_format_menu),
3244         (rb_playlist_manager_cmd_save_playlist),
3245         (rb_playlist_manager_get_playlists),
3246         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
3247         (rb_playlist_manager_delete_playlist),
3248         (rb_playlist_manager_export_playlist):
3249         * shell/rb-playlist-manager.h:
3250         * shell/rb-removable-media-manager.c:
3251         (rb_removable_media_manager_class_init),
3252         (rb_removable_media_manager_dispose),
3253         (rb_removable_media_manager_finalize),
3254         (rb_removable_media_manager_set_property),
3255         (split_drive_from_cdda_uri),
3256         (rb_removable_media_manager_playing_uri_changed_cb),
3257         (rb_removable_media_manager_load_media),
3258         (rb_removable_media_manager_volume_mounted_cb),
3259         (remove_volume_by_source),
3260         (rb_removable_media_manager_source_deleted_cb),
3261         (rb_removable_media_manager_volume_unmounted_cb),
3262         (rb_removable_media_manager_mount_volume),
3263         (rb_removable_media_manager_set_uimanager),
3264         (rb_removable_media_manager_scan), (do_transfer),
3265         (rb_removable_media_manager_cmd_copy_tracks):
3266         * shell/rb-removable-media-manager.h:
3267         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
3268         (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor),
3269         (rb_shell_clipboard_sync),
3270         (rb_shell_clipboard_idle_poll_deletions),
3271         (rb_shell_clipboard_cmd_add_to_playlist_new),
3272         (rb_shell_clipboard_playlist_add_cb),
3273         (rb_shell_clipboard_playlist_deleted_cb),
3274         (rb_shell_clipboard_playlist_renamed_cb),
3275         (rb_shell_clipboard_playlist_visible_cb),
3276         (rb_shell_clipboard_playlist_added_cb):
3277         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3278         (rb_shell_player_constructor), (volume_pre_unmount_cb),
3279         (rb_shell_player_init), (rb_shell_player_set_property),
3280         (rb_shell_player_new), (rb_shell_player_open_playlist_url),
3281         (rb_shell_player_open_location),
3282         (rb_shell_player_set_playing_entry),
3283         (rb_shell_player_play_order_update_cb),
3284         (rb_shell_player_jump_to_current), (rb_shell_player_do_previous),
3285         (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek),
3286         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
3287         (rb_shell_player_cmd_play), (rb_shell_player_playpause),
3288         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
3289         (gconf_song_position_slider_visibility_changed),
3290         (rb_shell_player_entry_activated_cb),
3291         (rb_shell_player_property_row_activated_cb),
3292         (rb_shell_player_entry_changed_cb),
3293         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
3294         (actually_set_playing_source),
3295         (rb_shell_player_set_playing_source_internal),
3296         (rb_shell_player_get_playing_song_duration), (eos_cb),
3297         (rb_shell_player_error), (error_cb), (info_available_cb),
3298         (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb),
3299         (rb_shell_player_error_get_type):
3300         * shell/rb-shell-player.h:
3301         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
3302         (rb_shell_preferences_append_page),
3303         (share_check_button_toggled_cb),
3304         (password_check_button_toggled_cb), (add_daap_preferences),
3305         (rb_shell_preferences_column_check_changed_cb),
3306         (rb_shell_preferences_sync_column_button),
3307         (rb_shell_preferences_sync),
3308         (rb_shell_preferences_browser_views_activated_cb):
3309         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init),
3310         (rb_shell_set_property), (rb_shell_get_property),
3311         (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize),
3312         (construct_widgets), (construct_load_ui), (rb_shell_constructor),
3313         (rb_shell_get_visibility), (rb_shell_set_visibility),
3314         (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb),
3315         (rb_shell_register_entry_type_for_source),
3316         (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb),
3317         (rb_shell_playing_entry_changed_cb), (rb_shell_select_source),
3318         (rb_shell_player_stream_song_changed_cb),
3319         (rb_shell_set_window_title),
3320         (rb_shell_view_smalldisplay_changed_cb),
3321         (rb_shell_view_queue_as_sidebar_changed_cb),
3322         (rb_shell_cmd_plugins), (add_to_library_response_cb),
3323         (rb_shell_cmd_add_folder_to_library),
3324         (rb_shell_cmd_add_file_to_library),
3325         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
3326         (sidepane_visibility_changed_cb), (toolbar_state_changed_cb),
3327         (rb_shell_jump_to_entry_with_source), (tray_embedded_cb),
3328         (session_die_cb), (save_yourself_cb), (rb_shell_session_init),
3329         (handle_playlist_entry_cb), (rb_shell_load_uri),
3330         (rb_shell_add_to_queue), (rb_shell_present),
3331         (rb_shell_get_song_properties), (rb_shell_set_song_property),
3332         (rb_shell_volume_widget_changed_cb),
3333         (rb_shell_player_volume_changed_cb),
3334         (rb_shell_ui_location_get_type):
3335         * shell/rb-shell.h:
3336         * shell/rb-source-header.c: (ui_manager_add_widget_cb),
3337         (rb_source_header_init), (rb_source_header_set_source_internal),
3338         (rb_source_state_sync), (rb_source_header_clear_search),
3339         (rb_source_header_view_browser_changed_cb):
3340         * shell/rb-source-header.h:
3341         * shell/rb-statusbar.c: (rb_statusbar_construct),
3342         (rb_statusbar_init), (rb_statusbar_finalize),
3343         (rb_statusbar_set_property), (rb_statusbar_set_progress),
3344         (rb_statusbar_source_status_changed_cb):
3345         * shell/rb-statusbar.h:
3346         * shell/rb-tray-icon.c: (rb_tray_icon_init),
3347         (rb_tray_icon_constructor), (rb_tray_icon_finalize),
3348         (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb),
3349         (rb_tray_icon_get_geom), (rb_tray_icon_notify):
3350         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor),
3351         (rb_audiocd_create_track_entry):
3352         * sources/rb-auto-playlist-source.c:
3353         (rb_auto_playlist_source_class_init),
3354         (rb_auto_playlist_source_constructor),
3355         (rb_auto_playlist_source_new_from_xml), (impl_reset_filters),
3356         (impl_search), (impl_receive_drag), (impl_save_contents_to_xml),
3357         (rb_auto_playlist_source_query_complete_cb),
3358         (rb_auto_playlist_source_do_query),
3359         (rb_auto_playlist_source_set_query),
3360         (rb_auto_playlist_source_browser_changed_cb),
3361         (search_action_to_prop):
3362         * sources/rb-auto-playlist-source.h:
3363         * sources/rb-browser-source.c: (rb_browser_source_init),
3364         (rb_browser_source_dispose), (search_action_to_prop),
3365         (rb_browser_source_constructor),
3366         (rb_browser_source_cmd_choose_genre),
3367         (rb_browser_source_cmd_choose_artist),
3368         (rb_browser_source_cmd_choose_album), (impl_search),
3369         (rb_browser_source_browser_changed_cb),
3370         (rb_browser_source_do_query):
3371         * sources/rb-browser-source.h:
3372         * sources/rb-daap-source.c: (rb_daap_source_class_init),
3373         (rb_daap_source_init), (rb_daap_source_dispose),
3374         (rb_daap_source_set_property), (start_browsing),
3375         (rb_daap_sources_init), (rb_daap_sources_shutdown),
3376         (rb_daap_source_connection_cb), (rb_daap_source_activate),
3377         (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri),
3378         (rb_daap_source_get_headers), (rb_daap_source_get_status):
3379         * sources/rb-daap-source.h:
3380         * sources/rb-import-errors-source.h:
3381         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
3382         (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist),
3383         (add_ipod_song_to_db), (load_ipod_db_idle_cb),
3384         (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path),
3385         (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions),
3386         (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod),
3387         (ipod_mkdir_with_parents), (build_ipod_dir_name),
3388         (generate_ipod_filename), (ipod_path_from_unix_path),
3389         (impl_delete_thyself):
3390         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
3391         (rb_iradio_source_init), (rb_iradio_source_constructor),
3392         (rb_iradio_source_new), (guess_uri_scheme),
3393         (rb_iradio_source_add_station),
3394         (rb_iradio_source_async_update_play_statistics),
3395         (genre_selection_reset_cb), (rb_iradio_source_do_query),
3396         (stations_view_drag_data_received_cb),
3397         (rb_iradio_source_cmd_new_station):
3398         * sources/rb-iradio-source.h:
3399         * sources/rb-library-source.c: (rb_library_source_dispose),
3400         (rb_library_source_constructor),
3401         (rb_library_source_location_button_clicked_cb),
3402         (impl_get_config_widget), (rb_library_source_library_location_cb),
3403         (sanitize_path), (filepath_parse_pattern),
3404         (layout_example_label_update),
3405         (rb_library_source_layout_filename_changed), (build_filename),
3406         (impl_can_paste), (impl_paste),
3407         (rb_library_source_add_child_source),
3408         (rb_library_source_sync_child_sources):
3409         * sources/rb-library-source.h:
3410         * sources/rb-missing-files-source.h:
3411         * sources/rb-play-queue-source.c:
3412         (rb_play_queue_source_constructor), (impl_show_entry_view_popup):
3413         * sources/rb-play-queue-source.h:
3414         * sources/rb-playlist-source-recorder.c:
3415         (rb_playlist_source_recorder_class_init), (update_speed_combobox),
3416         (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc),
3417         (rb_playlist_source_recorder_init),
3418         (rb_playlist_source_recorder_new):
3419         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
3420         (rb_playlist_source_save_playlist),
3421         (rb_playlist_source_entry_added_cb),
3422         (rb_playlist_source_set_query_model),
3423         (rb_playlist_source_add_to_map):
3424         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3425         (rb_podcast_source_init), (rb_podcast_source_dispose),
3426         (rb_podcast_source_finalize), (search_action_to_prop),
3427         (rb_podcast_source_constructor), (rb_podcast_source_set_property),
3428         (rb_podcast_source_get_property), (rb_podcast_source_new),
3429         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
3430         (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb),
3431         (rb_podcast_source_show_browser), (construct_query_from_selection),
3432         (rb_podcast_source_do_query), (impl_get_config_widget),
3433         (rb_podcast_source_btn_file_change_cb),
3434         (posts_view_drag_data_received_cb),
3435         (rb_podcast_source_cmd_download_post),
3436         (rb_podcast_source_cmd_cancel_download),
3437         (rb_podcast_source_cmd_delete_feed),
3438         (rb_podcast_source_cmd_properties_feed),
3439         (rb_podcast_source_cmd_update_feed),
3440         (rb_podcast_source_post_status_cell_data_func),
3441         (rb_podcast_source_post_feed_cell_data_func),
3442         (rb_podcast_source_post_date_cell_data_func),
3443         (rb_podcast_source_load_finish_cb), (impl_receive_drag),
3444         (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue),
3445         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
3446         (impl_get_status):
3447         * sources/rb-podcast-source.h:
3448         * sources/rb-removable-media-source.c:
3449         (rb_removable_media_source_constructor):
3450         * sources/rb-removable-media-source.h:
3451         * sources/rb-source.h:
3452         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
3453         (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible),
3454         (rb_sourcelist_model_row_is_separator),
3455         (rb_sourcelist_model_drag_data_received),
3456         (rb_sourcelist_model_row_drop_possible), (path_is_droppable),
3457         (rb_sourcelist_model_row_drop_position),
3458         (rb_sourcelist_model_get_drag_target),
3459         (rb_sourcelist_model_row_draggable),
3460         (rb_sourcelist_model_drag_data_get),
3461         (rb_sourcelist_model_row_inserted_cb),
3462         (rb_sourcelist_model_get_group_path):
3463         * sources/rb-sourcelist.c: (rb_sourcelist_append),
3464         (match_source_to_iter), (rb_sourcelist_source_to_iter),
3465         (rb_sourcelist_visible_source_to_iter),
3466         (rb_sourcelist_edit_source_name),
3467         (rb_sourcelist_selection_changed_cb), (button_press_cb),
3468         (key_release_cb), (name_notify_cb), (icon_notify_cb),
3469         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
3470         * sources/rb-static-playlist-source.c:
3471         (rb_static_playlist_source_class_init),
3472         (rb_static_playlist_source_constructor),
3473         (rb_static_playlist_source_load_from_xml), (impl_reset_filters),
3474         (impl_search), (rb_static_playlist_source_do_query),
3475         (rb_static_playlist_source_browser_changed_cb),
3476         (impl_receive_drag), (impl_save_contents_to_xml),
3477         (rb_static_playlist_source_add_location_swapped),
3478         (search_action_to_prop):
3479         * sources/rb-static-playlist-source.h:
3480         * widgets/bacon-volume.c: (bacon_volume_button_get_type):
3481         * widgets/eggtrayicon.c: (egg_tray_icon_init),
3482         (egg_tray_icon_get_orientation_property),
3483         (egg_tray_icon_send_manager_message),
3484         (egg_tray_icon_update_manager_window),
3485         (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize),
3486         (egg_tray_icon_send_message), (egg_tray_icon_notify):
3487         * widgets/eggtrayicon.h:
3488         * widgets/rb-cell-renderer-pixbuf.c:
3489         (rb_cell_renderer_pixbuf_get_property),
3490         (rb_cell_renderer_pixbuf_set_property),
3491         (rb_cell_renderer_pixbuf_get_size),
3492         (rb_cell_renderer_pixbuf_render),
3493         (rb_cell_renderer_pixbuf_activate):
3494         * widgets/rb-cell-renderer-rating.c:
3495         (rb_cell_renderer_rating_class_init),
3496         (rb_cell_renderer_rating_get_property),
3497         (rb_cell_renderer_rating_set_property),
3498         (rb_cell_renderer_rating_get_size),
3499         (rb_cell_renderer_rating_render),
3500         (rb_cell_renderer_rating_activate):
3501         * widgets/rb-dialog.c:
3502         * widgets/rb-dialog.h:
3503         * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new),
3504         (path_dialog_response_cb), (idle_set_sensitive), (do_response),
3505         (rb_druid_page3_finish_cb):
3506         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3507         (rb_entry_view_init), (rb_entry_view_set_property),
3508         (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func),
3509         (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting),
3510         (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type),
3511         (rb_entry_view_set_sorting_order),
3512         (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column),
3513         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
3514         (rb_entry_view_playing_song_changed),
3515         (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb),
3516         (rb_entry_view_scroll_to_entry), (set_column_visibility),
3517         (rb_entry_view_set_fixed_column_width),
3518         (rb_entry_view_get_time_date_column_sample),
3519         (rb_entry_view_state_get_type):
3520         * widgets/rb-entry-view.h:
3521         * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
3522         (rb_header_sync), (slider_moved_timeout), (slider_moved_callback),
3523         (changed_idle_callback), (rb_header_elapsed_changed_cb):
3524         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
3525         (update_browser_property_visibilty),
3526         (rb_library_browser_construct_query), (restore_selection),
3527         (rebuild_child_model), (rb_library_browser_set_selection),
3528         (rb_library_browser_set_model):
3529         * widgets/rb-library-browser.h:
3530         * widgets/rb-property-view.c: (rb_property_view_class_init),
3531         (rb_property_view_set_property), (rb_property_view_reset),
3532         (rb_property_view_get_model), (rb_property_view_constructor),
3533         (rb_property_view_set_selection),
3534         (rb_property_view_selection_changed_cb),
3535         (rb_property_view_button_press_cb),
3536         (rb_property_view_set_search_func):
3537         * widgets/rb-query-creator-private.h:
3538         * widgets/rb-query-creator-properties.c:
3539         (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData),
3540         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
3541         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
3542         (relativeTimeCriteriaCreateWidget),
3543         (relativeTimeCriteriaSetWidgetData):
3544         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
3545         (rb_query_creator_dispose), (rb_query_creator_load_query),
3546         (rb_query_creator_new_from_query), (rb_query_creator_get_query),
3547         (get_property_index_from_proptype), (select_criteria_from_value),
3548         (create_property_option_menu), (create_criteria_option_menu),
3549         (sort_option_menu_changed), (setup_sort_option_menu):
3550         * widgets/rb-query-creator.h:
3551         * widgets/rb-rating-helper.c: (rb_rating_install_rating_property),
3552         (rb_rating_render_stars):
3553         * widgets/rb-rating-helper.h:
3554         * widgets/rb-rating.c: (rb_rating_expose):
3555         * widgets/rb-rating.h:
3556         * widgets/rb-search-entry.c: (rb_search_entry_clear),
3557         (rb_search_entry_timeout_cb):
3558         * widgets/rb-search-entry.h:
3559         * widgets/rb-song-info.c: (rb_song_info_construct_single),
3560         (rb_song_info_constructor), (rb_song_info_new),
3561         (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog),
3562         (rb_song_info_update_location), (rb_song_info_backward_clicked_cb),
3563         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
3564         (rb_song_info_query_model_changed_cb),
3565         (rb_song_info_sync_entries_multiple),
3566         (rb_song_info_sync_entry_single):
3567         Strip all trailing whitespace.  Fixes #344293.
3569 2006-07-13  Ryan P Skadberg  <skadz@stigmata.org>
3571         * doc/reference/Makefile.am: Fix GTK Doc Build
3573 2006-07-13  James Livingston  <doclivingston@gmail.com>
3575         * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri
3577         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above
3578         instead of the LOCATION, and don't try to get the directory listing
3579         for http URI schemes
3581         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for
3582         invalid utf8 in the error message, since apparently it can happen.
3584 2006-07-12  William Jon McCann  <mccann@jhu.edu>
3586         * sources/rb-import-errors-source.c:
3587         (rb_import_errors_source_class_init),
3588         (rb_import_errors_source_init),
3589         (rb_import_errors_source_constructor),
3590         (rb_import_errors_source_dispose), (rb_import_errors_source_new),
3591         (impl_get_status), (rb_import_errors_source_songs_show_popup_cb):
3592         * sources/rb-missing-files-source.c:
3593         (rb_missing_files_source_class_init),
3594         (rb_missing_files_source_init),
3595         (rb_missing_files_source_constructor),
3596         (rb_missing_files_source_dispose), (rb_missing_files_source_new),
3597         (rb_missing_files_source_songs_sort_order_changed_cb),
3598         (impl_get_status):
3599         * sources/rb-source.c: (rb_source_class_init),
3600         (rb_source_finalize), (update_visibility_idle),
3601         (queue_update_visibility), (rb_source_set_hidden_when_empty),
3602         (rb_source_set_property), (rb_source_get_property),
3603         (default_get_status), (rb_source_update_play_statistics),
3604         (default_add_to_queue), (_rb_source_show_popup),
3605         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb),
3606         (rb_source_gather_selected_properties),
3607         (_rb_source_register_action_group):
3608         * sources/rb-source.h:
3609         * sources/rb-sourcelist.c: (visibility_notify_cb):
3610         Don't use a fake model for import-errors and missing-files
3611         sources.  Add a new source property "hidden-when-empty".
3612         Update source visibility in an idle.  Clean up some whitespace.
3613         From bug #346800
3615 2006-07-12  James Livingston  <doclivingston@gmail.com>
3617         * bindings/python/rb.defs:
3618         * bindings/python/rb.override: bind rb_error_dialog
3620         * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off
3621         the current working directory for uninstalled plugins, and add the
3622         class name to the method name.
3624 2006-07-12  James Livingston  <doclivingston@gmail.com>
3626         * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check
3627         the sources EOF type if it's NULL. Fixes #346284.
3629 2006-07-12  James Livingston  <doclivingston@gmail.com>
3631         * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit
3632         I accidently committed. Nothing to see here, move along...
3634 2006-07-11  James Livingston  <doclivingston@gmail.com>
3636         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3637         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of
3638         Unknown.
3640 2006-07-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3642         * doc/reference/rhythmbox.types: Fix doc build (bug #347223)
3644 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3646         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
3647         Don't try to set mtime if we've deleted the entry.
3649 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3651         * bindings/python/rhythmdb.defs:
3652         * rhythmdb/rhythmdb.c:
3653         * rhythmdb/rhythmdb.h:
3654         * rhythmdb/rhythmdb-private.h:
3655         * rhythmdb/rhythmdb-query.c:
3656         Move data structures holding registered entry types inside the
3657         RhythmDB object, and add a vfunc called when new types are registered.
3658         Add a flag to RhythmDBEntryType specifying whether entries of the type
3659         should be saved to the on-disk database.
3661         * sources/rb-audiocd-source.c:
3662         * sources/rb-daap-source.c:
3663         * sources/rb-ipod-source.c:
3664         * plugins/generic-player/rb-generic-player-source.c:
3665         * plugins/generic-player/rb-nokia770-source.c:
3666         * plugins/generic-player/rb-psp-source.c:
3667         Adjust to the above changes.
3669         * rhythmdb/rhythmdb-tree.c:
3670         If the type for an entry hasn't been registered yet, store the entry's
3671         properties as-is, and convert them to a real entry when the type is
3672         registered.  If the type doesn't get registered, save the entry back
3673         to the database unmodified.  From #330226.
3675 2006-07-10  James Livingston  <doclivingston@gmail.com>
3677         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change
3678         os.path.unlink to os.unlink, so removing stuff works.
3680 2006-07-10  James Livingston  <doclivingston@gmail.com>
3682         patch by: Ed Catmur  <ed@catmur.co.uk>
3683               and Peter  <bugzilla-gnome-org@maubp.freeserve.co.uk>
3685         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3686         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3687         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
3688         * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the
3689         internals of the cover database and Amazon lookup engine, and add
3690         support for loading art from the local file system. Fixes #345688.
3692         * plugins/rb/Coroutine.py:
3693         * plugins/rb/Makefile.am:
3694         * plugins/rb/__init__.py: Add the Coroutine class to the common python
3695         plugin classes.
3697 2006-07-10  James Livingston  <doclivingston@gmail.com>
3699         * tests/Makefile.am: don't run the benchmark when doing "make check"
3701         * po/POTFILES.in: more build fixes, from Matti Lindell
3702         <feenixx@hotmail.com>. Fixes #347049.
3705 2006-07-10  James Livingston  <doclivingston@gmail.com>
3707         * plugins/cd-recorder/Makefile.am: build fixes
3709         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't
3710         attempt to change properties if we couldn't create an entry.
3712         * shell/rb-source-header.c: (rb_source_header_init),
3713         (rb_source_header_view_browser_changed_cb),
3714         (rb_source_header_sync_control_state):
3715         * shell/rb-tray-icon.c:
3716         * widgets/Makefile.am:
3717         * widgets/disclosure-widget.c:
3718         * widgets/disclosure-widget.h: remove the remanents of the disclosure
3719         widget, as it hasn't been used for a while.
3721 2006-07-09  William Jon McCann  <mccann@jhu.edu>
3723         * Makefile.am:
3724         * configure.ac:
3725         * data/ui/rhythmbox-ui.xml:
3726         * plugins/Makefile.am:
3727         * plugins/cd-recorder/.cvsignore:
3728         * plugins/cd-recorder/Makefile.am:
3729         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
3730         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
3731         (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init),
3732         (rb_cd_recorder_plugin_finalize), (burn_source_iter_func),
3733         (source_burn), (cmd_burn_source), (playlist_entries_changed),
3734         (playlist_row_inserted_cb), (update_source),
3735         (shell_selected_source_notify_cb), (impl_activate),
3736         (impl_deactivate):
3737         * shell/Makefile.am:
3738         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source),
3739         (rb_playlist_manager_cmd_save_playlist):
3740         * shell/rb-shell.c: (rb_shell_select_source):
3741         * sources/Makefile.am:
3742         * sources/rb-playlist-source-recorder.c:
3743         (rb_playlist_source_recorder_new):
3744         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3745         (rb_playlist_source_add_to_map):
3746         * sources/rb-playlist-source.h:
3747         Move cd burning into a plugin.  Fixes #344300.
3749 2006-07-10  James Livingston  <doclivingston@gmail.com>
3751         * lib/eel-gconf-extensions.c:
3752         * shell/rb-shell.c: remove some ununsed gnomeui includes
3754         * widgets/Makefile.am:
3755         * widgets/rb-song-display-box.c:
3756         * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs,
3757         since it isn't acutally used anywhere. Fixes #346926
3759 2006-07-09  James Livingston  <doclivingston@gmail.com>
3761         * bindings/python/rb.defs:
3762         * bindings/python/rb.override:
3763         * lib/rb-debug.c: (rb_debug_real):
3764         * lib/rb-debug.h:
3765         * plugins/rb/__init__.py: don't print out an extra newline when
3766         diverting python print statements to RB's debug log.
3768 2006-07-09  James Livingston  <doclivingston@gmail.com>
3770         * rhythmdb/rhythmdb-property-model.c:
3771         (rhythmdb_property_model_drag_data_get):
3772         * sources/rb-sourcelist-model.c:
3773         (rb_sourcelist_model_row_draggable),
3774         (rb_sourcelist_model_drag_data_get): check that the path/iter we get
3775         from the row reference is still valid. Fixes #346709.
3777 2006-07-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3779         patch by: Peter  <bugzilla-gnome-org@maubp.freeserve.org.uk>
3781         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple):
3782         If all selected entries have the same rating, use that as the initial
3783         rating for the multiple song info dialog.  Fixes #345970.
3785 2006-07-09  James Livingston  <doclivingston@gmail.com>
3787         * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try
3788         to prevent #343345:
3789                 - don't ever scale to 1x1, just hide the image in that case
3790                 - don't fade when the window is minimised
3791                 - use the last-good allocation width, not the current one - as
3792                   it sometimes get weird values.
3794 2006-07-08  William Jon McCann  <mccann@jhu.edu>
3796         * data/ui/rhythmbox-ui.xml:
3797         * shell/rb-shell.c:
3798         Remove Import audio CD from menu.  Fixes #339732
3800 2006-07-08  James Livingston  <doclivingston@gmail.com>
3802         * metadata/test-metadata.c: (print_metadata_string),
3803         (load_metadata_cb): print out all the metadata we have read, not just
3804         a few.
3806         * sources/rb-playlist-source-recorder.c: (insert_media_request_cb),
3807         (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues.
3809 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3811         * plugins/lyrics/lyrics.py:
3812         Change the lyrics cache location to match Quod Libet's,
3813         and fix the '&' -> 'and' substitution to require spaces.
3815 2006-07-08  James Livingston  <doclivingston@gmail.com>
3817         * bindings/python/rb.defs:
3818         * bindings/python/rb.override: bind rb_debug_real to rb._debug
3820         * configure.ac:
3821         * plugins/Makefile.am:
3822         * plugins/rb-python-module.c: (rb_python_module_init_python):
3823         * plugins/rb/Makefile.am: add a place to put common python classes.
3824         plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the
3825         rb module/
3827         * plugins/lyrics/Makefile.am:
3828         * plugins/lyrics/Loader.py:
3829         * plugins/artdisplay/artdisplay/Makefile.am:
3830         * plugins/artdisplay/artdisplay/Loader.py:
3831         * plugins/rb/Loader.py: move the loader class to rb.Loader
3833         * plugins/rb/__init__.py: redirect stdout from python (e.g.
3834         "print ...") to rb_debug. error output (e.g. exceptions) are still
3835         printed on stderr.
3837         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3838         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3839         * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader
3840         instead of Loader.
3842         Fixes #346895.
3844 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3846         * shell/rb-shell-player.xml:
3847         * shell/rb-shell-player.h:
3848         Correct the details of the playing-song-property-changed signal.
3850 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3852         * lib/rb-marshal.list:
3853         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3854         (rb_shell_player_entry_changed_cb):
3855         * shell/rb-shell-player.h:
3856         * shell/rb-shell-player.xml:
3857         Emit a dbus signal when a property is changed on the playing entry.
3858         Fixes #332461.
3860 2006-07-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3862         * rhythmdb/rhythmdb-private.h:
3863         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
3864         Fix build break with gcc 4.1 by changing RBRefString pointers into
3865         gpointers.
3867 2006-07-07  James Livingston  <doclivingston@gmail.com>
3869         * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
3870         remove an extraneous !, which caused it not to monitor folders in the
3871         library with no tracks in them. Fixes #346759.
3873 2006-07-07  James Livingston  <doclivingston@gmail.com>
3875         * rhythmdb/rhythmdb-private.h:
3876         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
3877         (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
3878         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
3879         (rhythmdb_entry_get_string):
3880         * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
3881         flags for the affected properties. _sync_mirrored will get run
3882         automatically when a dirty property is accessed, which improves
3883         performance a bit (especially during startup) as we don't need to sync
3884         every time they change. From #325215.
3886         * tests/bench-rhythmdb-load.c
3887         * tests/Makefile.am: add a RhythmDB loading benchmark.
3889 2006-07-06  James Livingston  <doclivingston@gmail.com>
3891         * bindings/python/rb.defs:
3892         * bindings/python/rb.override: some more fixes, so that
3893         python classes derived from RBSource work correctly.
3895 2006-07-06  James Livingston  <doclivingston@gmail.com>
3897         * configure.ac: bump pygtk requirements to 2.8, since we're already
3898         using some features of it, and weird things will happen if people are
3899         actually trying to use pygtk 2.6.
3901         * bindings/python/rb.override:
3902         * bindings/python/rhythmdb.defs:
3903         * bindings/python/rhythmdb.override: allow python to set
3904         RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
3906         * sources/rb-browser-source.c: remove some left over member variables
3908 2006-07-06  James Livingston  <doclivingston@gmail.com>
3910         * rhythmdb/rhythmdb.c:
3911         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
3912         (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
3913         rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
3914         former is pointless (as rhythmdb already knows which it should use)
3915         and the latter doesn't seem useful at all, and possibly bad. From
3916         #330226.
3918         * bindings/python/rhythmdb.defs:
3919         * bindings/python/rhythmdb.override:
3920         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
3921         (handle_song_listing):
3922         * podcast/rb-podcast-manager.c:
3923         (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
3924         (rb_podcast_manager_insert_feed):
3925         * sources/rb-audiocd-source.c: (entry_set_string_prop),
3926         (rb_audiocd_create_track_entry):
3927         * sources/rb-ipod-source.c: (entry_set_string_prop),
3928         (add_ipod_song_to_db):
3929         * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
3930         * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
3932 2006-07-05  James Livingston  <doclivingston@gmail.com>
3934         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
3935         (playlist_load_end_cb), (rb_playlist_manager_parse_file),
3936         (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
3937         totem-plparser gives us, or the file name if it doesn't give us
3938         anything. Set the default file name when saving too. Fixes #345261
3940 2006-07-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3942         patch by: Ed Catmur  <ed@catmur.co.uk>
3944         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
3945         Skip all hidden directories, not just trash, and skip unreadable
3946         files.  Fixes #346322.
3948 2006-07-04  James Livingston  <doclivingston@gmail.com>
3950         * plugins/rb-module.h:
3951         * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
3952         (rb_module_new):
3953         * plugins/rb-plugin.h:
3954         * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
3955         (rb_plugin_finalise), (rb_plugin_set_property),
3956         (rb_plugin_get_property), (rb_plugin_activate),
3957         (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
3958         (rb_plugin_find_file):
3959         * plugins/rb-plugins-engine.c: (load_plugin_module):
3960         * plugins/rb-python-module.c: (rb_python_module_new_object),
3961         (rb_python_module_new):
3962         * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
3963         rb_plugin_find_file method for locating plugin-specific data. Fixes
3964         346473.
3966         * bindings/python/rb.defs:
3967         * plugins/Makefile.am:
3968         * plugins/generic-player/rb-generic-player-plugin.c:
3969         (create_source_cb):
3970         * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
3972 2006-07-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3974         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
3975         (rb_metadata_can_save), (rb_metadata_save):
3976         Protect the dbus connection with a mutex.
3978 2006-07-03  James Livingston  <doclivingston@gmail.com>
3980         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
3981         case of the parser/tagger not being able to be created.
3983 2006-07-03  James Livingston  <doclivingston@gmail.com>
3985         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3987         * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
3988         window resizable, as it used to be. Fixes #345940.
3990 2006-07-01  James Livingston  <doclivingston@gmail.com>
3992         Patch from Ståle Lyngaas  <staale@lyngaas.com>
3994         * rhythmdb/rhythmdb.h:
3995         * rhythmdb/rhythmdb-private.h:
3996         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3997         (rhythmdb_tree_parser_end_element), (save_entry):
3998         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
3999         (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
4000         (set_props_from_metadata), (rhythmdb_entry_set_internal),
4001         (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
4002         MusicBrainz track IDs in the database, and bump the on-disk version
4003         number to trigger a metadata reload.
4005         * backends/gstreamer/rb-player-gst.c: (process_tag):
4006         * metadata/rb-metadata-common.c:
4007         * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
4008         (rb_metadata_gst_field_to_gst_tag):
4009         * metadata/rb-metadata.h: grab MB track IDs and use them.
4011         * plugins/audioscrobbler/rb-audioscrobbler.c:
4012         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
4013         (rb_audioscrobbler_timeout_cb),
4014         (rb_audioscrobbler_song_changed_cb): send the MB track id along with
4015         the other metadata. Fixes #343491.
4017 2006-06-30  James Livingston  <doclivingston@gmail.com>
4019         * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
4020         method.
4022 2006-06-30  James Livingston  <doclivingston@gmail.com>
4024         * bindings/python/rb.defs:
4025         * sources/rb-browser-source.c: (rb_browser_source_class_init),
4026         (rb_browser_source_songs_show_popup_cb),
4027         (default_show_entry_popup):
4028         * sources/rb-browser-source.h:
4029         * sources/rb-library-source.c: (rb_library_source_class_init),
4030         (rb_library_source_constructor), (impl_show_popup): allow
4031         RBBrowserSource-derived sources to override the entry context menu
4032         properly - by making it a virtual function, rather than relying on
4033         signal handler order (which doesn't really work).
4035 2006-06-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4037         * rhythmdb/rhythmdb-query-model.c:
4038         (rhythmdb_query_model_reapply_query_cb):
4039         Use the original query, not the preprocessed query, when redoing
4040         the query to pick up entries that previously didn't match.
4041         Preprocessing the query twice is bad.  Fixes #346186.
4043 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4045         * plugins/audioscrobbler/rb-audioscrobbler.c:
4046         (rb_audioscrobbler_song_changed_cb):
4047         Just check if the elapsed time has been reset, rather
4048         than checking if it's a different track.  Fixes #344827.
4050 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4052         * backends/gstreamer/rb-player-gst.c:
4053         Set cdda source read-speed to 1.  Fixes gaps in playback while the
4054         drive spins up, #344576.
4056 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4058         * plugins/audioscrobbler/rb-audioscrobbler.c:
4059         (rb_audioscrobbler_perform):
4060         Use HTTP/1.1.  Fixes #345895.
4062 2006-06-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4064         * lib/rb-preferences.h:
4065         * lib/rb-proxy-config.c: (rb_proxy_config_init),
4066         (check_auto_proxy_config), (get_proxy_config):
4067         Don't try to use a HTTP proxy if no proxy host is specified.
4068         Alert the user to the fact that we don't support automatic proxy
4069         configuration as infrequently as possible.  From #345712.
4071 2006-06-25  James Livingston  <doclivingston@gmail.com>
4073         * rhythmdb/rhythmdb-property-model.c:
4074         (rhythmdb_property_model_set_property): connect to the
4075         "post-entry-delete" signal, rather than "entry-deleted". This ensures
4076         things get removed correctly, fixes #338183.
4078 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4080         * rhythmdb/rhythmdb-query-model.c:
4081         (rhythmdb_query_model_drag_data_received):
4082         Fix build break.
4084 2006-06-25  James Livingston  <doclivingston@gmail.com>
4086         patch by Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4088         * widgets/rb-search-entry.c: (rb_search_entry_init),
4089         (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
4090         search box have a pale yellow background when it's in use, except for
4091         when the user has an "accessability" theme. Code based heavily on
4092         Epiphany's. Fixes #344416.
4094 2006-06-25  James Livingston  <doclivingston@gmail.com>
4096         * plugins/lyrics/lyrics.py:
4097         * plugins/pythonconsole/pythonconsole.py:
4098         * plugins/sample-python/sample-python.py: don't import gettext stuff
4099         as _, as the C code does this for us. Fixes i18n for python plugins,
4100         #343081
4102 2006-06-25  James Livingston  <doclivingston@gmail.com>
4104         * rhythmdb/rhythmdb-query-model.c:
4105         (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
4106         a model use a reorder rather then deleting and re-adding the entry.
4107         This means it does do weird things like stop playback of a track that
4108         is dragged, fixing #337657.
4110 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4112         * metadata/rb-metadata-dbus-service.c:
4113         Add missing #include <glib/gi18n.h> from previous commit.
4115 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4117         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4119         * metadata/rb-metadata-dbus-service.c: (main):
4120         Initialize gettext in the metadata helper.
4121         * metadata/rb-metadata-gst.c:
4122         Make some strings translatable.  Fixes #345286.
4124 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4126         * configure.ac:
4127         * lib/Makefile.am:
4128         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4129         Inline the custom icons so they can always be loaded, but are still
4130         themable.  Fixes #345796.
4132 2006-06-23  James Livingston  <doclivingston@gmail.com>
4134         * sources/rb-auto-playlist-source.c:
4135         (rb_auto_playlist_source_do_query): stop the search box being applied
4136         for limits in auto playlists. Fixes #345307.
4138 2006-06-23  James Livingston  <doclivingston@gmail.com>
4140         * shell/rb-shell-clipboard.c:
4141         (rb_shell_clipboard_set_source_internal),
4142         (rb_shell_clipboard_sync), (add_playlist_to_menu),
4143         (rebuild_playlist_menu): don't use the add-to-playlist menu for
4144         non-library tracks, as we don't supprot it yet. From #345248.
4146 2006-06-23  James Livingston  <doclivingston@gmail.com>
4148         patch by: Brian Cameron  <brian.cameron@sun.com>
4150         * plugins/generic-player/rb-generic-player-plugin.c:
4151         * plugins/generic-player/rb-generic-player-source.c:
4152         * plugins/generic-player/rb-nokia770-source.c:
4153         * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
4154         Fixes 345673.
4156 2006-06-22  James Livingston  <doclivingston@gmail.com>
4158         * backends/rb-player.c: (rb_player_interface_init):
4159         * lib/rb-marshal.list:
4160         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
4161         * rhythmdb/rhythmdb-query-model.c:
4162         (rhythmdb_query_model_class_init):
4163         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
4164         * shell/rb-shell-player.c: (rb_shell_player_class_init):
4165         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
4166         * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
4167         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
4168         * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
4169         marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
4170         possible not.
4172 2006-06-20  James Livingston  <doclivingston@gmail.com>
4174         patch by Alex Lancaster  <alexl@users.sourceforge.net>
4176         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
4177         metadata to clients. Fixes #345276.
4179 2006-06-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4181         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4182         (rb_add_id3_tagger):
4183         Fix plugin/element version detection for id3v2mux.
4185 2006-06-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4187         * sources/rb-source.c: (rb_source_finalize),
4188         (rb_source_set_property), (rb_source_post_entry_deleted_cb),
4189         (_autohide_update_visibility),
4190         (_rb_autohide_source_post_entry_deleted_cb),
4191         (_rb_autohide_source_row_inserted_cb),
4192         (_rb_source_hide_when_empty):
4193         Use post-entry-delete signal to update status and autohide sources.
4195 2006-06-20  James Livingston  <doclivingston@gmail.com>
4197         * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
4198         "selection changed" idle callback, if present.
4200 2006-06-19  James Livingston  <doclivingston@gmail.com>
4202         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4204         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
4205         don't try to translate the empty string. Fixes #345285.
4207 2006-06-19  James Livingston  <doclivingston@gmail.com>
4209         * bindings/python/rhythmdb.override: more python binding fixes
4211 2006-06-19  James Livingston  <doclivingston@gmail.com>
4213         * lib/rb-util.c: (rb_copy_function):
4214         * lib/rb-util.h: add a function that returns the same pointer it was
4215         passed.
4217         * rhythmdb/rhythmdb.h:
4218         * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
4219         (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
4220         "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
4221         and RhythmDBEntryType into boxed types. This allows them to be used
4222         from python. Note that entry-types aren't actually reference counted
4223         (yet).
4225         * bindings/python/rb.defs:
4226         * bindings/python/rhythmdb.defs:
4227         * bindings/python/rhythmdb.override: Adapt to the above, and fix the
4228         return types of some bindings.
4230         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
4231         (process_added_entries_cb), (rhythmdb_entry_finalize),
4232         (rhythmdb_entry_delete):
4233         * daapsharing/rb-daap-connection.c:
4234         (rb_daap_connection_class_init), (rb_daap_connection_set_property),
4235         (rb_daap_connection_get_property):
4236         * plugins/generic-player/rb-generic-player-source.c:
4237         (rb_generic_player_source_load_songs), (load_playlist_file):
4238         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
4239         * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
4240         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
4241         (idle_process_update), (rhythmdb_query_model_add_entry),
4242         (rhythmdb_query_model_insert_into_main_list),
4243         (rhythmdb_query_model_insert_into_limited_list),
4244         (rhythmdb_query_model_remove_from_main_list),
4245         (rhythmdb_query_model_remove_from_limited_list),
4246         (rhythmdb_query_model_drag_data_received),
4247         (rhythmdb_query_model_add_results),
4248         (rhythmdb_query_model_get_column_type),
4249         (rhythmdb_query_model_get_value):
4250         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4251         (rhythmdb_tree_entry_delete), (remove_one_song):
4252         * shell/rb-play-order-linear-loop.c:
4253         (rb_linear_play_order_loop_get_next),
4254         (rb_linear_play_order_loop_get_previous):
4255         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
4256         (rb_linear_play_order_get_previous):
4257         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
4258         (rb_queue_play_order_get_previous):
4259         * shell/rb-play-order-random.c: (rb_random_play_order_init),
4260         (rb_random_filter_history), (rb_random_play_order_get_next),
4261         (rb_random_play_order_go_next), (rb_random_db_changed),
4262         (rb_random_playing_entry_changed):
4263         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
4264         (remove_from_history), (add_randomly_to_history),
4265         (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
4266         * shell/rb-play-order.c: (rb_play_order_class_init),
4267         (rb_play_order_set_property), (rb_play_order_get_property),
4268         (rb_play_order_update_have_next_previous):
4269         * shell/rb-play-order.h:
4270         * shell/rb-shell-clipboard.c:
4271         (rb_shell_clipboard_process_deletions),
4272         (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
4273         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
4274         * sources/rb-auto-playlist-source.c:
4275         (rb_auto_playlist_source_constructor):
4276         * sources/rb-browser-source.c: (rb_browser_source_class_init),
4277         (rb_browser_source_set_property), (rb_browser_source_get_property),
4278         (rb_browser_source_do_query):
4279         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
4280         * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
4281         * sources/rb-ipod-source.c: (add_rb_playlist),
4282         (add_ipod_song_to_db), (impl_paste):
4283         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
4284         (rb_iradio_source_set_property), (rb_iradio_source_get_property):
4285         * sources/rb-library-source.c: (layout_example_label_update):
4286         * sources/rb-missing-files-source.c:
4287         (rb_missing_files_source_class_init),
4288         (rb_missing_files_source_set_property),
4289         (rb_missing_files_source_get_property),
4290         (rb_missing_files_source_new):
4291         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
4292         (rb_playlist_source_set_property),
4293         (rb_playlist_source_get_property):
4294         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
4295         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
4296         (construct_query_from_selection):
4297         * sources/rb-removable-media-source.c: (impl_delete_thyself):
4298         * sources/rb-static-playlist-source.c:
4299         (rb_static_playlist_source_constructor),
4300         (rb_static_playlist_source_add_location_internal):
4301         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
4302         * widgets/rb-header.c: (rb_header_class_init),
4303         (rb_header_set_property), (rb_header_get_property):
4304         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
4305         (rb_library_browser_set_property),
4306         (rb_library_browser_get_property):
4307         * widgets/rb-song-info.c: (rb_song_info_class_init),
4308         (rb_song_info_get_property): Adjust for the _ref/_unref prototype
4309         change, do s/pointer/boxed/ in many places and free entry-types
4310         properly.
4312 2006-06-18  James Livingston  <doclivingston@gmail.com>
4314         * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
4315         unushed GThreadPool non-exclusive threads every now and then.
4317         * rhythmdb/rhythmdb-private.h:
4318         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
4319         (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
4320         threads. Fixes #341593
4322 2006-06-19  James Livingston  <doclivingston@gmail.com>
4324         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
4325         the "Track number" checkbox actually work for playlists. From #329986.
4327 2006-06-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4329         * plugins/generic-player/rb-generic-player-source.c:
4330         Get playlist and audio folder information from HAL.  Fixes #333845.
4332 2006-06-18  James Livingston  <doclivingston@gmail.com>
4334         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4336         * widgets/rb-entry-view.h:
4337         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
4338         (rb_entry_view_append_column_custom),
4339         (rb_entry_view_insert_column_custom): add support for inserting custom
4340         columns at arbitrary locations, rather than just appending to the end.
4342         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
4343         the playlists "track number" column go at the start, and add a normal
4344         track number column. Fixes #329986.
4346 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
4348         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
4349         a mnemonic conflict.  Add ellipses to the edit button.
4350         * sources/rb-library-source.c:
4351         (rb_library_source_edit_profile_clicked_cb),
4352         (impl_get_config_widget):  Hide dialog separator.  Assign a 
4353         mnemonic widget to the labels. Fixes #344114.
4355 2006-06-18  James Livingston  <doclivingston@gmail.com>
4357         * configure.ac: bump version
4358         * NEWS: add NEWS for 0.9.5
4360 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4362         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
4363         (rb_uri_handle_recursively):
4364         Don't attempt to recurse into directories we can't open.  
4365         Fixes #341485.
4367 2006-06-18  James Livingston  <doclivingston@gmail.com>
4369         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
4371         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
4372         #344610.
4374 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4376         * bindings/python/rb.defs:
4377         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
4378         * shell/rb-shell-player.h:
4379         * shell/rb-shell.c: (rb_shell_play_entry):
4380         Add source parameter to rb_shell_player_play_entry, using the selected
4381         source if not specified.
4383         * shell/rb-play-order.c: (rb_play_order_class_init),
4384         (rb_play_order_finalize), (rb_play_order_query_model_changed),
4385         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
4386         (default_playing_entry_removed):
4387         * shell/rb-play-order.h:
4388         Move entry removal handling back to the row-deleted signal, as we need
4389         the entry to be present in the model.  When changing to the next entry
4390         after the playing entry is deleted, set the new entry as the playing
4391         entry and then sync it to the player in an idle handler, so we don't
4392         end up playing it if it was removed too.
4393         * shell/rb-play-order-queue.c:
4394         (rb_queue_play_order_playing_entry_changed),
4395         (rb_queue_play_order_playing_entry_removed):
4396         Use the playing-entry-removed handler from the play order class,
4397         setting a flag so we don't try to remove the already-removed entry
4398         from the model.
4400         This makes removal of the playing entry from playlists etc. work more
4401         or less correctly for all play orders.  Fixes #344627.
4403 2006-06-17  James Livingston  <doclivingston@gmail.com>
4405         patch by: Elijah Newren  <newren@gmail.com>
4407         * tests/test-rhythmdb.c: fix the build with older versions of check
4408         (again). Fixes #343718.
4410 2006-06-17  James Livingston  <doclivingston@gmail.com>
4412         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
4413         name for capsfilter's "caps" property. Fixes #344968.
4415 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4417         * shell/rb-shell-player.c: (rb_shell_player_playpause):
4418         Don't leak the selected entry list when finding an entry to play.
4420 2006-06-17  James Livingston  <doclivingston@gmail.com>
4422         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
4423         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
4424         as a O(1) one works fine, and it will get called often when the user
4425         deleted multiple tracks. Part of #344922.
4427 2006-06-17  James Livingston  <doclivingston@gmail.com>
4429         * shell/rb-shell-player.c: (rb_shell_player_stop): make
4430         rb_shell_player_stop and rb_shell_player_playpause not mutually
4431         recursive. Fixed #336912.
4433 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4435         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
4436         Treat nested elements inside properties as unknown.  Fixes parsing of
4437         podcast feeds with unescaped HTML in description tags, bug #344532.
4439 2006-06-15  William Jon McCann  <mccann@jhu.edu>
4441         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
4442         when quitting.  Fixes #344875.
4444 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4446         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
4447         Move the playing-entry-removed handling to after the normal entry
4448         delete handling, since we're called after the entry has been removed
4449         from the query model now.  Fixes crashes described in #344627.
4451 2006-06-13  William Jon McCann  <mccann@jhu.edu>
4453         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
4454         (rb_rating_get_rating_from_widget):
4455         * widgets/rb-rating.c: (rb_rating_class_init),
4456         (rb_rating_finalize), (rb_rating_get_property),
4457         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
4458         (rb_rating_button_press_cb):
4459         Don't crash when ratings icons can't be found.  Fixes #344533.
4461 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4463         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
4465 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4467         * Makefile.am:
4468         * configure.ac:
4469         * remote/Makefile.am:
4470         * remote/dbus/Makefile.am:
4471         * remote/dbus/rb-client.c:
4472         * shell/Makefile.am:
4473         New dbus client program providing --play/--next etc. arguments.
4474         Fixes #340863, #155763.
4476 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4478         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
4479         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
4481 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
4483         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
4485         * rhythmdb/rhythmdb-query-model.c:
4486         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
4487         to Library incorrectly
4489 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4491         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
4492         Return input string untouched if gnome_vfs_uri_new returns NULL.
4493         * sources/rb-static-playlist-source.c: (impl_receive_drag),
4494         (rb_static_playlist_source_add_list_uri):
4495         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
4496         URIs don't break it.  Fixes #339033.
4498 2006-06-08  James Livingston  <doclivingston@gmail.com>
4500         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
4501         for sources on the edge (i.e. the queue). Fixes #328409.
4503         * sources/rb-ipod-source.c: fix typo
4505 2006-06-08  James Livingston  <doclivingston@gmail.com>
4507         * configure.ac:
4508         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
4509         --enable-ipod-writing to enable the ipod syncing code.
4511 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4513         * sources/rb-library-source.c: (layout_example_label_update):
4514         add missing comma so we don't generate broken markup.
4516 2006-06-08  James Livingston  <doclivingston@gmail.com>
4518         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
4519         tag-merging with id3v2mux as well as id3mux. From #342330.
4521 2006-06-07  James Livingston  <doclivingston@gmail.com>
4523         * tests/test-rhythmdb.c: #define fail_if for old version of check
4524         which don't have it. Hopefully fixes #343718.
4526 2006-06-07  James Livingston  <doclivingston@gmail.com>
4528         * shell/rb-playlist-manager.c:
4529         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
4530         g_value_array_free with NULL. Fixes #341053.
4532 2006-06-07  James Livingston  <doclivingston@gmail.com>
4534         * shell/rb-playlist-manager.c:
4535         (rb_playlist_manager_playlist_entries_changed),
4536         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
4537         instead of "row-removed", which fixes updating "burn playlist"
4538         sensitivity. Fixes #331119.
4540 2006-06-07  James Livingston  <doclivingston@gmail.com>
4542         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
4543         rather than restarting if the source uses _RETRY and there is an
4544         actual error (like an undecodable stream) rather than it just dropping
4545         out and causing EOS.
4547 2006-06-07  James Livingston  <doclivingston@gmail.com>
4549         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
4550         free the pixbufs if they couldn't be loaded. Fixed #343852.
4552 2006-06-07  James Livingston  <doclivingston@gmail.com>
4554         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
4555         the close button on the dialog work. Fixes #335346.
4557 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4559         * sources/rb-sourcelist-model.c: (path_is_droppable),
4560         (path_is_reorderable):
4561         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
4562         (row_activated_cb), (emit_show_popup), (key_release_cb),
4563         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
4564         Ignore group marker rows in the source list.  Fixes #344089, a couple
4565         of other crashers, and some weird UI glitches too.
4567 2006-06-07  James Livingston  <doclivingston@gmail.com>
4569         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
4570         the seeking query fails. This is needed because many gst elements
4571         don't implement the seeking query yet. Should fix 329977.
4573 2006-06-06  James Livingston  <doclivingston@gmail.com>
4575         * configure.ac: bump version for a prerelease, turn on track transfer
4576         by default.
4578         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
4579         ipod transfer stuff, since it has big issues and we'll hopefully land
4580         real support (bug 310774) after 0.9.5
4582 2006-06-06  James Livingston  <doclivingston@gmail.com>
4584         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
4585         id3v2mux once we've detected it.
4587 2006-06-06  James Livingston  <doclivingston@gmail.com>
4589         * lib/Makefile.am:
4590         * tests/test-rhythmdb.c: undo accidental commit which caused
4591         rb-thread.c to be built (which it isn't normally)
4593 2006-06-06  James Livingston  <doclivingston@gmail.com>
4595         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
4596         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
4597         fail_{if/unless} calls, as some versions of check need them (they are
4598         optional in others). Should fix bug 343718.
4600 2006-06-06  James Livingston  <doclivingston@gmail.com>
4602         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
4603         343836.
4604         
4605         * lib/Makefile.am:
4606         * lib/rb-thread.c: (process_actions):
4607         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
4608         tests that don't pass.
4610 2006-06-05  James Livingston  <doclivingston@gmail.com>
4612         * data/glade/Makefile.am:
4613         * data/glade/load-failure.glade:
4614         * data/rhythmbox.schemas: remove the remainder of the old load-failure
4615         dialog.
4617 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4619         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
4620         checked in.
4622 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4624         * bindings/python/rb.defs:
4625         * sources/rb-source.h:
4626         * sources/rb-source.c: (rb_source_class_init),
4627         (rb_source_set_property), (rb_source_get_property),
4628         (rb_sourcelist_group_get_type):
4629         Add 'sourcelist-group' property on the RBSource class, describing how
4630         sources should be grouped in the source list.
4632         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
4633         (rb_sourcelist_model_new), (real_row_is_separator),
4634         (rb_sourcelist_model_is_row_visible),
4635         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
4636         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
4637         (rb_sourcelist_model_row_draggable),
4638         (rb_sourcelist_model_row_inserted_cb),
4639         (rb_sourcelist_model_row_deleted_cb),
4640         (rb_sourcelist_model_get_group_path):
4641         * sources/rb-sourcelist-model.h:
4642         * sources/rb-sourcelist.c: (rb_sourcelist_init),
4643         (rb_sourcelist_append):
4644         Add group marker rows for each sourcelist group, and use these to
4645         insert sources in the right place.  Sort transient sources (DAAP
4646         shares) by name.  Show the group marker rows as separators when the
4647         next visible row is a source.  Make persistant sources (playlists) and
4648         removable sources reorderable using drag and drop, restricting them
4649         within the source groups.
4650         
4651         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4652         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
4653         * sources/rb-daap-source.c: (rb_daap_source_new):
4654         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4655         * sources/rb-static-playlist-source.c:
4656         (rb_static_playlist_source_new):
4657         * plugins/generic-player/rb-generic-player-source.c:
4658         (rb_generic_player_source_new):
4659         * plugins/generic-player/rb-nokia770-source.c:
4660         (rb_nokia770_source_new):
4661         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
4662         Add source list group information to existing source classes.
4664         Fixes #318754 and #336492.
4666 2006-06-04  James Livingston  <doclivingston@gmail.com>
4668         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
4669         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
4670         win32 build fixes.
4672 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4674         * rhythmdb/rhythmdb-query-model.c:
4675         (rhythmdb_query_model_class_init),
4676         (rhythmdb_query_model_remove_from_main_list):
4677         * rhythmdb/rhythmdb-query-model.h:
4678         Add a new 'post-entry-delete' signal, emitted when the entry has been
4679         removed from the model's data structures.
4681         * shell/rb-play-order.c: (rb_play_order_finalize),
4682         (rb_play_order_query_model_changed),
4683         (rb_play_order_post_entry_delete_cb):
4684         Use the new signal to update the play order, so the queue play order
4685         doesn't try to scroll to entries that don't exist in a way that causes
4686         the tree view to crash.  Fixes #340216.
4688 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4690         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
4691         Fix rb_debug call I missed previously.
4693 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4695         * metadata/rb-metadata-gst.c:
4696         Don't use NULL as the error message for ignored files, as it crashes
4697         with some C libraries.  Fixes #343713.
4699 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4701         * widgets/rb-dialog.c: (rb_error_dialog):
4702         * widgets/rb-dialog.h:
4703         Mark rb_error_dialog as taking printf-like arguments, and use a format
4704         string for the primary message rather than passing in the message
4705         directly.
4707         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
4708         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
4709         (info_available_cb):
4710         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
4711         * shell/rb-removable-media-manager.c:
4712         (rb_removable_media_manager_eject_medium_cb):
4713         Make sure all calls to rb_error_dialog use string constants for the
4714         format string rather than passing the error message directly.  Remove
4715         an extra %s from the message used when playback fails.  Fixes #343562.
4717         * lib/rb-debug.h:
4718         * sources/rb-audiocd-source.c:
4719         * plugins/audioscrobbler/rb-audioscrobbler.c:
4720         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
4721         Mark rb_debug as taking printf-like arguments and fix a few resulting
4722         warnings.
4724 2006-06-02  James Livingston  <doclivingston@gmail.com>
4726         * configure.ac:
4727         + macros/check.m4: add support for using check for unit tests, the .m4
4728         files is so autogen can run without check being installed
4730         * tests/Makefile.am:
4731         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
4732         some of the old tests, and add some new ones. Currently
4733         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
4734         yet (the query doesn't return any entries).
4736         - tests/deserialization-test1.xml:
4737         - tests/deserialization-test2.xml:
4738         - tests/deserialization-test3.xml:
4739         - tests/test-rhythmdb-indexing.c:
4740         - tests/test-rhythmdb-simple.c:
4741         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
4742         have been ported
4744         - tests/test-cd.c:
4745         - tests/test-cmdline.c: remove obsolete tests
4747 2006-06-02  James Livingston  <doclivingston@gmail.com>
4749         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4750         (rb_add_id3_tagger), (rb_metadata_init): add support for using
4751         id3v2mux, and check whether we are using a version of id3mux that has
4752         the correct merge-mode behaviour.
4754         * plugins/sample-python/Makefile.am: fix distcheck.
4756         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
4757         the changed-files source was added before trying to remove it.
4759         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
4760         *old* bug which would crash if a query with top-level disjunctions
4761         tried to check later disjunctive parts. Hooray for unit-testing.
4763 2006-06-02  William Jon McCann  <mccann@jhu.edu>
4765         * player/rb-recorder-gst.c (rb_recorder_set_device):
4766         Check for a null drive.
4768 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4770         * lib/Makefile.am:
4771         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4772         Register the app icon as a builtin if the icon theme can't find it.
4774 2006-05-31  James Livingston  <doclivingston@gmail.com>
4776         * player/rb-recorder-gst.c: add missing include.
4778 2006-05-30  William Jon McCann  <mccann@jhu.edu>
4780         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
4781         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
4782         (tick_timeout_cb), (rb_recorder_sync_pipeline),
4783         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
4784         (rb_recorder_set_device), (rb_recorder_get_default_device):
4785         * shell/main.c: (main):
4786         * shell/rb-removable-media-manager.c:
4787         (rb_removable_media_manager_finalize),
4788         (get_nautilus_burn_drive_for_path),
4789         (rb_removable_media_manager_playing_uri_changed_cb),
4790         (rb_removable_media_manager_load_media),
4791         (nautilus_burn_drive_get_device),
4792         (rb_removable_media_manager_scan):
4793         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
4795         Update for libnautilus-burn 2.15.3 API changes.
4796         Fixes #342604
4798 2006-05-30  James Livingston  <doclivingston@gmail.com>
4800         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
4801         "return" to that it asks for the password again if it was wrong.
4803 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4805         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
4806         typefind element.
4808 2006-05-30  James Livingston  <doclivingston@gmail.com>
4810         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
4811         (download_progress_cb): don't do wonky things if the transfer
4812         "suceeds" without transferring any data.
4814 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4816         * sources/rb-library-source.c: (layout_example_label_update),
4817         (build_filename):  Fix crash when no audio profile is selected.
4818         Fixes #341447.
4820 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4822         * shell/rb-shell.c: (rb_shell_clear_queue):
4823         * shell/rb-shell.h:
4824         * shell/rb-shell.xml:
4825         * sources/rb-play-queue-source.c:
4826         (rb_play_queue_source_clear_queue),
4827         (rb_play_queue_source_cmd_clear):
4828         * sources/rb-play-queue-source.h:
4829         Add clearQueue dbus method.
4831 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4833         * shell/main.c: (main):  Implement --quit option.
4835 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4837         * rhythmdb/rhythmdb-private.h:
4838         * rhythmdb/rhythmdb-tree.h:
4839         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
4840         (rhythmdb_entry_insert), (rhythmdb_entry_set),
4841         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
4842         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
4843         (rhythmdb_entry_get_boolean):
4844         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
4845         bitmask, giving the db backend anything past the first 16 bits for 
4846         its own private use.
4848         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4849         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
4850         Add a 'loading' flag to indicate that an entry is being loaded from
4851         disk, and use that to ignore entry_set operations on such entries
4852         rather than the 'inserted' flag, which doesn't quite mean the same
4853         thing.  Fixes #342694.
4855 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4857         * shell/rb-shell.xml: Remove visibility property, since it causes
4858         crashes (dbus bug 7057) and doesn't do much else.
4860 2006-05-28  James Livingston  <doclivingston@gmail.com>
4862         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
4864         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4865         * po/POTFILES.in: fix some more i18n issues.
4867 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4869         * bindings/python/rb.defs:
4870         * shell/rb-shell-player.c: (rb_shell_player_playpause),
4871         (filter_mmkeys):
4872         * shell/rb-shell-player.h:
4873         Deprecate the useless 'ignore_stop' parameter to
4874         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
4875         API.  From bug #334829.
4877 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4879         * plugins/generic-player/rb-generic-player-source.c:
4880         (visit_playlist_dirs), (default_transform_playlist_uri):
4881         When playlist parsing fails, unref the playlist, not the parent
4882         source.  Fix memory leak in playlist uri transform.
4883         * plugins/generic-player/rb-nokia770-source.c:
4884         (impl_transform_playlist_uri):
4885         Fix memory leak in playlist uri transform.
4887 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
4889         * doc/reference/Makefile.am: fix grk-doc build
4891 2006-05-27  James Livingston  <doclivingston@gmail.com>
4893         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
4895         * plugins/lyrics/lyrics.py:
4896         * po/POTFILES.in: Make strings in plugins translatable. From bug
4897         343081.
4899 2006-05-27  James Livingston  <doclivingston@gmail.com>
4901         * backends/Makefile.am:
4902         * backends/gstreamer/Makefile.am:
4903         * lib/Makefile.am:
4904         * plugins/audioscrobbler/Makefile.am:
4905         * plugins/generic-player/Makefile.am:
4906         * po/POTFILES.in:
4907         * rhythmdb/rhythmdb-monitor.c:
4908         * rhythmdb/rhythmdb.c:
4909         * sources/Makefile.am:
4910         * widgets/Makefile.am: fix compilation after some CVS surgery was
4911         done.
4913 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4915         * bindings/python/rhythmdb.defs:
4916         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
4917         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
4918         (rhythmdb_query_deserialize):
4919         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
4920         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
4921         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
4922         (rhythmdb_entry_register_type_alias),
4923         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
4924         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
4925         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
4926         (rhythmdb_entry_podcast_feed_get_type),
4927         (rhythmdb_entry_import_error_get_type),
4928         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
4929         * rhythmdb/rhythmdb.h:
4930         Allocate a specified amount of extra memory for each db entry, to be
4931         used to store fields specific to the entry type.  Optionally associate
4932         a name with each entry type, to be used when saving entries and
4933         auto playlists to disk.  Allow entry types to have multiple names
4934         to handle older playlist files that used '0' to represent 'song'.
4935         Use private data to store podcast fields.
4937         * rhythmdb/rhythmdb-private.h:
4938         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4939         (rhythmdb_tree_parser_end_element), (save_entry),
4940         (rhythmdb_tree_entry_set):
4941         Simplify property handling by using existing code to convert
4942         properties from strings to GValues and to set properties on entries.
4943         Other assorted changes due to the above.
4945         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4946         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
4947         * sources/rb-generic-player-source.c:
4948         (rb_generic_player_source_new):
4949         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4950         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
4951         * sources/rb-psp-source.c: (rb_psp_source_new):
4952         Update for changes to rhythmdb_entry_register_type.  None of these
4953         entry types need names or use private data.
4955         Fixes #337429.
4957 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4959         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
4960         Fix creation of ignored-file db entries - need to check for
4961         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
4963 2006-05-25  James Livingston  <doclivingston@gmail.com>
4965         * AUTHORS:
4966         * MAINTAINERS: update my email address
4968 2006-05-25  James Livingston  <doclivingston@gmail.com>
4970         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
4971         "(... mix)" when searching for lyrics. Cache the lyrics under
4972         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
4974 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4976         * sources/rb-import-errors-source.c:
4977         (rb_import_errors_source_class_init):
4978         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
4979         * sources/rb-browser-source.c: (rb_browser_source_class_init):
4980         * sources/rb-source.c: (rb_source_class_init),
4981         (default_move_to_trash):
4982         Implement the basic move-to-trash operation once in rb-source.c, 
4983         rather than in each source type that supports it.
4985         * plugins/ipod/rb-ipod-plugin.c:
4986         * shell/rb-removable-media-manager.c:
4987         * shell/rb-shell.c: (rb_shell_constructor):
4988         Only scan removable media once after loading plugins.  Add a flag
4989         plugins can use to check if the initial scan has been done.
4991         * data/rhythmbox.schemas:
4992         Enable ipod and generic-player plugins by default.
4993         
4994         * configure.ac:
4995         * data/ui/Makefile.am:
4996         * data/ui/generic-player-ui.xml:
4997         * data/ui/rhythmbox-ui.xml:
4998         * plugins/Makefile.am:
4999         * plugins/generic-player/Makefile.am:
5000         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
5001         * plugins/generic-player/rb-generic-player-plugin.c:
5002         * sources/Makefile.am:
5003         * sources/rb-generic-player-source.c:
5004         * sources/rb-generic-player-source.h:
5005         * sources/rb-nokia770-source.c:
5006         * sources/rb-nokia770-source.h:
5007         * sources/rb-psp-source.c: (visit_playlist_dirs):
5008         * sources/rb-psp-source.h:
5009         Pluginise generic player (and nokia770 and PSP) support and add
5010         move-to-trash for players not mounted read-only.
5011         Fixes #342868.
5013 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5015         * daapsharing/rb-daap-connection.c (handle_song_listing):
5016         Lower bound check for batch commit.  Fixes #342848
5018         * sources/rb-daap-source.c (rb_daap_source_get_status):
5019         Always set output variables if provided.
5021 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5023         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
5024         (rhythmdb_tree_entry_delete), (remove_one_song):
5025         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
5026         Fix two db entry reference counting problems.
5027         The initial reference on the entry is held by the db backend, but it
5028         was never being dropped.  The reference count was incremented when
5029         adding an entry to the deleted_entries map and to the
5030         deleted_entries_to_emit list, but only decremented for one of those.
5032 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5034         * daapsharing/rb-daap-connection.c (http_response_handler) 
5035         (rb_daap_connection_dispose):
5036         Call soup_session_abort to make sure there are no outstanding
5037         requests when we dispose of the connection.  Ignore cancelled
5038         messages in the callback.
5040 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5042         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
5043         (rb_daap_source_disconnect): Set a flag when disconnecting
5044         the source.  Check this flag in connection callback
5045         to see if we should release the connection.
5047 2006-05-24  William Jon McCann  <mccann@jhu.edu>
5049         * daapsharing/Makefile.am:
5050         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
5051         (rb_daap_connection_class_init), (connection_connected),
5052         (connection_disconnected), (connection_operation_done),
5053         (build_message), (connection_set_error_message),
5054         (actual_http_response_handler), (http_get),
5055         (entry_set_string_prop), (emit_progress_idle),
5056         (handle_server_info), (handle_login), (handle_update),
5057         (handle_database_info), (handle_song_listing), (handle_playlists),
5058         (handle_playlist_entries), (handle_logout),
5059         (rb_daap_connection_new), (rb_daap_connection_is_connected),
5060         (connection_response_data_free), (connected_cb),
5061         (rb_daap_connection_connect), (disconnected_cb),
5062         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
5063         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
5064         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
5065         (rb_daap_connection_get_property):
5066         * daapsharing/rb-daap-connection.h:
5067         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
5068         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
5069         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
5070         (rb_daap_hash_generate):
5071         * daapsharing/rb-daap-hash.h:
5072         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5073         (rb_daap_get_icon), (remove_source), (stop_browsing),
5074         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
5075         (connection_connecting_cb), (connection_disconnected_cb),
5076         (release_connection), (rb_daap_source_connection_cb),
5077         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
5078         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
5080         Adds a better async API for connect and disconnect.  Doesn't share
5081         callback data for every async call.  Adds a connect signal.  Uses
5082         an operation-done signal to trigger the callbacks.  Displays an
5083         error when connections fail.  A few refcounting fixes to fix
5084         crashes.  Uses a weak pointer to set the connection to NULL so we
5085         don't clobber references.  Wait for each disconnect when shutting
5086         down sources.  Split out DAAP hash stuff into its own file.  Fix
5087         typo in header.
5089         Fixes #342643
5090         
5091 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5093         * sources/rb-auto-playlist-source.c:
5094         (rb_auto_playlist_source_new_from_xml):
5095         Initialize the gvalue used to hold the size limit correctly.
5096         Fixes #342744.
5098 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5100         * shell/rb-shell.c: (rb_shell_window_delete_cb),
5101         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
5102         * shell/rb-shell.h:
5103         * shell/rb-shell.xml:
5104         Convert rb_shell_quit into a dbus method, and add visibility dbus
5105         property.
5107 2006-05-22  James Livingston  <doclivingston@gmail.com>
5109         * rhythmdb/rhythmdb.h:
5110         * rhythmdb/rhythmdb.c: (sync_entry_changed),
5111         (rhythmdb_entry_is_editable), (action_thread_main),
5112         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
5113         vfuncs for can_sync_metadata, and sync_metadata. The default is always
5114         false, and syncing into the file.
5116         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
5117         (rhythmdb_entry_iradio_get_type),
5118         (rhythmdb_entry_import_error_get_type):
5119         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
5120         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
5121         change the DB.
5123 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5125         * rhythmdb/Makefile.am:
5126         * rhythmdb/rhythmdb-monitor.c:
5127         * rhythmdb/rhythmdb-private.h:
5128         * rhythmdb/rhythmdb-query.c:
5129         * rhythmdb/rhythmdb.c:
5130         Split up rhythmdb.c a bit.
5132 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5134         * data/glade/audioscrobbler-prefs.glade:
5135         Add a link to the last.fm server status page.
5137 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
5139         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
5140         Capitalization fix.
5141         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5142         (impl_create_configure_dialog):  UI layout fixes, remove
5143         dialog separator, and capitalization fix for window title.
5144         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
5145         and remove dialog separator.
5146         * data/glade/plugins.glade:  UI layout fixes.
5147         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
5148         and capitalization fix.  Fixes #342438.
5150 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
5152         * data/glade/podcast-properties.glade:  Fix layout of the download 
5153         location.  Fixes #342431.
5155 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5157         * data/ui/rhythmbox-ui.xml:
5158         We only need one copy of the 'add to queue' action in the edit menu.
5160 2006-05-20  James Livingston  <doclivingston@gmail.com>
5162         * data/ui/rhythmbox-ui.xml:
5163         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
5164         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
5165         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
5166         (rb_shell_clipboard_sync),
5167         (rb_shell_clipboard_cmd_add_to_playlist_new),
5168         (rb_shell_clipboard_cmd_queue_song_info),
5169         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
5170         (rb_shell_clipboard_playlist_deleted_cb),
5171         (rb_shell_clipboard_playlist_renamed_cb),
5172         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
5173         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
5174         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
5175         dynamically generated with all the static playlists. Fixes bug 323364.
5177         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
5178         right child, so it doesn't go weird when art appears and disappears.
5180 2006-05-20  James Livingston  <doclivingston@gmail.com>
5182         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
5184         * rhythmdb/rhythmdb-query-model.c:
5185         (rhythmdb_query_model_set_property),
5186         (rhythmdb_query_model_finalize),
5187         (rhythmdb_query_model_reapply_query_cb):
5188         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
5189         (rhythmdb_query_append_prop_multiple),
5190         (rhythmdb_query_is_time_relative):
5191         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
5192         time-based criteria, fixes bug 341131.
5194 2006-05-20  James Livingston  <doclivingston@gmail.com>
5196         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
5197         we have already changed playing entries. Interpolate the art size so
5198         it doesn't jump when the old and new images have different aspect
5199         ratios.
5201 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5203         * rhythmdb/rhythmdb-private.h:
5204         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5205         (save_entry):
5206         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
5207         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
5208         (rhythmdb_entry_get_ulong):
5209         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
5210         and elsewhere, use them on the stack rather than allocating on 
5211         the heap.  From bug #342333.
5213 2006-05-19  William Jon McCann  <mccann@jhu.edu>
5215         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
5216         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
5217         (add_track), (eos_cb), (error_signal_idle),
5218         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
5219         (rb_recorder_construct), (recorder_track_free),
5220         (rb_recorder_finalize):
5221         * sources/rb-playlist-source-recorder.c:
5222         Support libnautilus-burn size -> capacity API change.  Add
5223         some braces to blocks.
5225 2006-05-19  William Jon McCann  <mccann@jhu.edu>
5227         * metadata/sj-metadata-musicbrainz.c:
5228         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
5229         Sync with sound-juicer in CVS.  Fixes #342177
5230         * sources/rb-audiocd-source.c: Don't declare variables
5231         in the middle of a block (c99ism).  Fix order of #includes.
5232         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
5233         one variable per line.  Update copyright date.
5235 2006-05-19  James Livingston  <doclivingston@gmail.com>
5237         patch by: Hendrik Richter  <hendi@gnome-de.org>
5239         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
5240         "translator_credits" to a hyphen, so it doesn't cause problems for
5241         tools that check access keys. Fixes bug 341832.
5243 2006-05-19  James Livingston  <doclivingston@gmail.com>
5245         * po/POTFILES.in: remove references to files that don't exist any more
5246         (fixes make distcheck).
5248 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
5250         * plugins/lyrics/lyrics.py:  Fix layout close button in 
5251         Song Lyrics dialog. Fixes bug 342322.
5253 2006-05-19  James Livingston  <doclivingston@gmail.com>
5255         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
5257         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
5258         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
5259         version checks not break when libnotify goes to 1.0.0. Fixes bug
5260         342244.
5262 2006-05-18  James Livingston  <doclivingston@gmail.com>
5264         * shell/rb-shell-clipboard.c:
5265         * shell/rb-shell.c:
5266         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
5268 2006-05-17  William Jon McCann  <mccann@jhu.edu>
5270         * sources/rb-playlist-source-recorder.c (get_song_description):
5271         Reverse artist and title in song description.  This
5272         is useful because at least the title will be visible
5273         when there is limited space.
5275 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5277         * daapsharing/rb-daap-connection.c: (connection_get_password):
5278         Take gdk lock before emitting authenticate signal.
5279         * sources/rb-daap-source.c: (connection_connecting_cb):
5280         Get rid of the unnecessary idle handler (it's already called from one)
5281         Fixes #342047 once more.
5283 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5285         * shell/rb-shell.c: (rb_shell_class_init):
5286         * shell/rb-shell.h:
5287         * widgets/rb-song-info.c: (rb_song_info_class_init),
5288         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
5289         (rb_song_info_constructor), (rb_song_info_get_property),
5290         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
5291         (rb_song_info_forward_clicked_cb):
5292         * widgets/rb-song-info.h:
5293         * data/glade/song-info-multiple.glade:
5294         * lib/rb-marshal.list:
5295         * bindings/python/Makefile.am:
5296         * bindings/python/rb.defs:
5297         * bindings/python/rb.override:
5298         Allow plugins to add pages to the notebooks used in song info windows,
5299         and to track the current song displayed in single-entry windows.
5300         
5301         * configure.ac:
5302         * plugins/Makefile.am:
5303         * plugins/lyrics/Loader.py:
5304         * plugins/lyrics/Makefile.am:
5305         * plugins/lyrics/lyrics.py:
5306         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
5307         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
5308         as a separate window (for the playing song) or as a page in the song
5309         info window.  A few TODO items left, but this fixes #319320.
5311 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5313         Patch by:  Roozbeh Pournader
5315         * configure.ac:
5316         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
5317         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
5319 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5320         
5321         * sources/rb-daap-source.c: (update_connection_status):
5322         Correct return value.  Fixes #342047 again.
5324 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5326         * sources/rb-daap-source.c: (update_connection_status),
5327         (connection_connecting_cb):
5328         Update status in an idle handler so we don't rely on the gdk lock
5329         being recursive (because it isn't any more).  Fixes #342047.
5331 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5333         * lib/rb-util.c: (rb_make_duration_string),
5334         (rb_make_elapsed_time_string):
5335         * lib/rb-util.h:
5336         Add a function for formatting an elapsed time string.
5338         * shell/rb-shell-player.c: (rb_shell_player_init),
5339         (rb_shell_player_sync_with_source),
5340         (rb_shell_player_get_playing_time_string), (tick_cb):
5341         Store elapsed time in the private data structure, and use the above
5342         function.
5343         
5344         * widgets/rb-header.c:
5345         * widgets/rb-header.h:
5346         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
5347         object, so everything has the same idea of the elapsed time.
5348         Fixes #339693.
5350 2006-05-16  James Livingston  <doclivingston@gmail.com>
5352         * bindings/python/rhythmdb.defs:
5353         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
5354         some parametre defaults, so you don't have to pass None, False for the
5355         sorting order.
5357 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5359         * bindings/python/rhythmdb.defs:
5360         * rhythmdb/rhythmdb-query-model.c:
5361         (rhythmdb_query_model_compute_status_normal):
5362         * rhythmdb/rhythmdb-query-model.h:
5363         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
5364         * rhythmdb/rhythmdb.h:
5365         Change the various compute_status methods to accept a singular/plural
5366         pair to use in the status string.
5367         
5368         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5369         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
5370         * sources/rb-source.c: (default_get_status):
5371         Call entries 'songs' by default, and 'episodes' in the podcast source.
5372         Fixes #340227.
5374 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5376         patch by:  Paul Drain
5378         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
5379         Fixes #341817.
5381 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5383         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
5384         Generate reorder maps correctly.
5385         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
5386         Scroll to the first entry from the old selection.
5387         Fixes #322992.
5389 2006-05-15  William Jon McCann  <mccann@jhu.edu>
5391         * data/ui/rhythmbox-ui.xml:
5392         * lib/rb-preferences.h:
5393         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
5394         (rb_shell_playlist_created_cb),
5395         (rb_shell_view_sidepane_changed_cb),
5396         (rb_shell_sync_sidepane_visibility),
5397         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
5398         (sidepane_visibility_changed_cb):
5399         * sources/rb-podcast-source.c:
5400         Convert sourcelist visibility to side-pane visbility.
5401         Fixes #339733
5403 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5405         * widgets/rb-header.c:
5406         * widgets/rb-header.h: Stop RBHeader from referring to itself as
5407         'player', and make it use the private data structure allocated for it.
5409 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5411         * configure.ac: enable metadata helper with dbus < 0.35.
5413 2006-05-15  James Livingston  <doclivingston@gmail.com>
5415         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
5417         * data/glade/song-info.glade:
5418         * widgets/rb-song-info.c: (rb_song_info_construct_single),
5419         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
5420         (rb_song_info_update_filesize): Add the file size into the song info
5421         window. Fixes bug 340861.
5423 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5425         * bindings/python/rhythmdb.defs:
5426         * rhythmdb/rhythmdb-query-model.c:
5427         (rhythmdb_query_model_set_property),
5428         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
5429         * rhythmdb/rhythmdb-query-model.h:
5430         Add a new method to chain query models without importing entries from
5431         the parent into the child.  This is useful when the subset of entries
5432         in the child can be more easily determined by running a query than by
5433         filtering entries from the parent.
5435         * bindings/python/rb.defs:
5436         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
5437         (rb_library_browser_set_property),
5438         (rb_library_browser_get_property), (rb_library_browser_new),
5439         (rebuild_child_model):
5440         * widgets/rb-library-browser.h:
5441         * sources/rb-auto-playlist-source.c:
5442         (rb_auto_playlist_source_constructor):
5443         * sources/rb-static-playlist-source.c:
5444         (rb_static_playlist_source_constructor):
5445         * sources/rb-browser-source.c: (rb_browser_source_constructor):
5446         Use more efficient queries for constructing the browser query model
5447         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
5448         backend to optimise the query) and run new queries rather than
5449         filtering entries from the parent.  Fixes #341402.
5451         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
5453 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5455         * configure.ac:
5456         * shell/Makefile.am:
5457         * shell/main.c: (main), (load_uri_args), (send_present_message),
5458         (unregister_dbus_handler), (handle_dbus_message),
5459         (register_dbus_handler):
5460         Add minimal support for dbus 0.31 - 0.35.
5462         * doc/reference/Makefile.am:
5463         * doc/reference/rhythmbox.types:
5464         * data/Makefile.am:
5465         * data/GNOME_Rhythmbox.server.in:
5466         * data/rhythmbox.pc.in:
5467         * remote/*:
5468         * remote/bonobo/*:
5469         Remove remaining bonobo and generic remote interface files.
5471 2006-05-14  James Livingston  <doclivingston@gmail.com>
5473         * shell/rb-shell.c: (construct_widgets):
5474         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
5475         resize the browser and queue-sidebar section of their panes, unless
5476         the other section is below the minimum size. Fixes bug 331927.
5478 2006-05-13  James Livingston  <doclivingston@gmail.com>
5480         * rhythmdb/rhythmdb-query-model.c:
5481         (rhythmdb_query_model_class_init),
5482         (rhythmdb_query_model_set_property),
5483         (rhythmdb_query_model_get_property),
5484         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
5485         (rhythmdb_query_model_insert_into_main_list),
5486         (rhythmdb_query_model_insert_into_limited_list),
5487         (rhythmdb_query_model_do_reorder),
5488         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
5489         (rhythmdb_query_model_location_sort_func),
5490         (rhythmdb_query_model_title_sort_func),
5491         (rhythmdb_query_model_album_sort_func),
5492         (rhythmdb_query_model_artist_sort_func),
5493         (rhythmdb_query_model_genre_sort_func),
5494         (rhythmdb_query_model_track_sort_func),
5495         (rhythmdb_query_model_double_ceiling_sort_func),
5496         (rhythmdb_query_model_ulong_sort_func),
5497         (rhythmdb_query_model_date_sort_func),
5498         (rhythmdb_query_model_string_sort_func):
5499         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
5500         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
5501         "data destroy" property. Fixed bug 341543.
5503         * bindings/python/rhythmdb.defs:
5504         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
5505         rhythmdb_query_model_set_sorting_order
5507         * rhythmdb/rhythmdb-property-model.c:
5508         (rhythmdb_property_model_drag_data_get):
5509         * sources/rb-import-errors-source.c:
5510         (rb_import_errors_source_constructor):
5511         * sources/rb-missing-files-source.c:
5512         (rb_missing_files_source_constructor):
5513         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
5514         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
5515         * widgets/rb-entry-view.h: adapt to the above change.
5517 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5519         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
5520         (rhythmdb_tree_load):
5521         Commit loaded entries in batches, rather than individually.  
5522         More startup time reduction.
5524 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
5526         * doc/reference/Makefile.am: fix gtk-doc compilation
5528 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5530         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5531         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5532         * plugins/artdisplay/artdisplay/Loader.py:
5533         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
5534         Only call the first artist the best match when album==Unknown.
5535         Don't perform each query twice if album doesn't include "Vol N".
5536         Fix searching for compilations.  Fix blacklisting.
5537         Part of bug #307848
5539 2006-05-12  William Jon McCann  <mccann@jhu.edu>
5541         * Makefile.am:
5542         * bindings/python/Makefile.am:
5543         * bindings/python/rb.defs:
5544         * bindings/python/rb.override:
5545         * configure.ac:
5546         * doc/reference/Makefile.am:
5547         * plugins/Makefile.am:
5548         * plugins/audioscrobbler/Makefile.am:
5549         * plugins/ipod/Makefile.am:
5550         * plugins/lirc/Makefile.am:
5551         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
5552         (impl_activate), (impl_deactivate):
5553         * plugins/sample/Makefile.am:
5554         * remote/Makefile.am:
5555         * shell/Makefile.am:
5556         * shell/main.c: (main), (main_shell_weak_ref_cb):
5557         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
5558         (rb_shell_get_property), (rb_shell_window_state_cb),
5559         (idle_hide_mainwindow), (rb_shell_set_visibility),
5560         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
5561         (rb_shell_set_song_property):
5562         * shell/rb-shell.h:
5563         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
5564         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
5565         (rb_tray_icon_get_property), (rb_tray_icon_new),
5566         (rb_tray_icon_button_press_event_cb),
5567         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
5568         (rb_tray_icon_show_window_changed_cb):
5569         * shell/rb-tray-icon.h:
5571         Remove bonobo, require DBUS.
5572         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
5573         Fixes #339720
5575 2006-05-13  James Livingston  <doclivingston@gmail.com>
5577         * bindings/python/rb.override: fix some pointer-type warnings
5579 2006-05-12  James Livingston  <doclivingston@gmail.com>
5581         * lib/rb-util.c: (rb_value_free):
5582         * lib/rb-util.h: Add function to unset and free a GValue* that was
5583         allocated in the heap.
5585         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
5586         the metadata hastable values
5587         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
5588         leak the metadata hashtable structure
5589         * metadata/rb-metadata-dbus.c:
5590         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
5591         using g_strdup and then _take_string
5593         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
5594         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
5595         stat something.
5597         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
5598         leak the encoded string
5600         * widgets/rb-property-view.c:
5601         (rb_property_view_selection_changed_cb): set some variables to have
5602         inital values, because some code paths may not set them before we use
5603         them.
5605         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
5606         don't have python warning into a debug message".
5608 2006-05-10  William Jon McCann  <mccann@jhu.edu>
5610         * data/rhythmbox.schemas: Use zero instead of null for
5611         default burn speed.  Fixes #341283.
5613 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5615         * bindings/python/rb.defs:
5616         * widgets/rb-library-browser.c:
5617         (rb_library_browser_get_property_view):
5618         * widgets/rb-library-browser.h:
5619         Add a method to get the property view for a given property.
5621         * sources/rb-browser-source.c:
5622         (rb_browser_source_cmd_choose_genre),
5623         (rb_browser_source_cmd_choose_artist),
5624         (rb_browser_source_cmd_choose_album):
5625         Change the browser selection by changing the property view selection. 
5626         Makes the selection change visible, fixing #331740.
5628 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5630         * bindings/python/rb.defs:
5631         * bindings/python/rb.override:
5632         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
5633         * shell/rb-statusbar.c: (*),
5634         * sources/rb-import-errors-source.c: (impl_get_status):
5635         * sources/rb-iradio-source.c: (impl_get_status):
5636         * sources/rb-missing-files-source.c: (impl_get_status):
5637         * sources/rb-source.c: (default_get_status),
5638         (rb_source_get_status):
5639         * sources/rb-source.h:
5640         Allow sources to provide a progress value for the status bar.
5641         Simplify status bar processing (much less polling).
5642         Consider rhythmdb busy while it's still loading the database.
5644         * daapsharing/rb-daap-connection.c: (*)
5645         * daapsharing/rb-daap-connection.h:
5646         * lib/rb-marshal.list:
5647         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5648         (rb_daap_source_init), (connection_connecting_cb),
5649         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
5650         (rb_daap_source_get_status):
5651         Provide status information for DAAP connections, and move processing
5652         of large responses into a separate thread.
5653         Fixes bugs #322020 and #338978.
5655 2006-05-09  James Livingston  <doclivingston@gmail.com>
5657         Split the artdisplay plugin into several files.
5658         Fix loader and amazon-search re-use issues.
5659         Add some better search heuristics.
5661         * configure.ac:
5662         * plugins/artdisplay/Makefile.am:
5663         * plugins/artdisplay/artdisplay.py:
5664         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5665         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5666         * plugins/artdisplay/artdisplay/Loader.py:
5667         * plugins/artdisplay/artdisplay/Makefile.am:
5668         * plugins/artdisplay/artdisplay/__init__.py:
5670 2006-05-09  James Livingston  <doclivingston@gmail.com>
5672         * sources/rb-browser-source.h: remove the _has_first_added_column
5673         stuff since it isn't actually used anywhere. Sources that want it
5674         should just add it themselves, as the library already does
5676         * bindings/python/rb.defs:
5677         * sources/rb-daap-source.c: (rb_daap_source_class_init):
5678         * sources/rb-library-source.c: (rb_library_source_class_init):
5679         * sources/rb-removable-media-source.c:
5680         (rb_removable_media_source_class_init): Remove the remanants of the
5681         above.
5683 2006-05-09  James Livingston  <doclivingston@gmail.com>
5685         * bindings/python/rb.defs:
5686         * sources/rb-browser-source.h: remove a function that was declared in
5687         the header, but not defined anywhere.
5689 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5691         * plugins/artdisplay/.cvsignore:
5692         * plugins/ipod/.cvsignore: Added.
5694 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5696         * sources/rb-auto-playlist-source.c:
5697         (rb_auto_playlist_source_new_from_xml):
5698         Fix reading of older playlist files where all three limits were
5699         specified so we take the first nonzero limit.  From #341053.
5701 2006-05-09  James Livingston  <doclivingston@gmail.com>
5703         * bindings/python/Makefile.am:
5704         * bindings/python/rb.defs:
5705         * bindings/python/rb.override: bind RBBrowserSource,
5706         RBRemovableMediaSource and RBRemovableMediamanager.
5708 2006-05-09  James Livingston  <doclivingston@gmail.com>
5710         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
5712         * data/glade/plugins.glade: make the plugin dialog look a bit better.
5713         Fixes bug 339221.
5715 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5717         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
5718         Don't explode when trying to edit a query with no limit set.
5720 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5722         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5723         Clear the should_queue flag when switching to a non-submittable entry,
5724         so we don't submit songs that played for three seconds before
5725         switching to a podcast episode.
5727         * rhythmdb/rhythmdb-query-model.c
5728         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
5729         in the drag data list.
5731 2006-05-08  James Livingston  <doclivingston@gmail.com>
5733         * lib/rb-util.c: (rb_value_array_append_data):
5734         * lib/rb-util.h: add function which is basically a combination of
5735         G_VALUE_COLLECT and g_value_array_append.
5737         * rhythmdb/rhythmdb-query-model.h:
5738         * rhythmdb/rhythmdb-query-model.c:
5739         (rhythmdb_query_model_class_init),
5740         (rhythmdb_query_model_set_property),
5741         (rhythmdb_query_model_get_property),
5742         (rhythmdb_query_model_finalize),
5743         (rhythmdb_query_model_update_limited_entries),
5744         (rhythmdb_query_model_set_sort_order),
5745         (rhythmdb_query_model_within_limit),
5746         (rhythmdb_query_model_limit_type_get_type): Make query model limits
5747         saner. Rather than having <count=N, time=N, size=N> we now have a
5748         <type, value> pair. This will also make it much easier to add new
5749         limit types in the future.
5751         * shell/rb-playlist-manager.c:
5752         (rb_playlist_manager_set_automatic_playlist),
5753         (rb_playlist_manager_cmd_edit_automatic_playlist):
5754         * sources/rb-auto-playlist-source.c:
5755         (rb_auto_playlist_source_finalize),
5756         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
5757         (_save_write_ulong), (_save_write_uint64),
5758         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
5759         (rb_auto_playlist_source_set_query),
5760         (rb_auto_playlist_source_get_query):
5761         * sources/rb-auto-playlist-source.h:
5762         * sources/rb-library-source.c:
5763         (rb_library_source_add_child_source):
5764         * sources/rb-psp-source.c: (visit_playlist_dirs):
5765         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
5766         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
5767         * widgets/rb-query-creator.h: Adapt to the above change.
5769 2006-05-08  James Livingston  <doclivingston@gmail.com>
5771         * shell/rb-playlist-manager.c:
5772         (rb_playlist_manager_cmd_edit_automatic_playlist):
5773         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
5774         (rb_auto_playlist_source_set_query),
5775         (rb_auto_playlist_source_get_query): copy the query in the _get method
5776         and free it in things calling that. Fixes a crasher.
5778 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5780         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5781         Make entries on newly mounted volumes visible immediately, hiding them
5782         later if they turn out to be missing.  Fixes #340068.
5784 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5786         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
5787         Ignore zip files and ignore errors for files we've decided to ignore.
5789 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5791         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
5792         Add missing }, should fix #340844.
5794 2006-05-06  James Livingston  <doclivingston@gmail.com>
5796         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
5797         typo.
5799 2006-05-06  James Livingston  <doclivingston@gmail.com>
5801         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
5802         that we work with libnotify >= 0.4
5804 2006-05-06  James Livingston  <doclivingston@gmail.com>
5806         patch by: Joe Barnett  <thejoe@gmail.com>
5808         * configure.ac: check if we're using a version of libgpod that
5809         supports the Motorola ROKR
5811         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
5812         for the db path, if we using the newer version.
5814         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
5816 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5818         * rhythmdb/rhythmdb-query-model.c:
5819         (rhythmdb_query_model_drag_data_get):
5820         Use playback URI, not location, for drag data.  Fixes #322597.
5822 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
5824         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
5826 2006-05-03  James Livingston  <doclivingston@gmail.com>
5828         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
5829         (rb_add_id3_tagger), (rb_metadata_save):
5830         Set the tags on the tagging element when it is
5831         created, not during pipeline creation - which is required for
5832         dynamically created elements.
5834         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
5835         support for using the "vorbistag" element to re-tag ogg vorbis files.
5836         Fixes bug 339878.
5838 2006-05-03  James Livingston  <doclivingston@gmail.com>
5840         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
5842         * plugins/artdisplay/artdisplay.py:
5843         - Fix small bug callback of data loader getting overwritten on fast
5844         connections.
5845         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
5846         Jonathan Matthew)
5847         - Fix Rhythmbox UI blocking while loading/searching cover art
5848         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
5849         - Initial approach to allow additional "art search engines"
5850         - Further modularization in a couple of places
5851         - Minor fixes for empty entries (iradio, album, artist etc.)
5853 2006-05-03  James Livingston  <doclivingston@gmail.com>
5855         * shell/rb-playlist-manager.c:
5856         (rb_playlist_manager_playlist_entries_changed),
5857         (rb_playlist_manager_set_source): don't show the edit/delete/rename
5858         options for non-local sources, rather than showing disabled ones.
5860         * sources/rb-library-source.c: (add_child_sources_idle),
5861         (rb_library_source_constructor), (rb_library_source_new),
5862         (rb_library_source_library_location_changed),
5863         (rb_library_source_add_child_source),
5864         (rb_library_source_sync_child_sources): Create "child library" sources
5865         when the user has multiple library locations set. Fixes bug 100552.
5867 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5869         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
5870         * plugins/sample/sample.rb-plugin.desktop.in:
5871         Finish changing 'Author' to 'Authors'
5872         
5873         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
5874         (rhythmdb_entry_import_error_get_type):
5875         Implement get_playback_uri for import errors (returns NULL)
5877         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
5878         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
5879         entry, rather than doing entry type checks.
5881 2006-05-02  James Livingston  <doclivingston@gmail.com>
5883         patch from Alessandro Decina  <alessandro@nnva.org>
5885         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
5886         the signal emission in the case of fatal-on-init errors. From bug
5887         322268.
5889 2006-05-02  James Livingston  <doclivingston@gmail.com>
5891         * rhythmdb/rhythmdb.h:
5892         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
5893         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
5894         (rhythmdb_entry_podcast_post_get_type),
5895         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
5896         virtual function to entry-types for getting the playback URI. From bug
5897         330226.
5899         * backends/gstreamer/rb-encoder-gst.c:
5900         (create_pipeline_and_source), (extract_track):
5901         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
5902         to get the URI.
5904 2006-05-02  James Livingston  <doclivingston@gmail.com>
5906         patch by: Brian Cameron  <brian.cameron@sun.com>
5908         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
5909         340337.
5911 2006-05-01  William Jon McCann  <mccann@jhu.edu>
5913         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
5914         instead of clear.  Use regex matching to strip "disc N"
5915         from album.  Match titles in ProductName.  Perform
5916         fallback queries including various artist compilations.
5917         Include "us" locale.  Improve queries when artist or album
5918         is unknown.  Use medium size image if large is unavailable.
5920         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
5921         William Jon McCann  <mccann@jhu.edu>
5922         
5923 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5925         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
5926         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
5927         (conjunctive_query): Sanity check.
5928         (evaluate_conjunctive_subquery): 
5929         Don't return TRUE immediately when a relative-time query criterion
5930         matches.  Fixes #339972.
5932 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5934         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
5935         Don't crash if primary or secondary are NULL.
5937 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5939         * doc/reference/Makefile.am: fix gtk-doc build yet again
5941 2006-04-28  James Livingston  <doclivingston@gmail.com>
5943         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
5944         python console. Fixes bug 339934.
5946 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5948         * rhythmdb/rhythmdb-property-model.c:
5949         (rhythmdb_property_model_drag_data_get):
5950         When creating uri list drag data, create a new query model based on
5951         the query model the property model is attached to.  Makes the
5952         resulting query use the right entry type and include the upstream
5953         query criteria.  Fixes half of #327540.
5955 2006-04-27  James Livingston  <doclivingston@gmail.com>
5957         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
5958         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
5959         build fixes.
5961 2006-04-27  James Livingston  <doclivingston@gmail.com>
5963         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
5965 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5967         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
5968         (rb_playlist_manager_save_data),
5969         (rb_playlist_manager_save_playlists):
5970         * shell/rb-playlist-manager.h:
5971         * shell/rb-shell.c: (rb_shell_sync_state),
5972         (idle_save_playlist_manager):
5973         Remove a bit more threading insanity from the playlist manager.
5975 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5977         * shell/rb-playlist-manager.c: 
5978         * shell/rb-playlist-manager.h:
5979         Remove dead code, add gtk-doc, remove threading insanity (mostly).
5980         
5981         * shell/rb-shell.c: (rb_shell_sync_state),
5982         (idle_save_playlist_manager), (construct_sources),
5983         (rb_shell_select_source), (rb_shell_sync_party_mode):
5984         Adjustments for above changes.
5986 2006-04-26  William Jon McCann  <mccann@jhu.edu>
5988         * sources/rb-browser-source.c (impl_browser_toggled):
5989         Reset browser when hidden.  Fixes #339617.
5991 2006-04-26  James Livingston  <doclivingston@gmail.com>
5993         * backends/Makefile.am:
5994         * backends/gstreamer/Makefile.am: work again with separated
5995         built-roots
5997 2006-04-26  James Livingston  <doclivingston@gmail.com>
5999         * shell/rb-removable-media-manager.c:
6000         (rb_removable_media_manager_set_uimanager): fix compilation with
6001         -Werror and --enable-track-transfer.
6003 2006-04-26  James Livingston  <doclivingston@gmail.com>
6005         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
6006         implementing class. In theory allows alternate player implementations
6007         to be selected at run-time rather than compile-time. Fixes bug 338667.
6009         * Makefile.am:
6010         * backends/Makefile.am:
6011         * backends/gstreamer/Makefile.am:
6012         * backends/gstreamer/rb-player-gst.h:
6013         * backends/rb-player.c: (rb_player_interface_init),
6014         (rb_player_get_type), (rb_player_open), (rb_player_opened),
6015         (rb_player_close), (rb_player_play), (rb_player_pause),
6016         (rb_player_playing), (rb_player_set_volume),
6017         (rb_player_get_volume), (rb_player_set_replaygain),
6018         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
6019         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
6020         (_rb_player_emit_buffering), (_rb_player_emit_error),
6021         (_rb_player_emit_tick), (rb_player_error_quark):
6022         * player/Makefile.am:
6023         * player/rb-player-gst.c: (rb_player_gst_class_init),
6024         (rb_player_init), (tick_timeout), (rb_player_gst_init),
6025         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
6026         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
6027         (process_tag), (found_tag_cb), (buffering_cb),
6028         (rb_player_gst_bus_cb), (rb_player_gst_construct),
6029         (rb_player_gst_new):
6030         * player/rb-player.h:
6031         * shell/Makefile.am:
6032         * sources/rb-audiocd-source.c:
6033         * widgets/Makefile.am:
6034         * widgets/rb-header.c: (rb_header_class_init):
6036 2006-04-26  James Livingston  <doclivingston@gmail.com>
6038         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
6039         don't try to download an episode if it couldn't be parsed. Fixes bug
6040         339712.
6042         * shell/rb-removable-media-manager.c:
6043         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
6044         Library" option when track transfer is disabled. Fixes bug 339728.
6046 2006-04-26  James Livingston  <doclivingston@gmail.com>
6048         * data/ui/Makefile.am:
6049         * data/ui/daap-ui.xml:
6050         * data/ui/rhythmbox-ui.xml:
6051         * sources/rb-daap-source.c: (rb_daap_sources_init),
6052         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
6053         way that the ipod ui is. Fixes bug 339743.
6055 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6057         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
6058         (process_added_entries_cb), (process_deleted_entries_cb),
6059         (rhythmdb_commit_internal): 
6060         Combine the idle functions to emit entry-added and entry-deleted,
6061         and combine as many invocations of same as possible.  Another
6062         significant reduction in startup time.
6063         
6064         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
6065         Delay the next call to rhythmdb_process_events if the queue is
6066         empty or if we can't process any of the events in the queue because
6067         the database is read only.
6069         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
6071 2006-04-25  William Jon McCann  <mccann@jhu.edu>
6073         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
6075         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
6076         Don't special case errors quite so much.
6078 2006-04-25  William Jon McCann  <mccann@jhu.edu>
6080         * data/rhythmbox.schemas: Remove default speed.
6082         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
6083         Add n-c-b 2.15 support.  Make the default speed to slowest since
6084         that is all that works reliably.
6086 2006-04-25  William Jon McCann  <mccann@jhu.edu>
6088         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
6089         Fix compiler error from last commit.
6091 2006-04-25  James Livingston  <doclivingston@gmail.com>
6093         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
6094         transcoding-related issues. From bug 322268.
6096         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
6097         don't emit the signal, since the object is being finalised, which os a
6098         Bad Thing To Do.
6100         (profile_bin_find_encoder), (get_profile_from_mime_type),
6101         (transcode_track): find the encoding element by iterating looking for
6102         element in the class Codec/Encoder/Audio rather than the one named
6103         "enc".
6105 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6107         * shell/rb-shell-player.xml:
6108         * shell/rb-shell.xml:
6109         Add signal argument information.  
6110         Patch by Tim Moloney  <t.moloney@verizon.net>
6112         * shell/rb-shell.c: (rb_shell_window_state_cb):
6113         Use the right value for the visibility_changed signal.  Most of the
6114         time, anyway.
6116 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6118         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
6119         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
6120         (impl_create_configure_dialog):
6121         * data/glade/audioscrobbler-prefs.glade:
6122         * shell/rb-audioscrobbler.c (*):
6123         * lib/rb-preferences.h:
6124         * data/rhythmbox.schemas:
6125         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
6126         Add status information (# tracks submitted, # queued, last submit
6127         time, result of last submission) to the plugin config window.
6128         Remove 'enabled' setting, since it's easier to just disable the
6129         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
6130         nonexistant (so far) 'last.fm streaming' plugin.
6131         
6132         * help/C/rhythmbox.xml: Update documentation for last.fm profile
6133         plugin
6135         Fixes some of #325848.  We still don't provide a way to view the
6136         submission queue.
6138 2006-04-25  James Livingston  <doclivingston@gmail.com>
6140         patch by: Anders Petersson  <demitar@worldforge.org>
6142         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
6143         the YY-MM-DD format.
6145 2006-04-23  James Livingston  <doclivingston@gmail.com>
6147         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
6148         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
6149         * bindings/python/override_common.h:
6150         * bindings/python/rb.override: python binding fixes
6152 2006-04-23  James Livingston  <doclivingston@gmail.com>
6154         * shell/rb-statusbar.c: (rb_statusbar_finalize),
6155         (rb_statusbar_sync_with_source),
6156         (rb_statusbar_source_status_changed_cb): do the sync in an idle
6157         callback, rather than immediately every time. Takes ~5% off my warm-cache
6158         startup time.
6160         * bindings/python/rhythmdb.defs: fix the types using for
6161         RhythmDBEntryTypes.
6163 2006-04-22  James Livingston  <doclivingston@gmail.com>
6165         * data/ui/rhythmbox-ui.xml:
6166         * shell/rb-shell.c:
6167         * sources/rb-daap-source.c: (rb_daap_source_class_init),
6168         (remove_source), (rb_daap_sources_init),
6169         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
6170         (rb_daap_source_disconnect):
6171         * sources/rb-source.c: (rb_source_class_init),
6172         (rb_source_deactivate):
6173         * sources/rb-source.h: move the "disconnect" functionality from into
6174         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
6176 2006-04-22  James Livingston  <doclivingston@gmail.com>
6178         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
6179         actually get the translated strings for browser headers (they were
6180         already marked as translatable). Fixes bug 339380.
6182 2006-04-22  James Livingston  <doclivingston@gmail.com>
6184         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
6185         submission timeout when the object is finalised.
6187         * bindings/python/Makefile.am:
6188         * bindings/python/rb.defs:
6189         * bindings/python/rb.override:
6190         * bindings/python/rhythmdb.defs: fix some python binding stuff.
6192         * widgets/rb-library-browser.c:
6193         (rb_library_browser_construct_query), (rebuild_output_model),
6194         (rebuild_child_model):
6195         * widgets/rb-library-browser.h: change from GPtrArray to
6196         RhythmDBQuery (which in C is the same thing).
6198 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6200         * shell/rb-shell.c: (rb_shell_get_song_properties):
6201         Don't try to include entry-type (or anything else not easily
6202         marshallable) in the song properties hash table.
6204         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
6206         * sources/rb-playlist-source.c: (rb_playlist_source_init),
6207         (rb_playlist_source_constructor): Fix entry-type initialization as
6208         with previous commit.
6210 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6212         * sources/rb-iradio-source.c: (rb_iradio_source_init),
6213         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
6214         * sources/rb-podcast-source.c: (rb_podcast_source_init),
6215         (rb_podcast_source_constructor):
6216         Set default values for entry-type after base class construction,
6217         rather than in _init, because gobject will set the entry-type property
6218         to NULL after _init if no value is provided.  Fixes #339206.
6220 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
6222         patch by: Gunnar Steinn Magnusson
6224         * COPYING:
6225         * backends/gstreamer/rb-encoder-gst.c:
6226         * backends/gstreamer/rb-encoder-gst.h:
6227         * backends/rb-encoder.c:
6228         * backends/rb-encoder.h:
6229         * bindings/python/override_common.c:
6230         * bindings/python/override_common.h:
6231         * daapsharing/rb-daap-connection.c:
6232         * daapsharing/rb-daap-connection.h:
6233         * daapsharing/rb-daap-dialog.c:
6234         * daapsharing/rb-daap-dialog.h:
6235         * daapsharing/rb-daap-mdns-browser-avahi.c:
6236         * daapsharing/rb-daap-mdns-browser-howl.c:
6237         * daapsharing/rb-daap-mdns-browser.h:
6238         * daapsharing/rb-daap-mdns-publisher-avahi.c:
6239         * daapsharing/rb-daap-mdns-publisher-howl.c:
6240         * daapsharing/rb-daap-mdns-publisher.h:
6241         * daapsharing/rb-daap-share.c:
6242         * daapsharing/rb-daap-share.h:
6243         * daapsharing/rb-daap-sharing.c:
6244         * daapsharing/rb-daap-sharing.h:
6245         * daapsharing/rb-daap-src.c:
6246         * daapsharing/rb-daap-src.h:
6247         * daapsharing/rb-daap-structure.c:
6248         * daapsharing/rb-daap-structure.h:
6249         * help/C/fdl-appendix.xml:
6250         * help/es/es.po:
6251         * help/ja/fdl-appendix.xml:
6252         * iradio/rb-new-station-dialog.c:
6253         * iradio/rb-new-station-dialog.h:
6254         * iradio/rb-station-properties-dialog.c:
6255         * iradio/rb-station-properties-dialog.h:
6256         * lib/mkdtemp.c:
6257         * lib/mkdtemp.h:
6258         * lib/rb-cut-and-paste-code.c:
6259         * lib/rb-cut-and-paste-code.h:
6260         * lib/rb-debug.c:
6261         * lib/rb-debug.h:
6262         * lib/rb-file-helpers.c:
6263         * lib/rb-file-helpers.h:
6264         * lib/rb-glade-helpers.c:
6265         * lib/rb-glade-helpers.h:
6266         * lib/rb-preferences.h:
6267         * lib/rb-proxy-config.c:
6268         * lib/rb-stock-icons.c:
6269         * lib/rb-stock-icons.h:
6270         * lib/rb-thread.c:
6271         * lib/rb-thread.h:
6272         * lib/rb-tree-dnd.c:
6273         * lib/rb-tree-dnd.h:
6274         * lib/rb-util.c:
6275         * lib/rb-util.h:
6276         * metadata/rb-metadata-common.c:
6277         * metadata/rb-metadata-dbus-client.c:
6278         * metadata/rb-metadata-dbus-service.c:
6279         * metadata/rb-metadata-dbus.c:
6280         * metadata/rb-metadata-dbus.h:
6281         * metadata/rb-metadata-gst.c:
6282         * metadata/rb-metadata.h:
6283         * metadata/sj-error.c:
6284         * metadata/sj-error.h:
6285         * metadata/sj-metadata-musicbrainz.c:
6286         * metadata/sj-metadata-musicbrainz.h:
6287         * metadata/sj-metadata.c:
6288         * metadata/sj-metadata.h:
6289         * metadata/sj-structures.c:
6290         * metadata/sj-structures.h:
6291         * metadata/test-metadata.c:
6292         * player/rb-player-gst.c:
6293         * player/rb-player.h:
6294         * player/rb-recorder-gst.c:
6295         * player/rb-recorder.h:
6296         * plugins/artdisplay/artdisplay.py:
6297         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
6298         * plugins/ipod/rb-ipod-plugin.c:
6299         * plugins/lirc/rb-lirc-plugin.c:
6300         * plugins/pythonconsole/pythonconsole.py:
6301         * plugins/rb-module.c:
6302         * plugins/rb-module.h:
6303         * plugins/rb-plugin-manager.c:
6304         * plugins/rb-plugin-manager.h:
6305         * plugins/rb-plugin.c:
6306         * plugins/rb-plugin.h:
6307         * plugins/rb-plugins-engine.c:
6308         * plugins/rb-plugins-engine.h:
6309         * plugins/rb-python-module.c:
6310         * plugins/rb-python-module.h:
6311         * plugins/rb-python-plugin.c:
6312         * plugins/rb-python-plugin.h:
6313         * plugins/sample/rb-sample-plugin.c:
6314         * po/de.po:
6315         * po/el.po:
6316         * po/en_CA.po:
6317         * po/eu.po:
6318         * po/fi.po:
6319         * po/fr.po:
6320         * po/it.po:
6321         * po/ja.po:
6322         * po/mk.po:
6323         * po/pt_BR.po:
6324         * po/ru.po:
6325         * podcast/rb-feed-podcast-properties-dialog.c:
6326         * podcast/rb-feed-podcast-properties-dialog.h:
6327         * podcast/rb-new-podcast-dialog.c:
6328         * podcast/rb-new-podcast-dialog.h:
6329         * podcast/rb-podcast-manager.c:
6330         * podcast/rb-podcast-manager.h:
6331         * podcast/rb-podcast-parse.c:
6332         * podcast/rb-podcast-parse.h:
6333         * podcast/rb-podcast-properties-dialog.c:
6334         * podcast/rb-podcast-properties-dialog.h:
6335         * remote/bonobo/libmain.c:
6336         * remote/bonobo/rb-nautilus-context-menu.c:
6337         * remote/bonobo/rb-nautilus-context-menu.h:
6338         * remote/bonobo/rb-remote-bonobo.c:
6339         * remote/bonobo/rb-remote-bonobo.h:
6340         * remote/rb-remote-client-proxy.c:
6341         * remote/rb-remote-client-proxy.h:
6342         * remote/rb-remote-common.c:
6343         * remote/rb-remote-common.h:
6344         * remote/rb-remote-proxy.c:
6345         * remote/rb-remote-proxy.h:
6346         * rhythmdb/gsequence.c:
6347         * rhythmdb/gsequence.h:
6348         * rhythmdb/rb-refstring.c:
6349         * rhythmdb/rb-refstring.h:
6350         * rhythmdb/rhythmdb-gda.c:
6351         * rhythmdb/rhythmdb-gda.h:
6352         * rhythmdb/rhythmdb-private.h:
6353         * rhythmdb/rhythmdb-property-model.c:
6354         * rhythmdb/rhythmdb-property-model.h:
6355         * rhythmdb/rhythmdb-query-model.c:
6356         * rhythmdb/rhythmdb-query-model.h:
6357         * rhythmdb/rhythmdb-query-results.c:
6358         * rhythmdb/rhythmdb-query-results.h:
6359         * rhythmdb/rhythmdb-tree.c:
6360         * rhythmdb/rhythmdb-tree.h:
6361         * rhythmdb/rhythmdb.c:
6362         * rhythmdb/rhythmdb.h:
6363         * shell/main.c:
6364         * shell/rb-audioscrobbler.c:
6365         * shell/rb-audioscrobbler.h:
6366         * shell/rb-history.c:
6367         * shell/rb-history.h:
6368         * shell/rb-play-order-linear-loop.c:
6369         * shell/rb-play-order-linear-loop.h:
6370         * shell/rb-play-order-linear.c:
6371         * shell/rb-play-order-linear.h:
6372         * shell/rb-play-order-queue.c:
6373         * shell/rb-play-order-queue.h:
6374         * shell/rb-play-order-random-by-age-and-rating.c:
6375         * shell/rb-play-order-random-by-age-and-rating.h:
6376         * shell/rb-play-order-random-by-age.c:
6377         * shell/rb-play-order-random-by-age.h:
6378         * shell/rb-play-order-random-by-rating.c:
6379         * shell/rb-play-order-random-by-rating.h:
6380         * shell/rb-play-order-random-equal-weights.c:
6381         * shell/rb-play-order-random-equal-weights.h:
6382         * shell/rb-play-order-random.c:
6383         * shell/rb-play-order-random.h:
6384         * shell/rb-play-order-shuffle.c:
6385         * shell/rb-play-order-shuffle.h:
6386         * shell/rb-play-order.c:
6387         * shell/rb-play-order.h:
6388         * shell/rb-playlist-manager.c:
6389         * shell/rb-playlist-manager.h:
6390         * shell/rb-removable-media-manager.c:
6391         * shell/rb-removable-media-manager.h:
6392         * shell/rb-shell-clipboard.c:
6393         * shell/rb-shell-clipboard.h:
6394         * shell/rb-shell-player.c:
6395         * shell/rb-shell-player.h:
6396         * shell/rb-shell-preferences.c:
6397         * shell/rb-shell-preferences.h:
6398         * shell/rb-shell.c:
6399         * shell/rb-shell.h:
6400         * shell/rb-source-header.c:
6401         * shell/rb-source-header.h:
6402         * shell/rb-statusbar.c:
6403         * shell/rb-statusbar.h:
6404         * shell/rb-tray-icon.c:
6405         * shell/rb-tray-icon.h:
6406         * sources/rb-audiocd-source.c:
6407         * sources/rb-audiocd-source.h:
6408         * sources/rb-auto-playlist-source.c:
6409         * sources/rb-auto-playlist-source.h:
6410         * sources/rb-browser-source.c:
6411         * sources/rb-browser-source.h:
6412         * sources/rb-daap-source.c:
6413         * sources/rb-daap-source.h:
6414         * sources/rb-generic-player-source.c:
6415         * sources/rb-generic-player-source.h:
6416         * sources/rb-import-errors-source.c:
6417         * sources/rb-import-errors-source.h:
6418         * sources/rb-ipod-source.c:
6419         * sources/rb-ipod-source.h:
6420         * sources/rb-iradio-source.c:
6421         * sources/rb-iradio-source.h:
6422         * sources/rb-library-source.c:
6423         * sources/rb-library-source.h:
6424         * sources/rb-missing-files-source.c:
6425         * sources/rb-missing-files-source.h:
6426         * sources/rb-nokia770-source.c:
6427         * sources/rb-nokia770-source.h:
6428         * sources/rb-play-queue-source.c:
6429         * sources/rb-play-queue-source.h:
6430         * sources/rb-playlist-source-recorder.c:
6431         * sources/rb-playlist-source-recorder.h:
6432         * sources/rb-playlist-source.c:
6433         * sources/rb-playlist-source.h:
6434         * sources/rb-playlist-xml.h:
6435         * sources/rb-podcast-source.c:
6436         * sources/rb-podcast-source.h:
6437         * sources/rb-psp-source.c:
6438         * sources/rb-psp-source.h:
6439         * sources/rb-removable-media-source.c:
6440         * sources/rb-removable-media-source.h:
6441         * sources/rb-source.c:
6442         * sources/rb-source.h:
6443         * sources/rb-sourcelist-model.c:
6444         * sources/rb-sourcelist-model.h:
6445         * sources/rb-sourcelist.c:
6446         * sources/rb-sourcelist.h:
6447         * sources/rb-static-playlist-source.c:
6448         * sources/rb-static-playlist-source.h:
6449         * tests/test-cd.c:
6450         * tests/test-cmdline.c:
6451         * tests/test-rhythmdb-indexing.c:
6452         * tests/test-rhythmdb-query.c:
6453         * tests/test-rhythmdb-simple.c:
6454         * tests/test-rhythmdb-tree-deserialization.c:
6455         * tests/test-rhythmdb-tree-serialization.c:
6456         * tests/test-rhythmdb-view.c:
6457         * widgets/bacon-volume.c:
6458         * widgets/bacon-volume.h:
6459         * widgets/disclosure-widget.c:
6460         * widgets/disclosure-widget.h:
6461         * widgets/eel-gconf-extensions.c:
6462         * widgets/eel-gconf-extensions.h:
6463         * widgets/eggtrayicon.c:
6464         * widgets/eggtrayicon.h:
6465         * widgets/libsexy/sexy-icon-entry.c:
6466         * widgets/libsexy/sexy-icon-entry.h:
6467         * widgets/rb-cell-renderer-pixbuf.c:
6468         * widgets/rb-cell-renderer-pixbuf.h:
6469         * widgets/rb-cell-renderer-rating.c:
6470         * widgets/rb-cell-renderer-rating.h:
6471         * widgets/rb-dialog.c:
6472         * widgets/rb-dialog.h:
6473         * widgets/rb-druid.c:
6474         * widgets/rb-druid.h:
6475         * widgets/rb-entry-view.c:
6476         * widgets/rb-entry-view.h:
6477         * widgets/rb-header.c:
6478         * widgets/rb-header.h:
6479         * widgets/rb-library-browser.c:
6480         * widgets/rb-library-browser.h:
6481         * widgets/rb-property-view.c:
6482         * widgets/rb-property-view.h:
6483         * widgets/rb-query-creator-private.h:
6484         * widgets/rb-query-creator-properties.c:
6485         * widgets/rb-query-creator.c:
6486         * widgets/rb-query-creator.h:
6487         * widgets/rb-rating-helper.c:
6488         * widgets/rb-rating-helper.h:
6489         * widgets/rb-rating.c:
6490         * widgets/rb-rating.h:
6491         * widgets/rb-search-entry.c:
6492         * widgets/rb-search-entry.h:
6493         * widgets/rb-song-display-box.c:
6494         * widgets/rb-song-display-box.h:
6495         * widgets/rb-song-info.c:
6496         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
6498 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
6500         patch by: Gareth Murphy, James Livingston
6502         * bindings/python/rb.defs:
6503         * configure.ac:
6504         * plugins/Makefile.am:
6505         * plugins/artdisplay/Makefile.am:
6506         * plugins/artdisplay/artdisplay.py:
6507         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
6508         * plugins/rb-python-module.c: (rb_python_module_init_python):
6509         * shell/rb-shell.c: (construct_widgets),
6510         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
6511         (rb_shell_add_widget), (rb_shell_remove_widget),
6512         (rb_shell_ui_location_get_type):
6513         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
6515 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6517         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
6518         Fix build failure caused by the combination of the previous two
6519         commits.
6521 2006-04-20  James Livingston  <doclivingston@gmail.com>
6523         patch by: Christophe Fergeau  <teuf@gnome.org> to make
6524         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
6525         table to the entry types, which will allow us to get rid of some of
6526         the "if entry type == WHATEVER" code everywhere. From bug 
6528         * bindings/python/rb.defs:
6529         * bindings/python/rb.override:
6530         * bindings/python/rhythmdb.defs:
6531         * bindings/python/rhythmdb.override:
6532         * daapsharing/rb-daap-connection.c:
6533         (rb_daap_connection_class_init), (rb_daap_connection_init),
6534         (rb_daap_connection_set_property),
6535         (rb_daap_connection_get_property):
6536         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
6537         * podcast/rb-podcast-manager.c:
6538         (rb_podcast_manager_entry_downloaded),
6539         (rb_podcast_manager_subscribe_feed),
6540         (rb_podcast_manager_db_entry_added_cb),
6541         (rb_podcast_manager_db_entry_deleted_cb),
6542         (rb_podcast_manager_insert_feed):
6543         * rhythmdb/rhythmdb-private.h:
6544         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
6545         (conjunctive_query):
6546         * rhythmdb/rhythmdb.c: (sync_entry_changed),
6547         (process_added_entries_cb), (rhythmdb_entry_allocate),
6548         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
6549         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
6550         (rhythmdb_process_metadata_load),
6551         (rhythmdb_process_file_created_or_modified), (action_thread_main),
6552         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
6553         (write_encoded_gvalue), (read_encoded_property),
6554         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
6555         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
6556         (rhythmdb_entry_iradio_get_type),
6557         (rhythmdb_entry_podcast_post_get_type),
6558         (rhythmdb_entry_podcast_feed_get_type),
6559         (rhythmdb_entry_import_error_get_type),
6560         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
6561         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
6562         (rhythmdb_entry_type_get_type):
6563         * rhythmdb/rhythmdb.h:
6564         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
6565         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
6566         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
6567         (rb_shell_player_entry_activated_cb), (info_available_cb):
6568         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
6569         (rb_shell_register_entry_type_for_source),
6570         (rb_shell_playing_from_queue_cb),
6571         (rb_shell_playing_entry_changed_cb),
6572         (rb_shell_player_stream_song_changed_cb),
6573         (rb_shell_jump_to_entry_with_source),
6574         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6575         (handle_playlist_entry_cb), (rb_shell_load_uri):
6576         * shell/rb-shell.h:
6577         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
6578         * sources/rb-browser-source.c: (rb_browser_source_class_init),
6579         (rb_browser_source_init), (rb_browser_source_set_property),
6580         (rb_browser_source_get_property):
6581         * sources/rb-ipod-source.c: (impl_paste):
6582         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
6583         (rb_iradio_source_init), (rb_iradio_source_set_property),
6584         (rb_iradio_source_get_property):
6585         * sources/rb-library-source.c: (impl_paste):
6586         * sources/rb-missing-files-source.c:
6587         (rb_missing_files_source_class_init),
6588         (rb_missing_files_source_init),
6589         (rb_missing_files_source_set_property),
6590         (rb_missing_files_source_get_property):
6591         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
6592         (rb_playlist_source_init), (rb_playlist_source_set_property),
6593         (rb_playlist_source_get_property):
6594         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
6595         (rb_podcast_source_init), (rb_podcast_source_set_property),
6596         (rb_podcast_source_get_property):
6597         * sources/rb-static-playlist-source.c:
6598         (rb_static_playlist_source_add_location_internal):
6600 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6602         * rhythmdb/rhythmdb.c: (rhythmdb_init),
6603         (rhythmdb_add_import_error_entry),
6604         (entry_volume_mounted_or_unmounted),
6605         (rhythmdb_volume_unmounted_cb):
6606         When a volume is unmounted, delete import errors for files stored on
6607         it.  When a volume is mounted, stat all tracks stored on it, rather
6608         than assuming they're present.  Fixes #339023.
6610 2006-04-20  James Livingston  <doclivingston@gmail.com>
6612         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
6613         browser visibility for non-gconf-using sources (like playlists). Part
6614         of bug 118862.
6616         * shell/rb-source-header.c: (sourcestate_free),
6617         (rb_source_header_init), (rb_source_header_finalize),
6618         (rb_source_header_source_weak_destroy_cb): switch from storing the
6619         search string to storing a "source state" structure
6621         (rb_source_header_set_source_internal),  (rb_source_state_sync),
6622         (rb_source_header_search_cb), (rb_source_header_clear_search),
6623         (rb_source_header_disclosure_toggled_cb): as well as storing the
6624         string, stop the visibility of the source's browser.
6626 2006-04-20  James Livingston  <doclivingston@gmail.com>
6628         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
6629         library entries back into the library. Fixes bug 339065.
6631 2006-04-20  James Livingston  <doclivingston@gmail.com>
6633         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
6634         only exists in glib 2.10.
6636 2006-04-20  James Livingston  <doclivingston@gmail.com>
6638         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
6639         Solaris. From bug 335318.
6641         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
6642         * shell/rb-audioscrobbler.c:
6643         * sources/rb-psp-source.c:
6645 2006-04-20  James Livingston  <doclivingston@gmail.com>
6647         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
6648         issues for some people.
6650         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
6651         accidental s/suffix/prefix/
6653         * sources/rb-auto-playlist-source.c:
6654         (rb_auto_playlist_source_set_query): fix the invered logic preventing
6655         you from sorting playlists which aren't limited by time.
6657 2006-04-19  James Livingston  <doclivingston@gmail.com>
6659         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
6660         duration or bitrate back to the file, since they are properties of the
6661         audio data, not tags we can set.
6663 2006-04-19  James Livingston  <doclivingston@gmail.com>
6665         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
6666         of libtool, to fix builds which are using a different version. Fixes
6667         bug 338996.
6669         * shell/Makefile.am:
6671 2006-04-19  James Livingston  <doclivingston@gmail.com>
6673         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
6674         to sync data to a file which is uneditable.
6676 2006-04-19  James Livingston  <doclivingston@gmail.com>
6678         patch by: Gavin Stewart  <gavin@brokentrain.net>
6680         * data/glade/playlist-save.glade:
6681         * data/glade/Makefile.am:
6682         * po/POTFILES.in: add the playlist saving dialog.
6684         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
6685         (export_set_extension_cb), (filter_get_export_filter_label),
6686         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
6687         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
6688         formats (PLS and M3U at the moment). Fixes bug 316295.
6690 2006-04-19  James Livingston  <doclivingston@gmail.com>
6692         * shell/rb-playlist-manager.c:
6693         (rb_playlist_manager_set_source_internal): don't let you edit remove
6694         auto playlists.
6696         * sources/rb-auto-playlist-source.c:
6697         (rb_auto_playlist_source_set_query): correctly handle time-limited
6698         playlists.
6700 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6702         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
6704         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
6705         Don't crash if the queue file contains no newlines.
6706         Fixes #338924.
6708 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6710         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
6711         condition
6713 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
6715         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
6716         case. Moreover, they may not exist yet, so take that into account when
6717         generating the iPod filename.
6719 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
6721         * sources/rb-ipod-source.c: added support for drag and drop from the
6722         library to the iPod (only enabled if --enable-track-transfer was
6723         passed to configure)
6725 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
6727         * configure.ac:
6728         * lib/rb-marshal.list:
6729         * lib/rb-util.c: 
6730         * lib/rb-util.h:
6731         * plugins/Makefile.am:
6732         * plugins/ipod/Makefile.am:
6733         * plugins/ipod/ipod.rb-plugin.desktop.in:
6734         * plugins/ipod/rb-ipod-plugin.c: 
6735         * plugins/rb-plugin.h:
6736         * shell/Makefile.am:
6737         * shell/rb-removable-media-manager.c:
6738         * shell/rb-removable-media-manager.h:
6739         * shell/rb-shell.c: 
6740         * sources/Makefile.am:
6741         * sources/rb-ipod-source.c: 
6742         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
6743         various iPod related files should be moved to plugins/ipod/ now...
6745 2006-04-17  James Livingston  <doclivingston@gmail.com>
6747         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
6748         and "vic".
6750         * help/C/figures/rb-iradio-main.png:
6751         * help/C/figures/rb-notification-area-menu.png:
6752         * help/C/figures/rb-notification-window.png:
6753         * help/C/figures/rb-notification-zone.png:
6754         * help/C/figures/rb-podcast-main.png:
6755         * help/C/figures/rb-statusbar.png:
6756         * help/C/figures/rb-volume-changer.png:
6757         * help/C/figures/rb-window-small.png:
6758         * help/C/figures/rb-window.png:
6759         * help/C/rhythmbox.xml:
6761 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6763         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
6764         more obviously.
6766         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6767         (make_undecodable_error), (rb_metadata_gst_error_cb),
6768         (rb_metadata_gst_new_decoded_pad_cb),
6769         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
6770         Ignore really small files (<4kB) for which typefinding fails.
6771         Always link decoded pads from decodebin to fakesink.
6772         Shut the pipeline down by posting an error on the bus when decodebin
6773         emits unknown-type signals.  Fixes bug #338062.
6775 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6777         * shell/rb-shell.c: (rb_shell_load_uri):
6778         Fix glaring mistakes in previous commit: actually pass arguments to
6779         rb_debug, and specify the right entry type when adding a new iradio
6780         station so we don't try to add local playlist files to the library.
6782 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6784         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
6785         before trying to add them, as iradio streams often fail rb_uri_exists().
6787         * shell/rb-shell-player.c: (notify_playing_idle),
6788         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
6789         (open_location_thread), (rb_shell_player_open_location),
6790         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
6791         (eos_cb):  When playing an iradio stream using a playlist, keep a list
6792         of all the stream URLs, and try them in turn.  If we get through the
6793         whole playlist too quickly, error out.  Various other fixes that make
6794         iradio work a lot better.
6796         * shell/rb-shell.c: (add_to_library_response_cb),
6797         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6798         (handle_playlist_entry_cb), (rb_shell_load_uri):
6799         Add playlists containing streams as iradio stations.  If the playlist
6800         is local, add each stream URL, but if the playlist is remote, just add
6801         the playlist URL.
6802         
6803         * sources/rb-iradio-source.c: (new_station_location_added):
6804         Add new station URLs as-is, rather than parsing the playlist and
6805         adding the streams.
6806         
6807         * rhythmdb/rhythmdb-query-model.c:
6808         (rhythmdb_query_model_entry_changed_cb),
6809         (rhythmdb_query_model_emit_reorder),
6810         (rhythmdb_query_model_do_reorder):
6811         Emit row-changed notifications when an entry changes but is not
6812         reordered.
6814         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
6815         Display the playback error icon when the entry has an error and
6816         there's nothing else to display.
6817         
6818         Fixes bug #320336 and some of #324402.
6819         
6820 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6822         * sources/rb-ipod-source.c: use a GHashTable for the
6823         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
6824         time, this fixes compilation breakage for people not having libgpod
6825         CVS HEAD
6827 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
6829         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6831         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
6832         (rb_podcast_manager_insert_feed):
6833         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
6834         fixes bug 321945
6836 2006-04-16  James Livingston  <doclivingston@gmail.com>
6838         * sources/rb-library-source.c:
6839         (rb_library_source_library_location_cb): return FALSE like we are
6840         supposed to, not void.
6842         patch by: FreeBSD GNOME Project
6843         * configure.ac: fix some bash-isms.
6845         patch by: Pawel Worach  <pawel.worach@gmail.com>
6846         * metadata/rb-metadata-dbus-client.c:
6847         * rhythmdb/rhythmdb-query-model.c:
6848         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
6851 2006-04-16  James Livingston  <doclivingston@gmail.com>
6853         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
6854         for transcoding to RBEncoderGst.
6856         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
6857         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
6858         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
6859         (add_decoding_pipeline), (encoder_match_mime),
6860         (get_profile_from_mime_type), (extract_track), (transcode_track),
6861         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
6863 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6865         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
6866         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
6867         load_ipod_db_idle_cb to a new separate function
6869 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6871         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
6872         source
6874 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6876         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
6877         variables
6879 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6881         * data/ui/Makefile.am:
6882         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
6883         menu
6884         * lib/rb-util.c: check if the widget we got from the UI manager isn't
6885         NULL before using it as a popup menu
6886         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
6887         'eject' an iPod
6889 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
6891         * sources/rb-ipod-source.c: when hal tells us a partition is on an
6892         iPod, check if it contains an iPod database before using it (in case
6893         the iPod was repartitionned somehow). Should fix bug #325034
6895 2006-04-16  Steve Frécinaux  <steve@istique.net>
6897         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
6899         * data/Makefile.am: install application icon into the default theme.
6901         * data/rhythmbox.desktop.in: don't specify icon file extension.
6902         
6903         * shell/main.c: (main): set default window icon from theme.
6904         
6905         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
6906         code concerning window icon, and fix leak by unreferencing the about
6907         logo pixbuf once it's not used anymore.
6909 2006-04-16  James Livingston  <doclivingston@gmail.com>
6911         * configure.ac: bump version to 0.9.4
6912         * NEWS: update NEWS and 0.9.4 insert translations
6914 2006-04-16  James Livingston  <doclivingston@gmail.com>
6916         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
6917         namespace automatically.
6919 2006-04-16  James Livingston  <doclivingston@gmail.com>
6921         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
6923         * doc/reference/Makefile.am:
6924         * doc/reference/rhythmbox.types: make distcheck work again
6926         * doc/reference/tmpl/eggnotificationbubble.sgml:
6927         * doc/reference/tmpl/eggtrayicon.sgml:
6928         * doc/reference/tmpl/rb-debug.sgml:
6929         * doc/reference/tmpl/rb-entry-view.sgml:
6930         * doc/reference/tmpl/rb-enums.sgml:
6931         * doc/reference/tmpl/rb-metadata.sgml:
6932         * doc/reference/tmpl/rb-new-station-dialog.sgml:
6933         * doc/reference/tmpl/rb-playlist-manager.sgml:
6934         * doc/reference/tmpl/rb-refstring.sgml:
6935         * doc/reference/tmpl/rb-shell-player.sgml:
6936         * doc/reference/tmpl/rb-shell-preferences.sgml:
6937         * doc/reference/tmpl/rb-shell.sgml:
6938         * doc/reference/tmpl/rb-song-info.sgml:
6939         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
6940         * doc/reference/tmpl/rb-statusbar.sgml:
6941         * doc/reference/tmpl/rhythmbox-unused.sgml:
6942         * doc/reference/tmpl/rhythmdb-query-model.sgml:
6943         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
6945 2006-04-16  James Livingston  <doclivingston@gmail.com>
6947         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
6949         * po/LINGUAS: don't split the variable across two lines, as it breaks
6950         the build. Fixes bug 338625.
6952 2006-04-15  James Livingston  <doclivingston@gmail.com>
6954         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
6955         add a "sourcelist-model" gobject property.
6957 2006-04-14  William Jon McCann  <mccann@jhu.edu>
6959         * .cvsignore:
6960         * backends/.cvsignore:
6961         * backends/gstreamer/.cvsignore:
6962         * bindings/.cvsignore:
6963         * bindings/python/.cvsignore:
6964         * help/es/.cvsignore:
6965         * metadata/.cvsignore:
6966         * plugins/.cvsignore:
6967         * plugins/audioscrobbler/.cvsignore:
6968         * plugins/lirc/.cvsignore:
6969         * plugins/pythonconsole/.cvsignore:
6970         * plugins/sample-python/.cvsignore:
6971         * plugins/sample/.cvsignore:
6972         * shell/.cvsignore:
6973         * widgets/libsexy/.cvsignore:
6974         Make CVS ignore files.
6976 2006-04-14  James Livingston  <doclivingston@gmail.com>
6978         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
6979         the track-loading thread hold a reference on the source, so it doesn't
6980         explode if the cd is removed before it is done. Fixes bug 337237.
6982 2006-04-14  James Livingston  <doclivingston@gmail.com>
6984         * bindings/python/override_common.c:
6985         (_helper_unwrap_pointer_pylist):
6986         * bindings/python/override_common.h:
6987         * bindings/python/rb.override:
6988         * bindings/python/rhythmdb.override: Bind some more functions and
6989         virtual functions.
6991         * shell/rb-shell.c: (rb_shell_select_source):
6992         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
6993         * sources/rb-audiocd-source.c:
6994         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
6995         * sources/rb-browser-source.c: (impl_get_search_actions):
6996         * sources/rb-iradio-source.c: (impl_get_ui_actions):
6997         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
6998         * sources/rb-playlist-source.c: (impl_get_ui_actions):
6999         * sources/rb-podcast-source.c: (impl_get_ui_actions),
7000         (impl_get_search_actions):
7001         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
7002         the impl_get_ui_actions and impl_get_search_actions functions return
7003         lists that contain copies of the strings, instead of constant ones.
7004         Needed to bindings
7006 2006-04-14  James Livingston  <doclivingston@gmail.com>
7008         * bindings/python/rhythmdb.defs:
7009         * bindings/python/rhythmdb.override: fix the method argument format
7010         specifiers.
7012 2006-04-14  James Livingston  <doclivingston@gmail.com>
7014         * bindings/python/rhythmdb.defs:
7015         * bindings/python/rhythmdb.override:
7016         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
7017         (entry_to_rb_metadata), (record_entry_change),
7018         (rhythmdb_entry_set_visibility):
7019         * rhythmdb/rhythmdb.h:
7020         * shell/rb-shell.c: (rb_shell_get_song_properties): change
7021         rhythmdb_entry_get to take the db as the first parameter. Fixes the
7022         python bindings of it. The rhythmdb_entry_get_* ones are left the same
7023         since they are used in too many places, and not in the Python
7024         bindings.
7026 2006-04-13  William Jon McCann  <mccann@jhu.edu>
7028         * lib/rb-debug.c: (_rb_profile_log):
7029         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
7030         * rhythmdb/rhythmdb.c: (rhythmdb_load):
7031         * shell/main.c: (main):
7032         * shell/rb-shell.c: (rb_shell_constructor),
7033         (rb_shell_set_visibility), (rb_shell_sync_window_state),
7034         (rb_shell_present):
7035         Fix profile output indentation.  Add more profiling points.
7036         Fixes part of #338114
7038 2006-04-13  James Livingston  <doclivingston@gmail.com>
7040         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
7041         library source being deleted, by setting the active source to NULL.
7042         From bug 338116.
7044 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7046         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
7047         Update the last-seen string when hiddenness changes.
7049 2006-04-12  James Livingston  <doclivingston@gmail.com>
7051         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
7052         which caused the first-seen time to be reset when a metadata load was
7053         done. Fixes bug 336874.
7055         * shell/rb-shell.h: remove old function declaration.
7057         * bindings/python/rhythmdb.defs:
7058         * bindings/python/rhythmdb.override: Fix some python binding stuff.
7060 2006-04-11  James Livingston  <doclivingston@gmail.com>
7062         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
7063         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
7064         interaction. Fixes bug 337999.
7066 2006-04-11  James Livingston  <doclivingston@gmail.com>
7068         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
7069         track transfer. Fixes bug 338056.
7071         * shell/Makefile.am:
7073 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7075         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
7077 2006-04-10  William Jon McCann  <mccann@jhu.edu>
7079         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
7080         (_rb_profile_log):
7081         * lib/rb-debug.h:
7082         * shell/rb-shell.c: (construct_db), (construct_widgets),
7083         (construct_sources), (construct_load_ui), (rb_shell_constructor):
7084         Add profiling.  Fixes #337387
7086 2006-04-10  William Jon McCann  <mccann@jhu.edu>
7088         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
7089         * widgets/rb-header.c:
7090         Use italics for artist and album. Fixes #336748
7092 2006-04-10  James Livingston  <doclivingston@gmail.com>
7094         * Makefile.am:
7095         * backends/gstreamer/Makefile.am:
7096         * configure.ac:
7097         * data/glade/library-prefs.glade:
7098         * shell/Makefile.am:
7099         * shell/rb-removable-media-manager.c:
7100         * shell/rb-removable-media-manager.h:
7101         * sources/Makefile.am:
7102         * sources/rb-audiocd-source.c:
7103         * sources/rb-library-source.c: (rb_library_source_class_init),
7104         (rb_library_source_finalize), (impl_get_config_widget),
7105         (rb_library_source_preferences_sync), (impl_can_paste): add a
7106         --enable-track-transfer configure option, abd make cd ripping disabled
7107         by default.
7109         * shell/rb-source-header.c:
7110         * sources/rb-source.c: (rb_source_class_init),
7111         (rb_source_delete_thyself), (default_get_entry_view):
7112         * lib/rb-glade-helpers.c:
7113         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
7114         some compiler warnings, and also bug 337427.
7116 2006-04-10  James Livingston  <doclivingston@gmail.com>
7118         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
7119         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
7120         if the gconf key is missing. Fixes bug 337742.
7122 2006-04-10  James Livingston  <doclivingston@gmail.com>
7124         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
7125         to fix build problems I caused with a commit yesterday. Fixed bug
7126         337806.
7128         * daapsharing/rb-daap-mdns-browser-howl.c:
7129         (rb_daap_mdns_browser_class_init):
7130         * podcast/Makefile.am:
7131         * rhythmdb/Makefile.am:
7132         * widgets/eggtrayicon.h:
7134 2006-04-09  Steve Frécinaux  <steve@istique.net>
7136         * configure.ac:
7137         * po/LINGUAS:
7138         
7139         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
7140         translators' life easier.
7142 2006-04-09  James Livingston  <doclivingston@gmail.com>
7144         * bindings/python/rb.defs:
7145         * bindings/python/rb.override: add bindings for most RBSource virtual
7146         functions.
7148         * sources/rb-source.h:
7149         * sources/rb-source.c: (rb_source_class_init): make
7150         impl_get_browser_key return a non-consht string, since Python can't
7151         really give us constant strings.
7153         * shell/rb-source-header.c: (rb_source_header_finalize),
7154         (rb_source_header_set_source_internal):
7155         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
7156         * sources/rb-iradio-source.c: (impl_get_browser_key):
7157         * sources/rb-library-source.c: (impl_get_browser_key):
7158         * sources/rb-playlist-source.c:
7159         * sources/rb-browser-source.c: (rb_browser_source_constructor),
7160         (rb_browser_source_state_prefs_sync):
7161         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
7162         above change.
7164         * plugins/sample-python/sample-python.py: show how to add a new
7165         source.
7167 2006-04-09  James Livingston  <doclivingston@gmail.com>
7169         * daapsharing/Makefile.am:
7170         * daapsharing/rb-daap-connection.c:
7171         (rb_daap_connection_class_init):
7172         * daapsharing/rb-daap-marshal.list:
7173         * daapsharing/rb-daap-mdns-browser-avahi.c:
7174         (rb_daap_mdns_browser_class_init):
7175         * lib/rb-marshal.list:
7176         * player/Makefile.am:
7177         * player/rb-recorder-gst.c: (rb_recorder_class_init):
7178         * player/rb-recorder-marshal.list:
7179         * podcast/Makefile.am:
7180         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
7181         * podcast/rb-podcast-marshal.list:
7182         * rhythmdb/Makefile.am:
7183         * rhythmdb/rhythmdb-marshal.list:
7184         * rhythmdb/rhythmdb-query-model.c:
7185         (rhythmdb_query_model_class_init):
7186         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
7187         into one file, as there is no point having several of them.
7189 2006-04-09  James Livingston  <doclivingston@gmail.com>
7191         * lib/Makefile.am:
7192         * lib/rb-enums.h:
7193         * widgets/Makefile.am:
7194         * widgets/eggnotificationbubble.c:
7195         * widgets/eggnotificationbubble.h:
7196         * widgets/rb-song-info.c: remove lib/rb-enums.h and
7197         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
7199         * rhythmdb/rhythmdb-property-model.h:
7200         * rhythmdb/rhythmdb-query-model.h:
7201         * rhythmdb/rhythmdb.h:
7202         * shell/rb-playlist-manager.h:
7203         * widgets/rb-cell-renderer-pixbuf.h:
7204         * widgets/rb-cell-renderer-rating.h:
7205         * widgets/rb-rating.h: fix the prototypes of various class-closures.
7207 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7209         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
7210         so we can build without a system-wide installed copy.
7212 2006-04-09  James Livingston  <doclivingston@gmail.com>
7214         * data/glade/general-prefs.glade:
7215         * data/rhythmbox.schemas:
7216         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
7217         (rb_combo_box_hyphen_separator_func):
7218         * lib/rb-glade-helpers.h:
7219         * lib/rb-preferences.h:
7220         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
7221         (rb_shell_preferences_sync),
7222         (rb_shell_preferences_toolbar_style_cb),
7223         (rb_shell_preferences_browser_views_activated_cb):
7224         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
7225         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
7226         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
7228 2006-04-09  James Livingston  <doclivingston@gmail.com>
7230         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
7231         data that MusicBrainz returns to us. Last part of bug 334167.
7233 2006-04-09  James Livingston  <doclivingston@gmail.com>
7235         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
7236         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
7238 2006-04-09  James Livingston  <doclivingston@gmail.com>
7240         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
7241         the entry view properly when the rows are reordered. Fixes bug 337019.
7243 2006-04-09  James Livingston  <doclivingston@gmail.com>
7245         * configure.ac:
7246         * widgets/Makefile.am:
7247         * widgets/libsexy/Makefile.am:
7248         * widgets/libsexy/sexy-icon-entry.c:
7249         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
7250         libsexy, and allow building against it or a system-wide installed
7251         copy.
7254         * widgets/rb-search-entry.c: (rb_search_entry_init),
7255         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
7256         search box. Fixes bug 128109.
7258 2006-04-09  James Livingston  <doclivingston@gmail.com>
7260         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
7262         * widgets/rb-entry-view.c: (rb_entry_view_init),
7263         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
7264         and Pause icons rather than the volume ones in the Now Playing column.
7265         Closes bug 336482.
7267 2006-04-08  James Livingston  <doclivingston@gmail.com>
7269         * bindings/python/override_common.h:
7270         * bindings/python/rb.override:
7271         * bindings/python/rhythmdb.override: bind some more functions 
7273 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7275         * metadata/rb-metadata-dbus-service.c: (_send_error):
7276         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
7277         are sent properly and we don't get 'method doesn't exist' messages
7278         from dbus instead.
7280 2006-04-08  James Livingston  <doclivingston@gmail.com>
7282         * bindings/python/override_common.h:
7283         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
7284         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
7285         more utility functions for C<->Python conversions
7287         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
7288         (rb_entry_view_state_get_type):
7289         * widgets/rb-entry-view.h: make the colume type and entry view state
7290         GTypes
7292         * bindings/python/Makefile.am:
7293         * bindings/python/rb.defs:
7294         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
7295         RBSource.
7297 2006-04-08  James Livingston  <doclivingston@gmail.com>
7299         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
7300         initialiser for a GError
7302         * sources/rb-source.c: (rb_source_eof_type_get_type):
7303         * sources/rb-source.h: add a GType for RBSourceEOFType
7305         * bindings/python/Makefile.am:
7306         * bindings/python/rb.defs:
7307         * bindings/python/rb.override: bind RBSource and RBSourceList
7309 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7311         * shell/rb-shell-player.c: (rb_shell_player_class_init),
7312         (rb_shell_player_get_property),
7313         (rb_shell_player_get_active_source),
7314         (rb_shell_player_set_playing_source_internal):
7315         * shell/rb-shell-player.h:
7316         Change 'playing-from-queue' from being a signal to being a property.
7318         * shell/rb-shell.c: (rb_shell_constructor),
7319         (rb_shell_playing_from_queue_cb),
7320         (rb_shell_view_queue_as_sidebar_changed_cb),
7321         (rb_shell_jump_to_entry_with_source):
7322         When the queue side pane is used, make 'jump to current' jump to the
7323         entry in the registered source for its type, rather than in the queue,
7324         and show it as playing in that source.
7325         
7326         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
7327         * sources/rb-sourcelist.h:
7328         Remove the 'preempted source' stuff, since it wasn't doing anything
7329         anyway.
7331 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7333         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
7334         (download_progress_cb): Canonicalise downloaded file location before
7335         setting the mountpoint property of the corresponding entry.
7336         Fixes #337287 and a couple of memory leaks.
7338 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7340         * metadata/rb-metadata-dbus-service.c: (test_can_save),
7341         (test_load), (main): Call g_set_prgname, report errors more
7342         usefully in test mode.
7343         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
7344         (rb_metadata_load): Don't ignore the have-type signal for non-audio
7345         files.  Run the event loop when the state change fails so we get the
7346         error messages from the bus.  Fixes #336921.
7348 2006-04-05  William Jon McCann  <mccann@jhu.edu>
7350         * data/art/Makefile.am: Install media-eject.
7352         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
7353         return value of rb_file.
7355         Fixes #337209
7357 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7359         Patch by: William Jon McCann  <mccann@jhu.edu>
7361         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
7362         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
7363         Fix GError leak.
7365 2006-04-04  William Jon McCann  <mccann@jhu.edu>
7367         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
7368         Don't try to add a date when we don't have one.  Fixes #336741.
7370         Also fix variable declaration in middle of block.
7372 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7374         * shell/rb-shell-player.c: (rb_shell_player_playpause):
7375         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
7377 2006-04-02  James Livingston  <doclivingston@gmail.com>
7379         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
7380         inverted logic causing imports to fail.
7382 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7384         * shell/main.c: (main): Fix dbusless build.
7386 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
7388         * player/rb-recorder-gst.c: fix packing of the C struct holding a
7389         wav header for non-gcc compilers (not tested much, was only written
7390         according to docs)
7392 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7394         * shell/main.c: (main): Check if we got a dbus connection before
7395         trying to create a proxy for the shell object.  Fixes #336634.
7397 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7399         * doc/reference/Makefile.am:
7400         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
7401         * shell/rb-source-header.c:
7402         * sources/rb-generic-player-source.c:
7403         (default_transform_playlist_uri):
7404         Fix various build issues.  Patch approximately 50% by Alex Lancaster
7405         <alexl@users.sourceforge.net>
7407 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7409         * configure.ac: Detect LIRC.
7410         
7411         * plugins/Makefile.am:
7412         * plugins/lirc/Makefile.am:
7413         * plugins/lirc/lirc.rb-plugin.desktop.in:
7414         * plugins/lirc/rb-lirc-plugin.c:
7415         LIRC plugin.
7417         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
7418         Remove obsolete files.
7420 2006-04-02  James Livingston  <doclivingston@gmail.com>
7422         * sources/rb-generic-player-source.c:
7423         (default_transform_playlist_uri): consider playlist paths as relative
7424         to the volume root by default, since that is what most players use.
7426 2006-04-02  James Livingston  <doclivingston@gmail.com>
7428         * lib/rb-util.c: (rb_mime_get_friendly_name):
7429         * lib/rb-util.h: add helper function to get the "friendly" name for a
7430         mime-type
7432         * metadata/rb-metadata-gst.c: (rb_metadata_init),
7433         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
7434         the user better error messages about undecodable streams, using the
7435         "friendly" name if possible. Fixes bug 128109.
7437 2006-04-02  James Livingston  <doclivingston@gmail.com>
7439         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
7440         (start_pipeline): fix building with gstreamer 0.8
7442 2006-04-02  James Livingston  <doclivingston@gmail.com>
7444         * sources/rb-podcast-source.c: (impl_delete),
7445         (rb_podcast_source_cmd_delete_feed),
7446         (rb_podcast_source_cmd_update_feed): copy the list before traversing
7447         it, since it may change during traversal. Fixes bug 336204.
7449 2006-04-01  James Livingston  <doclivingston@gmail.com>
7451         * data/art/media-eject.png: add the media-eject icon from Banshee
7452         (BSD-licensed), for use when the user's icon theme doesn't have one.
7454         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
7455         bug 334897.
7457 2006-04-01  James Livingston  <doclivingston@gmail.com>
7459         * shell/rb-shell-player.h:
7460         * shell/rb-shell-player.c: (rb_shell_player_play),
7461         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
7462         new rb_shell_player_{play,pause} functions, so everyone doesn't have
7463         to do rb_shell_player_playing followed by rb_shell_player_playpause.
7465         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
7466         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
7467         * shell/rb-shell.h: add rb_shell_get_ui_manager.
7469         * bindings/python/rb.defs: bind the above to Python, and remove some
7470         useless stuff from the bindings.
7472 2006-04-01  James Livingston  <doclivingston@gmail.com>
7474         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
7475         number tag.
7477         * shell/rb-shell.c:
7478         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
7480         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
7481         to true.
7483         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
7484         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
7485         method assigning, so it's understandable
7487         * sources/rb-library-source.c: (rb_library_source_class_init),
7488         (impl_paste): rather than hard-coding the types to ignore, use
7489         rb_source_can_copy.
7491 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7493         * sources/rb-library-source.c:
7494         (rb_library_source_preferences_sync):
7495         Don't crash if no audio profile is selected and the gconf schemas are 
7496         not installed.
7498 2006-03-31  James Livingston  <doclivingston@gmail.com>
7500         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
7501         "*" which caused compilation to fail
7503 2006-03-31  James Livingston  <doclivingston@gmail.com>
7505         * configure.ac:
7506         * Makefile.am:
7507         * backends/Makefile.am:
7508         * backends/gstreamer/Makefile.am:
7509         * backends/gstreamer/rb-encoder-gst.c:
7510         * backends/gstreamer/rb-encoder-gst.h:
7511         * backends/rb-encoder.c:
7512         * backends/rb-encoder.h: add a interface for transcoding, and a
7513         GStreamer implementation of it (based on Sound-Juicer's code).
7515         * shell/Makefile.am:
7516         * shell/rb-removable-media-manager.c:
7517         (rb_removable_media_manager_class_init),
7518         (rb_removable_media_manager_init),
7519         (rb_removable_media_manager_dispose),
7520         (rb_removable_media_manager_finalize),
7521         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
7522         (progress_cb), (completed_cb), (do_transfer),
7523         (rb_removable_media_manager_queue_transfer), (copy_entry),
7524         (rb_removable_media_manager_cmd_copy_tracks):
7525         * shell/rb-removable-media-manager.h: use the encoder interface to
7526         perform transfers of entries to other locations
7528         * shell/rb-shell-player.c: (open_location_thread):
7529         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
7530         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
7531         (rb_shell_quit):
7532         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
7533         progress in the status bar.
7535         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
7536         (rb_shell_preferences_sync),
7537         (rb_shell_preferences_browser_views_activated_cb):
7538         * data/glade/general-prefs.glade: move the browser views setting from
7539         the library tab to the general one.
7541         * data/glade/library-prefs.glade: add settings for the layout of the
7542         user's library, and their preferred encoding format (e.g. for CD
7543         ripping).
7545         * lib/rb-preferences.h:
7546         * data/rhythmbox.schemas: add keys for the above options (and a few
7547         other minor ones)
7549         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
7550         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
7551         entry, that isn't inserted into the database.
7553         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
7554         (rb_audiocd_create_track_entry):
7555         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
7556         cds, and set the mime-type of audio cd tracks correctly.
7558         * sources/rb-library-source.c: (rb_library_source_class_init),
7559         (rb_library_source_finalize),
7560         (rb_library_source_edit_profile_clicked_cb),
7561         (impl_get_config_widget), (rb_library_source_preferences_sync),
7562         (impl_receive_drag), (rb_library_source_path_changed_cb),
7563         (rb_library_source_filename_changed_cb),
7564         (rb_library_source_format_changed_cb), (sanitize_path),
7565         (filepath_parse_pattern), (layout_example_label_update),
7566         (rb_library_source_layout_path_changed),
7567         (rb_library_source_layout_filename_changed), (build_filename),
7568         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
7569         entries to the library. Large chunks of code for determining the
7570         destination file name stolen from Sound-Juicer.
7572         * sources/rb-sourcelist-model.c: (path_is_droppable):
7573         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
7574         * sources/rb-static-playlist-source.c:
7575         (rb_static_playlist_source_class_init):
7576         * sources/rb-removable-media-source.c:
7577         (rb_removable_media_source_class_init):
7578         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
7579         (rb_source_can_paste):
7580         * sources/rb-source.h: add a new _can_paste method, and use it (rather
7581         than _can_copy) to determine whether we can paste into the source.
7584 2006-03-31  Steve Frécinaux  <steve@istique.net>
7586         * plugins/rb-python-module.c: allow import of python modules with a '.'
7587         (gedit's bug 336403). Patch by Johan Dahlin.
7589 2006-03-31  James Livingston  <doclivingston@gmail.com>
7591         * sources/rb-library-source.c: 
7592         * sources/rb-library-source.h:
7593         * sources/rb-browser-source.c:
7594         * sources/rb-browser-source.h: Split RBLibrarySource into two.
7595         RBBrowserSource now contains all the stuff for having a source which
7596         views a particular entry type (including browsers and searching).
7597         RBLibrarySource derives from this, and includes the library-specific
7598         stuff, like importing and library watching. Fixes some issues where
7599         library-derived sources were doing things that should be
7600         library-specific. Fixes bug 335185.
7602         * data/ui/rhythmbox-ui.xml:
7603         * sources/Makefile.am: modifications for the above
7605         * sources/rb-daap-source.c: (rb_daap_source_class_init),
7606         (rb_daap_source_get_paned_key):
7607         * sources/rb-daap-source.h:
7608         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
7609         * sources/rb-removable-media-source.c:
7610         (rb_removable_media_source_class_init):
7611         * sources/rb-removable-media-source.h: derive from RBBrowserSource
7612         instead of RBLibrarySource.
7614 2006-03-31  James Livingston  <doclivingston@gmail.com>
7616         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
7617         I buggered up when changing from GnomeVFSFileSize.
7619 2006-03-30  James Livingston  <doclivingston@gmail.com>
7621         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
7622         for "-Wno-error".
7624         * bindings/python/rb.override:
7625         * bindings/python/Makefile.am: make the RB python bindings depend on
7626         the RhythmDB ones, and use "-Wno-error" since the machine-generated
7627         code sometimes emits warnings.
7629         * shell/rb-shell-player.c: (rb_shell_player_class_init),
7630         (rb_shell_player_error_get_type):
7631         * shell/rb-shell-player.h:
7632         * bindings/python/rb.defs: add bindings for RBShellPlayer
7634         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7635         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
7636         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
7637         * rhythmdb/rhythmdb.h:
7638         * shell/rb-shell.c: (rb_shell_get_song_properties):
7639         * widgets/rb-entry-view.c: (propid_from_name):
7640         * widgets/rb-property-view.c: (rb_property_view_class_init):
7641         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
7642         than just plain GPtrArray, and add bindings for it.
7644         * bindings/python/rhythmdb.override: wrap some functions that use
7645         GValues
7647 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7649         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
7650         Only watch directories from which entries of type SONG have been
7651         added.
7653 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7655         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7656         No need to restore the selection after rebuilding the child model,
7657         since that can't have changed the selection.
7659 2006-03-29  James Livingston  <doclivingston@gmail.com>
7661         * bindings/python/override_common.c:
7662         * bindings/python/override_common.h: add some for missing files to
7663         cvs.
7665 2006-03-29  James Livingston  <doclivingston@gmail.com>
7667         * configure.ac:
7668         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
7669         copied from gedit's autofoo and we don't need it
7671         * bindings/python/rhythmdb.defs:
7672         * bindings/python/rhythmdb.override: add missing files to cvs
7674 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7676         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
7677         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
7678         before running any of the debug/test modes.
7679         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
7680         Make plugin loading work when running uninstalled from the shell/
7681         directory.
7683 2006-03-29  James Livingston  <doclivingston@gmail.com>
7685         * rhythmdb/rhythmdb-property-model.c:
7686         (rhythmdb_property_model_sync),
7687         (rhythmdb_property_model_column_get_type):
7688         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
7690         * rhythmdb/rhythmdb-private.h:
7691         * rhythmdb/rhythmdb-query-model.c:
7692         (rhythmdb_query_model_class_init):
7693         * rhythmdb/rhythmdb-query-model.h:
7694         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
7695         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
7696         (rhythmdb_entry_get_type):
7697         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
7699         * widgets/rb-query-creator-properties.c:
7700         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
7701         was missing.
7703         * bindings/python/Makefile.am:
7704         * bindings/python/rb.defs:
7705         * bindings/python/rb.override:
7706         * plugins/rb-python-module.c: (rb_python_module_init_python): add
7707         Python bindings for RhythmDB.
7709 2006-03-29  James Livingston  <doclivingston@gmail.com>
7711         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
7712         sharing when using --no-registration
7714 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7716         * rhythmdb/rhythmdb-query-model.c:
7717         (rhythmdb_query_model_reapply_query):
7718         Don't remove entries while iterating, as it breaks the sequence
7719         nodes.  Instead, collect a list of removed entries and process it
7720         after iterating the sequence.  Fixes #334642.
7722 2006-03-29  James Livingston  <doclivingston@gmail.com>
7724         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7725         (row_activated_cb), (plugin_manager_toggle_all):
7726         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
7727         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
7728         (button_press_cb), (source_name_edited_cb):
7729         * widgets/rb-property-view.c: (rb_property_view_set_property),
7730         (rb_property_view_post_row_deleted_cb),
7731         (rb_property_view_row_activated_cb),
7732         (rb_property_view_selection_changed_cb),
7733         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
7734         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
7736 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7738         * rhythmdb/rhythmdb-query-model.c:
7739         (rhythmdb_query_model_drag_data_received):
7740         Increment the reference count for entries added by drag and drop.
7741         Fixes #336045.
7743 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7745         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
7746         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
7747         Ignore invalid UTF-8 strings.  Fixes most of #334167.
7749 2006-03-27  James Livingston  <doclivingston@gmail.com>
7751         * shell/rb-shell.c: (rb_shell_constructor),
7752         (rb_shell_sync_window_state): fix a maximise-realise race that would
7753         cause some widgets to be resized after we had explicity set theri
7754         size. Hopefully fixes bug 331927.
7756 2006-03-27  James Livingston  <doclivingston@gmail.com>
7758         * plugins/rb-plugin-manager.c: (active_toggled_cb),
7759         (row_activated_cb), (plugin_manager_set_active),
7760         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
7761         configure button sensitivity when a plugin is enabled/disabled.
7763 2006-03-27  James Livingston  <doclivingston@gmail.com>
7765         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
7766         stop warnings, only the vbos is used anyway
7768         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
7769         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
7770         collection every now an then.
7772         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
7773         if we are finalising because the python object couldn't be created.
7775         * plugins/rb-python-module.c: (rb_python_module_new_object): return
7776         NULL if the python-side object couldn't be created. Stops crashes when
7777         the object is later used when it doesn't exist in Python.
7779         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
7780         (rb_python_shutdown): do better garbage collection when shutting down.
7781         Fixes the problem where Python was holding a reference to the shell,
7782         causing RB not to exit.
7784 2006-03-27  James Livingston  <doclivingston@gmail.com>
7786         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
7787         336131.
7789 2006-03-27  James Livingston  <doclivingston@gmail.com>
7791         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
7792         From bug 334829.
7794 2006-03-26  James Livingston  <doclivingston@gmail.com>
7796         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
7797         library location list to NULL after we free it. Fixes bug 336047.
7799 2006-03-26  James Livingston  <doclivingston@gmail.com>
7801         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7803         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
7804         supplies. Fixes bug 335947.
7806 2006-03-25  James Livingston  <doclivingston@gmail.com>
7808         * data/glade/audioscrobbler-prefs.glade:
7809         * shell/rb-audioscrobbler.c:
7810         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
7811         "submit songs" checkbox, and make it not disable username/password
7812         entry. This will be needed when we support other last.fm stuff
7813         (profile access, radio, etc).
7815 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
7817         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
7818         Volume should not display stock_volume-0 for volume > 0. Fixes bug
7819         335777.
7821 2006-03-24  James Livingston  <doclivingston@gmail.com>
7823         * shell/rb-shell-player.c: (rb_shell_player_set_property),
7824         (rb_shell_player_sync_play_order),
7825         (rb_shell_player_play_order_update_cb),
7826         (actually_set_playing_source): update the next/previous availablility
7827         in places where it was missing. Fixes bug 335490.
7829 2006-03-24  James Livingston  <doclivingston@gmail.com>
7831         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
7832         can't find the widget
7834         * lib/rb-util.c: (rb_uri_list_parse):
7835         * lib/rb-util.h: add function for parsing a URI list into strings.
7837         * metadata/Makefile.am: make the metdata helper build when linking
7838         with --as-needed
7840         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
7841         g_mkdir_with_parents instead of coding our own.
7843         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
7844         <itunes:author> over <generator>, instead of using whichever comes
7845         last.
7847         * rhythmdb/rhythmdb-private.h:
7848         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
7849         field, as we don't ever check it (to detect corruption). Saves a bit
7850         of memory.
7852 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7854         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
7855         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
7856         Escape '&' and '=' in the paths we get back from
7857         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
7859 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7861         * shell/rb-shell.c: (rb_shell_constructor):
7862         Issue startup notification after creating the main window, so
7863         notification is issued whether the window is visible or not.
7864         Fixes #335086.
7866 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7868         * sources/rb-auto-playlist-source.c: (impl_search),
7869         (rb_auto_playlist_source_query_complete_cb),
7870         (rb_auto_playlist_source_do_query):
7871         * sources/rb-library-source.c: (impl_search),
7872         (rb_library_source_query_complete_cb),
7873         (rb_library_source_do_query):
7874         Defer subset searches (where text is appended to an existing search)
7875         until the original query is complete.
7877 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
7879         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
7881         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7882         (rb_refstring_get_sort_key): fixes for strict-aliasing
7884 2006-03-21  James Livingston  <jrl@ids.org.au>
7886         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
7887         importing a single file. Fixes bug 335307.
7889 2006-03-21  James Livingston  <jrl@ids.org.au>
7891         * shell/Makefile.am: remove the reference to backends/ that I
7892         accidently included.
7894 2006-03-21  James Livingston  <jrl@ids.org.au>
7896         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
7897         with Forte (on Solaris). Closes bug 335318.
7899         * configure.ac:
7900         * lib/Makefile.am:
7901         * player/rb-recorder-gst.c:
7902         * podcast/rb-podcast-parse.c:
7903         * remote/bonobo/Makefile.am:
7904         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
7905         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
7906         (rhythmdb_query_model_add_entry),
7907         (rhythmdb_query_model_add_results):
7908         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
7909         * rhythmdb/rhythmdb.h:
7910         * shell/Makefile.am:
7911         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
7912         (update_speed_combobox):
7913         * sources/rb-sourcelist-model.c:
7915 2006-03-21  James Livingston  <jrl@ids.org.au>
7917         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7919         * player/Makefile.am:
7920         * shell/Makefile.am: work correctly with a separate build root.
7922 2006-03-21  James Livingston  <jrl@ids.org.au>
7924         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
7925         get handed NULL.
7927 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7929         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
7930         Only create ignore entries when importing into the library.  
7931         Ignore entries for files in removable media sources don't help.
7933 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7935         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
7936         * shell/rb-source-header.h:
7937         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
7938         * widgets/rb-search-entry.h:
7939         Add functions to make the search box grab focus.
7941         * shell/rb-shell.c: (rb_shell_cmd_view_all):
7942         Focus the search box after handling the 'view all' action.
7944 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7946         * rhythmdb/rhythmdb.h:
7947         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7948         (rhythmdb_execute_multi_stat_info_cb),
7949         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
7950         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
7951         (action_thread_main):
7952         Collect all the get_file_info requests on startup into one gnome-vfs
7953         job to reduce overhead and avoid contention for the rhythmdb lock.
7954         Add a new method to call when all initial query models are set up.
7955         
7956         * shell/rb-shell.c: (idle_handle_load_complete):
7957         Call rhythmdb startup complete function when we've loaded all the
7958         playlists.  Fixes #334106.
7960 2006-03-20  James Livingston  <jrl@ids.org.au>
7962         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
7963         (rb_entry_view_selection_changed_cb),
7964         (rb_entry_view_have_complete_selection): make has_complete_selection
7965         not slow. Fixes a performance issue I added a week or so ago.
7967 2006-03-20  James Livingston  <jrl@ids.org.au>
7969         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
7970         before passing to strcmp. From bug 334559.
7972 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7974         * configure.ac:
7975         * lib/Makefile.am:
7976         * lib/rb-proxy-config.c:
7977         * lib/rb-proxy-config.h:
7978         Add a new object to watch the HTTP proxy configuration and emit
7979         signals when it changes.
7981         * shell/rb-audioscrobbler.c:
7982         * shell/rb-audioscrobbler.h:
7983         Use rb-proxy-config to watch HTTP proxy configuration.
7985         * shell/rb-shell.c:
7986         Construct rb-proxy-config object on startup, and remove all
7987         audioscrobbler references.
7989         * shell/Makefile.am:
7990         * plugins/audioscrobbler/Makefile.am:
7991         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
7992         Move all audioscrobbler code into the plugin.  We should move
7993         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
7994         point.  Don't use a private data structure in the plugin, since the
7995         class definition isn't in a header file.  Fixes #335091.
7997 2006-03-20  James Livingston  <jrl@ids.org.au>
7999         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
8000         don't enable Next if the source has an EOS type other than
8001         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
8003 2006-03-20  James Livingston  <jrl@ids.org.au>
8005         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
8006         (rb_song_info_forward_clicked_cb): deal with there being no
8007         next/previous entry.
8009         (rb_song_info_query_model_inserted_cb),
8010         (rb_song_info_query_model_deleted_cb),
8011         (rb_song_info_query_model_reordered_cb),
8012         (rb_song_info_query_model_changed_cb): monitor the query for changes,
8013         to update the button status. Fixes bug 333293.
8015 2006-03-20  James Livingston  <jrl@ids.org.au>
8017         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
8018         caused by my last commit
8020 2006-03-20  James Livingston  <jrl@ids.org.au>
8022         * bindings/python/Makefile.am:
8023         * bindings/python/rb.defs:
8024         * bindings/python/rb.override: add python bindings of RBRemoteProxy
8026         * shell/rb-shell.c: (rb_shell_constructor),
8027         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
8028         tray-icon detection slightly
8030 2006-03-19  Steve Frécinaux  <steve@istique.net>
8032         * data/ui/rhythmbox-ui.xml:
8033         * shell/rb-shell.c:
8035         Add an empty Tool Menu (hidden by default) containing placeholders for
8036         plugins.
8038         * configure.ac:
8039         * plugins/Makefile.am:
8040         * plugins/pythonconsole/Makefile.am:
8041         * plugins/pythonconsole/pythonconsole.py:
8042         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
8043         
8044         Python Console plugin
8046 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8048         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
8049         Extra step to encode '&' and '=' to match what gnome-vfs does
8050         internally.
8051         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
8052         (rhythmdb_tree_save):
8053         Increment rhythmdb xml version to 1.2, and force another uri
8054         re-canonicalisation when loading v1.1 databases.
8055         Fixes bug #333998.
8057 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8059         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
8060         (avahi_client_init), (browse_cb):
8061         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
8062         (avahi_client_init):
8063         Fix compilation with Avahi 0.5.x (bug #334551).
8065 2006-03-19  James Livingston  <jrl@ids.org.au>
8067         Add Increase/Decrease Volume menu items and keybindings. From bug
8068         123383.
8070         * data/ui/rhythmbox-ui.xml:
8071         * shell/rb-shell-player.c: (rb_shell_player_constructor),
8072         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
8073         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
8075 2006-03-19  James Livingston  <jrl@ids.org.au>
8077         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
8079         * shell/Makefile.am: fix the link order, so that we compile with
8080         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
8082 2006-03-19  James Livingston  <jrl@ids.org.au>
8084         patch by: Adam Petaccia  <adam@tpetaccia.com>
8086         * data/ui/rhythmbox-ui.xml: move preferences below "configure
8087         plugins". Fixes bug 335037.
8089 2006-03-18  James Livingston  <jrl@ids.org.au>
8091         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
8092         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
8093         332992.
8095         * widgets/rb-header.c: don't make artist/album info in the header the
8096         small size, since it's hard to read.
8098 2006-03-16  William Jon McCann  <mccann@jhu.edu>
8100         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
8101         (rhythmdb_finalize): Don't leak the hash tables.
8102         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
8103         (rhythmdb_commit_internal): Make sure to process the deletions.
8104         (rhythmdb_entry_delete): Use a hash.
8106         * podcast/rb-podcast-manager.c: Random analness about char*
8107         (rb_podcast_manager_remove_feed): Add debugging.
8108         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
8109         the result of gnome_vfs_unlink.  Don't leak a uri.
8111         Fixes #334786
8113 2006-03-18  James Livingston  <jrl@ids.org.au>
8115         * NEWS: update NEWS file
8117 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8119         * rhythmdb/rhythmdb-property-model.c:
8120         (rhythmdb_property_model_prop_changed_cb):
8121         Remove entries from the hash table after processing visible->hidden
8122         changes.
8124 2006-03-16  William Jon McCann  <mccann@jhu.edu>
8126         * sources/rb-daap-source.c (connection_connected_cb) 
8127         (connection_disconnected_cb): Add debug.
8128         (rb_daap_source_get_headers): Check for NULL connection.
8130         * daapsharing/rb-daap-src.c (rb_daap_src_open):
8131         Check return value of rb_daap_source_get_headers.
8133         Fixes #332089
8135 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8137         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
8138         Restore the selection after rebuilding the child model, so the
8139         selection is shown correctly after using the 'browse this
8140         album/artist/genre' menu items.
8142 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8144         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
8145         Clear the selection before changing the active model.
8146         Fixes crash reported in bug 334549.
8148 2006-03-15  James Livingston  <jrl@ids.org.au>
8150         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
8151         (rb_tray_icon_sync_action):
8152         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
8153         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
8154         for non-libnotify notification bubbles. Fixes bug 331721.
8156 2006-03-15  James Livingston  <jrl@ids.org.au>
8158         Add search-bar options to playlists. Fixes bug 334407.
8160         * sources/rb-auto-playlist-source.c:
8161         (rb_auto_playlist_source_class_init),
8162         (rb_auto_playlist_source_constructor),
8163         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
8164         (search_action_to_prop), (search_action_changed):
8165         * sources/rb-static-playlist-source.c:
8166         (rb_static_playlist_source_class_init),
8167         (rb_static_playlist_source_constructor),
8168         (construct_query_from_selection), (impl_get_search_actions),
8169         (search_action_to_prop), (search_action_changed):
8171 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8173         * shell/rb-source-header.c (rb_source_header_set_source_internal):
8174         Remove broken attempt at making the search bar buttons not
8175         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
8177 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8179         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
8180         Chain up to parent's dispose instead of finalize.  Fixes #334479.
8182 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8184         * widgets/rb-header.c (rb_header_sync): Escape album and
8185         artist before adding to markup.
8187 2006-03-14  William Jon McCann  <mccann@jhu.edu>
8189         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
8190         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
8191         (rb_header_set_property), (rb_header_get_property),
8192         (rb_header_sync):
8193         Remove the GnomeUrl song links until we can do it properly.
8194         Fixes #334453.
8196 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8198         * shell/rb-source-header.c: (rb_source_header_clear_search):
8199         Remove the stored search text from the hash table, so it doesn't
8200         reappear after switching to another source and back.
8202         * sources/rb-auto-playlist-source.c: (impl_search):
8203         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
8204         * sources/rb-static-playlist-source.c: (impl_search):
8205         Make sure all sources treat impl_search(NULL) and impl_search("") the
8206         same.  Fixes #334525.
8208 2006-03-14  James Livingston  <jrl@ids.org.au>
8210         Store which thread created new entries, and make rhythmdb_commit only
8211         insert the entries for the thread that calls it. This stops one thread
8212         calling rhythmdb_commit inserting entries that are half-way through
8213         construction by another thread (as happens with audio cds). From bug
8214         330226.
8216         * rhythmdb/rhythmdb.c: (rhythmdb_init),
8217         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
8218         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
8219         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
8220         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
8221         (rhythmdb_process_metadata_load),
8222         (rhythmdb_process_queued_entry_set_event),
8223         (rhythmdb_prop_get_type):
8225 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8227         * rhythmdb/rhythmdb-query-model.c:
8228         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
8229         (rhythmdb_query_model_finalize):
8230         Move object unrefs from _finalize into _dispose.
8231         
8232         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
8233         Remove extra g_object_ref that was causing query model leaks.
8234         
8235         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
8236         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
8237         (genre_selection_reset_cb), (rb_iradio_source_do_query):
8238         Remove the cached 'all' query, since it doesn't really help and it
8239         makes the code more complicated.  Attach the genre property view to
8240         the query model build from the search text, so only genres for
8241         stations matching the search terms are displayed.  Preserve the genre
8242         selection across searches.
8244         * widgets/rb-library-browser.c: 
8245         (rb_library_browser_class_init), (rb_library_browser_get_property):
8246         Add properties for the input and output models for the browser, and
8247         remove the 'changed' signal as we can just use notify::output-model.
8248         (ignore_selection_changes),
8249         (selection_restore_data_destroy), (query_complete_cb),
8250         (restore_selection): Helper functions for preserving selections across
8251         query model rebuilds.
8252         (rebuild_output_model):  New function for creating a query model to
8253         use as the display model for a source using the browser.
8254         (rebuild_child_model): Add a call to rebuild_output_model, add missing
8255         g_object_unrefs, reuse the parent's query model when there's no
8256         selection, and use ignore_selection_changes and restore_selection.
8257         (rb_library_browser_set_selection): rebuild_child_model emits the
8258         changed signal, so no need to do it here.
8259         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
8260         ignore_selection_changes and restore_selection. 
8261         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
8262         flag to rb_library_browser_set_model indicating whether the query is
8263         asynchronous.
8265         * sources/rb-static-playlist-source.c:
8266         (rb_static_playlist_source_class_init),
8267         (rb_static_playlist_source_dispose):
8268         (rb_static_playlist_source_constructor):  Add an extra reference on
8269         the base model, so it doesn't vanish when we set a new display model
8270         based on a search or browser selection.
8271         (impl_search): Ensure the search_text field in the source is NULL if
8272         the search box is empty.
8273         (construct_query_from_selection),
8274         (rb_static_playlist_source_do_query): Use the query model constructed
8275         from the search as the input model for the browser.
8276         (rb_static_playlist_source_browser_changed_cb): Use the browser's
8277         output model as the query model for the source.
8279         * sources/rb-auto-playlist-source.c:
8280         (rb_auto_playlist_source_finalize): Free more stuff.
8281         (rb_auto_playlist_source_constructor),
8282         (rb_auto_playlist_source_browser_changed_cb):
8283         Update for rb-library-browser changes, use the browser's output query
8284         model as the query model for the source.
8285         (impl_reset_filters), (impl_search), 
8286         (rb_auto_playlist_source_do_query),
8287         (rb_auto_playlist_source_set_query):
8288         Use the query model constructed from the search text as the input to
8289         the library browser, and when adding text to an existing search, apply
8290         the new query to the existing query model.
8291         
8292         * sources/rb-library-source.c: (rb_library_source_dispose):
8293         (rb_library_source_finalize): Chain dispose up to the parent class.
8294         (rb_library_source_constructor): Update for rb-library-browser
8295         changes. 
8296         (impl_search): Ensure search_text is NULL if the search box is empty,
8297         and use the subset flag to _do_query if text has been appended to an
8298         existing search.
8299         (search_action_changed), (impl_reset_filters):
8300         (rb_library_source_browser_changed_cb),
8301         (rb_library_source_do_query): Use the browser's output model as the
8302         query model for the source.
8304         Rework library and playlist sources to use a single query chain,
8305         and to limit the entries shown in property views based on the search
8306         terms.  Fixes bug #322787.
8308 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8310         * configure.ac:  Enable metadata helper by default, and fix a typo.
8312 2006-03-13  James Livingston  <jrl@ids.org.au>
8314         Make RBRefStrings lazily create the folded and sort-key strings when
8315         they are first used. This will same some memory by not creating ones
8316         that are never used, and delaying some of the others to when the user
8317         resorts or performs a similar action. Fixes bug 332992.
8319         * rhythmdb/rb-refstring.c: (rb_refstring_free),
8320         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
8321         (rb_refstring_get), (rb_refstring_get_folded),
8322         (rb_refstring_get_sort_key), (rb_refstring_hash),
8323         (rb_refstring_equal):
8324         * rhythmdb/rb-refstring.h:
8325         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
8327 2006-03-12  William Jon McCann  <mccann@jhu.edu>
8329         * data/ui/rhythmbox-ui.xml:
8330         * lib/rb-stock-icons.c: (rb_stock_icons_init):
8331         * lib/rb-stock-icons.h:
8332         * shell/rb-shell-player.c:
8333         * shell/rb-shell.c: (rb_shell_constructor):
8334         * shell/rb-source-header.c: (force_no_shadow),
8335         (ui_manager_add_widget_cb), (rb_source_header_constructor),
8336         (rb_source_header_class_init), (rb_source_header_init),
8337         (merge_source_ui_cb), (toolbar_set_homogeneous),
8338         (rb_source_header_set_source_internal),
8339         (rb_source_header_set_property), (rb_source_header_get_property),
8340         (rb_source_header_set_source), (rb_source_header_new),
8341         (rb_source_header_filter_changed_cb):
8342         * shell/rb-source-header.h:
8343         * sources/rb-library-source.c: (rb_library_source_class_init),
8344         (rb_library_source_init), (search_action_to_prop),
8345         (search_action_changed), (rb_library_source_constructor),
8346         (impl_search), (impl_reset_filters), (impl_get_search_actions),
8347         (construct_query_from_selection):
8348         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
8349         (rb_podcast_source_init), (search_action_to_prop),
8350         (search_action_changed), (rb_podcast_source_constructor),
8351         (construct_query_from_selection), (impl_get_ui_actions),
8352         (impl_get_search_actions):
8353         * sources/rb-source.c: (rb_source_class_init),
8354         (rb_source_get_ui_actions), (default_get_search_actions),
8355         (rb_source_get_search_actions):
8356         * sources/rb-source.h:
8358         Add a search bar.  Fixes #328618
8360 2006-03-12  James Livingston  <jrl@ids.org.au>
8362         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
8363         * shell/main.c: (main): make --no-update not stat files checking for
8364         changes, instead of doing nothing. Fixes bug 125177.
8366 2006-03-12  James Livingston  <jrl@ids.org.au>
8368         * podcast/rb-podcast-manager.c:
8369         (rb_podcast_manager_thread_parse_feed):
8370         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
8371         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
8372         having an invalid mime-type. Fixed bug 329813.
8374 2006-03-12  James Livingston  <jrl@ids.org.au>
8376         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
8377         Finally lets us close bug 309609.
8379         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
8380         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
8381         0.10
8383         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
8384         inverted logic of the editable check.
8386 2006-03-12  James Livingston  <jrl@ids.org.au>
8388         Make API doc generation work again. Fixes bug 334276.
8390         * doc/reference/Makefile.am:
8391         * doc/reference/tmpl/rb-debug.sgml:
8392         * doc/reference/tmpl/rb-druid.sgml:
8393         * doc/reference/tmpl/rb-entry-view.sgml:
8394         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
8395         * doc/reference/tmpl/rb-metadata.sgml:
8396         * doc/reference/tmpl/rb-shell.sgml:
8397         * doc/reference/tmpl/rhythmbox-unused.sgml:
8398         * doc/reference/tmpl/rhythmdb.sgml:
8400 2006-03-12  James Livingston  <jrl@ids.org.au>
8402         * shell/rb-shell-clipboard.c:
8403         (rb_shell_clipboard_set_source_internal),
8404         (rb_shell_clipboard_sync): don't try to use the source's entry view if
8405         it doesn't have one. Fixes bug 331673.
8407         * sources/rb-source.c: (rb_source_class_init): provide a default
8408         have_url implementation that returns FALSE.
8410 2006-03-12  James Livingston  <jrl@ids.org.au>
8412         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
8413         doing a distclean. Fixes bug 334221.
8416         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
8418         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
8420 2006-03-11  James Livingston  <jrl@ids.org.au>
8422         * shell/rb-shell.c: (rb_shell_window_state_cb),
8423         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
8424         update the window width/height when iconified. Stops the window
8425         changing size when it is restored from the tray, fixing bug 333824. 
8427 2006-03-11  James Livingston  <jrl@ids.org.au>
8429         Try to get cvs to actually add the necessary files for plugin support
8431 2006-03-11  James Livingston  <jrl@ids.org.au>
8433         Add a plugin framework, with basic support for Python plugins (based
8434         on gedit's). Closes bug 330523.
8436         * Makefile.am:
8437         * shell/Makefile.am:
8438         * configure.ac: necessary autofoo.
8440         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
8442         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
8443         * lib/rb-file-helpers.h:
8445         * data/glade/plugins/glade:
8446         * lib/rb-preferences.h:
8447         * plugins/*:
8448         * bindings/*: plugin framework
8450         * plugins/sample/*:
8451         * plugins/sample-python/*: sample plugins
8453         * plugins/audioscrobbler/*:
8454         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
8455         (rb_audioscrobbler_set_property),
8456         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
8457         submission into a plugin. shell/audioscrobbler.* should really be
8458         moved, but that sucks with cvs.
8460         * shell/rb-shell.h:
8461         * shell/rb-shell.c: (rb_shell_constructor),
8462         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
8463         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
8464         (rb_shell_quit): start and stop plugin framework.
8466 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8468         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
8469         (rhythmdb_entry_delete):
8470         Emit entry-deleted signals when rhythmdb_commit is called, rather than
8471         immediately, so we can't get change notifications afterwards.  
8472         Fixes #331732.
8473         (rhythmdb_process_metadata_load): Add a commit after removing an
8474         entry so we can recreate it with a different type without getting
8475         confused.
8477 2006-03-11  James Livingston  <jrl@ids.org.au>
8479         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
8480         use the drive name for audio CDs, use "Unknown CD".
8482 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8484         patch by:  James Henstridge  <james@jamesh.id.au>
8486         * sources/rb-removable-media-source.c:
8487         (rb_removable_media_source_constructor):
8488         Get the device name from the GnomeVFSDrive if possible,
8489         since this is usually a more descriptive name.  Fixes #333080.
8491 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8493         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8495         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
8496         Don't automatically download episodes when configured for manual
8497         updating.  Fixes #331564.
8499 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8501         * rhythmdb/rhythmdb-property-model.c:
8502         (rhythmdb_property_model_iter_from_string):
8503         Return an iterator for the 'all' property when name == NULL,
8504         and don't write to *iter if iter == NULL.
8506 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8508         * shell/rb-shell-player.c: (rb_shell_player_do_next):
8509         When switching to the play queue, still call _go_next on the normal
8510         play order, so self-emptying auto playlists ("play count = 0" etc.)
8511         don't restart once the queue is empty.
8513         * shell/rb-tray-icon.c:
8514         Change shortcut for 'show notifications' to 'o' so it doesn't clash
8515         with 'next'.
8517 2006-03-05  James Livingston  <jrl@ids.org.au>
8519         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
8520         don't submit tracks which could not be played. Fixed bug 333013.
8522         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
8523         tracks which could not be played.
8525 2006-03-05  James Livingston  <jrl@ids.org.au>
8527         Sync musicbrainz lookup code from Sound-Juicer cvs.
8529         * metadata/sj-metadata-musicbrainz.c:
8530         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
8531         (get_offline_track_listing), (artist_and_title_from_title),
8532         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
8533         (mb_list_albums), (mb_get_submit_url):
8534         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
8535         * metadata/sj-metadata.h:
8536         * metadata/sj-structures.c: (track_details_free),
8537         (album_details_free):
8538         * metadata/sj-structures.h:
8540 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8542         * lib/rb-debug.h:
8543         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
8544         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
8545         (rb_profiler_reset), (rb_profiler_free):
8546         Filter debug output by matching the file and function names against a
8547         match string.
8549         * shell/main.c: (main):
8550         Add -D command line option to specify the debug match string.
8552         * shell/rb-removable-media-manager.c:
8553         (rb_removable_media_manager_mount_volume):
8554         Fix some typos in debug output.
8556 2006-03-03  James Livingston  <jrl@ids.org.au>
8558         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
8559         * shell/rb-shell.c: (rb_shell_load_uri):
8560         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
8561         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
8562         use the new "recurse" property from totem-plparser, if present. Stop
8563         RB hanging for new users who don't have a 'net connection. From bug
8564         331508.
8566 2006-03-02  Bastien Nocera  <hadess@hadess.net>
8568         * shell/rb-removable-media-manager.c:
8569         (rb_removable_media_manager_mount_volume):
8570         * sources/Makefile.am:
8571         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
8572         Fix missing files on make dist (conditional files), only build the
8573         N770 support if there's HAL support, as we have no other ways of
8574         detecting it
8576 2006-03-03  James Livingston  <jrl@ids.org.au>
8578         * shell/rb-shell-clipboard.c:
8579         (rb_shell_clipboard_set_source_internal): really fix it this time.
8580         hopefully.
8582 2006-03-03  James Livingston  <jrl@ids.org.au>
8584         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
8585         with the idle function not being removed.
8587 2006-03-02  James Livingston  <jrl@ids.org.au>
8589         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
8590         * widgets/rb-entry-view.h: add function for determining whether all
8591         entries are selected.
8593         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
8594         (rb_shell_clipboard_set_source_internal),
8595         (rb_shell_clipboard_finalize),
8596         (rb_shell_clipboard_idle_poll_deletions),
8597         (rb_shell_clipboard_entryview_changed_cb),
8598         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
8599         removals, to update things.
8601         (rb_shell_clipboard_sync): update the Select All and Select None
8602         sensitivity, based on what is selected. Fixed bug 172220.
8604 2006-03-02  James Livingston  <jrl@ids.org.au>
8606         * widgets/rb-library-browser.c: (rebuild_child_model): save and
8607         restore the selections of later models. This means that selecting the
8608         artist for the selected album does not reset the album selection.
8610 2006-03-02  James Livingston  <jrl@ids.org.au>
8612         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
8613         Stops it emitting critical warnings.
8615 2006-03-02  James Livingston  <jrl@ids.org.au>
8617         * lib/rb-file-helpers.c: (rb_uri_append_uri):
8618         * lib/rb-file-helpers.h: Add uri concatenation function for when the
8619         second fragment is already escaped.
8621         * sources/rb-generic-player-source.c:
8622         (rb_generic_player_source_class_init),
8623         (rb_generic_player_source_constructor), (impl_show_popup),
8624         (rb_generic_player_source_load_playlists),
8625         (rb_generic_player_source_transform_playlist_uri),
8626         (handle_playlist_entry_cb), (visit_playlist_dirs),
8627         (default_load_playlists), (default_transform_playlist_uri):
8628         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
8629         the device. Allow subclasses to override the playlist loading, and
8630         (playlist uri)->(actual uri) mapping. A lot of devices which have
8631         playlists won't work right now, but people will see them and hopefully
8632         file bugs.
8634         * sources/rb-psp-source.c: (rb_psp_source_class_init),
8635         (rb_psp_source_create_playlists): Adapt the PSP for the above change
8636         
8637         * sources/Makefile.am:
8638         + sources/rb-nokia770-source.{c,h}:
8639         * shell/rb-removable-media-manager.c:
8640         (rb_removable_media_manager_mount_volume): Add support for reading
8641         playlists of Nokia 770s.
8643 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8645         * data/glade/podcast-properties.glade:
8646         * podcast/rb-podcast-properties-dialog.c:
8647         (rb_podcast_properties_dialog_init),
8648         (rb_podcast_properties_dialog_update),
8649         (rb_podcast_properties_dialog_update_location),
8650         (rb_podcast_properties_dialog_update_download_location):
8651         Add 'download location' field showing the path to the downloaded copy.
8652         Fixes #330696.
8654 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8656         * configure.ac: simplify HAVE_HAL define
8658 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8660         * configure.ac:
8661         * lib/rb-file-helpers.c: (rb_uri_append_path):
8662         * lib/rb-file-helpers.h:
8663         * shell/rb-removable-media-manager.c:
8664         (rb_removable_media_manager_mount_volume):
8665         * sources/Makefile.am:
8666         * sources/rb-ipod-source.c:
8667         * sources/rb-psp-source.*:
8668         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
8669         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
8671 2006-03-02  James Livingston  <jrl@ids.org.au>
8673         * shell/rb-shell-player.c: (rb_shell_player_set_property),
8674         (rb_shell_player_play), (rb_shell_player_jump_to_current),
8675         (swap_playing_source), (rb_shell_player_playpause),
8676         (rb_shell_player_sync_buttons), (actually_set_playing_source),
8677         (rb_shell_player_set_playing_source_internal): check for the entry
8678         view being NULL before trying to use it. Lets us support sources which
8679         don't have an entry view. From bug 331673.
8681 2006-03-01  Bastien Nocera  <hadess@hadess.net>
8683         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
8684         use gnome_vfs_read_entire_file with a URI, not a local filename
8686 2006-03-01  James Livingston  <jrl@ids.org.au>
8688         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
8689         first-seen and last-seen when merging duplicate entries.
8691 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8693         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
8694         * widgets/rb-property-view.h:  New function, allowing custom 
8695         interactive search functions for property views.
8696         
8697         * sources/rb-podcast-source.c: 
8698         (feed_select_change_cb): Only do a new query when the selection
8699         actually changes.
8700         (rb_podcast_source_constructor),
8701         (rb_podcast_source_feed_title_search_func):
8702         Interactive search function for podcast feed titles.  Fixes #327451.
8704 2006-03-01  James Livingston  <jrl@ids.org.au>
8706         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
8707         the uri in the callback, since it causes symbols to not be escaped.
8708         Fixes bug 332976.
8710         * data/ui/rhythmbox-ui.xml:
8711         * sources/rb-import-errors-source.c:
8712         (rb_import_errors_source_class_init),
8713         (rb_import_errors_source_constructor), (impl_get_status),
8714         (impl_move_to_trash),
8715         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
8716         import errors source
8717         
8718         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
8719         (rb_entry_view_append_column): unescape the URI for display.
8721 2006-03-01  James Livingston  <jrl@ids.org.au>
8723         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
8724         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
8725         function fails.
8727 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
8729         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
8730         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
8731         * sources/rb-play-queue-source.c:
8732         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
8733         (rb_play_queue_source_update_count):  Use "Play Queue" instead
8734         of "Queued Songs".
8736         Fixes #331637.
8738 2006-03-01  James Livingston  <jrl@ids.org.au>
8740         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
8741         Fixes bug 332913.
8743 2006-03-01  James Livingston  <jrl@ids.org.au>
8745         * daapsharing/rb-daap-mdns-browser-howl.c:
8746         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
8747         * daapsharing/rb-daap-mdns-publisher-avahi.c:
8748         (rb_daap_mdns_publisher_class_init),
8749         (rb_daap_mdns_publisher_finalize):
8750         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
8751         * player/rb-recorder-gst.c: (rb_recorder_class_init),
8752         (rb_recorder_finalize):
8753         * rhythmdb/rhythmdb-query-model.c:
8754         (rhythmdb_query_model_constructor):
8755         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
8756         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
8757         * sources/rb-playlist-source-recorder.c:
8758         (rb_playlist_source_recorder_style_set),
8759         (rb_playlist_source_recorder_class_init),
8760         (rb_playlist_source_recorder_finalize):
8761         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
8762         other classes in the same way, so they don't break when derived from.
8764 2006-03-01  James Livingston  <jrl@ids.org.au>
8766         * sources/rb-generic-player-source.c:
8767         (rb_generic_player_source_constructor): don't get the parent class in
8768         a dumb way, and it breaks when the class is derived from.
8770 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
8772         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
8774 2006-03-01  James Livingston  <jrl@ids.org.au>
8776         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
8777         not work in glib 2.8 systems.
8779 2006-03-01  James Livingston  <jrl@ids.org.au>
8781         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
8782         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
8783         say it is crap.
8785         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
8786         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
8787         podcasts on ion-local places
8789         * rhythmdb/gsequence.c: (g_sequence_node_new),
8790         (g_sequence_node_free): use gslice if we are building against glib
8791         2.10.
8793         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
8794         local files too, so it doesn't block.
8796 2006-02-28  James Livingston  <jrl@ids.org.au>
8798         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
8799         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
8800         stats the file. Stops the UI blocking while stats are done.
8802 2006-02-28  James Livingston  <jrl@ids.org.au>
8804         * sources/rb-static-playlist-source.c:
8805         (rb_static_playlist_source_class_init),
8806         (rb_static_playlist_source_constructor), (impl_reset_filters),
8807         (impl_get_property_views), (impl_browser_toggled),
8808         (rb_static_playlist_source_do_query),
8809         (rb_static_playlist_source_browser_changed_cb): add browsers to static
8810         playlists. From bug 118862.
8812         * sources/rb-play-queue-source.c:
8813         (rb_play_queue_source_class_init): disable them for the play queue.
8815 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
8817         * data/glade/library-prefs.glade:  Add a mnemonic.
8818         * sources/rb-library-source.c:
8819         (rb_library_source_location_button_clicked_cb):  Use title
8820         capitalization for window title.
8822 2006-02-28  James Livingston  <jrl@ids.org.au>
8824         * sources/rb-auto-playlist-source.c:
8825         (construct_query_from_selection): don't create a subquery for only one
8826         criteria, as it's a silly effifiency degredation.
8828 2006-02-28  James Livingston  <jrl@ids.org.au>
8830         * rhythmdb/rhythmdb.h:
8831         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
8832         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
8833         saved to disk
8835         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
8836         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
8837         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
8838         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
8839         IGNORE (e.g. known video stream) create an entry of the Ignore type.
8840         This will make importing files quicker as we don't need to try files
8841         that we know are not going to be interesting - especially useful when
8842         using the library watching facility.
8844         Fixes bug 323179.
8846 2006-02-28  James Livingston  <jrl@ids.org.au>
8848         * shell/rb-shell.c: (rb_shell_constructor),
8849         (rb_shell_set_visibility): fix browser and source-list pane
8850         positioning, that I broke with the "remember visibility" patch.
8852 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8854         * metadata/rb-metadata-dbus-service.c: (main):
8855         Change argument handling so you can use --debug with the --load and
8856         --can-save test modes.
8857         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
8858         Use a separate GMainContext, not the default one.  Probably fixes
8859         #332344.
8861 2006-02-27  James Livingston  <jrl@ids.org.au>
8863         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
8864         first starting up. Fixes bug 330342.
8866 2006-02-27  James Livingston  <jrl@ids.org.au>
8868         * sources/rb-sourcelist-model.c:
8869         (rb_sourcelist_model_set_dnd_targets):
8870         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
8871         COPY action for draging sources and tracks, not MOVE as well. Stops
8872         Nautilus moving file away, and fixes bug 332488.
8874 2006-02-27  James Livingston  <jrl@ids.org.au>
8876         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
8878         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
8879         and Last Played metadata off iPods. Closes bug 324648.
8881 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8883         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
8884         Disable audioscrobbler when run with the --no-registration flag, since
8885         last.fm doesn't allow multiple concurrent clients per user.
8887 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8889         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
8890         Rename renamable sources when F2 is pressed when the sourcelist has
8891         focus.  Fixes #330700.
8893 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8895         * shell/rb-playlist-manager.c: (cleanup_edit_data),
8896         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
8897         (rb_playlist_manager_cmd_edit_automatic_playlist):
8898         Fix various crashes when deleting auto playlists previously edited
8899         by disconnecting signal handlers when the query editor is closed or
8900         the playlist is deleted.
8902 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8904         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
8905         removed load failure dialog, and actually use the friendly file type
8906         name in error messages.
8908 2006-02-24  James Livingston  <jrl@ids.org.au>
8910         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
8912         * sources/rb-library-source.c:
8913         (rb_library_source_location_button_clicked_cb),
8914         (rb_library_source_preferences_sync),
8915         (rb_library_source_library_location_cb): convert the library URI to
8916         for display, and back again. Fixes bug 332356.
8918 2006-02-23  James Livingston  <jrl@ids.org.au>
8920         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
8921         (rhythmdb_process_metadata_load), (monitor_subdirectory),
8922         (rhythmdb_sync_library_location): don't monitor files at all if
8923         watching is turned off. From bug 323096.
8925 2006-02-23  James Livingston  <jrl@ids.org.au>
8927         * data/rhythmbox.schemas:
8928         * lib/rb-preferences.h:
8929         * shell/rb-shell.c: (rb_shell_constructor),
8930         (rb_shell_set_visibility): remember main window visibility between
8931         sessions. Fixes bug 127320.
8933 2006-02-23  James Livingston  <jrl@ids.org.au>
8935         * data/glade/library-prefs.glade:
8936         * sources/rb-library-source.c: (impl_get_config_widget),
8937         (rb_library_source_location_button_clicked_cb),
8938         (rb_library_source_preferences_sync),
8939         (rb_library_source_library_location_cb),
8940         (rb_library_source_watch_toggled_cb): change the library-location
8941         widgets from the file-chooser drop menu to a text entry and Browse
8942         button. This is needed to prevent the location from chaning if the
8943         directory cannot be found. Fixes bug 328414.
8945 2006-02-23  James Livingston  <jrl@ids.org.au>
8947         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
8948         item. Fixes bug 329042.
8950 2006-02-23  James Livingston  <jrl@ids.org.au>
8952         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8954         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
8955         comma in some podcast feeds. Fixes bug 332194.
8957 2006-02-23  James Livingston  <jrl@ids.org.au>
8959         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
8960         lower priority.
8962         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
8963         the internal audio cd URIs from "cdda://device:track" to
8964         "cdda://track#device" as it makes processing much easier.
8966         * shell/rb-shell-player.c: (rb_shell_player_open_location):
8967         * player/rb-player-gst.c: don't have the shell close the player
8968         between songs, as doing that should be backend-specific. Make the
8969         gstreamer backend close before starting a new track, unless the old
8970         and new ones are both tracks on the same audio cd. Just seek in that
8971         case.
8973 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8975         * doc/reference/rhythmbox.types: Fix doc build a bit more.
8977 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8979         * configure.ac: Enable more warnings in my stupid setup too.
8980         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
8981         #332210.
8983 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8985         * sources/rb-missing-files-source.h,
8986         * sources/rb-missing-files-source.c,
8987         * sources/rb-import-errors-source.h,
8988         * sources/rb-import-errors-source.c:
8989         Add library meta-sources, showing missing files and import errors.
8990         Fixes #167763, #142322.
8992         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
8993         * sources/rb-sourcelist-model.h:
8994         * sources/rb-sourcelist.c: (rb_sourcelist_append),
8995         (match_source_to_iter), (rb_sourcelist_source_to_iter),
8996         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
8997         (visibility_notify_cb):
8998         Store source visibility in the sourcelist model, so we can determine
8999         child source counts correctly and get the sourcelist expander column
9000         right.
9001         
9002         * widgets/rb-entry-view.h:
9003         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
9004         (rb_entry_view_append_column), (set_column_visibility):
9005         Allow the creator of the entry view to specify which columns are
9006         always visible.
9008         * sources/rb-source.h:
9009         * sources/rb-source.c: (_autohide_update_visibility),
9010         (_rb_autohide_source_row_deleted_cb),
9011         (_rb_autohide_source_row_inserted_cb),
9012         (_rb_source_hide_when_empty):
9013         Allow sources to automatically hide themselves when empty.
9014         
9015         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
9016         * sources/rb-library-source.c: (rb_library_source_constructor):
9017         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9018         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
9019         Explicitly specify which columns are always visible.
9020         
9021         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
9022         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
9023         Remove load error signal handling and load failure dialog.
9024         Create missing files and import errors sources for the library.
9026         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
9027         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
9028         Create DB entries for import errors rather than emitting the 'load
9029         error' signal; mark loaded entries visible.
9030         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
9031         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
9032         (rhythmdb_prop_get_type): Store string form of last seen time for
9033         hidden entries, since it's used in the missing files source.
9034         (rhythmdb_entry_import_error_get_type): 
9035         Add entry type for import errors.
9036         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
9037         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
9038         (rhythmdb_entry_move_to_trash_set_error),
9039         (rhythmdb_entry_move_to_trash):  
9040         Correct spelling, add missing rhythmdb_commit.
9041         * rhythmdb/rhythmdb.h:  
9042         Add import error entry type and last seen string property.
9043         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
9044         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9045         (save_entry):  Ignore string form of 'last seen' property.
9047         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
9048         Don't try to play hidden entries or import error entries.
9050         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
9051         * sources/Makefile.am: Add meta-source files
9052         * widgets/Makefile.am: Remove load failure dialog files
9054 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9056         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
9057         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
9058         few bits and pieces.
9060 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9062         * metadata/test-metadata.c: (load_metadata_cb):
9063         Fix compile warning for ignoring return value from getcwd, #332064.
9065 2006-02-21  James Livingston  <jrl@ids.org.au>
9067         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
9068         (edit_auto_playlist_deleted_cb),
9069         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
9070         playlist editor non-modal. Fixes bug 320030.
9072 2006-02-21  James Livingston  <jrl@ids.org.au>
9074         * shell/rb-shell.c: (rb_shell_constructor):
9075         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
9076         (rb_header_set_show_artist_album):
9077         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
9078         (rb_song_display_box_sync): make the queue sidebar and song display
9079         not get affected by gtk_widget_show_all. Fixes bug 332001.
9081 2006-02-21  James Livingston  <jrl@ids.org.au>
9083         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
9085         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
9086         feeds which use timezone names instead of offsets. Doesn't actually
9087         parse the timezone name since they are not standardised. Fixes bug
9088         331691.
9090 2006-02-21  James Livingston  <jrl@ids.org.au>
9092         * help/C/figures/rb-notification-area.png:
9093         * help/C/figures/rb-sidebar.png:
9094         * help/C/quick-reference.xml: remove obsolete files from CVS.
9096         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
9097         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
9098         (rhythmdb_query_free), (rhythmdb_query_serialize),
9099         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
9100         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
9102         * widgets/rb-query-creator-properties.c: add prefix and suffix
9103         (escapedStringCriteriaGetWidgetData): use better escaping, so it
9104         doesn't escape the ':' separator in uris.
9106 2006-02-21  James Livingston  <jrl@ids.org.au>
9108         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
9109         on startup.
9111 2006-02-21  James Livingston  <jrl@ids.org.au>
9113         * NEWS: update with recent changes
9115 2006-02-21  James Livingston  <jrl@ids.org.au>
9117         * shell/rb-shell.c: (rb_shell_constructor),
9118         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
9119         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
9120         (rb_druid_browse_clicked_cb), (do_response):
9121         * widgets/rb-druid.h: Make running the druid not block RBShell
9122         starting up. This is required so that bonobo registration doesn't time
9123         out. Fixed bug 318766.
9125 2006-02-21  James Livingston  <jrl@ids.org.au>
9127         * rhythmdb/rhythmdb-property-model.c:
9128         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
9129         hash table after using it, not before. Fixed bug 331922.
9131 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9133         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
9134         (rb_shell_view_queue_as_sidebar_changed_cb):
9135         When playing from the queue, only attempt to highlight the queue
9136         source in the source list if it's actually visible there.  Otherwise,
9137         leave the preempted source highlighted.  Mostly fixes #330819.
9139 2006-02-20  James Livingston  <jrl@ids.org.au>
9141         * rhythmdb/rhythmdb-property-model.c:
9142         (rhythmdb_property_model_row_inserted_cb),
9143         (rhythmdb_property_model_prop_changed_cb),
9144         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
9145         store the roperty value in the entry-mapping table, so that receiving
9146         the remove signal from a query model before we get notified of a
9147         change doesn't cause a crash. Fixes bug 331770.
9149 2006-02-20  James Livingston  <jrl@ids.org.au>
9151         * data/ui/rhythmbox-ui.xml:
9152         * sources/rb-play-queue-source.c:
9153         (rb_play_queue_source_class_init),
9154         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
9155         playlist things in the queue popup source. From 330490.
9157         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
9158         previous commit
9160 2006-02-20  James Livingston  <jrl@ids.org.au>
9162         * widgets/rb-song-info.c: (rb_song_info_response_cb),
9163         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
9164         attempt to sync data for non-editable entries when using
9165         next/previous. Don't write our Year if it wasn't changed. Fixes bug
9166         331762.
9168 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
9170         * .cvsignore:
9171         * Makefile.am:
9172         * autogen.sh:
9173         * configure.ac:
9174         * help/.cvsignore:
9175         * help/Makefile.am: ported to gnome-doc-utils
9176         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
9177         * help/ChangeLog: added, for translators
9178         * help/C/rhytmbox-C.omf: removed, no longer used
9179         Know issue: figures are installed, but some are not showed; manual
9180         description added, but not showed in Yelp while browsing. I'll
9181         investigate, maybe are needed some little changes to
9182         help/C/rhythmbox.xml.
9184 2006-02-20  James Livingston  <jrl@ids.org.au>
9186         * data/ui/rhythmbox-ui.xml:
9187         * help/C/figures/rb-adv.png:
9188         * help/C/figures/rb-asst-finish.png:
9189         * help/C/figures/rb-asst-library.png:
9190         * help/C/figures/rb-asst-start.png:
9191         * help/C/figures/rb-basic.png:
9192         * help/C/figures/rb-browser.png:
9193         * help/C/figures/rb-context-menu.png:
9194         * help/C/figures/rb-empty.png:
9195         * help/C/figures/rb-full-play.png:
9196         * help/C/figures/rb-group-auto.png:
9197         * help/C/figures/rb-group-create.png:
9198         * help/C/figures/rb-group.png:
9199         * help/C/figures/rb-imported.png:
9200         * help/C/figures/rb-iradio-add.png:
9201         * help/C/figures/rb-iradio.png:
9202         * help/C/figures/rb-nextprev.png:
9203         * help/C/figures/rb-nobrowse-play.png:
9204         * help/C/figures/rb-notification-area-menu.png:
9205         * help/C/figures/rb-player.png:
9206         * help/C/figures/rb-prefs-general.png:
9207         * help/C/figures/rb-prefs-ipod.png:
9208         * help/C/figures/rb-prefs-library.png:
9209         * help/C/figures/rb-prefs.png:
9210         * help/C/figures/rb-repeat.png:
9211         * help/C/figures/rb-search.png:
9212         * help/C/figures/rb-shuffle.png:
9213         * help/C/figures/rb-stats.png:
9214         * help/C/figures/rb-toolbar-editor.png:
9215         * help/C/figures/rb-volume-mute.png:
9216         * help/C/figures/rhythmbox-group.png:
9217         * help/C/figures/rhythmbox-tray-icon.png:
9218         * help/C/user-guide.xml: remove old stuff from cvs
9220 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9222         * metadata/rb-metadata-dbus-client.c: 
9223         * metadata/rb-metadata-dbus-service.c:
9224         * metadata/rb-metadata-dbus.c:
9225         * metadata/rb-metadata-dbus.h:
9226         New files, adding an external service for reading and writing
9227         metadata, and an implementation of the RBMetaData interface that uses
9228         dbus to communicate with it.
9229         
9230         * metadata/rb-metadata.h,
9231         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
9232         (rb_metadata_get_field_name): Put metadata details in a static array
9233         instead of using a hash table, and add a field for language code (not
9234         used for anything)
9235         * metadata/rb-metadata-gst.c: Updates for changes in
9236         rb-metadata-common.c, fix signal handler closure leak for the typefind
9237         element's have-type signal, and add XML to the list of types we ignore.
9238         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
9239         Update for changes to rb_metadata_get_field_type
9240         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
9241         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
9242         here and there.
9243         
9244         * configure.ac: Add --enable-metadata-helper option (not enabled by
9245         default) to use the external metadata service
9246         * metadata/Makefile.am: Add new files
9247         * metadata/test-metadata.c:  Test program for the metadata service
9249         Fixes #329597. 
9251 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9253         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
9254         * sources/rb-podcast-source.c: (impl_get_ui_actions),
9255         (rb_podcast_source_cmd_new_podcast):
9256         Move 'new podcast' action to the podcast source, and add it to the
9257         toolbar.  Fixes #331562.
9259 2006-02-19  James Livingston  <jrl@ids.org.au>
9261         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
9262         menus, and away from move-to-trash. Fixes bug 331013.
9264 2006-02-19  James Livingston  <jrl@ids.org.au>
9266         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
9267         when deleting last entry. Fixes bug 331712.
9269 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9271         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
9272         (rb_entry_view_button_press_cb):
9273         * widgets/rb-entry-view.h: Emit show-popup when right clicked
9274         anywhere, and include a flag indicating whether the click was over an
9275         entry or not.
9276         
9277         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
9278         (rb_playlist_source_songs_show_popup_cb):
9279         * sources/rb-playlist-source.h:
9280         Add the 'over entry' flag to the class show popup method, and in the
9281         default handler, ignore right clicks when not over an entry.
9282         
9283         * sources/rb-iradio-source.c:
9284         (rb_iradio_source_songs_show_popup_cb):
9285         * sources/rb-library-source.c:
9286         (rb_library_source_songs_show_popup_cb):
9287         * sources/rb-podcast-source.c:
9288         (rb_podcast_source_songs_show_popup_cb):
9289         Show the source list popup menu when right clicked while not over an
9290         entry.
9292         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
9293         For the queue sidebar, always display the popup so the 'clear queue'
9294         action is available regardless of where you click.  For the queue
9295         source, only display the popup when right clicked over an entry.
9296         Fixes #331392.
9298 2006-02-19  James Livingston  <jrl@ids.org.au>
9300         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
9301         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
9302         entry view, when we're not even using it
9304         * rhythmdb/rhythmdb-property-model.c:
9305         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
9306         function, rather than a copy of the code.
9308         * shell/rb-playlist-manager.c:
9309         (rb_playlist_manager_playlist_row_inserted_cb),
9310         (rb_playlist_manager_set_source_internal),
9311         (rb_playlist_manager_playlist_entries_changed): use the query-model
9312         directly, rather than the source's entry view.
9314         * shell/rb-source-header.c: don't use the entry view, just select the
9315         source widget.
9317 2006-02-18  James Livingston  <jrl@ids.org.au>
9319         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
9321         * help/C/figures/rb-iradio-main.png:
9322         * help/C/figures/rb-notification-area-menu.png:
9323         * help/C/figures/rb-notification-window.png:
9324         * help/C/figures/rb-notification-zone.png:
9325         * help/C/figures/rb-podcast-main.png:
9326         * help/C/figures/rb-statusbar.png:
9327         * help/C/figures/rb-toolbar-prevplaynext.png:
9328         * help/C/figures/rb-toolbar-repeat.png:
9329         * help/C/figures/rb-toolbar-shuffle.png:
9330         * help/C/figures/rb-toolbar.png:
9331         * help/C/figures/rb-volume-changer.png:
9332         * help/C/figures/rb-window-small.png:
9333         * help/C/figures/rb-window.png:
9334         * help/C/rhythmbox.xml: Update user guide with some of the changes
9335         that have occurred after 0.8.8. From bug 314001.
9337 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9339         * rhythmdb/rhythmdb-query-results.h,
9340           rhythmdb/rhythmdb-query-results.c:
9341         New interface for objects that accept query results from RhythmDB.
9343         * rhythmdb/rhythmdb-query-model.c:
9344         (rhythmdb_query_model_query_results_init),
9345         (rhythmdb_query_model_set_query),
9346         (rhythmdb_query_model_add_results),
9347         (rhythmdb_query_model_query_complete):
9348         * rhythmdb/rhythmdb-query-model.h:
9349         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
9351         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
9352         (rhythmdb_tree_do_full_query):
9353         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
9354         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
9355         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
9356         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
9357         * rhythmdb/rhythmdb.h:
9358         Pass query results through the RhythmDBQueryResults interface, rather
9359         than directly to a RhythmDBQueryModel.
9361         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
9362         (rb_podcast_manager_db_entry_deleted_cb):
9363         * sources/rb-auto-playlist-source.c:
9364         (rb_auto_playlist_source_do_query),
9365         (rb_auto_playlist_source_set_query):
9366         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
9367         * sources/rb-library-source.c: (rb_library_source_constructor),
9368         (rb_library_source_do_query):
9369         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9370         (rb_podcast_source_do_query):
9371         * rhythmdb/rhythmdb-property-model.c:
9372         (rhythmdb_property_model_drag_data_get):
9373         Cast the query model to RhythmDBQueryResults when passing to one of
9374         the RhythmDB query methods.
9376         * rhythmdb/Makefile.am: Add new files.
9378 2006-02-18  James Livingston  <jrl@ids.org.au>
9380         * data/ui/rhythmbox-ui.xml:
9381         * shell/rb-playlist-manager.c:
9382         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
9383         "queue playlist" item to source context menu. Fixes bug 330490.
9385 2006-02-18  James Livingston  <jrl@ids.org.au>
9387         * data/glade/general-prefs.glade:
9388         * shell/rb-shell-preferences.c:
9389         (rb_shell_preferences_column_check_changed_cb),
9390         (rb_shell_preferences_sync):
9391         * sources/rb-library-source.c: (rb_library_source_constructor):
9392         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9393         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
9394         (rb_entry_view_append_column): Add a "quality" colume which indicates
9395         the bitrate of media. Part of bug 167659.
9397 2006-02-18  James Livingston  <jrl@ids.org.au>
9399         * shell/rb-play-order.c: (do_next_idle_cb),
9400         (default_playing_entry_removed): move to next track when playing entry
9401         is deleted. Fixes bug 131150.
9403         * shell/rb-shell-player.h: remove ancient stuff
9405 2006-02-17  William Jon McCann  <mccann@jhu.edu>
9407         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
9408         (rb_shell_clipboard_set_property): 
9409         * shell/rb-shell.c (rb_shell_sync_party_mode):
9410         Trigger a resync of the clipboard properties when changing party mode.
9412 2006-02-17  William Jon McCann  <mccann@jhu.edu>
9414         * sources/rb-static-playlist-source.c: Fix includes.
9416         * sources/rb-source.c (rb_source_can_rename) 
9417         (rb_source_can_delete, rb_source_can_move_to_trash):
9418         Return FALSE if in party mode.
9420         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
9421         Replace fullscreen with party mode.
9422         (rb_shell_window_delete_cb): Don't quit if in party mode.
9423         (rb_shell_view_party_mode_changed_cb): Setup party mode.
9424         (window_state_event_cb): Try to deiconify shell when iconified
9425         in party mode.
9426         (rb_shell_sync_party_mode): Sync party mode properties.
9427         Currently, that means [de]sensitizing close, quit, and small-display,
9428         going into fullscreen mode with window stuck and kept above, and
9429         toggling queue-only for the shell player.
9430         (rb_shell_sync_smalldisplay): Sensitive party mode.
9431         (rb_shell_get_party_mode): Get party mode setting.
9433         * shell/rb-shell-player.c (rb_shell_player_class_init) 
9434         (rb_shell_player_set_property, rb_shell_player_get_property):
9435         Add queue-only property.
9436         (rb_shell_player_entry_activated_cb): If in party mode
9437         only queue the entry on activation.
9439         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
9440         Break out from set_properties.  Desensitize some actions when
9441         in party mode.
9442         (rb_playlist_manager_set_property): Break out set_source_internal.
9444         * data/rhythmbox.schemas: Remove fullscreen mode.
9446         * data/ui/rhythmbox-ui.xml: Replace fullscreen
9447         action with party mode.
9449         Partial fix for #323933
9451 2006-02-17  James Livingston  <jrl@ids.org.au>
9453         * configure.ac:
9454         * shell/rb-removable-media-manager.c:
9455         (get_nautilus_burn_drive_for_path),
9456         (rb_removable_media_manager_playing_uri_changed_cb): only use
9457         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
9458         over the list when it doesn't.
9460 2006-02-17  James Livingston  <jrl@ids.org.au>
9462         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
9463         (rb_iradio_source_first_time_changed): Only do the import on the
9464         first change from FALSE to TRUE.
9466         * sources/rb-library-source.c:
9467         (rb_library_source_preferences_sync),
9468         (rb_library_source_library_location_cb): set the first-run done flag
9469         if the user presses close and then sets their watches library
9470         location. Fixes bug 325997.
9472 2006-02-17  James Livingston  <jrl@ids.org.au>
9474         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
9475         removable media manager gobject properties
9477         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
9478         (split_drive_from_cdda_uri),
9479         (rb_removable_media_manager_playing_uri_changed_cb),
9480         (rb_removable_media_manager_load_media): stop polling a cd drive
9481         when we are playing from it. Part of bug 330716.
9483 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9485         * rhythmdb/rhythmdb-query-model.c:
9486         (rhythmdb_query_model_set_property),
9487         (rhythmdb_query_model_finalize),
9488         (rhythmdb_query_model_base_entry_removed):
9489         Propagate entry removal from base models out to attached property
9490         models.  Fixes the rest of #331165.
9492 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9494         * rhythmdb/rhythmdb-property-model.c:
9495         (rhythmdb_property_model_row_inserted_cb),
9496         (rhythmdb_property_model_prop_changed_cb),
9497         (rhythmdb_property_model_insert):
9498         Don't store NULL as a hash table value if we want to use
9499         g_hash_table_lookup to check if a key exists, and get the checks for
9500         how and whether to handle entry changes the right way around.
9501         Fixes #331211 and half of #331165.
9503 2006-02-16  James Livingston  <jrl@ids.org.au>
9505         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
9506         the audio cd's TOC in a separate thread, so it doesn't block the UI.
9507         Fixes bug 329942.
9509 2006-02-16  James Livingston  <jrl@ids.org.au>
9511         * widgets/rb-library-browser.c: (reset_view_cb): make View All
9512         actually reset the browsers.
9514 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9516         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9517         Escape the strings we pass into libnotify so we don't get blank
9518         notifications when the song name contains '&' etc.  Fixes #330784.
9520 2006-02-16  James Livingston  <jrl@ids.org.au>
9522         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9523         enable "View All" when there is only a search box and no browser.
9524         Fixes bug 331395.
9526 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9528         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
9529         popup menu, which I forgot to commit with the patch for bug #330014.
9531 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9533         * shell/rb-shell-player.c: (open_location_thread):
9534         Sync button and entry view state once we've started the player, so the
9535         entry view gets into the playing state for iradio.
9537 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9539         * shell/rb-shell-player.c: (open_location_thread):
9540         Take GDK lock before doing anything UI-related.
9542 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9544         * shell/rb-shell.c: Move 'new iradio station' action to
9545         iradio source.
9547         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
9548         (rb_iradio_source_init), (rb_iradio_source_finalize),
9549         (rb_iradio_source_constructor):
9550         Remove some unused stuff.
9552         (guess_uri_scheme), (rb_iradio_source_add_station),
9553         (rb_iradio_source_add_from_playlist),
9554         (impl_get_ui_actions), (new_station_location_added),
9555         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
9556         action, include it in the toolbar, and make sure the URI we add has a
9557         scheme.  Fixes #327059, more or less.
9559 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9561         * sources/rb-play-queue-source.c:
9562         (rb_play_queue_source_class_init),
9563         (rb_play_queue_source_constructor),
9564         (rb_play_queue_source_update_count),
9565         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
9566         Add a toolbar button to clear the play queue, and make it sensitive
9567         only when there are entries in the queue.  Fixes #330014.
9569         * sources/rb-source.c: (_rb_source_register_action_group):
9570         * sources/rb-source.h:  Add helper function to register an
9571         action group for a source.
9573         * sources/rb-library-source.c: (rb_library_source_constructor):
9574         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9575         (register_action_group):  Use _rb_source_register_action_group.
9577 2006-02-15  James Livingston  <jrl@ids.org.au>
9579         * widgets/rb-song-info.c: (rb_song_info_add_completion),
9580         (rb_song_info_constructor), (rb_song_info_set_property): make
9581         tag-editing completion work for albums too.
9583 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9585         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
9586         Check the 'limit' checkbox for time-limited playlists.
9588 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
9590         * widgets/rb-song-info.c: Prove text-completion when editing title,
9591         artist or album
9593 2006-02-14  James Livingston  <jrl@ids.org.au>
9595         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
9596         tray icon popup menu. Fixes bug 331026.
9598 2006-02-14  James Livingston  <jrl@ids.org.au>
9600         * data/iradio-initial.pls: update the Virgin Radio stations to use the
9601         Ogg Vorbis streams, instead of the MP3 ones.
9603 2006-02-14  James Livingston  <jrl@ids.org.au>
9605         * rhythmdb/rhythmdb-property-model.c:
9606         (rhythmdb_property_model_class_init),
9607         (rhythmdb_property_model_drag_data_get):
9608         * rhythmdb/rhythmdb-query-model.c:
9609         (rhythmdb_query_model_title_sort_func):
9610         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
9611         LOCATION as the key. Fixes bug 330601.
9613 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9615         * sources/rb-playlist-source.c: (playlist_iter_func):
9616         Make it compile with older versions of totem-plparser too.      
9618 2006-02-13  James Livingston  <jrl@ids.org.au>
9620         * rhythmdb/rhythmdb.h:
9621         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
9622         structure private, since things should use the accessor functions
9623         rather than manipulating it directly - Only RhythmDB and the
9624         implementation classes should access it directly. Part of the RhythmDB
9625         cleanup of bug 330226.
9627         * iradio/rb-station-properties-dialog.c:
9628         (rb_station_properties_dialog_update_title),
9629         (rb_station_properties_dialog_update_title_entry),
9630         (rb_station_properties_dialog_update_genre),
9631         (rb_station_properties_dialog_update_location),
9632         (rb_station_properties_dialog_update_play_count),
9633         (rb_station_properties_dialog_update_bitrate),
9634         (rb_station_properties_dialog_update_last_played),
9635         (rb_station_properties_dialog_update_rating),
9636         (rb_station_properties_dialog_update_playback_error),
9637         (rb_station_properties_dialog_sync_entries):
9638         * podcast/rb-feed-podcast-properties-dialog.c:
9639         (rb_feed_podcast_properties_dialog_update_title),
9640         (rb_feed_podcast_properties_dialog_update_title_label),
9641         (rb_feed_podcast_properties_dialog_update_author),
9642         (rb_feed_podcast_properties_dialog_update_location),
9643         (rb_feed_podcast_properties_dialog_update_copyright),
9644         (rb_feed_podcast_properties_dialog_update_language),
9645         (rb_feed_podcast_properties_dialog_update_summary):
9646         * podcast/rb-podcast-manager.c:
9647         (rb_podcast_manager_entry_downloaded),
9648         (rb_podcast_manager_db_entry_added_cb),
9649         (download_progress_update_cb),
9650         (rb_podcast_manager_db_entry_deleted_cb):
9651         * podcast/rb-podcast-properties-dialog.c:
9652         (rb_podcast_properties_dialog_update_title),
9653         (rb_podcast_properties_dialog_update_title_label),
9654         (rb_podcast_properties_dialog_update_feed),
9655         (rb_podcast_properties_dialog_update_location),
9656         (rb_podcast_properties_dialog_update_play_count),
9657         (rb_podcast_properties_dialog_update_bitrate),
9658         (rb_podcast_properties_dialog_update_last_played),
9659         (rb_podcast_properties_dialog_update_rating),
9660         (rb_podcast_properties_dialog_update_date),
9661         (rb_podcast_properties_dialog_update_description):
9662         * rhythmdb/rhythmdb-query-model.c:
9663         (rhythmdb_query_model_entry_changed_cb),
9664         (rhythmdb_query_model_remove_from_main_list),
9665         (rhythmdb_query_model_update_limited_entries),
9666         (rhythmdb_query_model_drag_data_get),
9667         (rhythmdb_query_model_album_sort_func):
9668         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9669         (save_entry):
9670         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
9671         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
9672         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
9673         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
9674         (rhythmdb_entry_get_double):
9675         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
9676         * shell/rb-play-order-random-by-age-and-rating.c:
9677         (rb_random_by_age_and_rating_get_entry_weight):
9678         * shell/rb-play-order-random-by-age.c:
9679         (rb_random_by_age_get_entry_weight):
9680         * shell/rb-play-order-random-by-rating.c:
9681         (rb_random_by_rating_get_entry_weight):
9682         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
9683         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
9684         (rb_shell_player_set_playing_entry),
9685         (rb_shell_player_sync_replaygain),
9686         (rb_shell_player_sync_with_source),
9687         (rb_shell_player_get_playing_song_duration), (info_available_cb):
9688         * sources/rb-playlist-source.c: (playlist_iter_func),
9689         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
9690         (rb_playlist_source_entry_added_cb):
9691         * sources/rb-podcast-source.c:
9692         (rb_podcast_source_post_status_cell_data_func):
9693         * sources/rb-source.c: (rb_source_update_play_statistics):
9694         * sources/rb-sourcelist-model.c:
9695         (rb_sourcelist_model_drag_data_get):
9696         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
9697         (rb_static_playlist_source_add_entry),
9698         (rb_static_playlist_source_remove_entry):
9699         * widgets/rb-entry-view.c: (type_ahead_search_func),
9700         (rb_entry_view_playing_cell_data_func),
9701         (rb_entry_view_rating_cell_data_func),
9702         (rb_entry_view_pixbuf_clicked_cb):
9703         * widgets/rb-header.c: (rb_header_get_duration):
9704         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
9705         (rb_song_info_populate_dialog),
9706         (rb_song_info_update_playback_error),
9707         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
9708         (rb_song_info_update_location), (rb_song_info_update_play_count),
9709         (rb_song_info_update_last_played), (rb_song_info_update_rating),
9710         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
9711         (rb_song_info_sync_entry_single): fix the huge number of times that
9712         the internals got accessed directly.
9714 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9716         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
9717         trash' are grouped together.
9718         * shell/main.c: (main): Pass no-registration flag in to RBShell
9719         constructor, rather than mysteriously always passing TRUE.
9720         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
9721         Set dirty flag when entries are removed from the model, so the play
9722         queue is marked dirty appropriately.
9723         * AUTHORS: update my email address
9725 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9727         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
9729         * widgets/rb-druid.c: (path_dialog_response_cb):
9730         If the URI is local, don't display the 'file://' prefix.  
9731         Fixes #330919.
9733 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9735         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9736         Attach the notification to the tray icon widget, so libnotify
9737         positions it less badly.  Fixes #330876.
9739 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9741         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
9742         Reverse the selection list before returning it, so we get it in the
9743         right order.  Fixes #330283 and some other weirdness.
9745 2006-02-11  James Livingston  <jrl@ids.org.au>
9747         * shell/rb-shell.c: (rb_shell_constructor),
9748         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
9749         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9750         make small-mode and fullscreen mutually exclusive, since they don't
9751         work together
9753         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
9754         Mode.
9756 2006-02-10  James Livingston  <jrl@ids.org.au>
9758         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
9759         since it can cause it to be slower than real-time. Should fix bug
9760         322270.
9762 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9764         * rhythmdb/rhythmdb-query-model.c:
9765         (rhythmdb_query_model_set_property):
9766         Think just a little bit harder about that last commit.
9768 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9770         * rhythmdb/rhythmdb-query-model.c:
9771         (rhythmdb_query_model_set_property):
9772         Get the check for hidden entries the right way around.
9773         Fixes #330527, #330514.
9775         (rhythmdb_query_model_set_sort_order):
9776         Ignore no-op sort order changes, so we don't get critical
9777         messages when selecting 'all' in auto playlist browsers.
9779 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9781         Patch by: Christophe Fergeau  <teuf@gnome.org>
9783         * sources/rb-removable-media-source.c:
9784         (rb_removable_media_source_init),
9785         (rb_removable_media_source_constructor):
9786         Move icon setup code to the constructor, as the volume property
9787         haven't been set yet when _init is called.
9789 2006-02-09  William Jon McCann  <mccann@jhu.edu>
9791         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
9792         Make the source pixbuf a dynamic property.
9794         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
9795         (rb_source_set_pixbuf, rb_source_set_property) 
9796         (rb_source_get_property): Add icon property.
9798         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
9799         (rb_auto_playlist_source_init):
9800         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
9801         (rb_static_playlist_source_init):
9802         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
9803         (rb_removable_media_source_init): 
9804         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
9805         (rb_podcast_source_init): 
9806         * sources/rb-library-source.c (rb_library_source_class_init) 
9807         (rb_library_source_set_property, rb_library_source_get_property): 
9808         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
9809         (rb_iradio_source_init): Remove impl_get_pixbuf and
9810         set icon property on source base class.
9812         * sources/rb-daap-source.c (rb_daap_get_icon): Get
9813         a different icon for when the share is password protected
9814         and locked.
9815         (rb_daap_source_new): Set icon property.
9816         (composite_icons): Composite an emblem on a pixbuf.
9817         (create_pixbufs): Load global pixbufs.
9818         (destroy_pixbufs): unref global pixbufs.
9819         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
9820         (connection_auth_cb, connection_connected_cb) 
9821         (connection_disconnected_cb): Update icon when connection
9822         status changes.
9823         (rb_daap_source_activate): Connect signals.
9825         * daapsharing/rb-daap-share.c (name_collision_cb): Run
9826         dialog with parent.
9828         * daapsharing/rb-daap-marshal.list: Add new signal.
9830         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
9831         (rb_daap_collision_dialog_new_run): Set parent of dialog.
9833         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
9834         Add authenticate, connected, and disconnected signals.
9835         (connection_get_password): emit authenticate signal instead
9836         of running dialog directly.
9837         (connection_connected, connection_disconnected): Emit signals.
9838         (handle_login): Emit connected signal.
9839         (handle_logout): Emit disconnected signal.
9840         (rb_daap_connection_do_something): Fix leak.
9842         Fixes #330291
9844 2006-02-09  James Livingston  <jrl@ids.org.au>
9846         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
9847         entries from the base model if we don't have show-hidden set. Fixes
9848         bug 330514.
9850 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9852         * daapsharing/rb-daap-share.c (message_get_session_id):
9853         Ugh. Use strtoul instead of atoi.
9854         (session_id_validate): Add debug statements.
9856 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9858         * daapsharing/rb-daap-connection.c (http_response_handler):
9859         Report the actual uri from the message in debug statements.
9861 2006-02-08  William Jon McCann  <mccann@jhu.edu>
9863         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
9864         Add context argument.
9865         (message_get_session_id): New function to parse session id from
9866         the message.
9867         (message_get_revision_number): Break out function to parse
9868         revision number from the message.
9869         (session_id_validate): New function to validate given session id
9870         is valid for given context (ie. client address).
9871         (session_id_generate): Generate a random session id.
9872         (session_id_create): Create a unique session id and store it.
9873         (session_id_remove): Remove a session id from the store.
9874         (login_cb): Create a session id instead of using a constant one.
9875         (logout_cb): Validate session id.
9876         (update_cb): Use new message_get_revision_number function.
9877         (databases_cb): Validate session id.
9878         (server_cb): Add server context to argument list for callbacks.  It
9879         is needed to look up the remote host.
9880         (db_entry_changed_cb): Use braces.
9881         (soup_auth_callback): Remove FIXME.
9882         (rb_daap_share_server_start): Create session id store.
9883         (rb_daap_share_server_stop): Destroy session id store.
9885         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
9886         Don't base64-encode password here since it needs to be
9887         combined with the username first.
9889         * daapsharing/rb-daap-connection.c (build_message):
9890         Add username to Authorization token.
9891         (handle_login, handle_song_listing) 
9892         (rb_daap_connection_do_something): Session id
9893         must be an unsigned int.
9895         Fixes #329814
9897 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9899         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9900         Don't check if we've got a playing entry, ask the player object (duh).
9901         Might actually fix #329993.     
9903 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9905         * sources/rb-static-playlist-source.c:
9906         (rb_static_playlist_source_add_list_uri):
9907         Canonicalise URIs before trying to add them to the playlist, and 
9908         don't try to add files to the database for which there is 
9909         already an entry.
9911 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9913         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9914         Don't ask the entry view if we're playing, just check if we've got a
9915         playing entry.  Fixes #329993.
9917 2006-02-08  James Livingston  <jrl@ids.org.au>
9919         * rhythmdb/rhythmdb-query-model.c:
9920         (rhythmdb_query_model_set_property),
9921         (rhythmdb_query_model_finalize),
9922         (rhythmdb_query_model_base_complete): remove
9923         rhythmdb_query_model_base_entry_prop_changed, so that two signals
9924         don't get emitted for entry changes. Fixes bug 330301.
9926         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
9927         (rb_library_browser_init), (rb_library_browser_constructor),
9928         (rb_library_browser_new): do stuff in the constructor, not the init
9929         function, so that the db property gets set on RBPropertyViews
9930         correctly. Fixes a crash when dragging properties to a playlist.
9932 2006-02-07  William Jon McCann  <mccann@jhu.edu>
9934         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
9935         Actually stop soup server.  Fixes #329816.
9937 2006-02-07  James Livingston  <jrl@ids.org.au>
9939         * lib/rb-util.h:
9940         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
9941         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
9942         (collate_values_cb), (rb_collate_hash_table_keys),
9943         (rb_collate_hash_table_values): add functions to compare, copy and
9944         free string-lists. add functions to collate the keys or values of a
9945         hash table into a list.
9947         * rhythmdb/rhythmdb-property-model.c:
9948         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
9949         (_remove_entry_cb), (_add_entry_cb),
9950         (rhythmdb_property_model_set_property),
9951         (rhythmdb_property_model_get_property),
9952         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
9953         (rhythmdb_property_model_row_inserted_cb),
9954         (rhythmdb_property_model_prop_changed_cb),
9955         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
9956         that are hidden, storing those that we have counted in a hash-table.
9958         * shell/Makefile.am: fix build order issue
9960         * shell/rb-shell-player.c: (rb_shell_player_set_property):
9961         * sources/rb-source.h:
9962         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9963         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9964         * sources/rb-podcast-source.c: (feed_select_change_cb): add
9965         browser-toggled method, rename _get_exta_views to _get_property_views,
9966         since several things depend on returning only that.
9968         * sources/rb-source.c: (rb_source_class_init),
9969         (rb_source_browser_toggled), (default_get_property_views),
9970         (rb_source_get_property_views), (rb_source_row_deleted_cb),
9971         (rb_source_gather_hash_keys),
9972         (rb_source_gather_selected_properties): above changes, and move some
9973         utility functions up from RBLibraryView
9975         * widgets/rb-property-view.c:
9976         (rb_property_view_selection_changed_cb): fix leak.
9978         * rhythmdb/rhythmdb-query-model.c:
9979         (rhythmdb_query_model_set_property),
9980         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
9981         (rhythmdb_query_model_set_sort_order),
9982         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
9983         query model being resorted.
9985         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
9986         NULL query.
9988         * rhythmdb/rhythmdb.h:
9989         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
9990         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
9991         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
9992         two queries. Add a function to append "property={X,Y,Z,...}" to a
9993         query.
9995         * sources/rb-library-source.c: (rb_library_source_class_init),
9996         (rb_library_source_finalize), (rb_library_source_constructor),
9997         (rb_library_source_cmd_choose_genre),
9998         (rb_library_source_cmd_choose_artist),
9999         (rb_library_source_cmd_choose_album), (impl_search),
10000         (impl_get_property_views), (impl_reset_filters),
10001         (rb_library_source_preferences_sync),
10002         (rb_library_source_browser_views_activated_cb),
10003         (rb_library_source_state_prefs_sync),
10004         (construct_query_from_selection), (rb_library_source_do_query),
10005         (rb_library_source_browser_changed_cb):
10006         * widgets/Makefile.am:
10007         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
10008         browser" widgets, which contains several property views, based on the
10009         code from RBLibrarySource. Make RBLibrarySource use it.
10011         * sources/rb-auto-playlist-source.c:
10012         (rb_auto_playlist_source_class_init),
10013         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
10014         (rb_auto_playlist_source_constructor), (impl_reset_filters),
10015         (impl_get_property_views), (impl_browser_toggled),
10016         (construct_query_from_selection),
10017         (rb_auto_playlist_source_do_query),
10018         (rb_auto_playlist_source_set_query),
10019         (rb_auto_playlist_source_browser_changed_cb): Use the new
10020         library-browser widget to add browsers to automatic playlists.
10022 2006-02-07  James Livingston  <jrl@ids.org.au>
10024         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
10025         properly.
10026         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
10027         type of the source is taken into account. Fixes bug 329621.
10029 2006-02-07  James Livingston  <jrl@ids.org.au>
10031         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
10032         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
10033         1.1, and perform URI canonicalistion when first upgrading. This should
10034         fix our remaining canonicalisation issues, such as bug 329988.
10036 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10038         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
10039         Track the playing entry when the entry view isn't in the playing
10040         state, so we don't have to get the state changes exactly right.
10041         Fixes #330135.
10043 2006-02-06  James Livingston  <jrl@ids.org.au>
10045         * shell/rb-shell-player.c: (open_location_thread),
10046         (rb_shell_player_open_location): fix several iradio issues: having to
10047         press play after double-clicking on a station, not working correctly
10048         without a http:// prefix, and ignoring totem-plparser results other
10049         than success or error (e.g. IGNORE).
10051 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10053         Addition of dbus methods for dealing with static playlists and the
10054         play queue.  Fixes #329958.
10056         * shell/Makefile.am:
10057         * shell/rb-playlist-manager.h:
10058         * shell/rb-playlist-manager.xml:
10059         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
10060         (rb_playlist_manager_get_playlists),
10061         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
10062         (rb_playlist_manager_create_static_playlist),
10063         (rb_playlist_manager_delete_playlist),
10064         (rb_playlist_manager_add_to_playlist),
10065         (rb_playlist_manager_remove_from_playlist),
10066         (rb_playlist_manager_export_playlist):
10067         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
10068         to create, delete, list, modify, export, and import  static playlists.
10069         
10070         * shell/main.c: (main): Register playlist manager object with dbus.
10072         * shell/rb-shell.h:
10073         * shell/rb-shell.xml:
10074         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
10075         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
10076         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
10077         object, and implement the addToQueue and removeFromQueue methods.
10078         
10079         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
10080         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
10081         formats.
10083 2006-02-05  James Livingston  <jrl@ids.org.au>
10085         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
10086         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
10087         (save_entry): allow storage of booleans in the on-disk db, and
10088         save/load the HIDDEN property.
10090         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
10091         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
10092         to the state it was when RB shutdown. This makes RB appear to start
10093         faster, as tracks can appear before the stat is done. Remote files
10094         still start hidden. From bug 325215.
10096 2006-02-05  James Livingston  <jrl@ids.org.au>
10098         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
10099         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
10100         really cares about the difference from "entry-added", and it isn't
10101         emitted by the tree backend anyway.
10103         * rhythmdb/rhythmdb-query-model.c:
10104         (rhythmdb_query_model_constructor):
10105         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10106         remove the references to the entry-restored signal.
10108 2006-02-05  James Livingston  <jrl@ids.org.au>
10110         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
10111         issue.
10113 2006-02-05  James Livingston  <jrl@ids.org.au>
10115         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
10116         things are NULL before using g_object_unref. Fixes bug 327452.
10118         * player/rb-recorder-gst.c: (rb_recorder_construct):
10119         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
10120         rather than assertion.
10122         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
10123         emit a warning, rather than asserting if an unknown playlist type is
10124         encountered.
10126 2006-02-05  James Livingston  <jrl@ids.org.au>
10128         * widgets/Makefile.am:
10129         * widgets/rb-simple-view.c:
10130         * widgets/rb-simple-view.h: Move the two features that this class
10131         provides into RBPropertyView, and remove this class. Closes bug
10132         327500.
10134         * podcast/rb-feed-podcast-properties-dialog.c:
10135         * podcast/rb-feed-podcast-properties-dialog.h:
10136         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10137         (rb_podcast_source_feeds_show_popup_cb):
10138         * sources/rb-podcast-source.h:
10139         * widgets/rb-property-view.c: (rb_property_view_class_init),
10140         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
10141         (rb_property_view_append_column_custom),
10142         (rb_property_view_button_press_cb):
10143         * widgets/rb-property-view.h: Updated for the above change.
10145 2006-02-04  James Livingston  <jrl@ids.org.au>
10147         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
10148         too close to Move to Trash and people aren't likely to use it often.
10150 2006-02-04  James Livingston  <jrl@ids.org.au>
10152         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
10154 2006-02-04  James Livingston  <jrl@ids.org.au>
10156         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
10157         passed a path instead of a URI.
10159         * sources/rb-generic-player-source.c: (default_get_mount_path):
10160         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
10161         the path. This fixes bug 329723.
10163 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
10165         * daapsharing/rb-daap-structure.c:
10166         (rb_daap_content_code_string_as_int32):
10167         Use network byte order.
10169 2006-02-03  William Jon McCann  <mccann@jhu.edu>
10171         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
10172         Use a hash for source lookup.
10173         (mdns_service_added, mdns_service_removed): Handle
10174         service-added and service-removed signals from RBDaapMdnsBrowser.
10175         (remove_source): GDestroyNotify function for when sources
10176         are removed from the hash.
10177         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
10178         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
10179         (rb_daap_sources_shutdown): Update.
10180         (source_host_find): GHRFunc for finding a source by ip.
10181         (rb_daap_source_find_for_uri): Use the hash source lookup.
10183         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
10184         Namespace keys.
10185         (password_check_button_toggled_cb): Handle password enabled.
10186         (share_name_entry_focus_out_event_cb): Namespace keys.
10187         Handle changes more robustly.
10188         (share_password_entry_focus_out_event_cb): Handle password entry.
10189         (add_daap_preferences): Connect to password signals.
10191         * lib/rb-preferences.h: Add DAAP keys.
10193         * data/glade/daap-prefs.glade: Add password UI.
10195         * data/rhythmbox.schemas: Add password keys.
10197         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
10198         assert with warning.
10200         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
10201         gconf keys to lib/rb-preferences.h.  Namespace
10202         the gconf keys.
10203         (create_share): Add password support.
10204         (enable_sharing_changed_cb): Namespaced keys.
10205         (require_password_changed_cb): Handle key change.
10206         (share_name_changed_cb): Namespaced keys.
10207         (share_password_changed_cb): Handle key change.
10208         (rb_daap_sharing_init): Namespaced keys.
10209         (rb_daap_sharing_shutdown): Ditto.
10211         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
10212         Add password property.
10213         (rb_daap_share_set_name): Break out prop set function.
10214         (published_cb): New RBDaapMdnsPublisher signal handler.
10215         (name_collision_cb): Ditto.
10216         (rb_daap_share_init): Create publisher object and
10217         connect to signals.
10218         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
10219         (rb_daap_share_set_property): Break out prop set functions.
10220         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
10221         Unref publisher.
10222         (rb_daap_share_new): Add password argument.  Start
10223         publishing and DAAP server.
10224         (message_set_from_rb_daap_structure): Change print to debug.
10225         (server_info_cb): Set auth method to publish.
10226         (logout_cb): Handle DAAP client logout.
10227         (update_cb): Remove C++ comments.
10228         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
10229         (server_cb): Add debug.
10230         (soup_auth_callback): Handle auth requests.
10231         (rb_daap_share_server_start): Split up functions for starting
10232         server and publishing.  Add auth handling to server.
10233         (rb_daap_share_server_stop): Split stop server and publish.
10234         No C++ comments.
10235         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
10236         Start and stop publishing.
10237         (rb_daap_share_restart): Restart server and publishing.
10238         (rb_daap_share_maybe_restart): Conditionally restart.
10240         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
10241         (rb_daap_collision_dialog_new_run): Don't use
10242         separators in dialogs.
10244         * daapsharing/rb-daap-connection.h: Add private
10245         data to class structure.
10247         * daapsharing/rb-daap-connection.c: Move
10248         some includes to top of file.  Make private
10249         data struct name consistent with others.
10250         (rb_daap_connection_class_init): Rename
10251         private.
10252         (rb_daap_connection_init): Get and store the pointer
10253         to the private data once instead of in every
10254         function.  Create a username value "Rhythmbox_VERSION".
10255         (connection_get_password): Don't get private.
10256         (build_message): Ditto.
10257         (http_response_handler): Don't init variables in
10258         declaration.  Add debug.  Spacing.
10259         (http_get, entry_set_string_prop, handle_server_info) 
10260         (handle_login, handle_update, handle_database_info) 
10261         (handle_song_listing, handle_playlists, handle_playlist_entries) 
10262         (rb_daap_connection_constructor, rb_daap_connection_logout) 
10263         (rb_daap_connection_state_done): Don't get private.
10264         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
10265         spacing.  Correctly base64 encode the Authentication token.
10266         Add username to auth token.
10267         (rb_daap_connection_get_playlists): Don't get private.
10268         (rb_daap_connection_dispose): Ditto.  Free username.
10269         (rb_daap_connection_set_property) 
10270         (rb_daap_connection_get_property): Don't get private.
10272         * daapsharing/Makefile.am: Conditionally
10273         compile MDNS backends.  Add marshall stuff.
10275         * daapsharing/.cvsignore: Update.
10277         * configure.ac: Add conditional to see which
10278         MDNS backend we should use.
10280         * daapsharing/rb-daap-mdns.[ch]: Removed files.
10282         * daapsharing/rb-daap-marshal.list:
10283         * daapsharing/rb-daap-mdns-browser-avahi.c:
10284         * daapsharing/rb-daap-mdns-browser-howl.c:
10285         * daapsharing/rb-daap-mdns-browser.h:
10286         * daapsharing/rb-daap-mdns-publisher-avahi.c:
10287         * daapsharing/rb-daap-mdns-publisher-howl.c:
10288         * daapsharing/rb-daap-mdns-publisher.h:
10289         Split rb-daap-mdns.c into two classes.  One for
10290         publishing and one for browsing.  Split out
10291         the avahi and howl backends into different files.
10293         Fixes #322966
10294         
10295 2006-02-04  James Livingston  <jrl@ids.org.au>
10297         patch by: Jan Schmidt <thaytan@mad.scientist.com>
10299         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
10300         crash if metadata reader gives us NULL for strings.
10302 2006-02-03  James Livingston  <jrl@ids.org.au>
10304         * shell/rb-shell-player.c: (open_location_thread),
10305         (rb_shell_player_open_location):
10306         retrieve iradio playlists files in a thread, so that with GStreamer
10307         0.10 the UI doesn't block while connecting to stations. The streamer
10308         connection is synchronous with 0.8, so that will still block (a bit).
10309         Fixed bug 128106.
10311         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
10312         because _open_entry does that automatically when it is ready to.
10314 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10316         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10317         (rb_podcast_source_post_status_cell_data_func):
10318         Leave the podcast status column blank for episodes that have not been
10319         downloaded.
10321 2006-02-03  James Livingston  <jrl@ids.org.au>
10323         Add support for source-specific toolbar items, and make the Burn
10324         Playlist item only available for playlists. Also add Update All
10325         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
10327         * data/ui/rhythmbox-ui.xml:
10328         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
10329         (impl_get_ui_actions): make the Burn CD toolbar item only for
10330         playlists
10332         * lib/rb-stock-icons.c: (rb_stock_icons_init):
10333         * lib/rb-stock-icons.h: load the Eject icon as stock.
10335         * shell/rb-removable-media-manager.c: use the eject icon for the eject
10336         action
10338         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
10339         (rb_shell_select_source):
10340         * sources/rb-source.c: (rb_source_class_init),
10341         (rb_source_disconnect), (default_get_ui_actions),
10342         (rb_source_get_ui_actions):
10343         * sources/rb-source.h: add support for source-specific toolbar items
10345         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
10346         Eject and Rip toolbar items
10348         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
10349         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
10350         item.
10352 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10354         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
10355         * shell/main.c: (main):
10356         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
10357         Replace all g_critical calls with g_warning, since none of them are
10358         the sort of thing the process should die over.  Fixes #329398.
10360 2006-02-03  James Livingston  <jrl@ids.org.au>
10362         * configure.ac: mention gst-plugins-base in the error message for not
10363         finding GStreamer 0.10, since not having that will cause it to fail.
10365 2006-02-03  James Livingston  <jrl@ids.org.au>
10367         * configure.ac: fix typo that means you get the wrong error message if
10368         you explicity request a particular playback engine, and it can't be
10369         found.
10371 2006-02-03  James Livingston  <jrl@ids.org.au>
10373         * data/glade/library-prefs.glade: allow the watched library location
10374         to be a non-local place.
10376 ============ Version 0.9.3
10379 2006-02-02  James Livingston  <jrl@ids.org.au>
10381         * NEWS: update NEWS
10382         * configure.ac: bump version to 0.9.3
10384         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
10385         <caillon@redhat.com>, fixed bug 329517. 
10387 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
10389         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
10391         * widgets/rb-song-info.c: (rb_song_info_constructor):
10392         Make year and disc number fields non-editable if tag editing
10393         is disabled.  Fixes #329463.
10395 2006-02-01  James Livingston  <jrl@ids.org.au>
10397         * rhythmdb/rhythmdb-property-model.c:
10398         (rhythmdb_property_model_row_inserted_cb),
10399         (rhythmdb_property_model_prop_changed_cb),
10400         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
10401         correctly. Fixes bug 327061.
10403         * rhythmdb/rhythmdb-query-model.c:
10404         (rhythmdb_query_model_entry_changed_cb): emit change notification of
10405         the HIDDEN property when an entry is removed for being hidden.
10407         * rhythmdb/rhythmdb-query-model.h:
10408         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
10409         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
10410         models's "connected" property. Whatever it was needed for seems to
10411         have gone.
10413 2006-02-01  James Livingston  <jrl@ids.org.au>
10415         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10417         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
10418         (rb_shell_player_playing_changed_cb): block the signal to prevent
10419         re-entrancy. Fixes bug 329329 and fixes the first click of the play
10420         button pausing.
10422 2006-02-01  James Livingston  <jrl@ids.org.au>
10424         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
10425         /should/ now work, if the neccessary plugins get ported.
10427 2006-01-30  James Livingston  <jrl@ids.org.au>
10429         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
10430         string properties to "Unknown" is the string is empty. Kind of fixes
10431         bug 327495.
10433         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
10434         gettext calls once, rather than once per time the function is used.
10435         This stops us making tens of thousands of gettext calls on startup,
10436         which reduces the cpu-time of startup by 10-20%
10438 2006-01-29  James Livingston  <jrl@ids.org.au>
10440         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
10441         (rhythmdb_add_uri):
10442         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
10443         for files containing known video streams.
10446 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10448         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
10449         required.
10451 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10453         * INSTALL.quick: More random updates
10455         * rhythmdb/rhythmdb-query-model.c:
10456         (rhythmdb_query_model_class_init),
10457         (rhythmdb_query_model_set_property),
10458         (rhythmdb_query_model_get_property),
10459         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
10460         Remove user sort data handling, take a property ID and a reverse
10461         flag instead.
10462         (rhythmdb_query_model_insert_into_main_list),
10463         (rhythmdb_query_model_insert_into_limited_list),
10464         (rhythmdb_query_model_do_reorder),
10465         (_reverse_sorting_func):
10466         Handle reverse sorting by calling _reverse_sorting_func, which
10467         calls the real sort function and reverses the result.
10468         (rhythmdb_query_model_set_sort_order):
10469         Allow this to be called to set the initial sort order for limited
10470         queries, and handle reverse sorting when reordering.
10471         (rhythmdb_query_model_location_sort_func),
10472         (rhythmdb_query_model_album_sort_func),
10473         (rhythmdb_query_model_artist_sort_func),
10474         (rhythmdb_query_model_genre_sort_func),
10475         (rhythmdb_query_model_track_sort_func),
10476         (rhythmdb_query_model_double_ceiling_sort_func),
10477         (rhythmdb_query_model_ulong_sort_func),
10478         (rhythmdb_query_model_date_sort_func),
10479         (rhythmdb_query_model_string_sort_func):
10480         Sort functions moved from rb-entry-view.c.
10481         * rhythmdb/rhythmdb-query-model.h:
10482         Add the sort functions, and update the changed functions.
10483         
10484         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
10485         Just call _resort_model when the query model is set, since it
10486         does all the same things.
10487         (rb_entry_view_append_column):
10488         Rework bits so the rating column doesn't have to be so much of a
10489         special case.
10490         (rb_entry_view_append_column_custom):
10491         Take a property ID to sort on, rather than arbitrary custom data.
10492         (rb_entry_view_resort_model):
10493         Query model does all the reverse sort handling now.
10494         * widgets/rb-entry-view.h: Update _append_column_custom.
10496         * sources/rb-play-queue-source.c:
10497         (rb_play_queue_source_constructor):
10498         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10499         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10500         (rb_podcast_source_post_date_cell_sort_func),
10501         (rb_podcast_source_post_status_cell_sort_func),
10502         (rb_podcast_source_post_feed_cell_sort_func):
10503         Updates required by all the other changes.
10505         * rhythmdb/rhythmdb-property-model.c:
10506         (rhythmdb_property_model_drag_data_get):
10507         Sort the query results on the selected property,
10508         so they arrive in the expected order.  All the other changes were made
10509         to make this possible.  Fixes bug #327494.
10511 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10512         
10513         * shell/rb-shell-clipboard.c:
10514         Use GTK_STOCK_REMOVE icon for the remove action in
10515         the play queue too.
10517 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10519         * sources/rb-play-queue-source.c:
10520         (rb_play_queue_source_constructor),
10521         (rb_play_queue_source_update_count):
10522         Don't make the 'queued songs' column clickable,
10523         and add the queued song count to the column title.
10525 2006-01-29  James Livingston  <jrl@ids.org.au>
10527         * configure.ac: remove "experimental" marking from DAAP, and enable by
10528         default if the dependencies are found.
10530 2006-01-29  James Livingston  <jrl@ids.org.au>
10532         * NEWS: update NEWS
10534 2006-01-29  James Livingston  <jrl@ids.org.au>
10536         patch by: William Jon McCann  <mccann@jhu.edu>
10538         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10539         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
10540         property used for the feed list. Fixes problem with feeds with no
10541         episodes not showing up.
10543 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
10544         
10545         * shell/rb-play-order-random-by-age-and-rating.c:
10546         (rb_random_by_age_and_rating_get_entry_weight):
10547         Fix compile errors, bug #328978.
10549 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
10551         * INSTALL.quick, README: Random updates
10552         * README.lirc: Add notes on controlling Rhythmbox with LIRC
10554 2006-01-28  James Livingston  <jrl@ids.org.au>
10556         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
10557         default rating back to 0 (from 2.5, which was needed for autorating).
10559         * shell/rb-play-order-random-by-age-and-rating.c:
10560         (rb_random_by_age_and_rating_get_entry_weight):
10561         * shell/rb-play-order-random-by-rating.c:
10562         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
10563         2.5 for the purposes of weighting entries.
10565 2006-01-28  James Livingston  <jrl@ids.org.au>
10567         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
10568         translator comments, to make it clearer what the "friendly time"
10569         formatting strings mean.
10571 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10573         * daapsharing/rb-daap-connection.c: (http_response_handler):
10574         Fix the sense of the overflow check so it'll accept valid input.
10576 2006-01-27  James Livingston  <jrl@ids.org.au>
10578         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
10580         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
10581         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
10583 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10585         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
10586         
10587         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
10588         Don't include the artist field in the window title if it's blank.
10589         Fixes #325973.
10591 2006-01-26  William Jon McCann  <mccann@jhu.edu>
10593         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
10594         Use stock delete icon for move to trash and stock remove
10595         for remove menu item.
10597 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
10599         * shell/rb-shell.c: (rb_shell_constructor),
10600         (idle_handle_load_complete):  Don't start the playlist save
10601         timeout until we've loaded the playlists, otherwise we'll
10602         write an empty playlist file if startup takes too long.
10604 2006-01-25  William Jon McCann  <mccann@jhu.edu>
10606         * shell/rb-shell.c: Make view toolbar toggle use
10607         shift+ctrl+t.  Fixes #327585.
10609 2006-01-25  James Livingston  <jrl@ids.org.au>
10611         patch by: Christope Fergeau  <teuf@gnome.org>
10613         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
10614         (http_response_handler): fix a potential buffer overflow issue.
10616 2006-01-25  James Livingston  <jrl@ids.org.au>
10618         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
10619         Year column wide enough to display "Unknown"
10621 2006-01-25  James Livingston  <jrl@ids.org.au>
10623         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10624         (rb_podcast_source_post_status_cell_data_func): make the episode
10625         status wording better. Part of bug 321607.
10627 2006-01-25  James Livingston  <jrl@ids.org.au>
10629         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
10630         others with a separator.
10632         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
10633         stock Delete icon.
10635 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
10637         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
10639 2006-01-23  James Livingston  <jrl@ids.org.au>
10641         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
10642         0.3.2. Fixed bug 328158.
10644 2006-01-23  James Livingston  <jrl@ids.org.au>
10646         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
10647         (gulong_gst_date_transform), (rb_metadata_class_init):
10648         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
10650 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
10652         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
10653         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
10654         (record_entry_change): Protect added_entries and changed_entries with
10655         a mutex, so it doesn't crash on startup on SMT/SMP machines.
10657 2006-01-23  James Livingston  <jrl@ids.org.au>
10659         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
10660         the browser for audio CDs.
10662 2006-01-22  James Livingston  <jrl@ids.org.au>
10664         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
10665         NEVER_FAIL as it causes the daemon-not-running error to never be
10666         reported, resulting in bug 319438 re-occurring.
10668 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10670         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
10671         Just call the podcast manager's update method.  Unbreaks the 'update
10672         all feeds' command.
10674 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10676         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
10678 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
10680         * configure.ac: Don't disable DAAP with gstreamer 0.10
10682         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
10683         (rb_daap_src_class_init), (rb_daap_src_init),
10684         (rb_daap_src_finalize), (rb_daap_src_set_property),
10685         (rb_daap_src_get_property), (rb_daap_src_write),
10686         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
10687         (_split_uri), (rb_daap_src_open):
10688         * daapsharing/rb-daap-src.h:
10689         Mostly fix seeking, handle chunked transfer encoding, and port to
10690         gstreamer 0.10.
10691         
10692         * player/rb-player-gst.c:
10693         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
10694         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
10696         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
10697         being fixed.
10699 2006-01-21  James Livingston  <jrl@ids.org.au>
10701         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
10702         for Year metadata in DAAP sources. Fixes bug 327700.
10704         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10706 2006-01-20  William Jon McCann  <mccann@jhu.edu>
10708         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
10709         enum values instead of magic numbers.
10711         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
10712         Add number of songs that match each property title into
10713         the cell.  Also show the number of properties that match
10714         in the All entry.
10715         (rb_property_view_constructor): Use enum values instead of
10716         magic numbers.
10718         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
10719         Query podcast posts instead of feeds for browser.  Use
10720         post SUBTITLE which is the location for the property view.
10721         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
10722         (construct_query_from_selection) 
10723         (rb_podcast_source_cmd_delete_feed) 
10724         (rb_podcast_source_cmd_properties_feed) 
10725         (rb_podcast_source_cmd_update_feed): Use variable to make
10726         it clear what the selection data represents.
10727         (rb_podcast_source_feed_title_cell_data_func): Add number
10728         of posts that belong to each feed in the browser.
10730         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
10731         (rhythmdb_property_model_delete_prop): Decrement the refcount
10732         for the All entry.
10733         (rhythmdb_property_model_get_column_type): Use column enum
10734         values instead of magic numbers.  Add NUMBER column.
10735         (rhythmdb_property_model_get_value): Use enum.
10736         Add NUMBER column that represents the refcount for
10737         the title of that property.
10738         (rhythmdb_property_model_perform_sync): Don't fake up
10739         a title for All here.
10741         Fixes #327372.
10742         
10743 2006-01-21  James Livingston  <jrl@ids.org.au>
10745         Make Rhythmbox start faster by not blocking the UI while database
10746         initialisation and loading occurs. Closes bug 323348.
10748         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
10749         start 10 seconds later instead of immediately.
10750         
10751         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
10752         safe to call from any thread.
10754         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
10755         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
10756         so the UI doesn't block.
10758 2006-01-18  James Livingston  <jrl@ids.org.au>
10760         * sources/rb-static-playlist-source.c:
10761         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
10762         cause crashes. Oops. fixes bug 327477.
10764 2006-01-17  William Jon McCann  <mccann@jhu.edu>
10766         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
10767         Set GST element state to NULL before unreffing.
10768         Fixes #327422.
10770 2006-01-18  James Livingston  <jrl@ids.org.au>
10772         * sources/rb-static-playlist-source.c:
10773         (rb_static_playlist_source_do_query): don't filter on the SONG entry
10774         type, since the playlists can contain non-song entries. Fixes bug
10775         327448.
10777         * sources/rb-play-queue-source.c:
10778         (rb_play_queue_source_class_init): disable the search box for the
10779         queue.
10781 2006-01-18  James Livingston  <jrl@ids.org.au>
10783         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
10784         dragging of podcast episodes. Fixed bug 327450.
10786 2006-01-18  James Livingston  <jrl@ids.org.au>
10788         * rhythmdb/rhythmdb-query-model.c:
10789         (rhythmdb_query_model_drag_data_received): fix possible assertion when
10790         dragging to an emoty playlist.
10792 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
10794         * sources/rb-playlist-source-recorder.c:
10795         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
10797 2006-01-17  James Livingston  <jrl@ids.org.au>
10799         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
10801         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
10802         different number of tracks than exist on the cd, since that happens
10803         with audio+data hybrid CDs. Part of bug 325046.
10805 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
10807         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10808         Remove useless call to gtk_tree_view_column_set_clickable().
10810         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
10811         Don't store sort data for columns if the sort function is NULL,
10812         so only sortable columns will be in the column sort data map.
10813         (rb_entry_view_set_columns_clickable): Only make columns we can sort
10814         on clickable.
10815         (rb_entry_view_constructor):  The 'playing icon' column is never
10816         clickable, so don't connect a signal handler for it.
10818         Fixes bug 326811.
10820 2006-01-17  James Livingston  <jrl@ids.org.au>
10822         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
10823         are 0.8 only. Fix element detection.
10825         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
10826         saving the new metadata failed
10828 2006-01-17  James Livingston  <jrl@ids.org.au>
10830         * shell/rb-shell-player.c: (do_next_idle),
10831         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
10832         (eos_cb): release audio device when a playlist finishes. Fixes bug
10833         323679.
10835 2006-01-17  James Livingston  <jrl@ids.org.au>
10837         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
10838         canonicalise the URIs when things are added via library watching.
10840 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10842         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10843         Off by one error in default speed index.
10845 2006-01-16  William Jon McCann  <mccann@jhu.edu>
10847         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
10848         (update_speed_combobox, update_speed_combobox):
10849         Get a list of the actually supported write speeds from
10850         n-c-b >= 2.13.90.  Otherwise use fallback list.
10852 2006-01-17  James Livingston  <jrl@ids.org.au>
10854         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
10855         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
10856         don't get stuck on recursive symlinks. Fixed bug 125452.
10858 2006-01-17  James Livingston  <jrl@ids.org.au>
10860         Add support for mass-storage audio players. Players are detected via
10861         either the HAL "audio_player" capability, or a ".is_audio_player" file
10862         in the root of the volume. Closes bug 325602.
10864         * configure.ac: separate using HAL from ipod support.
10866         * lib/rb-file-helpers.c: (rb_uri_is_local):
10867         * lib/rb-file-helpers.h: add function to determine whether a URI is
10868         local.
10870         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
10871         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
10872         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
10873         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
10874         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
10875         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
10876         directories can be scanned for files to add as  non-SONG entries.
10878         * shell/rb-removable-media-manager.c:
10879         (rb_removable_media_manager_mount_volume): add checking for
10880         mass-storage players.
10882         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
10883         * sources/rb-ipod-source.c: (rb_ipod_source_new),
10884         (hal_udi_is_ipod):
10885         * sources/rb-removable-media-source.c:
10886         (rb_removable_media_source_class_init),
10887         (rb_removable_media_source_constructor): move some things up to the
10888         RBRemovableMediaSource, rather than making subclasses do it.
10890         * sources/Makefile.am:
10891         * sources/rb-generic-player-source.c:
10892         * sources/rb-generic-player-source.h: add mass-storage player source.
10894 2006-01-16  James Livingston  <jrl@ids.org.au>
10896         patch by: William Jon McCann  <mccann@jhu.edu>
10898         * rhythmdb/rhythmdb-query-model.c:
10899         (rhythmdb_query_model_base_row_deleted): fix build issue from last
10900         commit.
10902 2006-01-16  James Livingston  <jrl@ids.org.au>
10904         Patch to add support for "chained queries" and putting hidden tracks
10905         in query models. Use chained queries to add search box support to
10906         normal playlists, and to make hidden entries not get lost. Fixes bug
10907         319278.
10909         * rhythmdb/rhythmdb-query-model.h:
10910         * rhythmdb/rhythmdb-query-model.c:
10911         (rhythmdb_query_model_class_init),
10912         (rhythmdb_query_model_set_property),
10913         (rhythmdb_query_model_get_property):
10914         (rhythmdb_query_model_finalize): add "show-hidden" and
10915         "base-model" properties.
10917         (rhythmdb_query_model_set_connected),
10918         (rhythmdb_query_model_has_pending_changes),     
10919         (rhythmdb_query_model_entry_added_cb),
10920         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
10921         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
10922         (rhythmdb_query_model_remove_entry),
10923         (rhythmdb_query_model_drag_data_received),
10924         (rhythmdb_query_model_base_row_inserted),
10925         (rhythmdb_query_model_base_row_deleted),
10926         (rhythmdb_query_model_base_non_entry_dropped),
10927         (rhythmdb_query_model_base_complete),
10928         (rhythmdb_query_model_base_entry_prop_changed),
10929         (rhythmdb_query_model_base_rows_reordered),
10930         (rhythmdb_query_model_row_drop_possible): handle base-model by
10931         chaining events and operations where necessary. Make hidden entries
10932         not get added only if "show-hidden" is false.
10934         (rhythmdb_query_model_child_index_to_base_index),
10935         (rhythmdb_query_model_base_index_to_child_index),
10936         (rhythmdb_query_model_get_entry_index): utility functions for handling
10937         base-model entries.
10939         (rhythmdb_query_model_reapply_query): apply the current query, and
10940         remove entries that don't match it.
10942         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
10943         empty queries.
10945         * sources/rb-source.c: (rb_source_set_property): move the unref later
10946         to fix problem if it is the last reference.
10948         * sources/rb-static-playlist-source.c:
10949         (rb_static_playlist_source_class_init),
10950         (rb_static_playlist_source_init),
10951         (rb_static_playlist_source_finalize),
10952         (rb_static_playlist_source_constructor), (impl_reset_filters),
10953         (impl_search), (rb_static_playlist_source_do_query),
10954         (impl_save_contents_to_xml),
10955         (rb_static_playlist_source_add_location_internal): use a chained query
10956         model to filter out hidden entries and implement the search box.
10958 2006-01-15  James Livingston  <jrl@ids.org.au>
10960         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
10961         the default playlist loading, which I broke earlier.
10963 2006-01-15  James Livingston  <jrl@ids.org.au>
10965         patch by: William Jon McCann  <mccann@jhu.edu>
10967         * sources/rb-playlist-source.c: (playlist_iter_func): use
10968         totem-plparser's new API version macros to check for API changes.
10969         Handle the recent API change.
10971 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10973         * sources/rb-library-source.c: (impl_get_config_widget):
10974         Ref the preferences object to match the unref in the
10975         finalizer.  Fixes some portion of #323505.
10977 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10979         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
10980         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
10981         Fix valgrind warnings about accessing uninitialised values.
10983 2006-01-14  William Jon McCann  <mccann@jhu.edu>
10985         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
10987 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10989         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
10990         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
10991         Stops the 'now playing' icon from being displayed after the play
10992         order finishes.
10994 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10996         * podcast/rb-podcast-manager.c:
10997         (rb_podcast_manager_db_entry_deleted_cb):
10998         Don't try to delete files we never downloaded, and cancel downloads
10999         for deleted episodes.  Fixes bug #326862.
11000         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
11001         Don't complain about NULL data items in the selection list.
11003 2006-01-14  James Livingston  <jrl@ids.org.au>
11005         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
11006         Make the name ofthe queue non editable. Fixes bug 326918.
11008 2006-01-13  William Jon McCann  <mccann@jhu.edu>
11010         * sources/rb-playlist-source-recorder.c (burn_cd) 
11011         (ask_rewrite_disc): Don't use our locally copied functions
11012         if we have at least 2.13.
11014 2006-01-13  William Jon McCann  <mccann@jhu.edu>
11016         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
11017         Correct the argument type for the process_error signal.
11018         May fix bug #323154.
11020 2006-01-13  James Livingston  <jrl@ids.org.au>
11022         save the queue to disk when exiting, and reload on startup. Fixed bug
11023         326677 .
11025         * shell/rb-playlist-manager.c:
11026         (rb_playlist_manager_load_playlists),
11027         (rb_playlist_manager_save_playlists_async): don't disable saving of
11028         the queue
11030         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
11031         add the queue source as a gobject property.
11033         * sources/rb-play-queue-source.c:
11034         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
11035         code to save the queue to xml
11037         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
11038         load the queue from xml.
11039         * sources/rb-playlist-xml.h:
11041         * sources/rb-static-playlist-source.c:
11042         (rb_static_playlist_source_load_from_xml),
11043         (rb_static_playlist_source_new_from_xml):
11044         * sources/rb-static-playlist-source.h: split the playlist xml loading
11045         from the static playlist creation function, so the queue can use it.
11047 2006-01-13  James Livingston  <jrl@ids.org.au>
11049         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
11050         assertion that should be there. Fixes bug 325923.
11051         
11052         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
11053         return NULL if the entry already exists (e.g. as another type).
11054         * daapsharing/rb-daap-connection.c: (handle_song_listing):
11055         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
11056         (rb_podcast_manager_insert_feed):
11057         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
11058         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
11059         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
11060         for the above function returning NULL.
11062 2006-01-12  James Livingston  <jrl@ids.org.au>
11064         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
11065         is enabled. Fixes bug 326673.
11066         
11067         * doc/reference/tmpl/eggtrayicon.sgml:
11068         * doc/reference/tmpl/rb-daap-src.sgml:
11069         * doc/reference/tmpl/rb-source.sgml:
11070         * doc/reference/tmpl/rb-statusbar.sgml:
11071         * doc/reference/tmpl/rb-tree-model-sort.sgml:
11072         * doc/reference/tmpl/rhythmbox-unused.sgml:
11073         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
11075 2006-01-11  James Livingston  <jrl@ids.org.au>
11077         * widgets/rb-song-info.c: (rb_song_info_constructor),
11078         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
11079         (rb_song_info_populate_dialog): fill in the fields if all tracks have
11080         the same value for properties. From bug 326054.
11082 2006-01-11  James Livingston  <jrl@ids.org.au>
11084         * sources/rb-source.h:
11085         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
11086         (rb_shell_player_set_playing_source_internal), (eos_cb):
11087         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
11088         every entry.
11090         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
11091         source use this. Closes bug 322077.
11093 2006-01-10  William Jon McCann  <mccann@jhu.edu>
11095         * widgets/eggtrayicon.c (egg_tray_icon_notify):
11096         In order for set_icon_data_from_pixbuf() to be
11097         effective, one must not set an icon in _new().
11099 2006-01-10  William Jon McCann  <mccann@jhu.edu>
11101         * widgets/eggtrayicon.c (egg_tray_icon_init) 
11102         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
11103         (egg_tray_icon_notify): Add support for libnotify 0.3.
11104         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
11105         * configure.ac: Determine the version of libnotify.
11106         Fixes #326333.
11108 2006-01-08  James Livingston  <jrl@ids.org.au>
11110         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
11111         trying to share a track with unknown length.
11113 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11115         * shell/rb-shell-player.c: (rb_shell_player_init):
11116         Sync volume on startup so it doesn't default to 0.
11118 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11120         * shell/rb-shell-player.c: (rb_shell_player_class_init),
11121         (rb_shell_player_get_property), (rb_shell_player_open_location),
11122         (info_available_cb):  Add the iradio streamed song title as a
11123         property, and emit a signal when it changes.
11125         * shell/rb-shell.c: (rb_shell_constructor),
11126         (rb_shell_player_elapsed_changed_cb),
11127         (rb_shell_player_stream_song_changed_cb):
11128         Issue a notification when the iradio song title changes.
11129         Fixes #326166.
11131 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
11133         * shell/rb-shell-player.c: (rb_shell_player_init),
11134         (rb_shell_player_finalize), (rb_shell_player_set_property),
11135         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
11136         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
11137         (rb_shell_player_set_volume_relative),
11138         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
11139         (rb_shell_player_get_mute):
11140         * shell/rb-shell-player.h:
11141         * shell/rb-shell-player.xml:
11142         Store volume as a property on RBShellPlayer, rather than in gconf.
11143         Add some methods to control volume via dbus.
11145         * shell/rb-shell.c: (rb_shell_constructor),
11146         (rb_shell_volume_widget_changed_cb),
11147         (rb_shell_player_volume_changed_cb):
11148         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
11149         Update volume using player properties rather than gconf, and sync the
11150         volume with the volume control button when something else changes it.
11151         Fixes #323840.
11153 2006-01-07  William Jon McCann  <mccann@jhu.edu>
11155         * shell/rb-tray-icon.c (tray_popup_position_menu):
11156         Make tray menu align with edge of panel.
11158         patch from Jaap A. Haitsma <jaap@haitsma.org>
11159         Fixes #319913
11161 2006-01-07  William Jon McCann  <mccann@jhu.edu>
11162         * shell/rb-shell.c (sourcelist_drag_received_cb): 
11163         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
11164         (rb_playlist_manager_new_playlist_from_selection_data):
11165         Make a reasonable default name for playlists created from
11166         dropped data.  Fixes #326116.
11168 2006-01-07  William Jon McCann  <mccann@jhu.edu>
11170         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
11171         Use new gconf key.
11172         (burn_cd): Always eject CD after burning.  Too many drives
11173         get confused if we don't.  Save the speed used if the burn
11174         was completed successfully.
11176         * data/rhythmbox.schemas: Use our own speed instead of from
11177         n-c-b. The situation is that the default_speed for n-c-b is most
11178         likely the maximum write speed.  This is fine for n-c-b because it
11179         has burn-proof turned on.  We can't turn it on for audio CDs
11180         because the results are poor in quality.  So we'll just pick a
11181         default that should work for everyone (4).
11183 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11184         
11185         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
11186         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
11188 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11190         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
11191         in my previous commit.  Fixes #326037.
11193 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
11195         patch by: Jonathan Matthew
11197         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
11198         error on Fedora Rawhide.
11200 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11202         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
11203         Assume HTTP URLs ending with .xml or .rss are podcasts.
11204         (rb_shell_add_uri): Handle adding podcast feeds.
11206         * sources/rb-podcast-source.c: (rb_podcast_source_new):
11207         Register as the source for podcast feeds.
11209 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11211         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
11212         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
11213         (rb_shell_preferences_append_view_page):
11214         * shell/rb-shell-preferences.h:
11215         Fix typo in function name.  Fixes #325992.
11217 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11219         * shell/rb-audioscrobbler.c:
11220         Add '+' to the list of characters to URI-encode, so it doesn't get
11221         interpreted as a space.
11223 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
11225         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
11226         (rb_daap_connection_do_something):  Don't crash if the DAAP server
11227         goes away while we're still trying to log in.
11229 2006-01-06  James Livingston  <jrl@ids.org.au>
11231         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
11233 2006-01-06  James Livingston  <jrl@ids.org.au>
11235         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
11236         support for Year to automatic playlists. Closes bug 321341.
11238         * rhythmdb/rhythmdb-query-model.c:
11239         (rhythmdb_query_model_set_property):
11240         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
11241         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
11242         (rhythmdb_query_free), (rhythmdb_query_serialize),
11243         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
11244         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
11245         * rhythmdb/rhythmdb.h: Support special
11246         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
11247         year in date.
11249         * widgets/rb-query-creator-properties.c:
11250         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
11251         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
11253 2006-01-06  James Livingston  <jrl@ids.org.au>
11255         * configure.ac: make the playback backend selection work correctly
11257         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
11258         (rb_daap_src_class_init), (rb_daap_src_dispose),
11259         (rb_daap_src_change_state), (rb_daap_src_initialize):
11260         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
11261         doesn't work for this class. Fixes bug 325934
11263 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
11265         * configure.ac: Fix check for libnotify.
11267 2006-01-05  William Jon McCann  <mccann@jhu.edu>
11269         * sources/rb-playlist-source.c (xml_get_and_trim_names):
11270         Get name element for current lang and remove all name nodes
11271         from the XML tree.
11272         (get_playlist_name_from_xml): Try to get name element or
11273         fall back to name attribute.
11274         (rb_playlist_source_new_from_xml): Get name before turning over
11275         to sub-types for parsing so that we can remove name elements
11276         from the tree if necessary.
11278         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
11279         Load default playlists file if per user playlists are not found.
11281         * data/playlists.xml.in: 
11282         * data/Makefile.am: 
11283         * data/.cvsignore: Add default set of playlists.
11284         Fixes #323004
11286 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
11288         * shell/main.c: (main): Don't use the dbus interface to show the
11289         window if we're also going to use the bonobo interface.
11291 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
11293         * shell/rb-history.c: (rb_history_set_playing):
11294         Allow setting the playing song to NULL.
11295         (rb_history_append), (rb_history_delete_link):
11296         Don't randomly change position when entries are added and removed,
11297         it confuses play orders.
11298         
11299         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
11300         Random orders always have a next entry if the model is not empty.
11301         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
11302         Go back to the start of the history if we're past its end.
11304         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
11305         (rb_shuffle_play_order_go_next): Go back to the start of the history
11306         if we're past its end.
11307         (rb_shuffle_sync_history_with_query_model): Go back to the start of
11308         the history if the current entry is removed.
11310         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
11311         (rb_play_order_entry_deleted_cb): Only update have next/previous for
11312         the play order when the query has finished. This wasted about 10% CPU
11313         while the query was running.
11315         Fixes #324641: assertion failures when the query model was changed
11316         such that the playing song was no longer present.
11318 2006-01-05  James Livingston  <jrl@ids.org.au>
11320         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
11321         (rb_daap_src_dispose), (rb_daap_src_change_state):
11322         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
11323         (rhythmdb_gda_finalize):
11324         * widgets/rb-cell-renderer-pixbuf.c:
11325         * widgets/rb-cell-renderer-rating.c:
11326         (rb_cell_renderer_rating_class_init),
11327         (rb_cell_renderer_rating_finalize):
11328         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
11329         * widgets/rb-load-failure-dialog.c:
11330         (rb_load_failure_dialog_class_init),
11331         (rb_load_failure_dialog_finalize):
11332         * widgets/rb-rating.c: (rb_rating_class_init),
11333         (rb_rating_finalize):
11334         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
11335         (rb_search_entry_finalize): use G_DEFINE_TYPE
11337         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
11339 2006-01-05  James Livingston  <jrl@ids.org.au>
11341         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
11343         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
11344         the tarball.
11346         * shell/rb-history.c: (rb_history_class_init),
11347         (rb_history_finalize):
11348         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
11349         (rb_playlist_manager_finalize):
11350         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
11351         (rb_remote_init): use G_DEFINE_TYPE.
11353 2006-01-05  James Livingston  <jrl@ids.org.au>
11355         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
11356         changes
11358 2006-01-04  William Jon McCann  <mccann@jhu.edu>
11360         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11361         Disable burn action when source is not a playlist.
11362         Fixes #323578.
11364 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
11366         Optionally use libnotify to display song change and other
11367         notifications, and provide an option to disable notifications.
11368         Fixes #320355 and innumerable informal complaints.
11370         * widgets/eggtrayicon.c: (egg_tray_icon_init),
11371         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
11372         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
11373         (egg_tray_icon_notify):
11374         * widgets/eggtrayicon.h:
11375         * configure.ac:
11376         * shell/Makefile.am:
11377         Optionally use libnotify instead of eggnotificationbubble.
11379         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
11380         (rb_tray_icon_constructor), 
11381         (rb_tray_icon_show_notifications_changed_cb),
11382         (rb_tray_icon_hide_notify_cb)
11383         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
11384         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
11385         EggNotificationBubble pointer to eggtrayicon.
11387         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
11388         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
11389         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
11391 2006-01-04  William Jon McCann  <mccann@jhu.edu>
11393         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
11394         Request a minimum size for the progress bar so that
11395         the window doesn't shrink too small.
11397 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11399         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
11400         (add_db_entry), (db_entry_deleted_cb):
11401         Don't track the number of songs currently present, track the next ID
11402         to assign.  Fixes potential ID conflict problems.
11403         
11404         (db_entry_changed_cb), (rb_daap_share_start_publish),
11405         (rb_daap_share_stop_publish):
11406         Watch for db entry changes, and when songs become non-hidden after
11407         a successful stat, add them to the mapping tables.   Fixes #325178,
11408         making the DAAP server usable again.
11410 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11411         
11412         * shell/rb-statusbar.c: (rb_statusbar_class_init),
11413         (rb_statusbar_construct), (rb_statusbar_init),
11414         (rb_statusbar_finalize), (rb_statusbar_set_property),
11415         (rb_statusbar_get_property), (rb_statusbar_new),
11416         (rb_statusbar_sync_with_source):
11417         * shell/rb-statusbar.h:
11418         Remove visibility management code, stop watching for play order
11419         changes (status bar doesn't show play order any more), remove unused
11420         'player' property, and some other minor cleanup.
11421         
11422         * shell/rb-shell.c: (rb_shell_constructor),
11423         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
11424         (rb_shell_sync_statusbar_visibility):
11425         Manage status bar visibility here rather than in the status bar
11426         itself, so we can take small mode into account.  Fixes #323589.
11428 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
11430         * widgets/eggnotificationbubble.c: (draw_bubble):
11431         Move the bubble off the visible screen while setting up bevels.  
11432         Fixes #316810.
11434 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11436         * shell/rb-shell-player.c: (rb_shell_player_init),
11437         (rb_shell_player_finalize): 
11438         Remove unused structure members.
11439         
11440         (do_next_idle), (rb_shell_player_error):
11441         Only queue one call to do_next_idle, so we don't skip tracks if we get
11442         two errors for the same song.  Fixes #325216.
11444 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11446         * data/glade/podcast-feed-properties.glade,
11447          podcast/rb-feed-podcast-properties-dialog.c:
11448         (rb_feed_podcast_properties_dialog_init),
11449         (rb_feed_podcast_properties_dialog_update):
11450         Add 'last episode' field to the podcast feed properties dialog.
11452         * podcast/rb-feed-podcast-properties-dialog.c:
11453         (rb_feed_podcast_properties_dialog_update_last_update),
11454         (rb_feed_podcast_properties_dialog_update_last_episode),
11455          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11456         Use last-seen property for the time at which we last updated the feed,
11457         and post-time for the time the last episode was published.
11459         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
11460         Handle upgrades from 0.9.2; if no post-time was found for a podcast
11461         feed, use last-seen (which in 0.9.2 was the last post time).
11463         Fixes #323894.
11465 2006-01-01  James Livingston  <jrl@ids.org.au>
11467         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
11469         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
11470         year from the ipod database.
11472 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11474         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
11475         Only set the pipeline back to NULL state for really uninteresting
11476         files.  This was causing deadlocks with various video files.
11477         Fixes #324912.
11479 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11481         * data/glade/song-info-multiple.glade:
11482         Add disc number label and field.
11483         * widgets/rb-song-info.c: (rb_song_info_construct_single),
11484         (rb_song_info_constructor): 
11485         Handle widgets for disc number.
11486         (rb_song_info_sync_entries_multiple):
11487         Set disc number property on selected entries.
11488         Fixes #324777.
11490 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11492         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
11493         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
11494         Activate the default widget when enter is pressed in these dialogs.
11495         Fixes #322887.
11497 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
11499         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
11500         Use rb_shell_player_get_playing_entry, so we get the right entry
11501         when playing from the queue.  Fixes #325379.
11503 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11505         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
11506         Include podcast posts with no publication date.  Typically
11507         seen in static collections rather than feeds.
11509 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11511         * shell/main.c: (main): Don't attempt to handle
11512         bonobo-only arguments if we couldn't get a bonobo
11513         client proxy.
11515 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
11517         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
11518         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
11519         abort if daap sharing is disabled and then re-enabled.
11521 2005-12-29  William Jon McCann  <mccann@jhu.edu>
11523         * podcast/rb-podcast-parse.c (rb_insert_item):
11524         Add debugging.
11525         (rb_podcast_parser_start_element): Support itunes:image.
11526         Add debugging.  Don't abuse the break statement.  Warn
11527         if state is unknown.
11528         (rb_podcast_parser_end_element): Add debugging.  Warn
11529         if state is unknown.
11530         (rb_podcast_parser_characters): Warn if state is unknown.
11532         Fixes parsing of feeds that use the itunes:image element.
11533         Fixes #324632
11535 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
11537         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
11538         (stations_view_drag_data_received_cb):
11539         Remove calls to rhythmdb_entry_lookup_by_location, as
11540         rb_iradio_source_add_station does that anyway.
11541         
11542         (rb_iradio_source_add_from_playlist):
11543         If the URL doesn't point to a playlist, add it as the stream
11544         URL instead.
11546 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
11548         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
11549         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
11550         so we don't get an assertion failure.
11551         Fixes #325025.
11553 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
11555         * shell/main.c: (load_uri_args): don't compile this in if
11556         neither bonobo nor dbus are enabled.  Fixes #324890.
11558 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
11560         * sources/rb-audiocd-source.c:
11561         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
11562         so it closes the device.
11564 2005-12-20  James Livingston  <jrl@ids.org.au>
11566         * metadata/rb-metadata-gst.c: make the state changes time-out again,
11567         so that it doesn't spend forever getting stuck on the one file. Don't
11568         report errors for failing to change state on known non-audio files.
11570         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
11571         audio sink creation if we can't create the gconfaudiosink. This lets
11572         it work with only gst-plugins-base on 0.10.
11574 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11576         * rhythmdb/rhythmdb-query-model.c:
11577         (rhythmdb_query_model_set_sort_order):
11578         Fix a tiny memory leak in the previous commit.
11580 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
11582         * rhythmdb/rhythmdb-query-model.c:
11583         (rhythmdb_query_model_set_sort_order):
11584         Don't try to emit reorders for empty query models, since it doesn't
11585         achieve anything and it results in a few warnings.
11587 2005-12-19  William Jon McCann  <mccann@jhu.edu>
11589         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
11590         Make burn dialog non-resizable so that the expander can shrink.
11591         Fixes #308951.
11593 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11595         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
11596         add entries without a location, rather than those with one.
11598 2005-12-19  James Livingston  <jrl@ids.org.au>
11600         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
11601         the error isn't set.
11603 2005-12-19  James Livingston  <jrl@ids.org.au>
11604         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
11605         add entries without a location. Fixes bug 324290.
11607         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
11608         without a location.
11610         * shell/main.c: (main): don't crash if dbus initialisation fails
11611         without setting an error
11613 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
11615         * sources/rb-library-source.c: Remove unused structure members
11616         (rb_library_source_do_query): Actually use the cached 'all' query.
11617         Fixes #324025.
11618         
11619 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
11621         * sources/rb-audiocd-source.c 
11622         (rb_audiocd_get_cd_info): tab
11623         (rb_audiocd_scan_songs): Return boolean success/failure,
11624         fix error messages a bit.
11625         (metadata_cb): Don't crash if we have no tracks
11626         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
11627         the CD.
11628         Fixes #324222.
11630 2005-12-15  William Jon McCann  <mccann@jhu.edu>
11632         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
11633         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
11634         key.
11636         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11637         Fixes #324157
11639 2005-12-14  William Jon McCann  <mccann@jhu.edu>
11641         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
11642         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
11643         (fullscreen_changed_cb): 
11644         * lib/rb-preferences.h: 
11645         * data/ui/rhythmbox-ui.xml: 
11646         * data/rhythmbox.schemas:
11647         Add fullscreen mode.
11649         Fixes #324075.
11651 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
11653         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
11654         configure.  It was not working with RPM.
11655         * data/Makefile.am: Switched dbus directory location to use
11656         datadir instead of variable that was not working.
11658 2005-12-13  James Livingston  <jrl@ids.org.au>
11660         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11662         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
11663         the podcast browser work again. Closes bug 323856.
11665 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11667         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
11668         Remove C99ism.
11670         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
11671         (rb_utf_friendly_time):
11672         * lib/rb-cut-and-paste-code.h:
11674         * podcast/rb-feed-podcast-properties-dialog.c:
11675         (rb_feed_podcast_properties_dialog_parse_time):
11676         * podcast/rb-podcast-properties-dialog.c:
11677         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
11678         to display the date in a more user friendly way.
11679         For example, if the feed was updated yesterday it will say:
11680         Last updated: Yesterday 10:00 AM
11681         instead of printing the date.
11683 2005-12-12  William Jon McCann  <mccann@jhu.edu>
11685         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
11686         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
11687         (rb_validate_item_propert, rb_podcast_parser_start_element) 
11688         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
11689         Use RB style.  Check for NULL before strcmp.  No C++ comments.
11690         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
11691         Don't set invalid mime type when mime type is NULL.  Fix leaks.
11692         (rb_podcast_parse_date): Add support for some real world
11693         date formats.
11694         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
11695         (rb_podcast_parse_item_free): Style and no need to check
11696         for NULL before g_free.
11698         May fix #323742
11700 2005-12-12  James Livingston  <jrl@ids.org.au>
11702         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
11703         with gstreamer 0.10, which replaced audioscale.
11705         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
11706         function to free the SoupSession
11708         * shell/rb-source-header.c: (rb_source_header_set_property),
11709         (rb_source_header_disclosure_toggled_cb),
11710         (rb_source_header_view_browser_changed_cb),
11711         (rb_source_header_sync_control_state):
11712         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11713         * sources/rb-library-source.c: (rb_library_source_class_init):
11714         * sources/rb-source.c: (rb_source_class_init),
11715         (rb_source_get_status), (default_get_browser_key),
11716         (rb_source_get_browser_key), (rb_source_can_browse),
11717         (rb_source_notify_status_changed),
11718         (rb_source_notify_filter_changed):
11719         * sources/rb-source.h: seperate the enabling of browsers from the use
11720         of a gconf key.
11722 2005-12-11  William Jon McCann  <mccann@jhu.edu>
11724         * data/glade/podcast-feed-properties.glade: 
11725         * data/glade/podcast-properties.glade: Use scrolled viewports
11726         for description text.  Fix regression of #320509.
11728 2005-12-11  James Livingston  <jrl@ids.org.au>
11730         * sources/rb-auto-playlist-source.c:
11731         (rb_auto_playlist_source_class_init), (impl_reset_filters),
11732         (impl_search), (rb_auto_playlist_source_do_query),
11733         (rb_auto_playlist_source_set_query),
11734         (rb_auto_playlist_source_get_query): add support for the search box
11735         to automatic playlists.
11737         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
11738         memory leak.
11740 2005-12-11  James Livingston  <jrl@ids.org.au>
11742         * NEWS: update NEWS
11744 2005-12-11  James Livingston  <jrl@ids.org.au>
11746         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
11747         (rhythmdb_load), (monitor_subdirectory),
11748         (rhythmdb_sync_library_location):  start the library sync and
11749         monitoring in an idle callback.
11751 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11753         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
11754         (rb_podcast_source_constructor): Remove unused pixbuf column.
11755         (rb_podcast_source_set_property, rb_podcast_source_get_property):
11756         Use consistent style.
11758         Fixes #322961.
11760 2005-12-11  James Livingston  <jrl@ids.org.au>
11762         * rhythmdb/rhythmdb-property-model.c:
11763         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
11764         (rhythmdb_property_model_insert),
11765         (rhythmdb_property_model_delete_prop):
11766         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
11767         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
11768         (destroy_tree_property):
11769         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
11770         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
11771         GMemChunks, they are crap and deprecated. Improves startup-time and
11772         memory usage slightly.
11774 2005-12-10  William Jon McCann  <mccann@jhu.edu>
11776         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
11777         Added license and website info.
11779         * MAINTAINERS.old: Add Colin.
11780         * MAINTAINERS: Add James.
11781         * AUTHORS: Put back in order.  Add extra space between name and email
11782         to make it easier to read.  Add James and jonathan.
11784         * widgets/rb-song-info.c (rb_song_info_init) 
11785         (rb_song_info_constructor): Make sure close button is primary/rightmost.
11787 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11789         Play queue implementation. Closes bug 107787.
11791         * data/rhythmbox.schemas: add items for whether the queue should be
11792         displayed as a sidebar, and the height of the sourcelist if it is.
11794         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
11795         playlist, and podcast popups; add 'view queue as sidebar' menu item,
11796         add popups for queue as source and as sidebar.  We need a separate
11797         popup for the sidebar view because otherwise it's hard to tell which
11798         of the visible entry views the action came from.
11800         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
11802         * po/POTFILES.in: Add new file
11804         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
11805         Add helper function for deciding if a podcast episode is available for
11806         playback.
11808         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
11809         reorder entries in the query model.
11810         (idle_process_update): Handle new update type used to insert entries
11811         at a particular position in the query model.
11812         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
11813         parameter to specify the position (-1 meaning 'at the end').
11814         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
11815         parameter.
11816         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
11817         bad entry removal updates for entries that aren't in the model.
11818         (rhythmdb_query_model_emit_reorder): Add helper function for
11819         reordering rows.
11820         (rhythmdb_query_model_move_entry): New method for moving entries
11821         around in the model
11822         (rhythmdb_query_model_entry_added_cb),
11823         (rhythmdb_query_model_update_limited_entries),
11824         (rhythmdb_query_model_do_reorder),
11825         (rhythmdb_query_model_do_insert): Pass through the index parameter,
11826         use rhythmdb_query_model_emit_reorder where appropriate.
11828         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11829         Don't allow the queue to be deleted.
11830         (handle_playlist_entry_cb): Update for method signature change
11831         (rb_playlist_manager_save_playlists_async),
11832         (rb_playlist_manager_get_playlists): Don't save the play queue,
11833         don't report it as a playlist.
11835         * shell/rb-play-order.c: Include queue play order in the list of
11836         available orders.
11838         * shell/rb-shell.c
11839         (rb_shell_class_init), (rb_shell_get_property): Add new property 
11840         for access to the clipboard object.
11841         (rb_shell_constructor): Handle playing-from-queue signal to update the
11842         sourcelist display; add queue sidebar in to UI, listen for queue
11843         sidebar pane changes, and read initial settings from gconf.
11844         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
11845         Only tell the sourcelist the source has changed if the new source is 
11846         not the queue, as we update the sourcelist differently in that case.
11847         (rb_shell_set_window_title): Only use the cached window title if the
11848         playing state was the same when it was created.
11849         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
11850         (rb_shell_sync_pane_visibility): Only hide the side pane if the
11851         sourcelist is hidden and the queue is shown as a source.
11852         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
11853         mode, since it doesn't make any sense.
11854         (sourcelist_visibility_changed_cb): Update the visibility of the pane
11855         too.
11856         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
11857         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
11858         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
11859         playing from queue shown as sidebar.
11861         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
11862         MusicProperties action here from rb-shell-player.c, since it acts like
11863         cut/copy/paste etc.
11864         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
11865         (rb_shell_clipboard_get_property): new property for queue source.
11866         Watch for selection changes in the sidebar entry view as well as the
11867         normal one.
11868         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
11869         actions and MusicProperties.
11870         (rb_shell_clipboard_cmd_queue_delete),
11871         (rb_shell_clipboard_cmd_add_song_to_queue),
11872         (rb_shell_clipboard_cmd_song_info),
11873         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
11875         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
11876         actually came from (could be the playing source, or the queue), add a 
11877         new play order object for the queue, add a property for the queue
11878         source, add a signal for when we switch between playing from the
11879         source and from the queue.
11880         (rb_shell_player_set_property): Handle playing directly from the
11881         queue so we stop once the queue is empty.  Create queue play order
11882         when we get the queue source.
11883         (rb_shell_player_get_playing_source): Return the source we're actually
11884         playing from.
11885         (rb_shell_player_get_playing_entry): Get playing entry from queue if
11886         that's where it is.
11887         (rb_shell_player_set_playing_entry): Update the queue play order if 
11888         that's where we're playing from.
11889         (rb_shell_player_play_order_update_cb): Take has next/previous for the
11890         queue into consideration too.
11891         (swap_playing_source): Helper function for switching the playing
11892         source.
11893         (rb_shell_player_do_previous): Check the queue, even though there's
11894         never a previous entry in it (yet), swap playing source if it changed.
11895         (rb_shell_player_do_next): Check the queue for entries to play before
11896         the normal play order, and swap playing source if it changed.
11897         (rb_shell_player_do_previous_or_seek): Check the queue for previous
11898         entries to go to as well.
11899         (rb_shell_player_playpause): Check the queue before the selection and
11900         the play order, and swap playing source if it changed.
11901         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
11902         (rb_shell_player_entry_activated_cb): Use
11903         rb_podcast_manager_entry_downloaded, do some tapdancing to make
11904         activating queue entries work properly (move the activated entry to
11905         the start of the queue and then play it); if we were playing from the
11906         queue, clear its playing entry so it'll start again from the start
11907         after the activated entry.
11908         (rb_shell_player_sync_buttons): MusicProperties action handler moved
11909         to rb-shell-clipboard.c
11910         (actually_set_playing_source): Add helper for updating the playing
11911         source.
11912         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
11913         signal if we stop or start doing so; use actually_set_playing_source; 
11914         emit playing-source-changed if we actually did change source.
11916         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
11917         rb_static_playlist_source_add_location.
11919         * sources/rb-library-source.c (rb_library_source_class_init): Allow
11920         enqueueing of songs from the library.
11922         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
11923         enqueueing of sonsg from playlists.
11924         (rb_playlist_source_entry_added_cb): Add extra parameter for
11925         rhythmdb_query_model_add_entry.
11926         
11927         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
11928         Implement (can_)add_to_queue for this class.
11929         (rb_podcast_source_entry_activated): Use
11930         rb_podcast_manager_entry_downloaded.
11931         (impl_can_add_to_queue): Return TRUE if at least one entry that has
11932         been downloaded is selected.
11933         (impl_add_to_queue): Only add downloaded entries to the queue.
11935         * sources/rb-source.{c,h}:
11936         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
11937         methods.
11938         (rb_source_class_init): Don't allow enqueueing by default; implement 
11939         add_to_queue though.
11940         (default_add_to_queue): Add all selected entries to the queue.
11941         
11942         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
11943         would be playing if there wasn't anything in the queue).
11944         (set_source_playing): Helper function for manipulating tree store.
11945         (rb_sourcelist_set_playing_source): Use set_source_playing
11946         (rb_sourcelist_preempt_playing_source): Update preempted source
11947         pointer, manipulate source states.
11949         * sources/rb-static-playlist-source.{c,h}:
11950         (rb_static_playlist_source_add_location_internal),
11951         (rb_static_playlist_source_add_location),
11952         (rb_static_playlist_source_add_entry): Add index parameter for
11953         specifying where in the playlist the new entry goes.
11954         (rb_static_playlist_source_new_from_xml), (impl_paste),
11955         (rb_static_playlist_source_add_list_uri),
11956         (rb_static_playlist_source_add_location_swapped),
11957         (rb_static_playlist_source_add_locations),
11958         (rb_static_playlist_source_non_entry_dropped),
11959         (rb_static_playlist_source_row_inserted):
11960         Handle new index parameter everywhere it appears
11961         (rb_static_playlist_source_move_entry): New method for moving entries
11962         around in the playlist.
11964         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
11965         warnings when trying to scroll entry views that have never been
11966         displayed.
11968         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
11969         play order that removes the old entry when switching to a new one.
11971         * sources/rb-play-queue-source.{c,h}: New files, implementing a
11972         static playlist subclass that has a second entry view for the sidebar
11973         view using alternate formatting, and that displays the number of
11974         entries it contains in its source list entry.
11976 2005-12-10  James Livingston  <jrl@ids.org.au>
11978         * rhythmdb/rhythmdb-query-model.c:
11979         (rhythmdb_query_model_add_entry),
11980         (rhythmdb_query_model_drag_data_received):
11981         * sources/rb-static-playlist-source.c:
11982         (rb_static_playlist_source_non_entry_dropped): when things are
11983         dropped, ignore any blank lines in the list of uris. Make the source
11984         responsible for adding new items to the db.
11986         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
11987         empty string.
11989 2005-12-10  James Livingston  <jrl@ids.org.au>
11991         * shell/rb-shell-player.c: (rb_shell_player_set_property),
11992         (rb_shell_player_sync_buttons),
11993         (rb_shell_player_selection_changed_cb): watch for the
11994         "selection-changed" signal, so that the Song Properties get enabled.
11995         Closes bug 323694.
11997 2005-12-10  James Livingston  <jrl@ids.org.au>
11999         * data/rhythmbox.schemas: fix the gconf schema
12001 2005-12-10  James Livingston  <jrl@ids.org.au>
12003         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
12004         the decoded-pad callback with gstreamer 0.8, it causes problems.
12006 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
12008         Remove more junk from RBEntryView. Closes bug 323640.
12010         * widgets/rb-entry-view.{c,h}:
12011         Remove unused private structure members, replace 'playing' boolean
12012         with an enum (so we know if we're paused too), and store a pointer to
12013         the RBShellPlayer too.  
12014         (rb_entry_view_class_init), (rb_entry_view_set_property),
12015         (rb_entry_view_get_property):
12016         Remove 'entry-selected' and 'changed' signals and
12017         'playing-entry' property, add 'selection-changed' signal and
12018         'shell-player' and 'playing-state' properties.
12019         (rb_entry_view_new): Take the shell player object reference
12020         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
12021         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
12022         No longer needed, shell player is the place to get this information.
12023         (rb_entry_view_busy), (rb_entry_view_get_duration),
12024         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
12025         (rb_entry_view_get_next_from_entry),
12026         (rb_entry_view_get_previous_from_entry),
12027         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
12028         (rb_entry_view_get_num_entries):
12029         Removed, callers should go to the query model directly.
12030         (rb_entry_view_playing_song_changed): Update active query model, emit
12031         row changed signals to update pixbufs, and scroll to the playing song
12032         when the playing song changes, based on a signal from the shell
12033         player.
12034         (queue_changed_sig), (rb_entry_view_row_changed_cb),
12035         (emit_entry_changed): Evil, removed.
12036         (rb_entry_view_selection_changed_cb): Remove old signals, add new
12037         selection-changed signal.
12038         (rb_entry_view_select_none), (rb_entry_view_select_entry):
12039         Remove selection lock.  It didn't work anyway.
12040         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
12041         (rb_entry_view_emit_row_changed): Simple helper function to emit
12042         row-changed signals.
12044         * widgets/Makefile.am: Entry view needs headers from the shell/
12045         directory.
12046         * widgets/rb-song-info.{c,h}: Use the query model for everything except
12048         scrolling the entry view to show the entry being displayed.
12049         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
12050         'source' property so we can watch for query model changes.
12051         (rb_song_info_finalize): Unref objects, disconnect signal handlers
12052         (rb_song_info_set_property): Watch for query model changes, don't
12053         watch for entry view changes.
12054         (rb_song_info_new): Take source as a parameter, use the source's entry
12055         view unless one was specifically supplied.
12056         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
12057         Use query model rather than entry view to move between songs.
12058         (rb_song_info_update_buttons): Use query model.
12059         (rb_song_info_query_model_changed_cb): Handle query model changes.
12061         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
12062         Only one copy of the code to enable/disable the CD burning action
12063         (rb_playlist_manager_playlist_entries_changed):
12064         Use the query model to get the number of entries, not the entry view.
12066         * shell/rb-play-order-random-by-age-and-rating.c,
12067         shell/rb-play-order-random-by-age.c,
12068         shell/rb-play-order-random-by-rating.c,
12069         shell/rb-play-order-random-equal-weights.c:
12070         Use G_DEFINE_TYPE
12072         * shell/rb-shell-player.{c,h}:
12073         Remove a few unused entries from the structure.
12074         (rb_shell_player_set_property):
12075         Don't use the 'changed' signal on the entry view (it's evil)
12076         (rb_shell_player_have_first): No longer needed
12077         (rb_shell_player_play): Just tell the entry view it's playing
12078         (rb_shell_player_playpause): Tell the entry view it's paused
12079         when pausing.
12080         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
12081         (rb_shell_player_property_row_activated_cb):
12082         Get the entry to play using the query model, not the entry view.
12083         (rb_shell_player_sync_buttons): Update entry view state while we're
12084         here.
12085         (rb_shell_player_set_playing_source_internal): Update entry view state
12086         (rb_shell_player_get_playing): Ask the entry view, not the player.
12087         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
12088         and rb_shell_set_window_title work properly, so you get "(Paused)" in
12089         the window title and tray icon tooltip.
12090         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
12092         * sources/rb-iradio-source.c, sources/rb-library-source.c,
12093         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
12094         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
12095         view constructor, pass the source in to the song info widget
12096         constructor.
12098         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
12099         Use 'selection-changed' instead of 'changed', since that's what the
12100         clipboard cares about.
12101         (rb_shell_clipboard_set_source): Don't die if source == NULL
12103 2005-12-10  James Livingston  <jrl@ids.org.au>
12105         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
12106         * sources/rb-playlist-source-recorder.c:
12107         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
12108         stuff not use the deprecated API when compiled against 2.13
12110 2005-12-10  James Livingston  <jrl@ids.org.au>
12112         patch by: Alex Lancaster <alexl@users.sourceforge.net>
12114         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
12115         problem where the genre tag was getting set to the artist. Closes bug
12116         323642.
12118 2005-12-09  William Jon McCann  <mccann@jhu.edu>
12120         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
12121         Return NULL if can't get first iter.
12123         Fixes #323663
12125 2005-12-09  William Jon McCann  <mccann@jhu.edu>
12127         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
12128         updated rb_station_properties_dialog_new API.
12129         (rb_iradio_source_add_from_playlist): New public function.
12130         (rb_iradio_source_first_time_changed): Use add_from_playlist.
12132         * shell/rb-shell.c (new_station_location_added): Handle
12133         iradio location added signal.
12134         (rb_shell_cmd_new_station): Use new iradio station dialog.
12136         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
12137         (rb_station_properties_dialog_new): Don't squeeze new
12138         station functionality into this class.
12139         (rb_station_properties_dialog_response_cb): ditto.
12140         (rb_station_properties_dialog_update_title): Make
12141         consistent with other properties dialogs.
12142         (rb_station_properties_dialog_location_changed_cb): Do nothing.
12144         * iradio/rb-new-station-dialog.[ch]: 
12145         * iradio/Makefile.am: Add new station dialog.
12147         * data/glade/station-new.glade: New file based on
12148         new podcast feed dialog.
12149         * data/glade/station-properties.glade: Updated to
12150         be consistent with song properties dialog.
12152         Fixes #323306.
12154 2005-12-10  James Livingston  <jrl@ids.org.au>
12156         patch by: Ståle Lyngaas <staale@lyngaas.com>
12158         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
12159         submit songs longer than 30 minutes. Fixes bug 323639.
12161 2005-12-09  William Jon McCann  <mccann@jhu.edu>
12163         * shell/rb-shell.c (idle_save_playlist_manager): Use new
12164         async save function.
12165         (rb_shell_finalize): Remove save timeout sources.  Reorder
12166         steps a bit to make saving db and playlists a bit more
12167         failsafe in case something goes wrong later.
12168         (rb_shell_constructor): Keep track of save timeout source.
12169         (add_to_library_response_cb): Keep track of db save timeout source.
12171         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
12172         g_atomic.
12173         (rb_playlist_manager_shutdown): New function to shutdown
12174         threads etc. before exit.
12175         (rb_playlist_manager_finalize): Moved handling outstanding
12176         threads stuff to shutdown since if there are outstanding threads
12177         they hold a ref and finalize is never called.
12178         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
12179         of signal which may be required for sync save.
12180         (rb_playlist_manager_save_playlists_async): Renamed old
12181         save_playlists to save_playlists_async.  Use g_atomic.
12182         (rb_playlist_manager_save_playlists): New function to
12183         perform sync saves (symmetric with RhythmDB API).
12184         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
12186         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
12187         Style consistency anality.
12188         (rhythmdb_finalize): Remove save timeout source.
12189         (rhythmdb_set_property, rhythmdb_get_property) 
12190         (rhythmdb_process_events): More anality and keep track of
12191         save timeout source.
12192         (action_thread_main): No need to call g_thread_exit.
12193         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
12194         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
12195         (write_encoded_gvalue, read_encoded_property): La la la.
12197         Fixes #322940.
12199 2005-12-10  James Livingston  <jrl@ids.org.au>
12201         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
12202         non-audio files.
12204 2005-12-10  James Livingston  <jrl@ids.org.au>
12206         * Makefile.am:
12207         * configure.ac: remove the rpm spec files, so that automake works.
12208         oops
12210         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
12211         locking issue
12213 2005-12-09  James Livingston  <jrl@ids.org.au>
12215         * debian/: try to get cvs to actually remove the files
12217 2005-12-09  James Livingston  <jrl@ids.org.au>
12219         * rhythmbox.spec.in:
12220         * debian/: remove the distro package stuff, they are *really* old, and
12221         downstream manage it anyway.
12223 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
12225         Rework play orders to work off query models rather than 
12226         entry views, and track the playing entry themselves rather
12227         than relying on the entry view to do it.  This makes the entry
12228         view mostly just a widget. Closes bug 323612.
12230         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
12231         Use query model rather than entry view to get the number
12232         of entries in playlists.
12234         * rhythmdb/rhythmdb-query-model.{c.h}
12235         (rhythmdb_query_model_tree_path_to_entry),
12236         (rhythmdb_query_model_iter_to_entry),
12237         (rhythmdb_query_model_get_next_from_entry),
12238         (rhythmdb_query_model_get_previous_from_entry):
12239         New utility functions for iterating through query models.
12240         (rhythmdb_query_model_compute_status_normal):
12241         Have one copy of this code, not four.
12243         * shell/rb-play-order.{c,h}:
12244         Add signals for when next/previous availability changes, and
12245         when the playing entry is removed, and add a property for
12246         the current playing entry.  Add gtkdoc comments too.
12247         (rb_play_order_class_init): Add new property and signals.
12248         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
12249         (rb_play_orer_query_model_changed_cb),
12250         (rb_play_order_query_model_changed): 
12251         Use query model rather than entry view.
12252         (rb_play_order_set_property), (rb_play_order_get_property):
12253         Handle new playing-entry property.  Call playing_entry_changed virtual
12254         method so subclasses can do any processing required.
12255         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
12256         (rb_play_order_set_playing_entry):
12257         Just use the playing-entry property.
12258         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
12259         Utility methods for subclasses.
12260         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
12261         Update next/previous availability, check if the playing entry
12262         was removed.
12263         (default_playing_entry_removed):
12264         Keep the current behaviour of just stopping playback when the 
12265         playing entry is deleted.
12266         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
12267         these for subclasses that don't have go_next/go_previous, but do
12268         have get_next/get_previous.
12269         (rb_play_order_update_have_next_previous): Emit signal if the
12270         availability of next/previous entries has changed.
12272         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
12273         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
12274         Use G_DEFINE_TYPE, replace entry view iterator with query model 
12275         methods.
12276         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
12277         on the last song in the shuffled order, go back to the start. This
12278         means if you press 'play' again you'll get the whole order again, not
12279         just one song.
12281         * shell/rb-shell-player.c:
12282         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
12283         play order rather than the entry view.
12284         (rb_shell_player_set_property): Update the play order when the
12285         selected source changes and we aren't playing anything.
12286         (rb_shell_player_sync_play_order): Copy the playing entry across to
12287         the new play order so playback continues from the same song, and watch
12288         for updates to have_next/have_previous.
12289         (rb_shell_player_play_order_update_cb): Enable/disable the
12290         next/previous actions when next/previous entry availability changes.
12291         (rb_shell_player_jump_to_current): Just use the play order's idea of
12292         what's playing, not the entry view's; if not playing anything, clear
12293         the selection, so when a playlist ends and you hit play again, it'll
12294         start at the start rather than the end.
12295         (rb_shell_player_do_previous): restructure a bit.
12296         (rb_shell_player_do_next): restructure, jump to new playing entry in
12297         an idle handler instead of directly.
12298         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
12299         song if there is one.
12300         (rb_shell_player_playpause): Jump to playing song, don't update the
12301         play order if we got the song from the selection.
12302         (rb_shell_player_playing_entry_deleted_cb): Not needed.
12303         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
12304         looks after next/previous actions now.  Don't break if called while
12305         there is no selected source.
12306         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
12307         (rb_shell_player_set_playing_source_internal),
12308         (rb_shell_player_error): No need to track the attempted playing entry
12309         any more, since the play order does that.
12311         * shell/rb-shell.c:
12312         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
12313         rb_shell_player_get_playing_entry rather than going through the entry
12314         view.
12316         * shell/rb-statusbar.c (rb_statusbar_set_property),
12317         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
12318         than the entry view for status bar text changes.
12319         (rb_statusbar_sync_status): Ask the query model directly
12321         * sources/rb-source.{c}: Add query model property.
12322         (default_get_status): Get status text from query model, should be
12323         suitable for most sources.
12324         (rb_source_set_property): Listen for changes to the query model 
12325         to update the status text.
12326         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
12327         (idle_emit_status_changed): Emit status-changed signals when query
12328         model changes. 
12330         * sources/rb-library-source.c, sources/rb-podcast-source.c:
12331         (impl_get_status): Not needed, RBSource does this now
12332         (rb_library_source_do_query) (rb_podcast_source_do_query): 
12333         Update RBSource's query model reference.
12335         * sources/rb-playlist-source.c:
12336         Remove query-model property, since RBSource has one now
12337         (impl_get_status): Not needed, RBSource does this now
12338         (rb_playlist_source_row_deleted): Use query model iterator helper
12339         function.
12340         (rb_playlist_source_set_query_model): Update RBSource's query model
12341         reference too.
12343         * sources/rb-iradio-source.c:
12344         (impl_get_status): Ask the query model directly.
12345         (rb_iradio_source_do_query): Update RBSource's query model reference
12346         when we create a new query.
12348         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
12349         Use query model rather than entry view.
12351         * widgets/rb-entry-view.{c,h}: 
12352         Remove playing_entry_deleted signal (now in play order).
12353         (entry_from_tree_path), (entry_from_tree_iter): Not needed
12354          as RhythmDBQueryModel has equivalent helper functions.
12355         (rb_entry_view_*): Use query model helpers instead of the above two
12356         functions.
12358 2005-12-09  James Livingston  <jrl@ids.org.au>
12360         * configure.ac:
12361         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
12362         (rb_recorder_enabled):
12363         * shell/rb-removable-media-manager.c: (poll_tray_opened):
12364         * sources/rb-playlist-source-recorder.c:
12365         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
12366         whether libnautilusburn has the _drive_unref function, and if so use
12367         it. Stops it complaining about deprecated API.
12369 2005-12-09  James Livingston  <jrl@ids.org.au>
12371         * configure.ac: drop the minimum gstreamer version back down, it
12372         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
12374 2005-12-09  James Livingston  <jrl@ids.org.au>
12376         * widgets/rb-song-info.c: (rb_song_info_class_init),
12377         (rb_song_info_show), (rb_song_info_constructor),
12378         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
12379         (rb_song_info_forward_clicked_cb): save metadata changes when the
12380         Next/Previous buttons are pressed (closes bug 320952). use
12381         G_DEFINE_TYPE.
12383 2005-12-09  James Livingston  <jrl@ids.org.au>
12385         Patch by: <jonathan@kaolin.hn.org>
12387         * sources/rb-iradio-source.c:
12388         (stations_view_drag_data_received_cb):
12389         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
12390         of urls. Fixes bug 323610.
12392 2005-12-09  James Livingston  <jrl@ids.org.au>
12394          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
12395          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
12397         * configure.ac:
12398         * metadata/rb-metadata-gst.c:
12399         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
12400         (rb_player_construct), (rb_player_new):
12401         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
12402         (rb_recorder_gst_signal_error), (pipe_message),
12403         (rb_recorder_new_pad_cb), (rb_recorder_construct),
12404         (rb_recorder_new):
12405         * shell/main.c: (main):
12406         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
12407         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
12409 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
12411         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
12413         * shell/rb-playlist-manager.c:
12414           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
12415           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
12416           (rb_playlist_manager_set_automatic_playlist),
12417           (rb_playlist_manager_cmd_new_automatic_playlist),
12418           (rb_playlist_manager_cmd_edit_automatic_playlist):
12419            Use new playlist subclasses.
12420           (rb_playlist_manager_save_playlists): Only read the dirty flag
12421            for local playlists, minor pointless reformatting
12423         * sources/Makefile.am: add new files
12425         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
12426           split lots of stuff out into two
12427           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
12428           make RBPlaylistSource abstract, add virtual methods for showing a
12429           popup for the entry view and saving the playlist to XML.
12430           Other stuff is subclass-specific, or already virtual in RBSource.
12432         * sources/rb-playlist-xml: Define playlist XML tags and attributes
12433           in one place, since they're used across three source files now
12435         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
12436           Use new static playlist class
12438         * sources/rb-ipod-source.c: (add_rb_playlist):
12439           Use new static playlist class
12441         * sources/rb-static-playlist-source.{c,h},
12442         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
12443         files.
12445         * po/POTFILES.in: add new files
12447 2005-12-07  James Livingston  <jrl@ids.org.au>
12449         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
12450         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
12451         metadata loads not attempt to write changes to disk.
12453 2005-12-07  James Livingston  <jrl@ids.org.au>
12455         patch by: Alex Lancaster <alexl@users.sourceforge.net>
12457         * data/glade/song-info-multiple.glade:
12458         * widgets/rb-song-info.c: (rb_song_info_constructor),
12459         (rb_song_info_sync_entries_multiple): allow the year to be changed on
12460         multiple songs at once.
12462 2005-12-06  James Livingston  <jrl@ids.org.au>
12464         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12465         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
12467 2005-12-06  James Livingston  <jrl@ids.org.au>
12469         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
12470         names rather than adding a horizontal scroll bar.
12472 2005-12-06  James Livingston  <jrl@ids.org.au>
12474         * rhythmdb/rhythmdb-query-model.c:
12475         (rhythmdb_query_model_update_limited_entries),
12476         (rhythmdb_query_model_drag_data_received): remove some pointless debug
12477         messages
12479         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
12480         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
12481         always hide rather than remove DB entries, which will make RB not lose
12482         information when tag editing happens or people move files to trash and
12483         then change their mind. Also fix some races where the monitoring code
12484         would notice the temporary files generated by saving metadata.
12486 2005-12-05  William Jon McCann  <mccann@jhu.edu>
12488         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
12489         Hide internals and add tooltips.
12490         (rb_song_display_box_size_allocate): Hide internals.
12491         (sanitize_string, info_url): Copied from rb-header.
12492         (rb_song_display_box_sync): New public function.
12494         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
12495         (rb_header_init): Use a separate row for the seek bar.
12496         (rb_header_finalize): Don't unref widgets.
12497         (rb_header_sync): Use rb_song_display_box_sync.
12498         (rb_header_set_urldata)
12499         (rb_header_set_show_artist_album): Hide instead of remove widgets.
12500         (rb_header_set_show_position_slider): Set visibility of seek bar.
12501         (rb_header_set_show_timeline): Set sensitivity of seek bar.
12502         (rb_header_get_elapsed_string): Don't shift when you first start playback.
12504         * shell/rb-statusbar.c (rb_statusbar_init)
12505         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
12507         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
12508         (rb_shell_constructor): Remove hseparator.  Monitor
12509         toolbar visibility settings.  Add toolbar.  Add
12510         volume button to toolbar.  Add tooltips for volume button.
12511         (rb_shell_view_toolbar_changed_cb) 
12512         (rb_shell_sync_toolbar_visibility)
12513         (toolbar_visibility_changed_cb): Set visibility of
12514         toolbar.
12515         (rb_shell_sync_smalldisplay): Set the toolbar style to
12516         icons only when in small display mode.
12517         (rb_shell_volume_widget_changed_cb): Save volume setting.
12519         * shell/rb-shell-player.c (rb_shell_player_constructor):
12520         Remove pause and stop actions.  Make play action "important"
12521         so that text is visible in horizontal toolbar position.
12522         Remove control buttons.
12523         (rb_shell_player_init) 
12524         (rb_shell_player_sync_song_position_slider_visibility):
12525         Set visbibility of seek bar.
12526         (rb_shell_player_cmd_play, rb_shell_player_playpause):
12527         Make play action a toggle.
12528         (rb_shell_player_sync_volume): Volume control moved
12529         to player.
12530         (gconf_song_position_slider_visibility_changed):
12531         Set visbibility of seek bar.
12532         (rb_shell_player_sync_buttons):
12533         Set sensitivity of actions instead of buttons.
12534         (rb_shell_player_playing_changed_cb): Add callback
12535         for player notify::playing changes.
12537         * lib/rb-preferences.h: Add hide toolbar and seek
12538         bar key names.
12540         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
12541         seek bar menu items.  Remove pause and stop actions
12542         from the control menu.  Add a toolbar.
12544         * data/rhythmbox.schemas: Add toolbar_hidden
12545         song_position_slider_hidden keys.
12547         Patch by: James Livingston  <jrl@ids.org.au>
12548                   William Jon McCann  <mccann@jhu.edu>
12549         Fixes #316238.
12551 2005-12-05  James Livingston  <jrl@ids.org.au>
12553         * data/glade/library-prefs.glade:
12554         * data/rhythmbox.schemas:
12555         * lib/rb-preferences.h:
12556         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
12557         (rhythmdb_sync_library_location):
12558         * sources/rb-library-source.c: (rb_library_source_class_init),
12559         (rb_library_source_finalize), (rb_library_source_constructor),
12560         (impl_get_config_widget), (rb_library_source_preferences_sync),
12561         (rb_library_source_watch_toggled_cb): allow people to disable library
12562         monitoring, because with nothing set the file chooser button selects
12563         the Home folder (and hence that will get monitored).
12565 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
12567         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
12568         attempt to fix problem with RSS parsing showing invalid feed types.
12569         Fixes bug 323153
12571 2005-12-04  James Livingston  <jrl@ids.org.au>
12573         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
12574         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
12575         importing a remote directory not block the UI.
12577 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
12579         * data/glade/podcast-feed-properties.glade:
12580         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
12582 2005-12-04  James Livingston  <jrl@ids.org.au>
12584         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12586         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
12587         to && to fix a mistake in the earlier podcast patch.
12589 2005-12-03  James Livingston  <jrl@ids.org.au>
12591         * data/glade/podcast-new.glade:
12592         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
12593         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
12595         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
12596         GValue, which stops occasional errors.
12598         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12599         compile issue.
12601 2005-12-03  James Livingston  <jrl@ids.org.au>
12603         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12605         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12606         crasher with some podcasts feeds.
12608 2005-12-03  James Livingston  <jrl@ids.org.au>
12610         * data/rhythmbox.schemas: fix the gconf schema
12612 2005-12-03  James Livingston  <jrl@ids.org.au>
12614         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
12615         add a selection timeout to the sourcelist. This lets you hold a track
12616         over the playlist source, and then have the view switch so you can
12617         insert the track in the middle of the playlist. Closes bug 323044.
12619         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
12620         (select_on_drag_timeout), (remove_select_on_drag_timeout),
12621         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
12622         (rb_tree_dnd_add_drag_dest_support):
12623         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
12624         timeout.
12626         * sources/rb-sourcelist-model.c:
12627         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
12628         the source list.
12630 2005-12-02  Bastien Nocera  <hadess@hadess.net>
12632         * data/glade/audioscrobbler-prefs.glade: add a space before the web
12633         links, so that the text doesn't touch the button
12635 2005-12-02  James Livingston  <jrl@ids.org.au>
12637         Add full support for gnome-vfs remote files. Closes bug 140355.
12639         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
12640         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
12641         for authentication information from the user doesn't block the UI.
12643         (rhythmdb_entry_set_visibility): don't emit the signal twice.
12645         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
12646         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
12647         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
12648         (rhythmdb_process_stat_event), (emit_load_error_idle),
12649         (rhythmdb_process_metadata_load),
12650         (rhythmdb_process_queued_entry_set_event),
12651         (rhythmdb_process_file_created_or_modified),
12652         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
12653         (queue_stat_uri), (add_thread_main),
12654         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
12655         (rhythmdb_load), (rhythmdb_save_thread_main),
12656         (threadsafe_entry_set), (rhythmdb_query_internal),
12657         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
12658         (rhythmdb_do_full_query_internal),
12659         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
12660         (rhythmdb_volume_unmounted_cb),
12661         (rhythmdb_check_changed_file): trivial changes to support the
12662         asynchronous stats.
12664         * shell/main.c: (main): activate the authentication manager.
12666         * shell/rb-playlist-manager.c:
12667         (rb_playlist_manager_cmd_load_playlist),
12668         (rb_playlist_manager_cmd_save_playlist):
12669         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
12670         (rb_shell_cmd_add_file_to_library):
12671         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
12672         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
12673         remote files.
12675 2005-12-02  James Livingston  <jrl@ids.org.au>
12677         * shell/rb-playlist-manager.c: makes playlist menu items use the
12678         elipses correctly. Fixes bug 322283.
12680 2005-12-02  James Livingston  <jrl@ids.org.au>
12682         * shell/rb-playlist-manager.c:
12683         (rb_playlist_manager_load_playlists): fix silly mistake
12685 2005-12-02  James Livingston  <jrl@ids.org.au>
12687         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
12688         print out metadata-write unless --debug was passed.
12690         * rhythmdb/rhythmdb.c: (rhythmdb_load):
12691         * shell/rb-playlist-manager.c:
12692         (rb_playlist_manager_load_playlists): block writes to disk if they are
12693         still being loaded.
12695 2005-12-02  James Livingston  <jrl@ids.org.au>
12697         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
12698         ctrl-T, because Ctrl-D is used by "small mode"
12700 2005-12-02  James Livingston  <jrl@ids.org.au>
12702         * shell/rb-shell-preferences.c:
12703         (rb_shell_preferences_append_view_page):
12704         * sources/rb-library-source.c: (impl_get_config_widget):
12705         * sources/rb-podcast-source.c: (impl_get_config_widget):
12706         * sources/rb-source.c: (rb_source_get_config_widget):
12707         * sources/rb-source.h: Make the preference actually work.
12709         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
12710         if Rhythmbox is being run for the first time.
12712 2005-12-02  James Livingston  <jrl@ids.org.au>
12714         Add support for Rhythmbox to watch your library, and automatically add
12715         new tracks. Fixes bug 160159.
12717         * data/glade/library-prefs.glade: add "library location" preference
12718         * data/rhythmbox.schemas: add gconf key for the library location
12720         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
12721         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
12722         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
12723         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
12724         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
12725         (rhythmdb_load_thread_main), (rhythmdb_load),
12726         (monitor_subdirectory), (monitor_library_directory),
12727         (monitor_entry_file), (rhythmdb_sync_library_location),
12728         (library_location_changed_cb), (rhythmdb_check_changed_file),
12729         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
12730         specifiec in the gconf key for new additions. Also fix monitoring code
12731         so that it works properly, and notices deletions.
12733         * lib/rb-preferences.h:
12734         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
12735         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
12736         * shell/rb-audioscrobbler.h:
12737         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
12738         (rb_shell_preferences_append_view_page),
12739         (rb_shell_preferences_new):
12740         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
12741         it's preferences pane, so that we don't need #ifdef's through
12742         rb-shell-preferences.
12744         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
12745         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
12746         "preferences" property, so that sources can acccess it. This is needed
12747         because the library location pref needs to take effect when the window
12748         is closed.
12750         * sources/rb-library-source.c:
12751         (rb_library_source_library_location_changed),
12752         (rb_library_source_dispose), (rb_library_source_finalize),
12753         (rb_library_source_constructor), (impl_get_config_widget),
12754         (rb_library_source_preferences_sync),
12755         (rb_library_source_process_library_location_change),
12756         (rb_library_source_prefs_update),
12757         (rb_library_source_process_library_handle_selection),
12758         (rb_library_source_library_location_cb): set up and control the
12759         "library location" preference.
12761         * sources/rb-audiocd-source.c:(rb_source_class_init):
12762         * sources/rb-source.c: (rb_source_class_init): remove some pointless
12763         code.
12765 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12767         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
12768         (rb_feed_podcast_properties_dialog_update_title): 
12769         * data/glade/podcast-feed-properties.glade:
12770         Make the feed properties dialog consistent with the podcast
12771         properties dialog.
12773 2005-12-01  William Jon McCann  <mccann@jhu.edu>
12775         * metadata/.cvsignore: 
12776         * po/.cvsignore: 
12777         * podcast/.cvsignore: Updated.
12779         * shell/main.c (main): Support DBus 0.6 flags.
12781 2005-11-30  Bastien Nocera  <hadess@hadess.net>
12783         * data/ui/rhythmbox-ui.xml:
12784         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
12785         (rhythmbd_entry_move_to_trash_set_error),
12786         (rhythmdb_entry_move_to_trash):
12787         * rhythmdb/rhythmdb.h:
12788         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
12789         (rb_shell_clipboard_cmd_delete),
12790         (rb_shell_clipboard_cmd_move_to_trash):
12791         * sources/rb-library-source.c: (rb_library_source_class_init),
12792         (impl_delete), (impl_move_to_trash):
12793         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12794         (impl_delete), (impl_move_to_trash):
12795         * sources/rb-removable-media-source.c:
12796         (rb_removable_media_source_class_init):
12797         * sources/rb-source.c: (rb_source_class_init),
12798         (rb_source_can_move_to_trash), (rb_source_delete),
12799         (rb_source_move_to_trash):
12800         * sources/rb-source.h:
12801         Add move_to_trash member for the sources, implement move to trash for
12802         the library and playlists
12803         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
12804         local files to the trash, and deleting them from the database
12805         (Closes: #315389)
12807 2005-11-30  William Jon McCann  <mccann@jhu.edu>
12809         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
12810         (rb_tray_icon_init, rb_tray_icon_finalize): 
12811         * shell/rb-statusbar.c (rb_statusbar_class_init) 
12812         (rb_statusbar_init, rb_statusbar_finalize): 
12813         * shell/rb-source-header.c (rb_source_header_class_init) 
12814         (rb_source_header_init, rb_source_header_finalize): 
12815         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
12816         (rb_shell_finalize): 
12817         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
12818         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
12819         * shell/rb-shell-player.c (rb_shell_player_class_init) 
12820         (rb_shell_player_init, rb_shell_player_finalize): 
12821         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
12822         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
12823         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
12824         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
12825         * shell/rb-play-order.c (rb_play_order_class_init) 
12826         (rb_play_order_init, rb_play_order_finalize): 
12827         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
12828         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
12829         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
12830         (rb_random_play_order_init, rb_random_play_order_finalize): 
12831         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
12832         (rb_history_finalize): 
12833         * shell/rb-commander.c (rb_commander_class_init) 
12834         (rb_commander_init, rb_commander_finalize): 
12835         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
12836         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
12837         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
12838         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
12839         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
12840         (rb_podcast_properties_dialog_init) 
12841         (rb_podcast_properties_dialog_finalize): 
12842         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
12843         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
12844         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
12845         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
12846         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
12847         (rb_feed_podcast_properties_dialog_init) 
12848         (rb_feed_podcast_properties_dialog_finalize): 
12849         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
12850         (rb_metadata_init, rb_metadata_finalize): 
12851         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
12852         (rb_station_properties_dialog_init) 
12853         (rb_station_properties_dialog_finalize): 
12854         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
12855         (rb_daap_share_init, rb_daap_share_dispose): 
12857         Use g_type_class_add_private in all classes. Closes bug 313688.
12858         
12859 2005-11-30  James Livingston  <jrl@ids.org.au>
12861         patch by: William Jon McCann <mccann@jhu.edu> to use
12862         g_type_class_add_private in all classes. Closes bug 313688.
12864         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
12865         (rb_thread_finalize):
12866         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
12867         (rb_player_finalize):
12868         * rhythmdb/rhythmdb-property-model.c:
12869         (rhythmdb_property_model_class_init),
12870         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
12871         * rhythmdb/rhythmdb-query-model.c:
12872         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
12873         (rhythmdb_query_model_finalize):
12874         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
12875         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
12876         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
12877         (rhythmdb_finalize):
12878         * sources/rb-daap-source.c: (rb_daap_source_class_init),
12879         (rb_daap_source_init), (rb_daap_source_dispose):
12880         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12881         (rb_iradio_source_init), (rb_iradio_source_finalize):
12882         * sources/rb-library-source.c: (rb_library_source_class_init),
12883         (rb_library_source_init), (rb_library_source_finalize):
12884         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12885         (rb_playlist_source_init), (rb_playlist_source_dispose):
12886         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
12887         (rb_podcast_source_init), (rb_podcast_source_finalize):
12888         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
12889         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
12890         * sources/rb-sourcelist-model.h:
12891         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
12892         (rb_sourcelist_init), (rb_sourcelist_finalize):
12893         * sources/rb-sourcelist.h:
12894         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
12895         * widgets/rb-cell-renderer-rating.c:
12896         (rb_cell_renderer_rating_init),
12897         (rb_cell_renderer_rating_class_init),
12898         (rb_cell_renderer_rating_finalize):
12899         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
12900         (rb_druid_finalize):
12901         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12902         (rb_entry_view_init), (rb_entry_view_finalize):
12903         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
12904         (rb_header_finalize):
12905         * widgets/rb-load-failure-dialog.c:
12906         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
12907         (rb_load_failure_dialog_finalize):
12908         * widgets/rb-property-view.c: (rb_property_view_class_init),
12909         (rb_property_view_init), (rb_property_view_finalize):
12910         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
12911         (rb_rating_finalize):
12912         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
12913         (rb_search_entry_init), (rb_search_entry_finalize):
12914         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12915         (rb_simple_view_init), (rb_simple_view_finalize):
12916         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
12917         (rb_song_display_box_init), (rb_song_display_box_finalize):
12918         * widgets/rb-song-info.c: (rb_song_info_class_init),
12919         (rb_song_info_init), (rb_song_info_finalize):
12920         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
12921         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
12923 2005-11-30  James Livingston  <jrl@ids.org.au>
12925         * iradio/rb-station-properties-dialog.c:
12926         (rb_station_properties_dialog_init),
12927         (rb_station_properties_dialog_new):
12928         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
12929         * lib/rb-glade-helpers.h:
12930         * podcast/rb-feed-podcast-properties-dialog.c:
12931         (rb_feed_podcast_properties_dialog_init),
12932         (rb_feed_podcast_properties_dialog_new):
12933         * podcast/rb-podcast-properties-dialog.c:
12934         (rb_podcast_properties_dialog_init),
12935         (rb_podcast_properties_dialog_new):
12936         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
12937         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
12938         * sources/rb-library-source.c: (impl_get_config_widget):
12939         * sources/rb-playlist-source-recorder.c:
12940         (rb_playlist_source_recorder_init):
12941         * widgets/rb-song-info.c: (rb_song_info_construct_single),
12942         (rb_song_info_constructor): create a single rb_glade_boldify_label()
12943         in rb-glade-helpers, rather than having eight implementation
12944         throughout the code.
12946 2005-11-30  James Livingston  <jrl@ids.org.au>
12948         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
12949         * lib/rb-util.h:
12950         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
12951         move the duration->string function into rb-utils, as it gets used in a
12952         few places.
12954         patch by: William Jon McCann <mccann@jhu.edu>
12956         * data/glade/podcast-properties.glade:
12957         * podcast/rb-podcast-properties-dialog.c:
12958         (rb_podcast_properties_dialog_init),
12959         (rb_podcast_properties_dialog_update),
12960         (rb_podcast_properties_dialog_update_title),
12961         (rb_podcast_properties_dialog_update_feed),
12962         (rb_podcast_properties_dialog_update_duration),
12963         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
12964         info dialog look more like the song info dialog. Use the same "Feed"
12965         value that is displayed in the treeview (ie. the album field), displays
12966         the duration, uses units in the bitrate field, and sort the fields in
12967         the same order.
12969 2005-11-29  James Livingston  <jrl@ids.org.au>
12971         * rhythmdb/rhythmdb-marshal.list:
12972         * rhythmdb/rhythmdb.h:
12973         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
12974         (emit_load_error_idle), (rhythmdb_process_metadata_load),
12975         (entry_to_rb_metadata), (emit_save_error_idle),
12976         (action_thread_main): emit error signal when metadata write fails.
12978         * shell/rb-shell.c: (rb_shell_constructor),
12979         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
12980         "metadata save" error and display it to the user.
12982 2005-11-29  James Livingston  <jrl@ids.org.au>
12984         * data/ui/rhythmbox-ui.xml:
12985         * sources/rb-podcast-source.c:
12986         (rb_podcast_source_songs_show_popup_cb),
12987         (rb_podcast_source_cmd_download_post),
12988         (rb_podcast_source_cmd_cancel_download): split download and cancel
12989         download commands. Replace usage of "Post" with "Esisode". Fixes bug
12990         321653.
12992 2005-11-18  William Jon McCann  <mccann@jhu.edu>
12994         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
12995         title on alert dialogs per the HIG.
12997         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
12998         the term Burn.
12999         (free_song_list): Routine to free song list.
13000         (rb_playlist_source_recorder_finalize): Use free_song_list.
13001         (rb_playlist_source_recorder_add_from_model): Return FALSE
13002         if unable to add all songs.  Check that duration of all
13003         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
13004         Fixes #321753.
13006         * sources/rb-playlist-source-recorder.c (check_media_length)
13007         (rb_playlist_source_recorder_start): Only check the duration
13008         and current media if the playlist length is longer than a
13009         standard CD (74 min).  Otherwise, just let the Recorder do the
13010         check.
13011         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
13012         drive at init.
13013         (rb_recorder_set_device): Don't leak drives.
13014         (rb_recorder_get_media_length): Use drive that was already set.
13015         (rb_recorder_burn): Let the recorder handle checking media type/size.
13016         Fixes bug 321754.
13018 2005-11-29  James Livingston  <jrl@ids.org.au>
13020         * rhythmdb/rhythmdb-query-model.c:
13021         (rhythmdb_query_model_set_sort_order):
13022         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
13023         emitting the tree-model "resorted" signal.
13025         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
13026         (rb_entry_view_finalize), (rb_entry_view_set_property),
13027         (rb_entry_view_constructor), (rb_entry_view_resort_model):
13028         * widgets/rb-entry-view.h: add a function to resort the entry view,
13029         using the above function.
13031         * sources/rb-iradio-source.c:
13032         (rb_iradio_source_songs_view_sort_order_changed_cb):
13033         * sources/rb-library-source.c: (rb_library_source_finalize),
13034         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
13035         * sources/rb-playlist-source.c:
13036         (rb_playlist_source_songs_sort_order_changed_cb):
13037         * sources/rb-podcast-source.c:
13038         (rb_podcast_source_posts_view_sort_order_changed_cb),
13039         (rb_podcast_source_do_query): use the above function instead of
13040         re-creating the query model. This makes changing the sorting an order
13041         of magnitude faster, as it uses a single resorted signal rather than
13042         deleting and re-adding everything (which emits 2N signals). Closes bug
13043         315389.
13045 2005-11-29  James Livingston  <jrl@ids.org.au>
13047         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
13048         autosizing, which results in large speedups. Closes bug 312122.
13050         * po/ja.po: change the date format, so that it is a constant width
13052         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
13053         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13054         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
13055         (rb_entry_view_constructor): make columns use fixed widths,
13056         disable column autosizing, and enable fixed-height mode.
13058         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
13059         (rb_entry_view_get_time_date_column_sample):
13060         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
13061         and get the canonical date format for the locale.
13063 ============ Version 0.9.2
13065 2005-11-28  James Livingston  <jrl@ids.org.au>
13067         * configure.ac: bump version to 0.9.2
13068         * NEWS: update with changes for 0.9.2
13070 2005-11-28  James Livingston  <jrl@ids.org.au>
13072         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13074         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
13075         Disable saving, renaming and delting for DAAP playlists.
13076         Fixes bug 322627.
13078 2005-11-28  James Livingston  <jrl@ids.org.au>
13080         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
13081         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
13082         prevent bug 322619.
13084         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
13085         * sources/rb-removable-media-source.c:
13086         (rb_removable_media_source_class_init): fix ipod browser visibility
13087         problem.
13089 2005-11-28  James Livingston  <jrl@ids.org.au>
13091         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
13092         Avahi 0.6 support actually work. Fixes bug 322519.
13094 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
13096         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
13097         avahi is specified in --with-mdns
13099 2005-11-27  James Livingston  <jrl@ids.org.au>
13101         patch by: Bastien Nocera <hadess@hadess.net>
13103         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
13104         not the private one. Fixes bug 322485.
13106 2005-11-26  James Livingston  <jrl@ids.org.au>
13108         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
13109         Avahi 0.6, as well as 0.5.
13111         * configure.ac:
13112         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
13113         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
13114         (add_service):
13116 2005-11-25  James Livingston  <jrl@ids.org.au>
13118         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
13119         321926.
13121 2005-11-25  James Livingston  <jrl@ids.org.au>
13123         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
13124         correct type for checking the date against 0. Stops a warning when
13125         saving metadata.
13127 2005-11-25  James Livingston  <jrl@ids.org.au>
13129         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
13130         adjustment to be inside the element's limits. Without this songs that
13131         have large ReplayGain values will recieve no increase because they are
13132         outside the acceptable range, causing them to remain quiet.
13134 2005-11-25  James Livingston  <jrl@ids.org.au>
13136         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
13137         * sources/rb-daap-source.c: (rb_daap_source_class_init):
13138         * sources/rb-ipod-source.c:
13139         * sources/rb-source.h:
13140         * sources/rb-library-source.h:
13141         * sources/rb-library-source.c: (rb_library_source_class_init),
13142         (rb_library_source_constructor),
13143         (rb_library_source_has_first_added_column),
13144         (rb_library_source_has_drop_support):
13145         * sources/rb-removable-media-source.c:
13146         (rb_removable_media_source_class_init): Make library-derived sources
13147         not show the Date Added column, as it doesn't make sense. Fixes bug
13148         322269.
13149         Move some of the feature funcs from the ipod and audio cd sources up to
13150         the removable media source.
13152 2005-11-24  James Livingston  <jrl@ids.org.au>
13154         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
13155         errors. oops.
13157 2005-11-24  James Livingston  <jrl@ids.org.au>
13159         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
13160         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
13161         (rb_iradio_source_constructor): Chain up dispose method and use
13162         G_DEFINE_TYPE
13164 2005-11-24  James Livingston  <jrl@ids.org.au>
13166         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
13167         mistake in the last commit that can cause crashes.
13169 2005-11-24  James Livingston  <jrl@ids.org.au>
13171         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
13172         instead of g_printerr.
13174         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
13175         rb_debug instead of g_warning. The message happens every time for
13176         removable media/daap shares, so it's not unusual.
13178 2005-11-24  James Livingston  <jrl@ids.org.au>
13180         patch by: Tom Parker <palfrey@tevp.net>
13182         * configure.ac: fix libsoup test for enabling daap
13184 2005-11-23  James Livingston  <jrl@ids.org.au>
13186         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
13187         (rb_query_creator_init), (rb_query_creator_constructor),
13188         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
13189         empty row to queries with no criteria. Fixes bug 322078. use
13190         G_DEFINE_TYPE.
13192 2005-11-23  James Livingston  <jrl@ids.org.au>
13194         patch by:  <baptiste.millemathias@gmail.com>
13196         * help/C/quick-reference.xml: update the quick reference to have the
13197         correct key bindings.
13199 2005-11-22  James Livingston  <jrl@ids.org.au>
13201         * sources/rb-library-source.c: (genres_selection_reset_cb),
13202         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
13203         reset the query when all browser selections are removed.
13205 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
13207         * podcast/rb-podcast-manager.c:
13208         (rb_podcast_manager_db_entry_deleted_cb):
13209         Use a custom loop to remove podcast posts, rather than
13210         gtk_tree_model_foreach(), as deleting the entries within
13211         that loop causes the iterator to return the first entry
13212         twice.  Instead, we need to find the next entry before
13213         removing the current one. Fixes bug 321956.
13214         (rb_podcast_manager_entry_remove_cb): No longer needed.
13216 2005-11-22  James Livingston  <jrl@ids.org.au>
13218         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13219         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
13220         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
13222 2005-11-22  James Livingston  <jrl@ids.org.au>
13224         * sources/rb-podcast-source.c:
13225         (rb_podcast_source_post_date_cell_sort_func),
13226         (rb_podcast_source_post_status_cell_sort_func),
13227         (rb_podcast_source_post_feed_cell_sort_func):
13228         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
13229         (rb_entry_view_album_sort_func),
13230         (rb_entry_view_double_ceiling_sort_func),
13231         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
13232         the entry's location as a last resort when sorting, so the sort order
13233         is stable. This will stop entries moving around when two entries have
13234         the same sorting, and one of them gets played.
13236 2005-11-22  James Livingston  <jrl@ids.org.au>
13238         * daapsharing/rb-daap-connection.c:
13239         (rb_daap_connection_class_init), (rb_daap_connection_init),
13240         (connection_get_password), (build_message),
13241         (http_response_handler), (http_get), (handle_server_info),
13242         (handle_login), (handle_update), (handle_database_info),
13243         (handle_song_listing), (handle_playlists),
13244         (handle_playlist_entries), (rb_daap_connection_new),
13245         (rb_daap_connection_constructor), (rb_daap_connection_logout),
13246         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
13247         (rb_daap_connection_get_headers),
13248         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
13249         (rb_daap_connection_set_property),
13250         (rb_daap_connection_get_property):
13251         * daapsharing/rb-daap-connection.h:
13252         * sources/rb-daap-source.c: (rb_daap_source_dispose),
13253         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
13254         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
13255         of destroying the object when it is going to be used by a callback and
13256         fixes a double-free. Fixes bugs 321930 and 322007.
13258 2005-11-22  James Livingston  <jrl@ids.org.au>
13260         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
13261         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
13262         notification if there aren't any. Fixes bug 321968.
13264 2005-11-22  James Livingston  <jrl@ids.org.au>
13266         * rhythmdb/rhythmdb-property-model.c:
13267         (rhythmdb_property_model_set_property),
13268         (rhythmdb_property_model_finalize),
13269         (rhythmdb_property_model_compare),
13270         (rhythmdb_property_model_insert),
13271         (rhythmdb_property_model_delete_prop): Fix property model sorting
13272         where the display and sort keys are different. Fixes bug 321980.
13274 2005-11-22  James Livingston  <jrl@ids.org.au>
13276         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
13277         when import as a file or passed on the command line, and load them as
13278         playlists.
13280 2005-11-22  James Livingston  <jrl@ids.org.au>
13282         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
13284         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
13285         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
13286         a broken daap server. Fixes bug 321919.
13288 2005-11-22  James Livingston  <jrl@ids.org.au>
13290         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
13291         drag-and-drop for both the episodes and feeds list.
13292         
13293         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
13294         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
13295         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
13297         * widgets/rb-property-view.c: (rb_property_view_class_init),
13298         (rb_property_view_set_property), (rb_property_view_get_property),
13299         (rb_property_view_new), (rb_property_view_constructor):
13300         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
13301         (rb_simple_view_new), (rb_simple_view_constructor):
13302         * widgets/rb-simple-view.h: add a "draggable" property to property
13303         views and set it to false for the feed list. Fixes bug 321284.
13305 2005-11-22  James Livingston  <jrl@ids.org.au>
13307         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
13309         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
13310         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
13311         * sources/rb-ipod-source.c: (add_rb_playlist):
13312         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
13313         (rb_playlist_source_set_property),
13314         (rb_playlist_source_get_property), (rb_playlist_source_new),
13315         (impl_receive_drag), (rb_playlist_source_add_location),
13316         (rb_playlist_source_new_from_xml):
13317         * sources/rb-playlist-source.h: give playlists and (optional)
13318         entry-type, and reject entries that don't match. Fixes bug 322006.
13320 2005-11-21  James Livingston  <jrl@ids.org.au>
13322         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
13323         (rb_source_header_finalize): remove the weak references when the
13324         source header is finalised. Stops the callbacks being called after the
13325         object is destroyed.
13327 2005-11-21  James Livingston  <jrl@ids.org.au>
13329         * shell/main.c: (main): don't try to acquite bonobo/dbus when
13330         --no-registration was passed. It causes warnings that make it
13331         impossible to run with --no-registration --g-fatal-warnings
13333 2005-11-21  James Livingston  <jrl@ids.org.au>
13335         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
13336         of strings when they are still in use. Fixes bug 321547.
13338         (rb_daap_connection_destroy): fix memory leak
13340 2005-11-21  James Livingston  <jrl@ids.org.au>
13342         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
13343         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
13344         (rb_daap_mdns_resolve_cancel), (publish_cb),
13345         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
13346         support.
13348 2005-11-21  James Livingston  <jrl@ids.org.au>
13350         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
13351         sorting by genre
13353 2005-11-20  James Livingston  <jrl@ids.org.au>
13355         * podcast/rb-podcast-manager.c:
13356         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
13357         that we don't leak thread structures. Fixes bug 321636, and probably
13358         321775.
13360 2005-11-20  James Livingston  <jrl@ids.org.au>
13362         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
13363         (lookup_cd):
13364         * podcast/rb-podcast-manager.c: (start_job),
13365         (rb_podcast_manager_db_entry_deleted_cb),
13366         (rb_podcast_manager_entry_remove_cb):
13367         * podcast/rb-podcast-parse.c: (rb_insert_item),
13368         (rb_podcast_parse_load_feed):
13369         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
13370         * shell/rb-removable-media-manager.c:
13371         (rb_removable_media_manager_append_media_source):
13372         * shell/rb-shell.c: (add_to_library_response_cb):
13373         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
13374         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
13375         * sources/rb-iradio-source.c:
13376         (stations_view_drag_data_received_cb):
13377         * sources/rb-library-source.c: (string_list_equal),
13378         (impl_get_extra_views), (impl_receive_drag):
13379         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
13380         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
13381         (impl_receive_drag):
13382         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
13383         (rb_entry_view_append_column_custom), (harvest_entries):
13384         * widgets/rb-property-view.c:
13385         (rb_property_view_selection_changed_cb):
13386         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
13387         switch from using g_list_append to g_list_prepend. This changes
13388         operations from O(n^2) to O(n), which in cases like deleting a lot of
13389         tracks can give huge improvements in speed. Closes bug 321696.
13391 2005-11-20  James Livingston  <jrl@ids.org.au>
13393         * sources/rb-sourcelist.c: (rb_sourcelist_init),
13394         (rb_sourcelist_update_expander_visibility): fix indenting of child
13395         sources.
13397 2005-11-20  James Livingston  <jrl@ids.org.au>
13399         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
13400         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
13401         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
13402         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
13403         (add_service), (entry_group_cb): dynamically allocate memory, rather
13404         than using static variables.
13406         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
13407         re-enable the daap share if the name hasn't changed.
13408         * shell/rb-shell-preferences.c:
13409         (share_name_entry_focus_out_event_cb): don't ask the daap share to
13410         change it's name when the checkbox is disabled. Fixed bug 321748.
13412 2005-11-18  James Livingston  <jrl@ids.org.au>
13414         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
13415         as hidden if it is on the current workspace.
13417 2005-11-17  William Jon McCann  <mccann@jhu.edu>
13419         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
13420         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
13421         (rb_podcast_properties_dialog_parse_time): 
13422         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
13423         (rb_feed_podcast_properties_dialog_parse_time):
13424         Rework the way the last mod time strings are created.  It was using
13425         thread unsafe functions, not creating value UTF, and not not checking
13426         the value of the result before modifying it.  This new method fixes
13427         these problems.
13429 2005-11-18  James Livingston  <jrl@ids.org.au>
13431         Don't reset the search box when viewing a different source, because it
13432         will change what is being played. Closes 321593.
13434         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
13435         the search box
13437         * shell/rb-source-header.c: (rb_source_header_class_init),
13438         (rb_source_header_init), (rb_source_header_finalize): use
13439         G_DEFINE_TYPE.
13441         (rb_source_header_set_property),
13442         (rb_source_header_source_weak_destroy_cb),
13443         (rb_source_header_search_cb): store the search text when leaving a
13444         source and put it in the search box when viewing it again.
13446 2005-11-18  James Livingston  <jrl@ids.org.au>
13448         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13449         (save_entry):
13450         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
13451         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
13452         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
13453         time stamp.
13455         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
13456         last-seen as the timestamp of the last update of the feed. Don't
13457         re-add episodes that have been deleted. Closes 319759.
13459 2005-11-18  James Livingston  <jrl@ids.org.au>
13461         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
13462         that don't have the day name at the start. Closes 321645.
13464 2005-11-18  James Livingston  <jrl@ids.org.au>
13466         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
13467         (rb_podcast_manager_copy_post),
13468         (rb_podcast_manager_get_podcast_dir):
13469         * podcast/rb-podcast-manager.h:
13470         * sources/rb-podcast-source.c: (impl_get_config_widget),
13471         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
13472         download location switching to / if the prefs were opened before
13473         downloading an episode. Closes 321611.
13475 2005-11-18  James Livingston  <jrl@ids.org.au>
13477         * data/glade/podcast-new.glade:
13478         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
13479         (rb_new_podcast_dialog_set_property),
13480         (rb_new_podcast_dialog_get_property),
13481         (rb_new_podcast_dialog_response_cb),
13482         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
13483         for entering new podcast urls in. Closes bug 321610.
13485 2005-11-18  James Livingston  <jrl@ids.org.au>
13487         * sources/rb-podcast-source.c: (construct_query_from_selection),
13488         (rb_podcast_source_do_query): allow podcast list to be re-sorted
13489         without restarting RB. Closes bug 321612.
13491 2005-11-18  James Livingston  <jrl@ids.org.au>
13493         * widgets/rb-entry-view.c: (set_column_visibility),
13494         (rb_entry_view_sync_columns_visible): when changing visibility of one
13495         column, don't hide and re-show all the others. Makes a show/hide
13496         column operation a lot faster.
13498 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
13500         Closes bug 321702.
13502         * iradio/rb-station-properties-dialog.c
13503          (rb_station_properties_dialog_update_bitrate):
13504         Mark the bitrate value as being kbps, using the same
13505         translatable format string as rb-song-info.c
13507         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
13508          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
13510         * shell/rb-shell-player.c (info_available_cb):
13511          Use RB_METADATA_FIELD_BITRATE to update the iradio
13512          station's bitrate value.
13514 2005-11-17  James Livingston  <jrl@ids.org.au>
13516         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
13518         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
13519         free a NULL date.
13521 2005-11-17  James Livingston  <jrl@ids.org.au>
13523         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
13525         * lib/rb-stock-icons.c: emit a single warning rather than multiple
13526         assertions. Lookup the icon size correctly.
13528 2005-11-16  William Jon McCann  <mccann@jhu.edu>
13530         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
13531         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
13532         Fix build errors.
13534 2005-11-16  James Livingston  <jrl@ids.org.au>
13536         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
13537         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
13538         (rb_shell_preferences_sync_column_button): block the toggle signal of
13539         the column checkboxes while setting their initial state. This stops
13540         the visibility being re-set, which causes a lot of time being spent
13541         measuring the columns aagin when opening the prefs window.
13543         Use G_DEFINE_TYPE.
13545 2005-11-16  James Livingston  <jrl@ids.org.au>
13547         * sources/rb-sourcelist.c: (rb_sourcelist_init),
13548         (rb_sourcelist_edit_source_name): don't assume that the editable
13549         source name is in the first column, because it isn't. Fixes bug
13550         320137.
13552 2005-11-16  James Livingston  <jrl@ids.org.au>
13554         * daapsharing/rb-daap-mdns.h:
13555         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
13556         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
13557         parts can know why operations failed. Avahi can report that the daemon
13558         was not running. Howl doesn't do this (yet).
13559         
13560         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
13561         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
13562         (browse_cb): don't display mdns errors to the user, if it wa because
13563         the daemon was not running.
13565 2005-11-16  James Livingston  <jrl@ids.org.au>
13567         * rhythmdb/rhythmdb-property-model.c:
13568         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
13569         (rhythmdb_property_model_compare),
13570         (rhythmdb_property_model_insert),
13571         (rhythmdb_property_model_insert_prop),
13572         (rhythmdb_property_model_delete),
13573         (rhythmdb_property_model_delete_prop),
13574         (rhythmdb_property_model_get_value): use RBRefStrings rather than
13575         copying the string and re-creating the sort key. Saves a little bit of
13576         memory and time.
13578         (rhythmdb_property_model_perform_sync),
13579         (rhythmdb_property_model_sync): perform the count sync in an idle
13580         callback, so that it doesn't have to be re-run once per value when
13581         loading.
13583 2005-11-16  James Livingston  <jrl@ids.org.au>
13585         * rhythmdb/rhythmdb-query-model.c:
13586         (rhythmdb_query_model_entry_deleted_cb),
13587         (rhythmdb_query_model_remove_entry): remove deleted entries from the
13588         limited list. Stops problems if they are deleted, and then things on
13589         the main list are
13591 2005-11-16  James Livingston  <jrl@ids.org.au>
13593         * NEWS: update NEWS
13595         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
13596         button's minimise-to-tray action
13598 2005-11-16  James Livingston  <jrl@ids.org.au>
13600         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
13601         leak. Disable adding newly created files for now, because it doesn't
13602         work properly.
13604         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
13605         (rb_sourcelist_model_finalize):
13606         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
13607         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
13609 2005-11-16  James Livingston  <jrl@ids.org.au>
13611         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
13612         problem where a GError* wasn't being set to NULL. Actually check the
13613         result.
13615 2005-11-16  James Livingston  <jrl@ids.org.au>
13617         * doc/reference/tmpl/rb-entry-view.sgml:
13618         * doc/reference/tmpl/rhythmbox-unused.sgml:
13619         * doc/reference/tmpl/rhythmdb-query-model.sgml:
13620         * doc/reference/tmpl/rhythmdb.sgml:
13621         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
13622         docs, including the patch that was on bug 
13624         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
13625         API, because it should only be used by RhythmDB itself.
13627 2005-11-16  James Livingston  <jrl@ids.org.au>
13629         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
13630         pausing by middle clicking on the tray icon.
13632 2005-11-15  James Livingston  <jrl@ids.org.au>
13634         * configure.ac: enable audioscrobbler support by default, if libsoup
13635         is present.
13637 2005-11-15  James Livingston  <jrl@ids.org.au>
13639         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13640         Closes bug 321157.
13642         * configure.ac:
13643         * daapsharing/rb-daap-connection.c: (build_message),
13644         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
13645         support gzip encoded daap connections.
13647         (handle_song_listing): fix leak
13649 2005-11-15  James Livingston  <jrl@ids.org.au>
13651         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
13652         * sources/rb-podcast-source.c:
13653         (rb_podcast_source_post_date_cell_data_func): make the date format
13654         translatable again, so that translators can choose the best format for
13655         their locale (%x is huge in some locales)
13657 2005-11-15  James Livingston  <jrl@ids.org.au>
13659         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
13660         (end_job): mark podcast episodes as failed, if the metadata load
13661         fails. This will prevent people playing non-audio enclosures, helping
13662         stop bug 320366.
13664 2005-11-14  James Livingston  <jrl@ids.org.au>
13666         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
13667         video sink to fakesink. This will stop problems (potentially crashers)
13668         that will occur if the file contains a video stream.
13670         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
13671         rather than using magic numbers everywhere.
13673         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
13674         * sources/rb-podcast-source.c:
13675         (rb_podcast_source_songs_show_popup_cb),
13676         (rb_podcast_source_cmd_download_post),
13677         (rb_podcast_source_post_status_cell_data_func),
13678         (rb_podcast_source_entry_activated_cb): use the above constants.
13680         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13681         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
13682         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
13683         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
13684         (cancel_job), (download_progress_cb),
13685         (rb_podcast_manager_cancel_download),
13686         (rb_podcast_manager_insert_feed): use the constants, and fix a
13687         trhead-safety issue.
13689 2005-11-14  Bastien Nocera  <hadess@hadess.net>
13691         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
13692         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
13693         entry-changed events after stats on startup, fixes entry deleted from
13694         filtered views not disappearing
13696 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
13698         Fix rhythmdb query model refcount and polling problems. Closes bug
13699         321410.
13701         * rhythmdb/rhythmdb-property-model.c:
13702         (rhythmdb_property_model_finalize):
13703          Unref the query model if we have one.
13705         * rhythmdb/rhythmdb-query-model.h:
13706          Remove poll and cancel methods.  Query cancellation
13707          never did anything anyway.
13709         * rhythmdb/rhythmdb-query-model.c:
13710         (rhythmdb_query_model_init): Remove GAsyncQueues.
13711          Replace the GAsyncQueue-based update processing
13712          with a simpler g_idle_add approach; still has the
13713          same queueing properties, but now we don't poll the
13714          model forever and updates are processed immediately.
13716         (_unref_entry), (rhythmdb_query_model_finalize):
13717          Unref DB entries when finalized
13719         (rhythmdb_query_model_has_pending_changes):
13720          Use our own counter to decide if there are updates pending
13722         (rhythmdb_query_model_process_update), (idle_process_update):
13723          Process updates using g_idle_add, or directly if possible
13725         (rhythmdb_query_model_signal_complete),
13726         (rhythmdb_query_model_add_entries):
13727          Change to new update processing method
13729         (idle_poll_model), (rhythmdb_query_model_poll):
13730          Remove GAsyncQueue-based update processing.
13732         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
13733          No need to poll the model any more - updates are processed
13734          directly for synchronous queries.
13736         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
13737          Property model needs to be unref'd here
13739         * sources/rb-library-source.c: (rb_library_source_do_query):
13740          Don't try to cancel the active query (it never worked anyway),
13741          remove obsolete poll call, unref property models as required,
13742          and don't unref the cached 'all' query, since hold on to it.
13743          We unref it when the sort order changes, which forces the query
13744          to be rerun.
13746         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13747          Unref the property model as required
13749         (rb_podcast_source_do_query):
13750          Treat any query with no selected feeds and no search text as
13751          an 'all' query.  Unref query models except for the cached
13752          'all' query, since we hold on to that.
13754         (rb_podcast_source_cmd_update_all):
13755          Unref the property model as required.
13757         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
13758          Don't try to cancel the query (it never worked anyway)
13760         (rb_entry_view_poll_model):
13761          No need for this any more.
13763         * widgets/rb-entry-view.h:
13764          Remove obsolete function rb_entry_view_poll_model
13766         * widgets/rb-property-view.c: (rb_property_view_set_property):
13767          Ref and unref the property model as required.
13769 2005-11-14  James Livingston  <jrl@ids.org.au>
13771         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13773         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
13774         for error. Closes bug 321416.
13776 2005-11-14  James Livingston  <jrl@ids.org.au>
13778         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13780         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
13781         a crasher if a feed's last-post value isn't set. Closes bug 321353.
13783 2005-11-14  James Livingston  <jrl@ids.org.au>
13785         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
13786         * shell/rb-removable-media-manager.c:
13787         (rb_removable_media_manager_set_uimanager):
13788         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
13789         translation domain for GTK action groups.
13791 2005-11-12  James Livingston  <jrl@ids.org.au>
13793         * po/POTFILES.in: remove the old station-new files
13795 2005-11-12  James Livingston  <jrl@ids.org.au>
13797         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
13798         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
13799         (save_entry): cause Rhythmbox to re-read the metadata from a file,
13800         when upgrading from a pre-Date-supporting version to a version that
13801         supports Date metadata. Closes bug 320760.
13803 2005-11-12  James Livingston  <jrl@ids.org.au>
13805         Add "update all podcast feeds" command. Closes bug 319954.
13807         * data/ui/rhythmbox-ui.xml: add to source context menu.
13809         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13810         (register_action_group), (rb_podcast_source_cmd_download_post),
13811         (rb_podcast_source_cmd_delete_feed),
13812         (rb_podcast_source_cmd_properties_feed),
13813         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
13814         rather than the shell.
13816         (rb_podcast_source_update_feed_func),
13817         (rb_podcast_source_cmd_update_all): update every feed.
13819 2005-11-11  James Livingston  <jrl@ids.org.au>
13821         * shell/rb-shell-player.c: (rb_shell_player_class_init),
13822         (rb_shell_player_constructor), (rb_shell_player_finalize):
13823         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
13824         others follow the HIG recommentations.
13826 2005-11-11  James Livingston  <jrl@ids.org.au>
13828         * podcast/rb-podcast-manager.c:
13829         (rb_podcast_manager_subscribe_feed): check that the url is valid,
13830         before trying to use it.
13832 2005-11-11  James Livingston  <jrl@ids.org.au>
13834         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
13835         (rb_entry_view_append_column): When sorting by year, sort by album
13836         within a particular year.
13838 2005-11-11  James Livingston  <jrl@ids.org.au>
13840         * NEWS: updates
13842 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
13843         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
13844         spelling of "Language."
13846 2005-11-11  James Livingston  <jrl@ids.org.au>
13848         * rhythmdb/rhythmdb-property-model.c:
13849         (rhythmdb_property_model_row_inserted_cb),
13850         (rhythmdb_property_model_prop_changed_cb),
13851         (rhythmdb_property_model_entry_removed_cb),
13852         (rhythmdb_property_model_insert_prop),
13853         (rhythmdb_property_model_sync): display the count after the "All"
13854         entry of a property model.
13856         * widgets/rb-property-view.c: (rb_property_view_class_init),
13857         (rb_property_view_finalize), (rb_property_view_constructor): use
13858         G_DEFINE_TYPE
13860 2005-11-10  James Livingston  <jrl@ids.org.au>
13862         * rhythmdb/rhythmdb-query-model.c:
13863         (rhythmdb_query_model_remove_entry):
13864         * rhythmdb/rhythmdb-query-model.h: make
13865         rhythmdb_query_model_remove_entry return whether the entry was in the
13866         model.
13868         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
13869         don't add non-SONG entries, as it doesn't really work and can cause
13870         crashes.
13872         (rb_playlist_source_remove_location): assert if the playlist and model
13873         differ on whether the entry is in the playlist
13875 2005-11-10  James Livingston  <jrl@ids.org.au>
13877         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13878         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
13879         (rb_podcast_manager_thread_parse_feed),
13880         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
13881         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
13882         emulating one with a list and mutex. Fixes a couple of threading
13883         issues.
13884         
13885         (rb_podcast_manager_insert_feed): fix some problems with ignoring
13886         updated feeds.
13887         
13888         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
13889         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
13890         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
13891         * podcast/rb-podcast-parse.c: (rb_insert_item),
13892         (rb_podcast_parse_channel_free):
13893         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
13894         fix some typos, and make a bit of code clearer.
13896 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
13898         Make the "delete podcast" dialog better. Closes bug 320899.
13900         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
13901         Add PROP_WINDOW for rb_shell_get_property so we can access the
13902         GtkWindow widget of the main window. 
13903         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
13904         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
13905         podcast feed delete dialog less confusing as well.
13907 2005-11-09  James Livingston  <jrl@ids.org.au>
13909         * shell/rb-removable-media-manager.c:
13910         (rb_removable_media_manager_mount_volume),
13911         (rb_removable_media_manager_scan): Fix a crasher where we were getting
13912         NULL for a cd volume.
13914 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13916         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
13917         method return a gboolean indicating whether the changes
13918         to the entry have already been applied.
13920         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
13921         only modify the entry if impl_entry_set returns FALSE.
13923         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
13924         When setting the location of an entry, update the
13925         hash table mapping locations to entries.
13927 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13929         * data/glade/Makefile.am:
13930         * iradio/Makefile.am:
13931           Remove 'new station' dialog.
13933         * iradio/rb-station-properties-dialog.h:
13934         * sources/rb-iradio-source.c: (impl_song_properties):
13935         * shell/rb-shell.c: (rb_shell_cmd_new_station):
13936          Add 'new station' mode parameter to
13937          rb_station_properties_dialog_new.
13939         * (rb_station_properties_dialog_response_cb),
13940         (rb_station_properties_dialog_create_station):
13941          When in 'new station' mode, create the station
13942          when OK button is pressed.
13944         * iradio/rb-station-properties-dialog.c:
13945         (rb_station_properties_dialog_location_changed_cb):
13946          Only enable OK button if a location is specified
13947         (rb_station_properties_dialog_init),
13948         (rb_station_properties_dialog_new),
13949         (rb_station_properties_dialog_update),
13950         (rb_station_properties_dialog_update_title),
13951         (rb_station_properties_dialog_rated_cb),
13952         (rb_station_properties_dialog_update_play_count),
13953         (rb_station_properties_dialog_update_bitrate),
13954         (rb_station_properties_dialog_update_last_played),
13955         (rb_station_properties_dialog_update_rating),
13956         (rb_station_properties_dialog_update_playback_error),
13957         (rb_station_properties_dialog_show):
13958          Handle 'new station' mode, where there's no current
13959          station to edit.
13961 2005-11-08  James Livingston  <jrl@ids.org.au>
13963         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
13964         keybinding for track columns consistent between library and playlist
13965         sources.
13967 2005-11-07  James Livingston  <jrl@ids.org.au>
13969         * data/ui/rhythmbox-ui.xml:
13970         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
13971         "Edit" item to playlist menu. Closes bug 311470.
13973 2005-11-07  James Livingston  <jrl@ids.org.au>
13975         patch by: Jaap A. Haitsma <jaap@haitsma.org>
13977         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
13978         confirmation to save dialogs, with gtk 2.8 or higher.
13980 2005-11-07 James Livingston  <jrl@ids.org.au>
13981         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
13982         requirement to a general on, because people are going to have it for
13983         the other dependencies.
13985 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
13987         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
13988         delete dialog less confusing.  Use HIG recommended button order.
13989         Closes bug 320840.
13991 2005-11-06  James Livingston  <jrl@ids.org.au>
13993         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
13994         drag-and-drop error.
13995         
13996         * sources/rb-library-source.c: (rb_library_source_constructor): only
13997         add drag-and-drop for the Library itself, subclasses can add support
13998         themselves if they want it.
14000         * sources/rb-removable-media-source.c:
14001         (rb_removable_media_source_class_init): by default removable media
14002         sources do not support dnd
14004 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
14006         * data/glade/station-properties.glade:
14007          Add box containing error icon and error message label
14008         * iradio/rb-station-properties-dialog.c:
14009         (rb_station_properties_dialog_class_init),
14010         (rb_station_properties_dialog_finalize):
14011          Change this class to use G_DEFINE_TYPE
14012         (rb_station_properties_dialog_init),
14013         (rb_station_properties_dialog_update),
14014         (rb_station_properties_dialog_update_playback_error):
14015          Display error icon and message when there is one, and hide the error
14016          box otherwise.
14017         (rb_station_properties_dialog_show): Hack widget show
14018          method to update the visibility of the error info box when showing
14019          the widget.  Otherwise the icon is displayed all the time (same thing
14020          is done in rb-song-info). Closes bug 320749.
14022 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
14024         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
14025         parsing of the duration of podcast episodes from the feed. Closes bug
14026         320748.
14028 2005-11-05  James Livingston  <jrl@ids.org.au>
14030         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
14031         release date metadata ("Year"). Closes bug 166093.
14033         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
14034         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
14035         (rb_metadata_gst_add_tag_data):
14036         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14037         (save_entry):
14038         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
14039         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
14040         (set_props_from_metadata), (rhythmdb_entry_set_internal),
14041         (rhythmdb_prop_get_type):
14042         * rhythmdb/rhythmdb.h: add support for "date" property
14043         
14044         * data/glade/general-prefs.glade:
14045         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
14046         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
14047         (rb_entry_view_append_column):
14048         * widgets/rb-entry-view.h:
14049         * sources/rb-library-source.c: (rb_library_source_constructor):
14050         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
14051         "Year" colums
14053         * data/glade/song-info.glade:
14054         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
14055         (rb_song_info_construct_single), (rb_song_info_constructor),
14056         (rb_song_info_populate_dialog), (rb_song_info_update_year),
14057         (rb_song_info_sync_entry_single): Add "Year" to song info window
14059         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
14060         sorted by year.
14062 2005-11-05  James Livingston  <jrl@ids.org.au>
14064         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
14065         description if it's very long.
14067 2005-11-05  James Livingston  <jrl@ids.org.au>
14069         pathc by: Artem Baguinski <femistofel@gmail.com>
14071         * help/C/Makefile.am:
14072         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
14073         Closes bug 320613.
14075 2005-11-05  James Livingston  <jrl@ids.org.au>
14077         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14079         * daapsharing/rb-daap-share.c: (write_next_chunk),
14080         (message_finished), (databases_cb): Use chunked file loading and
14081         sending in the DAAP server. This should reduce the amount of memory
14082         required to send files to the client.
14084 2005-11-05  James Livingston  <jrl@ids.org.au>
14086         * configure.ac: make the nautilus_burn_drive_door_is_open detection
14087         work better on some systems. Closes 320622.
14089 2005-11-05  James Livingston  <jrl@ids.org.au>
14091         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
14092         homepage, so that users can find out what AudioScrobbler is. Add
14093         access keys.
14095         * data/glade/daap-prefs.glade:
14096         * data/glade/general-prefs.glade:
14097         * data/glade/library-prefs.glade: make the indent be more consistent
14099         * data/glade/podcast-prefs.glade: 
14100         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14101         (impl_get_config_widget): move thing out of code into glade, where
14102         they belong
14104 2005-11-05  James Livingston  <jrl@ids.org.au>
14106         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
14107         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
14109 2005-11-04  James Livingston  <jrl@ids.org.au>
14111         * configure.ac: don't print DAAP configure info twice
14113 2005-11-04  James Livingston  <jrl@ids.org.au>
14115         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
14116         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
14117         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
14118         #ifdefs, since we removed the symbol. Oops
14120 2005-11-04  James Livingston  <jrl@ids.org.au>
14122         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
14123         after the connect line, not before. Oops.
14125 2005-11-04  James Livingston  <jrl@ids.org.au>
14127         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
14128         fix some warnings
14130 2005-11-03  James Livingston  <jrl@ids.org.au>
14132         * NEWS: update the news file
14134         * data/glade/general-prefs.glade: make the prefs refer to "time" not
14135         "duration" column.
14137         * data/ui/rhythmbox-ui.xml:
14138         * shell/rb-playlist-manager.c:
14139         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14140         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
14141         and "delete" for feeds.
14143 2005-11-03  James Livingston  <jrl@ids.org.au>
14145         * sources/rb-podcast-source.c: (impl_delete),
14146         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
14147         feed. Closes 319760.
14149 2005-11-03  James Livingston  <jrl@ids.org.au>
14151         Don't start playing from the remote site when a un-downloaded podcast
14152         is activated. Closes 319983.
14153         
14155         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
14156         (write_job_data), (download_progress_cb): write the local location as
14157         soon as any data is recieved
14159         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
14160         the mountpoint to NULL for podcast episodes that haven't yet been
14161         downloaded.
14162         
14163         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
14164         start playing a podcast if it hasn't been downloaded.
14165         
14166         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
14167         (rb_podcast_source_entry_activated_cb): begin downloading when the
14168         podcast is activated.
14170 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
14172         * data/glade/general-prefs.glade:  Fix capitalization.
14173         * shell/rb-removable-media-manager.c:  Add a mnemonic.
14174         * sources/rb-podcast-source.c:
14175         (rb_podcast_source_songs_show_popup_cb),
14176         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
14178 2005-11-03  James Livingston  <jrl@ids.org.au>
14180         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
14182         * shell/rb-removable-media-manager.c:
14183         (rb_removable_media_manager_mount_volume): don't check network or
14184         autofs mounts, as they're not going to be removable media. Stops
14185         sending lots of warnings to syslog. Closes 320571.
14187         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
14188         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
14189         320570.
14191 2005-11-03  James Livingston  <jrl@ids.org.au>
14193         Add support for playing audio CDs. Metadata lookup is done using
14194         SoundJuicer's MusicBrainz lookup code, which can be switched to using
14195         the library when it gets broken out of S-J.
14196         
14197         Add a "rescan media" menu item, and commands for ejecting removable
14198         media.
14200         Move nautilus-cd-burner from optional to required depenency.
14202         * configure.ac:
14203         * data/ui/rhythmbox-ui.xml:
14204         * metadata/Makefile.am:
14205         + metadata/sj-error.c:
14206         + metadata/sj-error.h:
14207         + metadata/sj-metadata-marshal.list:
14208         + metadata/sj-metadata-musicbrainz.c:
14209         + metadata/sj-metadata-musicbrainz.h:
14210         + metadata/sj-metadata.c:
14211         + metadata/sj-metadata.h:
14212         + metadata/sj-structures.c:
14213         + metadata/sj-structures.h:
14214         * player/Makefile.am:
14215         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
14216         * po/POTFILES.in:
14217         * shell/Makefile.am:
14218         * shell/rb-removable-media-manager.c:
14219         (rb_removable_media_manager_dispose), (poll_tray_opened),
14220         (end_cd_drive_monitor), (begin_cd_drive_monitor),
14221         (rb_removable_media_manager_load_media),
14222         (rb_removable_media_manager_mount_volume),
14223         (rb_removable_media_manager_cmd_eject_medium),
14224         (rb_removable_media_manager_cmd_scan_media),
14225         (rb_removable_media_manager_check_volume),
14226         (rb_removable_media_manager_unmount_volume_swap),
14227         (rb_removable_media_manager_scan):
14228         * sources/Makefile.am:
14229         + sources/rb-audiocd-source.c:
14230         + sources/rb-audiocd-source.h:
14231         * tests/Makefile.am:
14233 2005-11-02  James Livingston  <jrl@ids.org.au>
14235         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14237         * sources/rb-iradio-source.c:
14238         (stations_view_drag_data_received_cb):
14239         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
14240         don't crash when the second uri is missing frm the drop, which
14241         browsers sometimes do.
14243 2005-11-01  James Livingston  <jrl@ids.org.au>
14245         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
14246         (rb_podcast_manager_insert_feed):
14247         * podcast/rb-podcast-manager.h:
14248         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
14249         (rb_set_item_value), (rb_validate_item_propert),
14250         (rb_podcast_parse_date), (rb_podcast_parse_time):
14251         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
14252         from the feed.
14254 2005-10-31  James Livingston  <jrl@ids.org.au>
14256         * ChangeLog:
14257         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
14258         huge
14260 2005-10-31  James Livingston  <jrl@ids.org.au>
14262         * sources/rb-podcast-source.c:
14263         (rb_podcast_source_post_date_cell_data_func): generate the date string
14264         in a way that is correct in all locales.
14265         
14266         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14267         (rhythmdb_entry_sync_mirrored): make the last played/date added
14268         columns use the same format.
14270 2005-10-30  James Livingston  <jrl@ids.org.au>
14273         * podcast/rb-podcast-manager.c:
14274         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
14275         
14276         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
14277         iradio errors better.
14279 2005-10-30  James Livingston  <jrl@ids.org.au>
14281         patch by: Artem Baguinski <femistofel@gmail.com>
14283         * metadata/rb-metadata-gst.c: (rb_metadata_init):
14285 2005-10-30  James Livingston  <jrl@ids.org.au>
14287         * podcast/rb-podcast-manager.c:
14288         (rb_podcast_manager_subscribe_feed),
14289         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
14290         already been added, usually as a radio station. Closes 319434.
14292 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
14294         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
14295         mnemonics & resize issues)
14296         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
14297         & mnemonics)
14298         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
14299         widget for the "download location" label.
14301         Closes bug 320184.
14303 2005-10-29  James Livingston  <jrl@ids.org.au>
14305         Allow the search box to match words from multiple properties. Closes
14306         bug 139196. Thanks to the person from IRC who did a lot of the initial
14307         work.
14310         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
14311         * lib/rb-util.h: Add functions to split a string into words, and one
14312         to perform "search folding" which is currently like casefolding but
14313         also strips punctuation
14314         
14315         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
14316         (rhythmdb_query_preprocess):
14317         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
14318         against title, artist, album and genre (for the search box)
14319         
14320         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
14321         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14322         (save_entry), (search_match_properties),
14323         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
14324         splitting into words and matching across multiple properties.
14325         
14326         * sources/rb-library-source.c: (construct_query_from_selection): use
14327         the new SEARCH_MATCH property for the search box
14328         
14329         * widgets/rb-entry-view.c: (type_ahead_search_func):
14331 2005-10-29  James Livingston  <jrl@ids.org.au>
14333         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14334         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
14335         
14336         * shell/rb-playlist-manager.c:
14337         * shell/rb-shell.c: use the above stock ids, so that the icons get set
14338         correctly.
14339         
14340         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
14341         initial state of the shuffle/repeat menu items correctly. Patch from
14342         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
14344 2005-10-29  James Livingston  <jrl@ids.org.au>
14346         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
14347         double-free.
14348         
14349         * widgets/rb-cell-renderer-pixbuf.c:
14350         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
14351         icon go black when row is not selected
14352         
14353         * doc/reference/tmpl/rb-daap-connection.sgml:
14354         * doc/reference/tmpl/rhythmdb.sgml: doc updates
14356 2005-10-29  James Livingston  <jrl@ids.org.au>
14358         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
14359         silly mistake, where it could think partial downloads has been
14360         completed.
14362 2005-10-29  James Livingston  <jrl@ids.org.au>
14364         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14366         * data/glade/song-info.glade:
14367         * widgets/rb-song-info.c: (rb_song_info_construct_single),
14368         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
14369         (rb_song_info_sync_entry_single): show the disc number in the song
14370         info window. From bug 311199.
14372 2005-10-29  James Livingston  <jrl@ids.org.au>
14374         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
14375         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
14376         regularly. Closes 155306.
14378 2005-10-29  James Livingston  <jrl@ids.org.au>
14380         * podcast/rb-podcast-manager.c:
14381         (rb_podcast_manager_download_entry),
14382         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
14383         (rb_podcast_manager_insert_feed):
14384         * podcast/rb-podcast-manager.h:
14385         * podcast/rb-podcast-parse.c: (rb_set_item_value),
14386         (rb_podcast_parser_start_element):
14387         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
14388         don't download them again. However, it can't resume
14389         partially-downloaded ones.
14391 2005-10-28  James Livingston  <jrl@ids.org.au>
14393         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
14394         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
14395         work. Don't attempt to write duration as a tag.
14397         Thanks to Artem Baguinski <femistofel@gmail.com>
14399 2005-10-28  James Livingston  <jrl@ids.org.au>
14401         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
14402         don't disable the status-bar menu item when the current source doesn't
14403         use the search box.
14405 2005-10-28  James Livingston  <jrl@ids.org.au>
14407         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
14408         crash if the file has unknown length
14410 2005-10-27  James Livingston  <jrl@ids.org.au>
14412         * daapsharing/rb-daap-connection.c:
14413         (rb_daap_connection_state_done): don't assert when a daap server
14414         doesn't have any playlists
14416 2005-10-27  James Livingston  <jrl@ids.org.au>
14418         * sources/rb-sourcelist-model.c:
14419         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
14420         source for the sourcelist. Closes bug 319817.
14422 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
14424         Patch by: Renato Araujo <renatox@gmail.com>
14426         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
14427           Fix for a crasher caused by previous patch.
14429 2005-10-26  James Livingston  <jrl@ids.org.au>
14431         * data/glade/podcast-prefs.glade:
14432         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
14433         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
14434         * sources/rb-podcast-source.c: (rb_podcast_source_new):
14435         * podcast/rb-podcast-manager.c:
14436         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
14437         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
14438         * shell/rb-shell.c: Change some strings to make them more consistent.
14439         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
14440         makes it clearer which is which. "Episode" may not be the best term,
14441         but it seems to be widely used.
14442         
14443         Also fix some strings that weren't marked as translatable.
14444         
14445         * podcast/rb-feed-podcast-properties-dialog.c:
14446         (rb_feed_podcast_properties_dialog_class_init),
14447         (rb_feed_podcast_properties_dialog_finalize):
14448         * podcast/rb-new-podcast-dialog.c:
14449         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
14450         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
14451         (rb_simple_view_finalize), (rb_simple_view_constructor):
14452         * podcast/rb-podcast-properties-dialog.c:
14453         (rb_podcast_properties_dialog_class_init),
14454         (rb_podcast_properties_dialog_finalize):
14455         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
14456         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
14457         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
14458         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
14459         use G_DEFINE_TYPE, instead of doing it manually.
14461 2005-10-26  James Livingston  <jrl@ids.org.au>
14463         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
14464         <jrl@ids.org.au>
14466         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
14467         (rb_metadata_init): Check that the necessary plugins are present to do
14468         id3 editing.
14469         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
14470         corrupted before replacing the original.
14472 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
14474         reviewed by: James Livingston <jrl@ids.org.au>
14476         Assign sequential IDs to playlists for DAAP rather than using the
14477         address of the playlist object.  Less flaky, and should work on 64bit
14478         platforms. Closes bug 319304.
14480         * daapsharing/rb-daap-share.c: 
14481         (rb_daap_share_set_property): watch for playlist creation
14482         (_find_by_id), (_find_by_source): playlist list search functions
14483         (rb_daap_share_playlist_created),
14484         (rb_daap_share_process_playlist),
14485         (rb_daap_share_playlist_destroyed):
14486          update playlist list as it changes, use weak refs on 
14487          playlists to get notified on destroy.
14488         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
14489          destroy playlist list on shutdown
14490         (add_playlist_to_mlcl): use playlist ID rather than pointer in
14491          DAAP response
14492         (databases_cb): search for playlist ID in list rather than just
14493          converting it to a pointer; return HTTP 404 if playlist not 
14494          found.
14495         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
14496          is already used for the main library
14498 2005-10-26  James Livingston  <jrl@ids.org.au>
14500         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14502         * daapsharing/rb-daap-connection.c: (build_message),
14503         (http_response_handler), (http_get), (handle_server_info),
14504         (handle_login), (handle_update), (handle_database_info),
14505         (handle_song_listing), (handle_playlists),
14506         (handle_playlist_entries), (handle_logout),
14507         (rb_daap_connection_new), (rb_daap_connection_logout),
14508         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
14509         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
14510         * daapsharing/rb-daap-connection.h:
14511         * sources/rb-daap-source.c: (rb_daap_source_activate),
14512         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
14513         (rb_daap_source_disconnect): Make connecting to DAAP sources
14514         asynchronous, so that non-responsive servers don't hang the UI. Closes
14515         316225.
14517 2005-10-26  James Livingston  <jrl@ids.org.au>
14519         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
14521         * rhythmdb/rhythmdb-query-model.c:
14522         (rhythmdb_query_model_do_reorder): generate the row re-order map
14523         correctly.
14524         
14525         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
14526         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
14527         Update selection when rows get re-ordered. Closes 319718.
14529 2005-10-26  James Livingston  <jrl@ids.org.au>
14531         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
14533         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
14534         actually set the db pointer in play orders. Closes 319818.
14536 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
14538         Patch by: Renato Araujo <renatox@gmail.com>
14540         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
14541         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
14542         (rb_podcast_manager_update_synctime),
14543         (rb_podcast_manager_config_changed),
14544         (rb_podcast_manager_insert_feed):
14545         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14546         (save_entry):
14547         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
14548         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
14549         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
14551 2005-10-25  James Livingston  <jrl@ids.org.au>
14553         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
14554         (db_entry_deleted_cb): don't share tracks that are hidden because the
14555         file is missing.
14557 2005-10-22  James Livingston  <jrl@ids.org.au>
14559         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
14560         crash if an entry couldn't be playerd, without streamer setting an
14561         error.
14563         
14564         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14566         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
14567         (rb_new_podcast_dialog_text_changed): enable the add button when a url
14568         is pasted into the dialog.
14569         
14570         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
14571         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14572         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
14573         (rb_podcast_parse_channel_free):
14574         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
14575         feeds
14577 2005-10-22  James Livingston  <jrl@ids.org.au>
14579         * sources/rb-iradio-source.c:
14580         (rb_iradio_source_first_time_changed): Make merging the default
14581         stations actually work.
14582         
14583         * sources/rb-podcast-source.c:
14584         (rb_podcast_source_post_status_cell_data_func): fix problem where some
14585         people weren't seing the percentages in the stats column.
14587 2005-10-21  James Livingston  <jrl@ids.org.au>
14589         Patch from Caio Marcelo <cmarcelo@gmail.com>
14591         * shell/rb-shell.c: (rb_shell_window_state_cb),
14592         (rb_shell_get_visibility), (idle_hide_mainwindow),
14593         (rb_shell_set_visibility): Make the "show window" item in the tray
14594         icon menu show the toggle state correctly. Use a better policy on
14595         deciding whether the window is "visible" or not. Closes bug 308053.
14597 2005-10-21  James Livingston  <jrl@ids.org.au>
14599         * doc/reference/tmpl/rb-shell-preferences.sgml:
14600         * shell/Makefile.am: fix building with gtk-doc
14602         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
14603         don't submit podcasts to audioscrobbler
14604         
14605         
14606         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14607         
14608         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14609         (rb_set_item_value): strip spaces surrounding podcast urls
14610         
14612         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14613         
14614         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
14616 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
14618         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
14619          Audioscrobbler/Last.fm support
14621         * configure.ac:
14622         * data/glade/Makefile.am:
14623         * data/glade/audioscrobbler-prefs.glade:
14624         * data/rhythmbox.schemas:
14625         * lib/Makefile.am:
14626         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
14627         * lib/md5.h:
14628         * lib/rb-preferences.h:
14629         * po/POTFILES.in:
14630         * shell/Makefile.am:
14631         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
14632         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
14633         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
14634         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
14635         (rb_audioscrobbler_timeout_cb), (mkmd5),
14636         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
14637         (rb_audioscrobbler_do_handshake),
14638         (rb_audioscrobbler_do_handshake_cb),
14639         (rb_audioscrobbler_submit_queue),
14640         (rb_audioscrobbler_submit_queue_cb),
14641         (rb_audioscrobbler_import_settings),
14642         (rb_audioscrobbler_preferences_sync),
14643         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
14644         (rb_audioscrobbler_gconf_changed_cb),
14645         (rb_audioscrobbler_song_changed_cb),
14646         (rb_audioscrobbler_username_entry_changed_cb),
14647         (rb_audioscrobbler_username_entry_activate_cb),
14648         (rb_audioscrobbler_password_entry_changed_cb),
14649         (rb_audioscrobbler_password_entry_activate_cb),
14650         (rb_audioscrobbler_enabled_check_changed_cb),
14651         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
14652         (rb_audioscrobbler_load_entry_from_string),
14653         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
14654         (rb_audioscrobbler_print_queue),
14655         (rb_audioscrobbler_free_queue_entries):
14656         * shell/rb-audioscrobbler.h:
14657         * shell/rb-shell-preferences.c:
14658         (rb_shell_preferences_append_audioscrobbler_config):
14659         * shell/rb-shell-preferences.h:
14660         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14661         (rb_shell_select_source), (rb_shell_cmd_preferences):
14662         * sources/Makefile.am:
14664 2005-10-21  James Livingston  <jrl@ids.org.au>
14666         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
14668         * Makefile.am:
14669         * NEWS:
14670         * configure.ac:
14671         * data/art/Makefile.am:
14672         * data/glade/Makefile.am:
14673         * data/rhythmbox.schemas:
14674         * data/ui/rhythmbox-ui.xml:
14675         * doc/reference/Makefile.am:
14676         * doc/reference/tmpl/rhythmdb.sgml:
14677         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14678         * lib/rb-stock-icons.h:
14679         * po/POTFILES.in:
14680         * podcast/Makefile.am:
14681         + podcast/rb-feed-podcast-properties-dialog.c:
14682         + podcast/rb-feed-podcast-properties-dialog.h:
14683         + podcast/rb-new-podcast-dialog.c:
14684         + podcast/rb-new-podcast-dialog.h:
14685         + podcast/rb-podcast-manager.c:
14686         + podcast/rb-podcast-manager.h:
14687         + podcast/rb-podcast-marshal.list:
14688         + podcast/rb-podcast-parse.c:
14689         + podcast/rb-podcast-parse.h:
14690         + podcast/rb-podcast-properties-dialog.c:
14691         + podcast/rb-podcast-properties-dialog.h:
14692         * rhythmdb/rhythmdb-property-model.c:
14693         (rhythmdb_property_model_set_property),
14694         (rhythmdb_property_model_enable_drag):
14695         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
14696         (rhythmdb_tree_parser_end_element), (save_entry),
14697         (rhythmdb_tree_save):
14698         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14699         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
14700         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
14701         (rhythmdb_entry_podcast_feed_get_type):
14702         * rhythmdb/rhythmdb.h:
14703         * shell/Makefile.am:
14704         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
14705         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14706         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
14707         (rb_shell_quit):
14708         * sources/Makefile.am:
14709         + sources/rb-podcast-source.c:
14710         + sources/rb-podcast-source.h:
14711         * widgets/Makefile.am:
14712         * widgets/rb-property-view.c: (rb_property_view_class_init),
14713         (rb_property_view_constructor),
14714         (rb_property_view_selection_changed_cb),
14715         (rb_property_view_get_treeview):
14716         * widgets/rb-property-view.h:
14717         + widgets/rb-simple-view.c:
14718         + widgets/rb-simple-view.h:
14720 2005-10-20  James Livingston  <jrl@ids.org.au>
14722         * NEWS: update with changes since 0.9.1
14724         * configure.ac: check whether collate_key_for_filename is available
14725         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
14726         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
14727         it if it isn't available in glib (i.e. building against 2.6)
14728         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
14729         collation to get "natural sorting". Closes bug 158599.
14731 2005-10-20  James Livingston  <jrl@ids.org.au>
14733         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14735         * doc/reference/tmpl/rb-shell-player.sgml:
14736         * shell/rb-shell-player.c: (rb_shell_player_class_init),
14737         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
14738         (rb_shell_player_get_playing),
14739         (rb_shell_player_get_playing_time_string),
14740         (rb_shell_player_get_playing_time),
14741         (rb_shell_player_set_playing_time), (tick_cb),
14742         (rb_shell_player_get_playing_path), (filter_mmkeys):
14743         * shell/rb-shell-player.h:
14744         * shell/rb-shell-player.xml:
14745         * shell/rb-shell.c: (rb_shell_constructor),
14746         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
14747         (rb_shell_set_window_title), (rb_shell_playing_impl),
14748         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
14749         Merge the duration_changed and elapsed_changed DBUS signals into one
14750         elapsed_changed signal. Check that the output argument isn't NULL
14751         before trying to put things in it.
14753 2005-10-20  James Livingston  <jrl@ids.org.au>
14755         * rhythmdb/rhythmdb-query-model.c:
14756         (rhythmdb_query_model_entry_added_cb),
14757         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
14758         problem where hidden entries could be shown in playlists.
14759         
14760         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
14761         issues when switching in and out of small mode.
14763 2005-10-19  James Livingston  <jrl@ids.org.au>
14765         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
14766         (rb_shell_constructor), (rb_shell_window_state_cb),
14767         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
14768         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
14769         (rb_shell_view_smalldisplay_changed_cb),
14770         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
14771         (rb_shell_sync_paned): remove gconf window-state races, prevent
14772         changing small mode too often, fix window event races. Closes 122806.
14774         
14775         Patch from Caio Marcelo <cmarcelo@gmail.com>
14777         * data/rhythmbox.schemas:
14778         * shell/rb-shell.c: (rb_shell_window_state_cb),
14779         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
14780         Remember the position of the window. Closes 315289.
14782 2005-10-19  James Livingston  <jrl@ids.org.au>
14784         Patch from Christophe Fergeau  <teuf@gnome.org>
14786         * configure.ac: determine whether libgpod is present when neither
14787         --with-ipod nor --without-ipod is passed
14789 2005-10-19  James Livingston  <jrl@ids.org.au>
14791         Patch from Caio Marcelo <cmarcelo@gmail.com>
14793         * shell/rb-shell-player.c: (do_next_idle),
14794         (rb_shell_player_do_previous), (rb_shell_player_do_next),
14795         (rb_shell_player_do_previous_or_seek),
14796         (rb_shell_player_previous_button_cb),
14797         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14798         (rb_shell_player_cmd_next), (eos_cb):
14799         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
14800         end of the playlist is reached.
14802 2005-10-19  Christopher Aillon  <caillon@redhat.com>
14804         * lib/rb-thread.c: fix a few GSource leaks
14806 2005-10-19  James Livingston  <jrl@ids.org.au>
14808         * doc/reference/tmpl/bacon-volume.sgml:
14809         * doc/reference/tmpl/disclosure-widget.sgml:
14810         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14811         * doc/reference/tmpl/eggnotificationbubble.sgml:
14812         * doc/reference/tmpl/eggtrayicon.sgml:
14813         * doc/reference/tmpl/gsequence.sgml:
14814         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14815         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14816         * doc/reference/tmpl/rb-daap-connection.sgml:
14817         * doc/reference/tmpl/rb-daap-dialog.sgml:
14818         * doc/reference/tmpl/rb-daap-mdns.sgml:
14819         * doc/reference/tmpl/rb-daap-share.sgml:
14820         * doc/reference/tmpl/rb-daap-sharing.sgml:
14821         * doc/reference/tmpl/rb-daap-source.sgml:
14822         * doc/reference/tmpl/rb-daap-src.sgml:
14823         * doc/reference/tmpl/rb-daap-structure.sgml:
14824         * doc/reference/tmpl/rb-debug.sgml:
14825         * doc/reference/tmpl/rb-dialog.sgml:
14826         * doc/reference/tmpl/rb-druid.sgml:
14827         * doc/reference/tmpl/rb-entry-view.sgml:
14828         * doc/reference/tmpl/rb-enums.sgml:
14829         * doc/reference/tmpl/rb-file-helpers.sgml:
14830         * doc/reference/tmpl/rb-glade-helpers.sgml:
14831         * doc/reference/tmpl/rb-header.sgml:
14832         * doc/reference/tmpl/rb-history.sgml:
14833         * doc/reference/tmpl/rb-ipod-source.sgml:
14834         * doc/reference/tmpl/rb-iradio-source.sgml:
14835         * doc/reference/tmpl/rb-library-source.sgml:
14836         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14837         * doc/reference/tmpl/rb-metadata.sgml:
14838         * doc/reference/tmpl/rb-new-station-dialog.sgml:
14839         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14840         * doc/reference/tmpl/rb-play-order-linear.sgml:
14841         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14842         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14843         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14844         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14845         * doc/reference/tmpl/rb-play-order-random.sgml:
14846         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14847         * doc/reference/tmpl/rb-play-order.sgml:
14848         * doc/reference/tmpl/rb-player.sgml:
14849         * doc/reference/tmpl/rb-playlist-manager.sgml:
14850         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14851         * doc/reference/tmpl/rb-playlist-source.sgml:
14852         * doc/reference/tmpl/rb-preferences.sgml:
14853         * doc/reference/tmpl/rb-property-view.sgml:
14854         * doc/reference/tmpl/rb-query-creator-private.sgml:
14855         * doc/reference/tmpl/rb-query-creator.sgml:
14856         * doc/reference/tmpl/rb-rating-helper.sgml:
14857         * doc/reference/tmpl/rb-rating.sgml:
14858         * doc/reference/tmpl/rb-recorder.sgml:
14859         * doc/reference/tmpl/rb-refstring.sgml:
14860         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14861         * doc/reference/tmpl/rb-removable-media-source.sgml:
14862         * doc/reference/tmpl/rb-search-entry.sgml:
14863         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14864         * doc/reference/tmpl/rb-shell-glue.sgml:
14865         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14866         * doc/reference/tmpl/rb-shell-player.sgml:
14867         * doc/reference/tmpl/rb-shell-preferences.sgml:
14868         * doc/reference/tmpl/rb-shell.sgml:
14869         * doc/reference/tmpl/rb-song-display-box.sgml:
14870         * doc/reference/tmpl/rb-song-info.sgml:
14871         * doc/reference/tmpl/rb-source-header.sgml:
14872         * doc/reference/tmpl/rb-source.sgml:
14873         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14874         * doc/reference/tmpl/rb-sourcelist.sgml:
14875         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14876         * doc/reference/tmpl/rb-statusbar.sgml:
14877         * doc/reference/tmpl/rb-stock-icons.sgml:
14878         * doc/reference/tmpl/rb-string-helpers.sgml:
14879         * doc/reference/tmpl/rb-thread.sgml:
14880         * doc/reference/tmpl/rb-tray-icon.sgml:
14881         * doc/reference/tmpl/rb-tree-dnd.sgml:
14882         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14883         * doc/reference/tmpl/rb-util.sgml:
14884         * doc/reference/tmpl/rhythmbox-unused.sgml:
14885         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14886         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14887         * doc/reference/tmpl/rhythmdb-tree.sgml:
14888         * doc/reference/tmpl/rhythmdb.sgml: update for changes
14889         
14890         * doc/reference/Makefile.am: make docs build with changed ipod support
14891         
14892         * po/POTFILES.in: remove sources/itunesdb
14894 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
14896         * sources/itunesdb.c:
14897         * sources/itunesdb.h: removed now useless files
14899 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
14901         * configure.ac:
14902         * shell/Makefile.am:
14903         * sources/Makefile.am:
14904         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
14905         code
14906         [1]: http://www.gtkpod.org/libgpod.html
14909 2005-10-18  James Livingston  <jrl@ids.org.au>
14911         patch from Funda Wang <fundawang@linux.net.cn>
14913         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
14914         the notification bubble string translatable.
14916 ============ Version 0.9.1
14918 2005-10-16  James Livingston  <jrl@ids.org.au>
14920         * configure.ac: bump version to 0.9.1
14921         * NEWS: update translation credits
14923 2005-10-16  James Livingston  <jrl@ids.org.au>
14925         * rhythmdb/rhythmdb-query-model.c:
14926         (rhythmdb_query_model_class_init),
14927         (rhythmdb_query_model_drag_data_received): 
14928         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
14929         notified when things are dropped into the entry view.
14930         
14931         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
14932         (rb_playlist_source_add_location_swapped),
14933         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
14934         (rb_playlist_source_non_entry_dropped),
14935         (rb_playlist_source_row_inserted): Use the new signal so that dropping
14936         things onto a playlist's entry view work correctly, and doesn't cause
14937         crashes. Allow folders to be dropped as well. (Closes 318308)
14939 2005-10-16  James Livingston  <jrl@ids.org.au>
14941         * NEWS: Update some more
14943         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14944         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
14945         with the paned size, so that it doesn't move when the window is
14946         maximised/restored. Closes bug 315852.
14948         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
14949         display the playcount column, as it's useless (it never get changed).
14951 2005-10-14  James Livingston  <jrl@ids.org.au>
14953         * Makefile.am:
14954         * data/Makefile.am:
14955         * doc/reference/Makefile.am: get "make distcheck" to pass again
14957 2005-10-11  James Livingston  <jrl@ids.org.au>
14959         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
14960         destroy the connection when retrieving the playlists fails, because
14961         tracks have already been added. Closes 318380.
14963 2005-10-11  James Livingston  <jrl@ids.org.au>
14965         * sources/rb-sourcelist.c: (rb_sourcelist_append),
14966         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
14967         (source_name_edited_cb): Ask for the columns to be resized when a
14968         source is added, deleted or changes name.
14970 2005-10-11  James Livingston  <jrl@ids.org.au>
14972         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
14973         create a thread when processing a directory. This stops up created one
14974         thread for each file in a playlist we're trying to load. Closes
14975         317850.
14977         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
14978         typo that made sort-by-artist not work correctly.
14980 2005-10-11  James Livingston  <jrl@ids.org.au>
14982         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
14983         support is enabled
14985 2005-10-11  James Livingston  <jrl@ids.org.au>
14987         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
14988         * lib/rb-file-helpers.h: add a function to turn uris into our
14989         canonical path-escaped form
14990         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
14991         above function when import playlists. This will fix the problem of
14992         duplicate entries due to different representations of the uri (bug
14993         158211).
14995 2005-10-11  James Livingston  <jrl@ids.org.au>
14997         * shell/rb-shell.c: (rb_shell_get_visibility),
14998         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
14999         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
15000         window hiding so that Alt-F4 works again.
15002         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
15003         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
15004         (rb_entry_view_string_sort_func): Stop some crashes where a string
15005         property was set to NULL.
15007 2005-10-10  James Livingston  <jrl@ids.org.au>
15009         * doc/reference/rhythmbox.types: fix gtk-doc generation
15011 2005-10-09  James Livingston  <jrl@ids.org.au>
15013         * sources/rb-sourcelist.c: (rb_sourcelist_init):
15014         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
15015         accelerators, so that we don't have as many conflicting keys.
15017 2005-10-08  James Livingston  <jrl@ids.org.au>
15019         * data/iradio-initial.pls: Update the list of radio stations. Thanks
15020         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
15021         bug 129285.
15023 2005-10-07  James Livingston  <jrl@ids.org.au>
15025         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
15026         local path names in the same way as every other URI. This should stop
15027         duplicates occurring due to different escapings. Closes bug 158211.
15029 2005-10-06  James Livingston  <jrl@ids.org.au>
15031         * NEWS: more updates
15032         
15033         patch from Jaap Haitsma <jaap@haitsma.org>:
15035         * configure.ac:
15036         * data/Makefile.am:
15037         * data/art/Makefile.am:
15038         - data/art/rhythmbox-paused.png:
15039         - data/art/rhythmbox-playback-error.png:
15040         - data/art/rhythmbox-playing.png:
15041         - data/art-clearlooks/:
15042         * lib/rb-file-helpers.c: (rb_file):
15043         * lib/rb-stock-icons.c: (rb_stock_icons_init):
15044         * lib/rb-stock-icons.h:
15045         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
15046         * widgets/rb-cell-renderer-pixbuf.c:
15047         (rb_cell_renderer_pixbuf_render):
15048         * widgets/rb-entry-view.c: (rb_entry_view_init),
15049         (rb_entry_view_set_playing):
15050         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
15051         stock icons instead of custom art. Drop remanents of art-clearlooks.
15053 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
15055         * configure.ac: Added ne in ALL_LINGUAS
15057 2005-10-02  James Livingston  <jrl@ids.org.au>
15059         * data/glade/Makefile.am: actually install the daap prefs glade file
15061 2005-09-30  James Livingston  <jrl@ids.org.au>
15063         * po/POTFILES.in: mremove rb-string-helper.c from the list of
15064         translatable files, so that make check works and we don't annoy the
15065         translators.
15066         
15067         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
15068         sanity checking, in case a db entry is missing some properties.
15070 2005-09-29  James Livingston  <jrl@ids.org.au>
15072         - lib/rb-string-helpers.c:
15073         - lib/rb-string-helpers.h:
15074         * lib/Makefile.am:
15075         * rhythmdb/rhythmdb-tree.c:
15076         * rhythmdb/rhythmdb.c:
15077         * shell/main.c: (main):
15078         * shell/rb-shell.c:
15079         * widgets/rb-entry-view.c:
15080         * widgets/rb-property-view.c: remove rb-string-helpers, as they
15081         utility functions haven't been used in a while.
15083 2005-09-27  James Livingston  <jrl@ids.org.au>
15085         * data/art-clearlooks/Makefile.am:
15086         - data/art-clearlooks/rhythmbox-album.png:
15087         - data/art-clearlooks/rhythmbox-audiocd.png:
15088         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
15089         - data/art-clearlooks/rhythmbox-dnd.png:
15090         - data/art-clearlooks/rhythmbox-ipod.png:
15091         - data/art-clearlooks/rhythmbox-iradio.png:
15092         - data/art-clearlooks/rhythmbox-library.png:
15093         - data/art-clearlooks/rhythmbox-next.png:
15094         - data/art-clearlooks/rhythmbox-pause.png:
15095         - data/art-clearlooks/rhythmbox-play.png:
15096         - data/art-clearlooks/rhythmbox-playlist-menu.png:
15097         - data/art-clearlooks/rhythmbox-playlist.png:
15098         - data/art-clearlooks/rhythmbox-previous.png:
15099         - data/art-clearlooks/rhythmbox-repeat.png:
15100         - data/art-clearlooks/rhythmbox-rewind.png:
15101         - data/art-clearlooks/rhythmbox-shuffle.png:
15102         - data/art-clearlooks/rhythmbox-stop.png:
15103         - data/art-clearlooks/rhythmbox-visuals.png:
15104         - data/art-clearlooks/rhythmbox-volume-max.png:
15105         - data/art-clearlooks/rhythmbox-volume-medium.png:
15106         - data/art-clearlooks/rhythmbox-volume-min.png:
15107         - data/art-clearlooks/rhythmbox-volume-mute.png:
15108         - data/art-clearlooks/rhythmbox-volume-zero.png:
15109         * data/art/Makefile.am:
15110         - data/art/rhythmbox-album.png:
15111         - data/art/rhythmbox-audiocd.png:
15112         - data/art/rhythmbox-automatic-playlist.png:
15113         - data/art/rhythmbox-dnd.png:
15114         - data/art/rhythmbox-ipod.png:
15115         - data/art/rhythmbox-iradio.png:
15116         - data/art/rhythmbox-library.png:
15117         - data/art/rhythmbox-next.png:
15118         - data/art/rhythmbox-pause.png:
15119         - data/art/rhythmbox-play.png:
15120         - data/art/rhythmbox-playlist-menu.png:
15121         - data/art/rhythmbox-playlist.png:
15122         - data/art/rhythmbox-previous.png:
15123         - data/art/rhythmbox-repeat.png:
15124         - data/art/rhythmbox-rewind.png:
15125         - data/art/rhythmbox-shuffle.png:
15126         - data/art/rhythmbox-stop.png:
15127         - data/art/rhythmbox-visuals.png:
15128         - data/art/rhythmbox-volume-max.png:
15129         - data/art/rhythmbox-volume-medium.png:
15130         - data/art/rhythmbox-volume-min.png:
15131         - data/art/rhythmbox-volume-mute.png:
15132         - data/art/rhythmbox-volume-zero.png:
15133         * lib/rb-stock-icons.c: (rb_stock_icons_init):
15134         * lib/rb-stock-icons.h:
15135         * shell/rb-playlist-manager.c:
15136         * shell/rb-shell-player.c:
15137         * sources/rb-daap-source.c: (rb_daap_get_icon):
15138         * sources/rb-ipod-source.c:
15139         * sources/rb-iradio-source.c: (rb_iradio_source_init):
15140         * sources/rb-library-source.c: (rb_library_source_new):
15141         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
15142         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
15143         that hasn't been used in a LONG time, and also remove art that are
15144         now stock icons.
15146 2005-09-27  James Livingston  <jrl@ids.org.au>
15148         * README: point to the gnome.org web sites, and update the example
15149         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
15150         
15151         * rhythmdb/rhythmdb-query-model.c:
15152         (rhythmdb_query_model_set_property),
15153         (rhythmdb_query_model_get_property),
15154         (rhythmdb_query_model_finalize):
15155         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
15156         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
15157         * rhythmdb/rhythmdb.h:
15158         * sources/rb-iradio-source.c: (impl_search):
15159         * sources/rb-library-source.c: (impl_search): Add query
15160         "preprocessing", which performs operations such as casefolding any
15161         strings that will be compared to any of the *_FOLDED properties.
15162         Closes bug 316039
15164 2005-09-27  James Livingston  <jrl@ids.org.au>
15166         * data/glade/daap-prefs.glade:
15167         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
15168         file for the daap preferences pane
15169         
15170         * sources/rb-sourcelist.c: (rb_sourcelist_init),
15171         (rb_sourcelist_append), (rb_sourcelist_remove),
15172         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
15173         don't display the column for source expanders unless there is an
15174         expandable source.
15176 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
15178         * .cvsignore:
15179         * Makefile.am:
15180         * configure.ac:
15181         * doc/.cvsignore:
15182         * doc/Makefile.am:
15183         * doc/reference/.cvsignore:
15184         * doc/reference/Makefile.am:
15185         * doc/reference/rhythmbox-docs.sgml:
15186         * doc/reference/rhythmbox-sections.txt:
15187         * doc/reference/rhythmbox.types:
15188         * doc/reference/tmpl/bacon-volume.sgml:
15189         * doc/reference/tmpl/disclosure-widget.sgml:
15190         * doc/reference/tmpl/eel-gconf-extensions.sgml:
15191         * doc/reference/tmpl/eggnotificationbubble.sgml:
15192         * doc/reference/tmpl/eggtrayicon.sgml:
15193         * doc/reference/tmpl/gsequence.sgml:
15194         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
15195         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
15196         * doc/reference/tmpl/rb-daap-connection.sgml:
15197         * doc/reference/tmpl/rb-daap-dialog.sgml:
15198         * doc/reference/tmpl/rb-daap-mdns.sgml:
15199         * doc/reference/tmpl/rb-daap-share.sgml:
15200         * doc/reference/tmpl/rb-daap-sharing.sgml:
15201         * doc/reference/tmpl/rb-daap-source.sgml:
15202         * doc/reference/tmpl/rb-daap-src.sgml:
15203         * doc/reference/tmpl/rb-daap-structure.sgml:
15204         * doc/reference/tmpl/rb-debug.sgml:
15205         * doc/reference/tmpl/rb-dialog.sgml:
15206         * doc/reference/tmpl/rb-druid.sgml:
15207         * doc/reference/tmpl/rb-entry-view.sgml:
15208         * doc/reference/tmpl/rb-enums.sgml:
15209         * doc/reference/tmpl/rb-file-helpers.sgml:
15210         * doc/reference/tmpl/rb-glade-helpers.sgml:
15211         * doc/reference/tmpl/rb-header.sgml:
15212         * doc/reference/tmpl/rb-history.sgml:
15213         * doc/reference/tmpl/rb-ipod-source.sgml:
15214         * doc/reference/tmpl/rb-iradio-source.sgml:
15215         * doc/reference/tmpl/rb-library-source.sgml:
15216         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
15217         * doc/reference/tmpl/rb-metadata.sgml:
15218         * doc/reference/tmpl/rb-new-station-dialog.sgml:
15219         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
15220         * doc/reference/tmpl/rb-play-order-linear.sgml:
15221         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
15222         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
15223         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
15224         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
15225         * doc/reference/tmpl/rb-play-order-random.sgml:
15226         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
15227         * doc/reference/tmpl/rb-play-order.sgml:
15228         * doc/reference/tmpl/rb-player.sgml:
15229         * doc/reference/tmpl/rb-playlist-manager.sgml:
15230         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
15231         * doc/reference/tmpl/rb-playlist-source.sgml:
15232         * doc/reference/tmpl/rb-preferences.sgml:
15233         * doc/reference/tmpl/rb-property-view.sgml:
15234         * doc/reference/tmpl/rb-query-creator-private.sgml:
15235         * doc/reference/tmpl/rb-query-creator.sgml:
15236         * doc/reference/tmpl/rb-rating-helper.sgml:
15237         * doc/reference/tmpl/rb-rating.sgml:
15238         * doc/reference/tmpl/rb-recorder.sgml:
15239         * doc/reference/tmpl/rb-refstring.sgml:
15240         * doc/reference/tmpl/rb-removable-media-manager.sgml:
15241         * doc/reference/tmpl/rb-removable-media-source.sgml:
15242         * doc/reference/tmpl/rb-search-entry.sgml:
15243         * doc/reference/tmpl/rb-shell-clipboard.sgml:
15244         * doc/reference/tmpl/rb-shell-glue.sgml:
15245         * doc/reference/tmpl/rb-shell-player-glue.sgml:
15246         * doc/reference/tmpl/rb-shell-player.sgml:
15247         * doc/reference/tmpl/rb-shell-preferences.sgml:
15248         * doc/reference/tmpl/rb-shell.sgml:
15249         * doc/reference/tmpl/rb-song-display-box.sgml:
15250         * doc/reference/tmpl/rb-song-info.sgml:
15251         * doc/reference/tmpl/rb-source-header.sgml:
15252         * doc/reference/tmpl/rb-source.sgml:
15253         * doc/reference/tmpl/rb-sourcelist-model.sgml:
15254         * doc/reference/tmpl/rb-sourcelist.sgml:
15255         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
15256         * doc/reference/tmpl/rb-statusbar.sgml:
15257         * doc/reference/tmpl/rb-stock-icons.sgml:
15258         * doc/reference/tmpl/rb-string-helpers.sgml:
15259         * doc/reference/tmpl/rb-thread.sgml:
15260         * doc/reference/tmpl/rb-tray-icon.sgml:
15261         * doc/reference/tmpl/rb-tree-dnd.sgml:
15262         * doc/reference/tmpl/rb-tree-model-sort.sgml:
15263         * doc/reference/tmpl/rb-util.sgml:
15264         * doc/reference/tmpl/rhythmdb-property-model.sgml:
15265         * doc/reference/tmpl/rhythmdb-query-model.sgml:
15266         * doc/reference/tmpl/rhythmdb-tree.sgml:
15267         * doc/reference/tmpl/rhythmdb.sgml:
15268         * macros/.cvsignore:
15269         * shell/Makefile.am:
15270         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
15271         (rb_source_finalize), (rb_source_set_property),
15272         (rb_source_get_property), (default_get_pixbuf),
15273         (_rb_source_show_popup):
15274         * sources/rb-source.h:
15275         Add support for gtk-doc in rhythmbox.
15276         Convert RBSource to use newer glib functions, such as add_private.
15277         Gives RBSource a default get_pixbuf implementation.
15279 2005-09-25  James Livingston  <jrl@ids.org.au>
15281         * NEWS: Update with about a months worth of changes
15283         * data/glade/song-info-multiple.glade:
15284         * data/glade/song-info.glade:
15285         * data/rhythmbox.schemas:
15286         * lib/rb-preferences.h:
15287         * rhythmdb/rhythmdb.h:
15288         * shell/rb-shell-player.c:
15289         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
15290         few remaining parts of autorating.
15292 2005-09-24  James Livingston  <jrl@ids.org.au>
15294         * shell/rb-shell.c: (rb_shell_constructor),
15295         (rb_shell_window_state_cb), (rb_shell_set_visibility),
15296         (rb_shell_window_configure_cb): store window state in the gconf keys,
15297         so that it gets used. Closes bugs 313893 and 137068.
15299 2005-09-20  James Livingston  <jrl@ids.org.au>
15301         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
15302         crash if the entry has a NULL string in a property
15303         
15304         * shell/rb-removable-media-manager.c:
15305         (rb_removable_media_manager_load_media): fix some memory leaks
15306         
15307         (rb_removable_media_manager_mount_volume),
15308         (rb_removable_media_manager_eject_medium_cb),
15309         (rb_removable_media_manager_cmd_eject_medium): use
15310         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
15311         
15312         * sources/rb-removable-media-source.c:
15313         (rb_removable_media_source_set_property),
15314         (rb_removable_media_source_get_property): use
15315         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
15317 2005-09-18  James Livingston  <jrl@ids.org.au>
15319         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
15320         column
15322         * data/glade/general-prefs.glade:
15323         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
15324         (rb_shell_preferences_column_check_changed_cb),
15325         (rb_shell_preferences_sync): add checkbox to control visibility
15326         of the column
15327         
15328         
15329         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
15330         (save_entry):
15331         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
15332         (rhythmdb_prop_get_type):
15333         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
15334         was as "last played" is handled
15335         
15336         * sources/rb-library-source.c: (rb_library_source_constructor):
15337         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
15338         Make the column show in the library and playlists
15339         
15340         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
15341         * widgets/rb-entry-view.h: add the column
15342         
15343         * widgets/rb-query-creator-properties.c: allow automatic playlists to
15344         be sorted by the column
15346 2005-09-16  James Livingston  <jrl@ids.org.au>
15348         * shell/rb-shell-player.c: (rb_shell_player_init),
15349         (rb_shell_player_do_previous_or_seek),
15350         (rb_shell_player_previous_button_cb),
15351         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
15352         (rb_shell_player_playpause_button_cb): Make the previous button act
15353         the same as the menu item. Fix an inversion of the "previous track or
15354         seek" logic.
15355         
15356         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15357         
15358         (rb_shell_player_playpause): make --play-pause stop source that can't
15359         be paused
15361 2005-09-15  James Livingston  <jrl@ids.org.au>
15363         * configure.ac: increase totem-plparser requirements to 1.1.5
15365         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
15366         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
15367         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
15368         use the newer playlist APIs to save the name of the playlist, and use
15369         the name of a loaded playlist.
15371         Closes bug 309817.
15373 2005-09-15  James Livingston  <jrl@ids.org.au>
15375         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15377         * shell/Makefile.am: stop some linker warnings
15379         * shell/main.c: (main): make --no-registration work with dbus
15381 2005-09-15  James Livingston  <jrl@ids.org.au>
15383         * daapsharing/rb-daap-sharing.c: (create_share):
15384         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
15385         reference sinking and counting issues that I caused.
15387 2005-09-15  James Livingston  <jrl@ids.org.au>
15389         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
15390         playing" icon in the "now playing" column header.
15392 2005-09-14  James Livingston  <jrl@ids.org.au>
15394         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
15395         daap shares, when sharing is turned off.
15397 2005-09-12  Bastien Nocera  <hadess@hadess.net>
15399         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
15400         the GConf value's default, especially for badly installed schema
15401         files
15403 2005-09-12  James Livingston  <jrl@ids.org.au>
15405         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
15407         Patch from Paolo Borelli <pborelli@katamail.com>
15409         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
15410         grip when maximised. Closes bug 316055.
15412 2005-09-11  James Livingston  <jrl@ids.org.au>
15414         Patch from William Jon McCann <mccann@jhu.edu>
15416         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
15417         subclass of GtkStatusbar instead of GtkHBox.
15418         (rb_statusbar_construct): Don't set border width.
15419         (rb_statusbar_init): Use resize grip.  Don't use
15420         markup.
15421         (set_statusbar_tooltip, unset_statusbar_tooltip) 
15422         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
15423         Connect tooltips for actions.
15424         (rb_statusbar_sync_status): Push new message to statusbar.
15425         (rb_statusbar_set_progress): Don't use markup.
15426         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
15427         flag here since it prevents actually showing or hiding.
15428         (rb_statusbar_sync_with_source): Push new message to statusbar.
15430 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15432         * daapsharing/rb-daap-structure.c:
15433         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
15434         around debugging definition.
15436 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15437         
15438         * daapsharing/rb-daap-structure.c:
15439         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
15440         type = version.
15442         * daapsharing/rb-daap-mdns.c/h:
15443         (resolve_cb): Updated mDNS resolve callback to send service-name &
15444         name (read from Machine Name in the TXT data or equal to service-name
15445         if not in TXT).
15447         * daapsharing/rb-daap-source.c:
15448         (rb_daap_source_class_init), (rb_daap_source_set_property), 
15449         (rb_daap_source_get_property), (rb_daap_source_new),
15450         (find_source_by_service_name), (resolve_cb), (browse_cb), 
15451         (stop_resolver), (start_browsing), (stop_browsing), 
15452         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
15453         and added 'host' and 'port' gobject properties.  Updated to use new
15454         mDNS resolve callback sending service-name & name arguments.
15456 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
15458         * daapsharing/rb-daap-mdns.c:
15459         (howl_strerror): New function to report errors from Howl
15460         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
15461         (get_sw_discovery), (get_avahi_client): Better error reporting from
15462         Howl & Avahi.
15464         * sources/rb-daap-source.:
15465         (start_browsing), (stop_browsing): Fixed a bug where browsing would
15466         not get started or stopped in some situations.
15467         
15468 2005-09-12  James Livingston  <jrl@ids.org.au>
15470         * shell/rb-removable-media-manager.c: add a missing include, that
15471         would stop compilation if ipod support wasn't turned on
15473 2005-09-11  James Livingston  <jrl@ids.org.au>
15475         * daapsharing/rb-daap-dialog.c: (encode_base64),
15476         (rb_daap_password_dialog_new_run),
15477         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
15478         it is no broken in to two pieces, and remove a use of a goto
15479         
15480         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
15481         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
15482         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
15483         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
15484         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
15485         memory leaks, and some code style things.
15486         
15487         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
15488         (rb_daap_share_init), (rb_daap_share_set_property),
15489         (rb_daap_share_dispose), (rb_daap_share_new),
15490         (rb_daap_share_get_property): make the DB and the playlist manager
15491         gobject properties.
15492         
15493         (message_add_standard_headers),
15494         (message_set_from_rb_daap_structure), (server_info_cb),
15495         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
15496         (server_cb), (add_db_entry), (db_entry_added_cb),
15497         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
15498         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
15499         style and use CONF_PREFIX in the gconf keys
15500         
15501         * daapsharing/rb-daap-sharing.c: (create_share),
15502         (enable_sharing_changed_cb), (share_name_changed_cb),
15503         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
15504         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
15505         (rb_daap_src_instance_init), (rb_daap_src_dispose),
15506         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
15507         (rb_daap_src_get_property), (rb_daap_src_getcaps),
15508         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
15509         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
15510         (rb_daap_src_get_time): Deal with gconf callbacks where the key
15511         hasn't actually changed, fix some memory leaks, code style and release
15512         gconf notifications when the object is destroyed.
15513         
15514         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
15515         (rb_daap_source_class_init), (rb_daap_source_init),
15516         (rb_daap_source_dispose), (rb_daap_source_set_property),
15517         (rb_daap_source_get_property), (rb_daap_source_new),
15518         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
15519         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
15520         (rb_daap_sources_init), (rb_daap_sources_shutdown),
15521         (rb_daap_source_activate), (rb_daap_source_disconnect),
15522         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
15523         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
15524         release gconf notifications, handle gconf callbacks where the key
15525         hasn't changed, make "real name" and "password protected" gobject
15526         properties, fix some code style and fix a memory leak.
15528 2005-09-11  James Livingston  <jrl@ids.org.au>
15530         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
15532         * shell/rb-playlist-manager.c:
15533         (rb_playlist_manager_save_playlists),
15534         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
15535         when we aren't supposed to. (Closes bug 315886)
15537 2005-09-11  James Livingston  <jrl@ids.org.au>
15539         * shell/rb-removable-media-manager.c:
15540         (rb_removable_media_manager_class_init),
15541         (rb_removable_media_manager_init),
15542         (rb_removable_media_manager_dispose),
15543         (rb_removable_media_manager_set_property),
15544         (rb_removable_media_manager_get_property),
15545         (rb_removable_media_manager_new),
15546         (rb_removable_media_manager_load_media),
15547         (rb_removable_media_manager_volume_mounted_cb),
15548         (rb_removable_media_manager_volume_unmounted_cb),
15549         (rb_removable_media_manager_mount_volume),
15550         (rb_removable_media_manager_unmount_volume),
15551         (rb_removable_media_manager_source_deleted_cb),
15552         (rb_removable_media_manager_append_media_source),
15553         (rb_removable_media_manager_set_uimanager),
15554         (rb_removable_media_manager_eject_medium_cb),
15555         (rb_removable_media_manager_cmd_eject_medium):
15556         * shell/rb-removable-media-manager.h:
15557         * sources/rb-removable-media-source.c:
15558         (rb_removable_media_source_class_init),
15559         (rb_removable_media_source_init),
15560         (rb_removable_media_source_dispose),
15561         (rb_removable_media_source_set_property),
15562         (rb_removable_media_source_get_property), (impl_get_pixbuf),
15563         (impl_delete_thyself):
15564         * sources/rb-removable-media-source.h: Add the four files that I
15565         somehow managed not to add to cvs in the last commit. Oops.
15567 2005-09-11  James Livingston  <jrl@ids.org.au>
15569         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
15570         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
15571         
15572         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
15573         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
15574         removable-media-manager on startup, and handle creation of sources.
15575         
15576         * sources/rb-ipod-source.h:
15577         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
15578         (rb_ipod_source_init), (rb_ipod_source_constructor),
15579         (rb_ipod_source_dispose), (rb_ipod_source_new),
15580         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
15581         the iPod source over to the removable media framework.
15582         
15583         * sources/rb-library-source.c: (paned_size_allocate_cb),
15584         (rb_library_source_get_paned_key): fix a potential bug is a
15585         library-derived source doesn't have a paned-key
15587 2005-09-11  Bastien Nocera  <hadess@hadess.net>
15589         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
15590         mp3 when we can't get the suffix of a file (Closes: #315941)
15592 2005-09-10  James Livingston  <jrl@ids.org.au>
15594         * configure.ac: fix the mdns tests, so that it doesn't complain about
15595         not finding one, if daap support isn't being compiled in
15597 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
15599         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
15601         * daapsharing/rb-daap-dialog.c:
15602         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
15603         HIG compliancy & images.
15605         * daapsharing/rb-daap-mdns.c:
15606         (browse_cb), (resolve_cb): Better detection of local services.  
15607         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
15608         Howl's limitations.  Fix the way collision handling is done under
15609         Avahi.
15611         * daapsharing/rb-daap-share.c:
15612         (publish_cb): Better name collision handling (at least for Avahi).
15614 2005-09-10  James Livingston  <jrl@ids.org.au>
15616         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
15617         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
15618         preferences more HIG compliant (Closes #315889)
15619         
15620         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
15621         list of files to be translated
15623 2005-09-10  James Livingston  <jrl@ids.org.au>
15625         * configure.ac: fix it so that --enable-daap=no works
15626         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
15627         uninstalled
15629 2005-09-10  James Livingston  <jrl@ids.org.au>
15631         Patch from Christophe Fergeau <teuf@gnome.org>
15633         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
15634         the ipod code.
15636 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15637         * README.daap: Updating documentation
15639 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15640         * AUTHORS: Added myself.
15642         * daapsharing/rb-daap-connection.c:
15643         (connection_login), (rb_connection_new): Reorganized password
15644         handling.
15646         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
15648         * shell/rb-shell.c:
15649         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
15651         * sources/rb-daap-source.c:
15652         (rb_daap_source_activate): Better error handling when we are unable to
15653         connect.
15654         
15655 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
15656         * README.daap: Fixed some terminology.
15658         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
15659         New --with-mdns=auto|howl|avahi flag to specify.
15661         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
15662         name collision dialogs.
15664         * daapsharing/rb-daap-connection.c:
15665         (connection_get_password), (build_message), (http_get)
15666         (connection_login): Ask for & use a password if the share demands it.
15668         * daapsharing/rb-daap-connection.h: Changed prototype of
15669         rb_daap_connection_new.
15670         
15671         * daapsharing/rb-daap-mdns.c: 
15672         (resolve_cb): Better detection of your own music share so it doesn't 
15673         appear in the sourcelist.
15675         * daapsharing/rb-daap-share.c:
15676         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
15677         that start on any available port.
15679         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
15681         * sources/rb-daap-source.c:
15682         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
15683         (browse_cb): Handle passworded shares. Resolve the host immediately
15684         instead of when activated.
15685         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
15686         (rb_daap_source_new): New GConf keys for UI state.
15687         (rb_daap_source_activate): Use RBPlaylistSource instead of
15688         RBDAAPPlaylistSource
15689         
15690         * sources/rb-daap-playlist-source.c/h: Removed
15692         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
15693         if the playlist is local (i.e. not DAAP or iPod).
15694         
15695         * shell/rb-playlist-manager.c:
15696         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
15697         wouldn't get saved if the last playlist hadn't changed.  Only save
15698         local playlists.
15699         
15700 2005-09-09  James Livingston  <jrl@ids.org.au>
15702         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
15703         iPod preferences pane, as it already uses the browser views as the
15704         library.
15706 2005-09-09  James Livingston  <jrl@ids.org.au>
15708         * sources/rb-library-source.c: (rb_library_source_finalize),
15709         (rb_library_source_constructor): fix gconf monitoring of library
15710         preference keys.
15711         * sources/rb-library-source.h: remove declaration of function that
15712         does not exist
15714 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15716         * player/rb-player-gst.c:
15717         (rb_player_set_time): Fix seeking in daap streams.
15719 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
15721         * data/rhythmbox.schemas: Turn music share browsing on by default.
15723 2005-09-07  James Livingston  <jrl@ids.org.au>
15725         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
15727 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15728         * player/rb-player-gst.c: 
15729         (rb_player_get_time): Fix for extra << & == that accidentally made
15730         it in.
15732         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
15733         
15734 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
15735         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
15736         it in last time.  Sorry.
15738 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15739         
15740         * player/rb-player-gst.c:
15741         (rb_player_get_time): Fix a small crash appearing when
15742         the uri isn't set in the player, but rb_player_get_time() is
15743         still called.
15745         * configure.ac: Also check for libsoup 2.4, which is what ships with
15746         Gnome 2.12.
15748         * po/POTFILES.in: Added music sharing files that have translatable 
15749         strings.
15751         * README.daap: New file explaining "How Music Sharing Works"  
15753 2005-09-06  Bastien Nocera  <hadess@hadess.net>
15755         * daapsharing/.cvsignore: added
15757 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
15759         * daapsharing/*: Music sharing library.
15760         
15761         * sources/rb-daap-source.c/h: Music share RBSource.
15762         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
15764         * configure.ac: --enable-daap flag to turn on music sharing. Requires
15765         libsoup and a mutlicast DNS implementation (howl or avahi).
15767         * data/rhythmbox.schemas: New GConf keys for music sharing.
15769         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
15770         source right click menu.
15772         * player/rb-player-gst.c: Changes to properly play & seek in remote
15773         music share files.
15775         * shell/rb-playlist-manager.c/h:
15776         (rb_playlist_manager_get_playlists): New function to get a GList * of
15777         the playlists.
15778         (rb_playlist_manager_save_playlists): Don't save music share playlists
15779         and fixed a GObject reference leak.
15781         * shell/rb-shell.c/h:
15782         (rb_shell_append_source): No longer a local function.  Now takes a
15783         parent RBSource * argument, NULL to append a toplevel source.
15784         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
15785         source (useful for disconnecting from remote music share,
15786         specifically).
15787         (rb_shell_quit): Stop music sharing/browsing.
15788         (rb_shell_playlist_added_cb): Work with tree source structure.
15789         (rb_shell_get_property): "playlist-manager" property accessor.
15790         (rb_shell_class_init): New "playlist-manager" property.
15791         (rb_shell_construor): Append sources as toplevel sources.  Initialize
15792         daap sharing/browsing.
15793         (rb_shell_select_source): Notify source of activation/deactivation.
15795         * shell/rb-shell-prefernces.c: Music sharing preferences.
15797         * sources/rb-source.c/h: New activate, deactivate and disconnect
15798         class functions.  Activate & deactivate are notification style 
15799         functions that will tell a source when it is selected/unselected.
15800         Disconnect can be hooked up to a UI object to disconnect the source.
15802         * sources/rb-sourcelist-model.c:
15803         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
15804         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
15805         append a toplevel source.
15807 2005-09-05  James Livingston  <jrl@ids.org.au>
15809         * rhythmdb/rhythmdb-query-model.c:
15810         (rhythmdb_query_model_entry_changed_cb),
15811         (rhythmdb_query_model_do_reorder): Update the query model's totals if
15812         the duration of filesize of an entry changes.  Emit the row-changed
15813         signals that I forgot to put back in, when I was doing query sorting.
15815         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
15816         out "0 minutes" or "0 bytes".
15818 2005-09-04  James Livingston  <jrl@ids.org.au>
15820         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
15821         remove a leftover bit of the "internal-name" property of sources.
15823 2005-09-03  James Livingston  <jrl@ids.org.au>
15825         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
15826         extraneous debug message
15827         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
15828         crasher would affect any library-derived sources (which was also a
15829         memory leak).
15831 2005-09-02  Colin Walters  <walters@verbum.org>
15833         * configure.ac: Fix sytnax error.
15835         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
15836         code to disable minimization icons - need to figure out
15837         why it doesn't work...
15839 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
15841         * data/glade/song-info-multiple.glade:
15842         * data/glade/song-info.glade:
15843         * widgets/rb-song-info.c: (rb_song_info_constructor):
15844         Add a mnemonic to the newly added "Automatically rate" label
15845         in the properties dialog and use a bold typeface like all the 
15846         other labels in the dialog. (Closes bug 315089)
15848 2005-09-03  James Livingston  <jrl@ids.org.au>
15850         * sources/rb-library-source.c: (rb_library_source_class_init),
15851         (rb_library_source_finalize), (rb_library_source_constructor),
15852         (rb_library_source_set_property), (rb_library_source_get_property),
15853         (impl_get_paned_key), (paned_size_allocate_cb),
15854         (rb_library_source_state_prefs_sync), (impl_show_popup),
15855         (rb_library_source_get_paned_key):
15856         * sources/rb-library-source.h: Allow sources derived from
15857         RBLibrarySource to use different gconf keys for sort order, browser
15858         visibility and browser pane position. Fix a crasher if a derived
15859         source overrides _get_pixbuf.
15861 2005-09-02  Colin Walters  <walters@verbum.org>
15863         * shell/rb-shell.c (rb_shell_set_visibility): Move
15864         hint setting which seems to avoid races more.
15865         
15866 2005-09-03  James Livingston  <jrl@ids.org.au>
15868         * shell/rb-shell.c: fix compilation with iPod support enabled
15869         
15870 2005-09-02  Colin Walters  <walters@verbum.org>
15872         * shell/rb-shell.c (struct RBShellPrivate): Add
15873         idle_hide_mainwindow_id.
15874         (rb_shell_constructor): Move taskbar skipping hint into
15875         rb_shell_set_visibility.
15876         (idle_hide_mainwindow): New function.
15877         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
15878         racy hack to avoid rb appearing in taskbar when minimized.
15880 2005-09-01  Colin Walters  <walters@verbum.org>
15882         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
15884         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
15885         from gtkstatusicion.c.
15887         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
15889         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
15890         TrayShowWindow entry.
15891         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
15892         (rb_tray_icon_constructor): Create action group here.
15893         (rb_tray_icon_finalize): Destroy action group.
15894         (rb_tray_icon_set_property): Don't take an action group.
15895         (rb_tray_icon_new): Ditto.
15896         (tray_popup_position_menu): Some mostly boilerplate code
15897         to position menu.
15898         (rb_tray_icon_button_press_event_cb): Position menu.
15899         (rb_tray_icon_get_geom): New function used for the shell
15900         to set minimization hints.
15902         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
15904         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
15905         (struct RBShellPrivate): Change visible to iconified.
15906         (set_icon_geometry): New function from Søren Sandmann to
15907         tell Metacity where to draw the minimization animiation.
15908         (rb_shell_window_state_cb): Update iconified.
15909         (rb_shell_get_visibility): New function to say whether
15910         or not we're currently visible.
15911         (rb_shell_set_visibility): Update to minimize to
15912         tray or present as appropriate.
15913         (rb_shell_window_delete_cb): On window close, just
15914         minimize to tray if we're deleted.
15915         (rb_shell_set_window_title): Kill old notification code.
15916         (rb_shell_toggle_visibility): Nwe function.
15917         (rb_shell_cmd_toggle_visibility): Call it.
15918         (rb_shell_constructor): Skip the taskbar.
15919         (tray_destroy_cb): Better debugging.
15920         
15921 2005-09-01  Colin Walters  <walters@verbum.org>
15923         * data/ui/rhythmbox-ui.xml: Add MusicClose.
15925         * configure.ac: Enable bonobo by default.
15926         
15927 2005-09-01  Colin Walters  <walters@verbum.org>
15929         * configure.ac: Default to old art.  Add macros subdir.
15931         * Makefile.am (SUBDIRS): Add macros.
15933         * macros/Makefile.am: New.
15934         
15935 2005-09-01  Colin Walters  <walters@verbum.org>
15937         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
15938         rb-shell-player.xml.
15940         * remote/dbus/rb-remote-dbus.h: Deleted.
15941         
15942         * remote/dbus/Makefile.am: Delete all the junk, just dist
15943         rb-print-playing.py and rb-set-rating.py.
15945         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
15947         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
15949 2005-09-02  James Livingston  <jrl@ids.org.au>
15951         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
15952         file from cvs
15954         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
15955         (rb_shell_constructor): Patches from Jonathan Matthew
15956         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
15957         a crash when using "browse this artist".
15959 2005-08-31  Colin Walters  <walters@verbum.org>
15961         * configure.ac: Add --with-old-art configure switch.  Also
15962         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
15963         but it doesn't work.
15965         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
15966         Don't use eel_create_colorized_pixbuf for new art.
15967         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
15969         * data/art-clearlooks: New artwork.
15970         
15971 2005-08-31  Colin Walters  <walters@verbum.org>
15973         * shell/main.c (main): Fix Bastien's commit to continue to focus
15974         the window with GTK+ 2.8 at least.
15975         
15976 2005-08-31  Colin Walters  <walters@verbum.org>
15978         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
15979         is already loaded.
15981         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
15983 2005-08-31  Bastien Nocera  <hadess@hadess.net>
15985         * README: remove mentions of the xine-lib backend
15986         * shell/main.c: (main): make it compilable with gtk+ < 2.8
15988 2005-08-30  Colin Walters  <walters@verbum.org>
15990         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
15991         Make non-visible sources insensitive.
15992         
15993 2005-08-30  Colin Walters  <walters@verbum.org>
15995         * shell/rb-shell.c: Don't use GConf for selected source; it's
15996         confusing to have the selected source change after startup,
15997         and since we don't save other things it's not worth saving this.
15999         * sources/rb-playlist-source.c:
16000         * sources/rb-library-source.c:
16001         * sources/rb-iradio-source.c:
16002         * sources/rb-ipod-source.c: Delete internal-name property usage.
16003         * sources/rb-source.c: Delete internal-name property.
16005         * data/rhythmbox.schemas: Delete selected_source.
16006         
16007 2005-08-30  Colin Walters  <walters@verbum.org>
16009         * sources/rb-sourcelist.c: Make playing source bold instead of
16010         displaying a pixbuf; it's much less ugly.
16011         
16012 2005-08-30  Colin Walters  <walters@verbum.org>
16014         * sources/rb-source.c:
16015         * sources/rb-source.h: New virtual method try_playlist.
16017         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
16018         impl_try_playlist.
16019         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
16020         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
16021         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
16022         need to.
16023         (stations_view_drag_data_received_cb): Don't check for iradio uris;
16024         in theory we should though...
16026         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
16027         list in rb_shell_construct now.
16028         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
16029         RBiPodSource.
16030         (rb_shell_constructor): Create library, iradio, ipod here.
16031         (rb_shell_source_deleted_cb): Use source directly instead of
16032         indirecting through type.
16033         (rb_shell_sync_selected_source): Ditto.
16034         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
16035         from the type instead of special-casing.
16036         (rb_shell_guess_type_for_uri) 
16037         (rb_shell_add_uri)
16038         (handle_one_uri_with_possible_metadata): New functions.
16039         (rb_shell_load_uri): Refactor to allow loading playlists again,
16040         also use other URI infrastructure.
16042         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
16043         (rb_shell_player_error): Always set entry error on error, instead
16044         of depending on EOF behavior.
16046         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
16047         to just invoke rb_shell_add_uri.
16048         (rb_playlist_manager_parse_file): Return error instead of tossing
16049         up dialog box directly.
16050         (load_playlist_response_cb): Display error here.
16051         (add_uri_to_playlist): Delete.
16052         (handle_playlist_entry_into_playlist_cb): Renamed to
16053         handle_playlist_entry_cb.
16055         * shell/rb-playlist-manager.h: Add error, update prototype.
16057         * lib/rb-file-helpers.c:
16058         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
16060 2005-08-29  Colin Walters  <walters@verbum.org>
16062         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
16063         if entry already exists.  Use rhythmdb_entry_set_uninserted.
16065         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
16066         needlessly duping string, and use rhythmdb_entry_set_uninserted.
16067         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
16069         * shell/rb-shell.h (enum RBShellError): Add some more errors.
16070         Prototype rb_shell_set_song_property.
16072         * shell/rb-shell.xml: Export setSongProperty.
16074         * shell/rb-shell.c (rb_shell_set_song_property): New function.
16075         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
16076         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
16078         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
16079         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
16080         want to notify of the change.
16081         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
16083         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
16084         logic error; idle functions would be enqueued for each set.
16085         (rhythmdb_entry_set): Fix assertion logic error.
16087         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
16088         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
16089         Return if the entry already exists.
16090         
16091 2005-08-29  Colin Walters  <walters@verbum.org>
16093         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
16094         "inserted" member which we use to keep track of
16095         whether or not an entry is in the DB.  Prototype
16096         rhythmdb_entry_set_uninserted.
16098         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
16099         flag.
16100         (rhythmdb_entry_insert): Assert entry is not already inserted.
16101         (rhythmdb_process_metadata_load): Update to call _set_uninserted
16102         just after creating entry.
16103         (rhythmdb_entry_set): Document, and fail on uninserted entries.
16104         (rhythmdb_entry_set_nonotify): Ditto.
16105         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
16106         entries.
16107         (rhythmdb_entry_set_internal): Change notify flag to
16108         notify_if_inserted.  Also move notification after assertions.
16110         Update all existing callers of rhythmdb_entry_set_internal
16111         to give TRUE for notify_if_inserted; this should be what
16112         we want but may be an efficiency hit.
16113         
16114 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
16116         * shell/rb-shell-player.c: (rb_shell_player_init),
16117         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
16118         (rb_shell_player_set_playing_source_internal),
16119         (rb_shell_player_sync_with_selected_source): Notify the player when an
16120         entry has updated the title, album or artist field, and resync the big
16121         display.
16122         
16123         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
16124         * sources/rb-library-source.c: (rb_library_source_class_init),
16125         (impl_get_config_widget):
16126         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
16127         * sources/rb-source.c:
16128         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
16129         get_album functions in rb-source and adapted other sources accordingly.
16130         
16131 2005-08-29  Colin Walters  <walters@verbum.org>
16133         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
16134         signal_change member.
16135         (threadsafe_entry_set): New function.
16136         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
16137         (rhythmdb_entry_set_nonotify): New function; just call
16138         threadsafe_entry_set with FALSE.
16139         (rhythmdb_entry_set_internal): Take a notify flag; if true
16140         add the change to our pending set.
16142         Also update all internal callers of rhythmdb_entry_set_internal
16143         to pass FALSE.  Some of these may be bugs however and need to
16144         pass TRUE...
16146         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
16147         rhythmdb_entry_set, and rename rhythmdb_entry_set to
16148         rhythmdb_entry_set_nonotify.
16150         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
16151         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
16153         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
16155         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
16156         * sources/rb-source.c (rb_source_update_play_statistics): 
16157         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
16158         * sources/rb-ipod-source.c (entry_set_string_prop) 
16159         (load_ipod_db_idle_cb): 
16160         * shell/rb-shell.c (rb_shell_set_rating_impl): 
16161         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
16162         (info_available_cb): 
16163         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
16164         (rb_station_properties_dialog_sync_entries): 
16165         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
16167         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
16168         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
16169         
16170 2005-08-29  Colin Walters  <walters@verbum.org>
16172         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
16174         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
16175         linking insanity.
16177         * widgets/rb-header.c (sanitize_string): New function, extracted
16178         from old info_url.  Be sure to always strip the string.
16179         (info_url): Rewrite to take artist/album, and generate a sane
16180         URL for them from last.fm, which is better than allmusic.com in
16181         that they support Rhythmbox, and have a *SANE* URL scheme.
16182         (artist_info_url, album_info_url): Delete.
16183         (rb_header_sync): Use info_url.
16185 2005-08-29  James Livingston  <jrl@ids.org.au>
16187         * sources/rb-source.c: (rb_source_search): Check to ensure that this
16188         is implemented before calling it. Many sources don't implement the
16189         method.
16191 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
16193         * data/glade/create-playlist.glade:  Cleanup the layout,
16194         and add a few more mnemonics.
16195         * shell/rb-playlist-manager.c:
16196         (rb_playlist_manager_cmd_load_playlist),
16197         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
16198         capitalization for window titles.
16199         * widgets/rb-query-creator-properties.c: Add mnemonics
16200         to checkbutton labels.
16201         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
16202         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
16204 2005-08-28  Colin Walters  <walters@verbum.org>
16206         * data/rhythmbox.schemas: Delete search_text for library
16207         and iradio; this isn't a persistent value anymore.
16208         Closes #313757.
16209         
16210         * sources/rb-source.h:
16211         * sources/rb-source.c: Delete impl_can_search.
16213         * sources/rb-iradio-source.c: Delete search_text usage.
16214         * sources/rb-library-source.c: Ditto.
16216         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
16217         search when source is set, and just do rb_source_search in
16218         rb_source_header_search_cb.
16220         * shell/rb-shell.c (rb_shell_append_source): Don't
16221         initiate search.
16223         * shell/Makefile.am: Don't dist dashboard.c.
16225 2005-08-28  Colin Walters  <walters@verbum.org>
16227         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
16228         
16229 2005-08-28  Colin Walters  <walters@verbum.org>
16231         * data/org.gnome.Rhythmbox.service.in: New.
16233         * data/Makefile.am: Install service file.
16235         * configure.ac: Define DBUS_SERVICES_DIR.
16237         * autogen.sh: Set ACLOCAL_FLAGS.
16239         * macros/acinclude.m4: New.
16240         
16241 2005-08-28  Colin Walters  <walters@verbum.org>
16243         Initial patch from Jonathan Matthew; closes 313684.
16245         * rhythmdb/rhythmdb-tree.c:
16246         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
16247         (save_entry): Return on error.
16248         (rhythmdb_tree_save): Handle error when saving the
16249         db; additionally, handle errors from fclose and unlink,
16250         and print error too.
16252 2005-08-28  Colin Walters  <walters@verbum.org>
16254         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
16255         extra _.
16256         
16257 2005-08-28  Colin Walters  <walters@verbum.org>
16259         * configure.ac: Change iPod support to --with-ipod;
16260           automatically enable it if we have HAL.  Try to
16261           support both HAL 0.5 and HAL 0.2.  Break out
16262           totem-plparser into its own check so later we
16263           can do version tests there too.
16264           Kill dashboard support.
16265         
16266         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
16267         to support HAL > 0.5, but preserve the old code for HAL < 0.5
16268         Closes #310017.
16269         
16270         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
16271         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
16273         * sources/Makefile.am: Also handle
16274         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
16276         * shell/dashboard.c: Delete; someone should just write a little
16277         python shim which lists on the D-BUS interface and writes the
16278         stuff to Dashboard.  Even better Dashboard should be ported
16279         to D-BUS and do the listening itself, perhaps on an abstract
16280         "org.gnome.MusicPlayer" interface or something.
16282         * shell/rb-shell.c: Kill dashboard support.
16284 2005-08-28  Colin Walters  <walters@verbum.org>
16286         * remote/dbus/rb-print-playing.py: New file.
16288 2005-08-28  Colin Walters  <walters@verbum.org>
16290         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
16291         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
16293         * shell/rb-shell-player.h:
16294         * shell/rb-shell-player.c: Add playing-uri-changed signal.
16295         * shell/rb-shell-player.xml: Export it.
16297         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
16298         (rb_shell_error_quark): New.
16300         * shell/rb-shell.h: Prototype.  Also add RBShellError.
16301         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
16302         
16303 2005-08-28  Colin Walters  <walters@verbum.org>
16305         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
16306         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
16307         bonobo_unlock.
16308         (rb_remote_bonobo_preinit): Lock setting moved here.
16309         (rb_remote_bonobo_init): From here.
16311         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
16312         Also invoke handle_cmdline in the right place.
16313         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
16314         GFunc.
16316 2005-08-28  James Livingston  <jrl@ids.org.au>
16318         * NEWS: keep the NEWS file up to date, so we don't have to do it all
16319         when 0.9.1 comes around.
16321 2005-08-28  James Livingston  <jrl@ids.org.au>
16323         * iradio/rb-new-station-dialog.c:
16324         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
16325         bug 314477.
16327 2005-08-28  James Livingston  <jrl@ids.org.au>
16329         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
16331         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
16332         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
16333         is a song is longer than 60 minutes. Closes bug 313311.
16335 2005-08-27  James Livingston  <jrl@ids.org.au>
16337         * data/glade/create-playlist.glade:
16338         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
16339         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
16340         "minutes" as an option in the playlist limit menu.
16342         * rhythmdb/rhythmdb-query-model.c:
16343         (rhythmdb_query_model_class_init),
16344         (rhythmdb_query_model_set_property),
16345         (rhythmdb_query_model_get_property),
16346         (rhythmdb_query_model_update_limited_entries): Allow query models to
16347         have a time limit
16348         
16349         * shell/rb-playlist-manager.c:
16350         (rb_playlist_manager_set_automatic_playlist),
16351         (rb_playlist_manager_cmd_edit_automatic_playlist):
16352         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
16353         (rb_playlist_source_get_query), (impl_receive_drag),
16354         (rb_playlist_source_new_from_xml),
16355         (rb_playlist_source_save_to_xml),
16356         (rb_playlist_source_songs_sort_order_changed_cb),
16357         (rb_playlist_source_do_query):
16358         * sources/rb-playlist-source.h:
16359         * widgets/rb-query-creator.h: Allow playlists to be limited by time
16361 2005-08-27  James Livingston  <jrl@ids.org.au>
16363         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
16365         * configure.ac:
16366         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
16367         non-standard location. Closes bug 314640.
16369 2005-08-26  Colin Walters  <walters@verbum.org>
16370         
16371         Patch from Olivier Blin <oblin@mandriva.com>
16373         * widgets/eggnotificationbubble.c (draw_bubble): 
16374         Handle extreme-left case as well.
16375         
16376 2005-08-26  Colin Walters  <walters@verbum.org>
16378         * shell/rb-shell.c (idle_save_state): Don't do this.
16379         (rb_shell_construct): Remove idle calls to idle_save_state.
16380         We should save the playlists automatically when they're
16381         modified.
16382         (rb_shell_load_uri): Don't try to re-stat entry if it already
16383         exists.
16385         * shell/rb-shell-player.c: Keep track of entry we are attempting
16386         to play.
16387         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
16388         Don't double-free error.
16389         (rb_shell_player_play_entry): Signal errors.
16390         (rb_shell_player_entry_activated_cb): Ditto.
16391         (rb_shell_player_property_row_activated_cb): Ditto.
16392         (rb_shell_player_set_playing_source_internal): Unset attempted
16393         playing entry.
16394         (rb_shell_player_error): Refactor to be usable both sync and
16395         async.  Handle case where displayed entry differs from entry.
16396         (error_cb): Move GDK locking here.
16398         * shell/main.c (main): Drop most commandline arguments for D-BUS;
16399         people can just use dbus-send or python.  We only support focusing
16400         and loading files.
16401         (load_uri_args): New function, extracted from handle_cmdline.
16402         (dbus_load_uri, bonobo_load_uri): New functions.
16404         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
16405         appropriate.
16407         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
16408         * remote/dbus/rb-remote-dbus.c: Deleted.
16410         * player/rb-player-gst.c: Clear any pending idle handlers when we
16411         close the player.  Signal errors generated during open/play etc
16412         as synchronous errors.
16414         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
16415         
16416 2005-08-26  Colin Walters  <walters@verbum.org>
16418         * shell/rb-shell.c (rb_shell_present): Try harder.
16420 2005-08-26  Colin Walters  <walters@verbum.org>
16422         * shell/rb-shell.c (rb_shell_present): Try to handle
16423         GTK_MINOR_VERSION < 8.
16425 2005-08-26  James Livingston  <jrl@ids.org.au>
16427         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
16428         <pbrobinson@gmail.com>
16430 2005-08-26  Colin Walters  <walters@verbum.org>
16432         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
16434 2005-08-25  Colin Walters  <walters@verbum.org>
16436         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
16437         Delete.
16438         (rb_shell_player_do_next_with_rating): Move back into
16439         rb_shell_player_do_next.
16440         (rb_shell_player_entry_activated_cb): Remove call to
16441         rb_shell_player_auto_adjust_rating.
16442         (do_next_idle): Just call rb_shell_player_do_next.
16444         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
16446 2005-08-25  Colin Walters  <walters@verbum.org>
16448         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
16449         before gtk_window_present_with_time.
16450         
16451 2005-08-25  Colin Walters  <walters@verbum.org>
16453         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
16454         default.
16456         * shell/rb-shell.c (rb_shell_constructor): Adapted from
16457         rb_shell_construct.  This is so we only have to do g_object_new.
16458         (rb_shell_get_player): New function.
16459         (rb_shell_get_player_path): Ditto.
16460         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
16461         
16462         * shell/rb-shell.h: Prototype them.
16464         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
16465         export over D-BUS.
16466         (reemit_playing_signal): New function.
16467         (rb_shell_player_open_playlist_location): Use return values from
16468         rb_player_open, rb_player_close, etc. instead of checking "error".
16469         Return a gboolean on failure.
16470         (rb_shell_player_open_entry): Just open entry location, don't
16471         print to stderr.
16472         (rb_shell_player_play): Handle retval from rb_player_play.  Return
16473         a gboolean.
16474         (do_next_idle): Move logic for handling of end of playlist here.
16475         (rb_shell_player_set_playing_entry): Take a GError, return a
16476         gboolean.  Update to use gboolean return values.
16477         (rb_shell_player_do_previous): Delete lots of crazy duplicate
16478         logic.  Signal an error on end of playlist.  Also signal error if
16479         we're not playing.  Move heuristic for replaying the song into
16480         rb_shell_player_cmd_previous.
16481         (rb_shell_player_do_next_with_rating): Signal error on end of
16482         playlist.
16483         (rb_shell_player_do_next): Return errors.
16484         (rb_shell_player_cmd_previous): Heuristic for restarting song
16485         moved here; the idea is you generally only want that from the GUI.
16486         (rb_shell_player_cmd_play): Handle error.
16487         (rb_shell_player_playpause): Signal errors.
16488         (filter_mmkeys): Use rb_shell_player_cmd_previous and
16489         rb_shell_player_cmd_next in favor of the internal _do functions.
16490         
16491         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
16492         errors.  Update prototypes for above changes.
16494         * shell/main.c: More tightly integrate D-BUS; register various
16495         major singleton objects here.  Fix handle_cmdline so we only
16496         process extra arguments, not every argument.
16498         * shell/Makefile.am: Generate D-BUS glue headers.
16500         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
16501         into shell/main.c.  Now this file just acts as a client library.
16502         Not heavily tested.
16504         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
16505         Moved here.
16506         (rb_remote_bonobo_init): Move long CORBA rant here along with
16507         setting of lock functions.
16509         * player/rb-player-gst.c (rb_player_construct)
16510         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
16511         on error.
16513         * player/rb-player.h: Update prototypes.
16515         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
16516         rb-remote-bonobo.c.
16517         (rb_threads_init): Don't set gdk lock functions here.
16519 2005-08-25  James Livingston  <jrl@ids.org.au>
16521         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
16523         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
16524         * lib/rb-tree-dnd.h:
16525         * rhythmdb/rhythmdb-property-model.c:
16526         (rhythmdb_property_model_class_init),
16527         (rhythmdb_property_model_drag_source_init),
16528         (rhythmdb_property_model_iter_parent),
16529         (rhythmdb_property_model_row_draggable),
16530         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
16531         (rhythmdb_property_model_drag_data_get),
16532         (rhythmdb_property_model_enable_drag):
16533         * rhythmdb/rhythmdb-property-model.h:
16534         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
16535         (rb_playlist_manager_set_property), (append_new_playlist_source),
16536         (rb_playlist_manager_save_playlists):
16537         * shell/rb-shell.c: (rb_shell_construct),
16538         (sourcelist_drag_received_cb):
16539         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
16540         * sources/rb-playlist-source.c: (impl_receive_drag):
16541         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
16542         (rb_sourcelist_model_drag_dest_init),
16543         (rb_sourcelist_model_set_dnd_targets),
16544         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
16545         (rb_sourcelist_model_row_drop_position),
16546         (rb_sourcelist_model_get_drag_target),
16547         (rb_sourcelist_model_drag_data_get):
16548         * sources/rb-sourcelist-model.h:
16549         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
16550         (rb_sourcelist_init), (rb_sourcelist_get_property),
16551         (rb_sourcelist_selection_changed_cb):
16552         * sources/rb-sourcelist.h:
16553         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
16554         improve drag-n-drop support. Allow dragging of item from property
16555         views to the source list, to create new automatic playlists. Allow
16556         playlist re-ordering. Fix dragging from Rhythmbox to other
16557         applications. (Closes bug 147337)
16559 2005-08-24  Colin Walters  <walters@verbum.org>
16561         Patch from Olivier Blin <oblin@mandriva.com>
16563         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
16564         correctly in the case where the window is next to monitor edge.
16566 2005-08-24  James Livingston  <jrl@ids.org.au>
16568         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
16569         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
16570         a gobject property to get the query model that backs the playlist.
16572 2005-08-24  James Livingston  <jrl@ids.org.au>
16574         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
16575         (handle_playlist_entry_into_playlist_cb),
16576         (rb_playlist_manager_playlist_entries_changed): Disable the "create
16577         audio cd" menu item when a non-playlist source is selected, or the
16578         playlist is empty. (Closes Bug 313253)
16580 2005-08-24  James Livingston  <jrl@ids.org.au>
16582         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16583         Fix the playlist length checkso it doesn't report 0 for automatic
16584         playlists. This was stopping automati playlists being burnt to cd.
16586 2005-08-24  James Livingston  <jrl@ids.org.au>
16588         * configure.ac:
16589         * sources/rb-playlist-source-recorder.c: (burn_cd):
16590         * sources/rb-playlist-source.c:
16591         (rb_playlist_source_songs_sort_order_changed_cb):
16592         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
16593         more warnings that occur when compiling RPMs on Fedora.
16595 2005-08-24  James Livingston  <jrl@ids.org.au>
16597         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
16598         was stopping some distros gcc version compiling.
16600 2005-08-24  James Livingston  <jrl@ids.org.au>
16602         * NEWS:
16603         * data/glade/create-playlist.glade:
16604         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
16605         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
16606         (rhythmdb_query_free), (rhythmdb_query_serialize),
16607         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
16608         * rhythmdb/rhythmdb.h:
16609         * shell/rb-playlist-manager.c:
16610         (rb_playlist_manager_set_automatic_playlist),
16611         (rb_playlist_manager_cmd_edit_automatic_playlist):
16612         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
16613         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
16614         (impl_receive_drag), (rb_playlist_source_new_from_xml),
16615         (rb_playlist_source_save_to_xml),
16616         (rb_playlist_source_songs_sort_order_changed_cb),
16617         (rb_playlist_source_do_query):
16618         * sources/rb-playlist-source.h:
16619         * widgets/Makefile.am:
16620         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
16621         (rb_entry_view_set_sorting_order):
16622         * widgets/rb-query-creator-private.h:
16623         * widgets/rb-query-creator-properties.c:
16624         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
16625         (stringCriteriaGetWidgetData),
16626         (escapedStringCriteriaSetWidgetData),
16627         (escapedStringCriteriaGetWidgetData), (set_rating_score),
16628         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
16629         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
16630         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
16631         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
16632         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
16633         (relativeTimeCriteriaCreateWidget),
16634         (relativeTimeCriteriaSetWidgetData),
16635         (relativeTimeCriteriaGetWidgetData):
16636         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
16637         (rb_query_creator_class_init), (rb_query_creator_constructor),
16638         (rb_query_creator_dispose), (rb_query_creator_set_property),
16639         (rb_query_creator_get_property), (rb_query_creator_load_query),
16640         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
16641         (get_entry_for_property), (rb_query_creator_get_query),
16642         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
16643         (limit_toggled_cb), (lookup_row_by_widget),
16644         (remove_button_click_cb), (append_row),
16645         (get_property_index_from_proptype), (select_criteria_from_value),
16646         (property_option_menu_changed), (create_property_option_menu),
16647         (create_criteria_option_menu), (sort_option_menu_changed),
16648         (setup_sort_option_menu):
16649         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
16650         playlists. The two most notable improvements are 1) adding more
16651         properties to the query creator, making it much easier to add more in
16652         the future, and 2) allow playlists to be sorted, from the query editor
16653         if they gave limits, and by clicking on column headers if they don't.
16655         Files added: widgets/rb-query-creator-private.h,
16656         sources/rb-query-creator-properties.c
16658 2005-08-21  James Livingston  <jrl@ids.org.au>
16660         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
16661         error=NULL. This stops some crashes.
16663 2005-08-19  Colin Walters  <walters@verbum.org>
16665         Patch from Olivier Blin <oblin@mandriva.com>
16667         * widgets/eggnotificationbubble.c (force_window): Support top
16668         orientation.
16669         * widgets/eggnotificationbubble.h: Remove
16670         egg_notification_bubble_force_window from header.
16671         
16672 2005-08-18  James Livingston  <jrl@ids.org.au>
16674         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
16675         with the changes since then.
16677 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
16679         * shell/rb-shell-player.c: (rb_shell_player_init),
16680         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
16681         (rb_shell_player_volume_widget_changed_cb):
16682         * sources/rb-iradio-source.c:
16683         * sources/rb-library-source.c:
16684         * sources/rb-playlist-source.c:
16685         * widgets/Makefile.am:
16686         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
16687         (bacon_volume_button_class_init), (bacon_volume_button_init),
16688         (bacon_volume_button_dispose), (bacon_volume_button_new),
16689         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
16690         (bacon_volume_button_scroll), (bacon_volume_button_press),
16691         (cb_button_timeout), (cb_button_press), (cb_button_release),
16692         (bacon_volume_release_grab), (cb_dock_press),
16693         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
16694         (bacon_volume_scale_new), (bacon_volume_scale_press),
16695         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
16696         * widgets/bacon-volume.h:
16697         * widgets/rb-volume.c:
16698         * widgets/rb-volume.h:
16699           Use BaconVolumeButton (#300867).
16701 2005-08-17  James Livingston  <jrl@ids.org.au>
16703         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
16704         (rhythmdb_process_metadata_load): don't reset the First Seen time
16705         whenever we recheck the metadata.
16707 2005-08-17  James Livingston  <jrl@ids.org.au>
16709         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16710         temporary workaround to stop crashes when trying to burn an empty
16711         playlist. Doesn't disable the menu item which is the better solution
16712         (Bug 313253).
16714 2005-08-15  James Livingston  <jrl@ids.org.au>
16716         * shell/rb-source-header.c: (rb_source_header_init),
16717         (rb_source_header_sync_control_state),
16718         (rb_source_header_search_activate_cb):
16719         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
16720         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
16721         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
16722         (rb_search_entry_init), (rb_search_entry_searching),
16723         (rb_search_entry_activate_cb):
16724         * widgets/rb-search-entry.h: Move focus to the entry view when user
16725         presses enter in the search box. Patch from Paolo Borelli
16726         <pborelli@katamail.com> (Closes bug 128110)
16728 2005-08-15  James Livingston  <jrl@ids.org.au>
16730         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
16731         (rb_playlist_manager_new_playlist):
16732         * shell/rb-playlist-manager.h:
16733         * shell/rb-shell.c: (rb_shell_construct),
16734         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
16735         the source list to be shown when a new playlist is created. (Closes
16736         bug 161935)
16738 2005-08-15  James Livingston  <jrl@ids.org.au>
16740         * widgets/rb-header.c: (rb_header_init),
16741         (rb_header_set_show_timeline): disable the seek slider, rather than
16742         hiding it, which more closely follows the HIG. (Closes bug 139102)
16744 2005-08-13  Colin Walters  <walters@verbum.org>
16746         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
16747         rb_shell_hidden_notify.
16748         (rb_shell_hidden_notify): Notify if the shell is hidden.
16749         (rb_shell_set_visibility_impl): Debug goo.
16751         * shell/rb-shell.h: Export rb_shell_hidden_notify.
16753         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
16754         when the user clicks on notification.
16756         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
16757         CD burn is complete.
16758         (rb_playlist_source_recorder_finalize): Unref shell.
16759         (rb_playlist_source_recorder_new): Take shell.
16761         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
16762         Pass shell to RBPlaylistSourceRecorder.
16763         
16764 2005-08-13  Colin Walters  <walters@verbum.org>
16766         * lib/rb-thread.c:
16767         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
16768           time to convert.
16770 2005-08-13  Colin Walters  <walters@verbum.org>
16772         * widgets/eggnotificationbubble.h:
16773         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
16774         * widgets/eggtrayicon.c:
16775         * widgets/eggtrayicon.h: Add notification API.
16776         * shell/rb-tray-icon.c:
16777         * shell/rb-tray-icon.h: Add notification API.
16778         * shell/rb-shell.c: Notify on song change.
16780 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
16782         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
16783         Correct an inversion of two lines causing NULL to be unreffed
16785 ============ Version 0.9.0
16787 2005-08-10  Bastien Nocera  <hadess@hadess.net>
16789         * configure.ac: 0.9.0, whee!
16790         * NEWS: badly updated
16791         * remote/bonobo/Makefile.am:
16792         * remote/bonobo/rb-remote-bonobo.h:
16793         * shell/Makefile.am:
16794         * shell/main.c: make distcheck fixes